A build-to-order Odoo portal that gives patients secure, authenticated access to their medical information, appointment history, and downloadable documents. ECOSIRE scopes, builds, installs, and supports it on your Odoo 17/18/19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $399.00 USD; request a quote for a scoped proposal.

A build-to-order Odoo portal that gives patients secure, authenticated access to their medical information, appointment history, and downloadable documents. ECOSIRE scopes, builds, installs, and supports it on your Odoo 17/18/19.
ابھی کوئی ادائیگی نہیں۔ یہ ہماری ٹیم کو قیمت کی درخواست بھیجتا ہے — ہم قیمت اور اگلے اقدامات کے ساتھ ای میل کے ذریعے رابطہ کریں گے۔
Healthcare providers on Odoo quickly hit a wall when patients need self-service access to their own records. Odoo's stock website portal (portal.mixin, the /my controllers) was designed around sales orders, invoices, and project tasks — not encounters, clinical documents, lab results, or consent forms. Front-desk staff end up emailing PDFs manually, results get lost in inboxes, and there is no audited, permissioned surface where a patient can log in and see only their own information. The moment you try to expose anything clinical through the native portal you also inherit a data-segregation problem: without carefully written record rules, one patient's portal query can reach another patient's data.
Dedicated patient portal surface built on Odoo's `portal.mixin` and `/my` controller pattern, inheriting native breadcrumbs, pagers, and access-token flows
Clinical `models.Model` records (patient profile, encounters, documents, results) each related to `res.partner` for a single source of identity
Row-level data segregation via `ir.model.access.csv` plus record rules scoping every model to `user_partner_id = env.user.partner_id`
Guardian / caregiver access mapping through the partner commercial hierarchy so an authorized carer sees a dependant's records without breaking isolation
Secure document downloads routed through controlled `ir.attachment` endpoints with signed access-token checks, never public URLs
Computed status fields via `@api.depends` (result-ready, next-appointment, outstanding-forms) driving portal badges and counters
We build a dedicated Patient Portal Management module that extends the Odoo portal into a proper patient-facing surface. On the backend we add clinical models (models.Model) for patient records, encounters, and shareable documents, each linked to res.partner, with computed fields (@api.depends) for status, next appointment, and result-ready flags. The security layer is the heart of the build: granular ir.model.access.csv plus record rules that scope every model to user_partner_id = env.user.partner_id (and its commercial hierarchy where a guardian or caregiver relationship applies), so a logged-in patient can only ever read their own rows — enforced at the ORM level, not just hidden in the UI. Portal pages are delivered as QWeb templates and portal.mixin controllers so they inherit Odoo's breadcrumb, pager, and access-token patterns; document downloads run through controlled ir.attachment routes with signed access checks rather than public URLs. We wire automated actions to notify a patient when a new document or result is published, and expose read-only endpoints over the JSON-RPC/XML-RPC API when you need to sync with an EMR or a booking front end.
Because this is made-to-order, nothing ships as a generic download — we build your version against your Odoo edition and your data model. We confirm which document types patients may see, whether you run Community or Enterprise (Enterprise unlocks tighter approval flows, studio-adjacent extensions, and some sign/document features we can lean on; Community gets a fully equivalent hand-built path), and how patient identity maps to res.partner in your existing database. Delivery is typically 2-4 weeks from a confirmed scope: we develop on a staging branch, run UAT with your team against real-shaped test data, then deploy to production with a rollback plan and hand over the git repository.
Delivery is a defined path, not an open-ended engagement. After a short scoping call we send a fixed written quote and a milestone plan; you approve the scope, we build on staging, you sign off through UAT, and we cut over to production with a rollback plan and a post-go-live support window. Pricing starts from $399 (indicative, single-company base scope); multi-company hospital groups, EMR/lab-system integrations, additional document workflows, or deeper localization increase the quoted scope. You receive a firm number before any build work begins.
Manages an existing Odoo deployment and needs patients to self-serve their records and documents securely, without staff emailing PDFs by hand. Cares most about data isolation and a clean cutover.
Owns the Odoo instance and any EMR/lab integrations. Needs a portal that respects record rules, exposes clean JSON-RPC/XML-RPC endpoints, and ships with docs and a git handover so the team can maintain it.
Coordinates several sites or legal entities on one database. Needs multi-company-aware access, guardian/caregiver handling, and a configurable document-visibility matrix that front-desk staff can operate.
Accountable for who can see which patient data. Needs enforceable row-level segregation, an access audit trail, and consent capture rather than UI-only hiding.
Buy the license on ecosire.com and download the Patient Portal Management module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Patient Portal Management, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Patient data isolation | ORM-level record rules scope every row to the logged-in patient's partner | Depends entirely on your developers writing correct rules | Generic access model; clinical segregation often not the focus | |
| Fit to your data model | Built against your models, edition, and identity mapping | Fully bespoke but you own all design decisions and risk | Fixed schema you must adapt your process to | |
| Secure document downloads | Signed access-token `ir.attachment` routes with audit logging | Must be designed and hardened by your team | Varies; often basic attachment exposure | |
| Delivery model | Scoped quote, staging build, UAT, cutover with rollback | You manage the whole project and timeline | Instant install, then self-configure and self-support | |
| Version and edition coverage | Built and tested for Odoo 17/18/19, Community or Enterprise | Whatever you build and maintain per version | May lag new Odoo releases or target one edition | |
| Support and handover | Post-go-live window, docs, training, git repo handover | Internal knowledge only unless documented yourself | Vendor ticket queue, variable SLA | |
| Integration with EMR/lab | JSON-RPC/XML-RPC endpoints and sync jobs, scoped and quoted | Possible but built from scratch | Usually not included or limited | |
| Total cost predictability | Indicative from $399, firm fixed quote after scoping | Open-ended developer time and maintenance | Low license fee but hidden config/support effort |
No. Patient Portal Management is build-to-order. ECOSIRE builds your version against your Odoo edition and data model, then installs and supports it. There is no instant download — you request a quotation and we scope it with you first.
Typical delivery is 2-4 weeks from a confirmed scope. After the scoping call we build on a staging branch, run UAT with your team, then deploy to production. Larger scopes such as EMR integration or multi-company groups can extend the timeline, which we state in the written quote.
Pricing starts from $399 as an indicative single-company base figure. After a short scoping call we send a fixed written quote and milestone plan — drivers like multi-company setups, EMR/lab integrations, extra document workflows, or deeper localization adjust the number. You get a firm price before any build work starts.
Isolation is enforced at the ORM level, not just hidden in the UI. Every clinical model gets record rules scoping rows to the logged-in user's `res.partner`, backed by `ir.model.access.csv`. Document downloads use signed access-token routes rather than public URLs, and all access is audit-logged.
Yes. Every build includes a post-go-live support window for defect fixes and configuration questions, plus the full git repository so your team can maintain it. We can also quote an ongoing support or version-upgrade retainer separately.
We build and test against Odoo 17.0, 18.0, and 19.0, on both Community and Enterprise. Enterprise lets us lean on features like document and sign flows; on Community we hand-build fully equivalent functionality. We confirm your exact version and edition during scoping.
Yes. We expose read-only JSON-RPC/XML-RPC endpoints and can build sync jobs so portal records reflect your EMR, LIMS, or booking front end. Integration depth is a scope driver and is priced in the written quote after we review the external system.
A build-to-order Odoo portal that gives patients secure, authenticated access to their medical information, appointment history, and downloadable documents. ECOSIRE scopes, builds, installs, and supports it on your Odoo 17/18/19.