A made-to-order Odoo telemedicine layer that turns appointments into secure paid video visits — with pre-consult intake, a virtual waiting room, in-call notes, e-prescriptions, and everything filed into the patient's EMR timeline. ECOSIRE scopes, builds, installs and supports it for your practice. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $399.00 USD; request a quote for a scoped proposal.

A made-to-order Odoo telemedicine layer that turns appointments into secure paid video visits — with pre-consult intake, a virtual waiting room, in-call notes, e-prescriptions, and everything filed into the patient's EMR timeline. ECOSIRE scopes, builds, installs and supports it for your practice.
Aucun paiement maintenant. Ceci envoie une demande de devis à notre équipe — nous vous recontacterons par e-mail avec les tarifs et les prochaines étapes.
Most clinics that start offering remote consultations end up stitching the workflow together by hand: a video link pasted into an email, a payment chased after the call, prescriptions typed into a separate document, and no clean record of what happened landing back in the patient file. Odoo's native calendar and appointment tools can book a slot and even attach a videoconference URL, but they treat a telemedicine visit like any other meeting — there is no concept of paying before the link goes live, no structured intake completed ahead of time, no waiting-room signal to the doctor, and no clinical encounter or prescription tied to the patient's EMR. The result is revenue leakage from unpaid no-shows, compliance gaps as consent and records scatter across tools, and a patchy experience for both clinician and patient.
Dedicated telemedicine appointment type that, on confirmation, auto-generates a secure single-use meeting link via a server action rather than a static URL
Integration hooks (`_get_meeting_url()` override point) to drive Odoo Discuss WebRTC, a self-hosted Jitsi room, or an external provider URL without touching core
Pay-before-consult enforcement: a `payment.transaction` in `done` state flips `is_call_unlocked` and only then does the QWeb portal render the join button
Pre-consultation intake form (OWL/website form) persisted onto the encounter so the clinician opens the room already briefed
Virtual waiting room with a `waiting` encounter state and real-time indicator so the doctor sees the moment a patient joins
`telemedicine.encounter` model with a state machine (`draft` → `waiting` → `in_progress` → `done`) driven by guarded ORM transition methods
Clinical Telemedicine is a build-to-order Odoo application we design and develop for your practice on top of base, calendar, portal, payment, mail, and our clinical-core-his-emr foundation. We introduce a dedicated telemedicine appointment type whose confirmation triggers a secure, auto-generated meeting link — wired through integration hooks so it can drive Odoo Discuss WebRTC, a self-hosted Jitsi room, or an external meeting URL depending on your infrastructure. A new telemedicine.encounter model (extending our clinical encounter) carries the whole visit: it is created in a draft state, moves to waiting when the patient joins, in_progress when the clinician opens the room, and done when the note is signed — each transition driven by ORM methods and surfaced through @api.depends computed fields on the doctor's kanban.
Technically, the flow is enforced rather than assumed. The portal payment step uses Odoo's payment provider stack; a payment.transaction reaching done is what flips a boolean like is_call_unlocked and renders the join button in the QWeb portal template — no payment, no link. Before the call, the patient completes an intake form built as an OWL/website form persisting to the encounter, so the clinician opens the room already briefed. During the session the doctor writes the encounter note and creates an e-prescription (prescription.line records with drug, dose, duration), and on sign-off an ir.actions.report QWeb PDF of the prescription and visit summary is emailed via mail.template. Recording-consent capture is a required checkbox logged with a timestamp before the room can start, and a follow-up appointment can be scheduled straight from the encounter. Access is governed by ir.model.access.csv plus record rules so a patient sees only their own encounters through the portal, and every state change is auditable in the mail.thread chatter. Automated actions handle reminders and stale-draft cleanup, and the whole surface is reachable over XML-RPC/JSON-RPC if you integrate an external booking site or mobile app.
Because this is build-to-order, nothing ships until we agree scope. After a short scoping call we produce a fixed-scope statement, build your version against Odoo 17.0, 18.0, or 19.0 (Community or Enterprise — we confirm which fields, like the Enterprise appointment engine, are available on your edition), and deliver it on a staging environment for UAT before go-live. Typical delivery is 2–4 weeks from confirmed scope. Pricing starts from $399 (indicative, single-company base scope); additional integrations such as a specific video provider, e-prescription regulatory formatting, multi-company or multi-branch setup, and depth of EMR data migration increase the quoted scope.
Runs hybrid in-person and remote consultations and needs paid video visits that book cleanly, collect payment up front, and file the encounter and prescription back into each patient's EMR without double entry.
A dermatologist, psychiatrist, or physician offering private paid video visits who wants a professional booking-to-prescription flow — intake before the call, payment enforced, PDF prescription emailed after — without buying a separate telehealth platform.
Owns the workflow and the numbers, and needs enforced pay-before-call to stop no-show revenue leakage, recording-consent captured for compliance, and an auditable trail of every remote encounter.
Standardizing remote care across branches on Odoo and needs configurable appointment types, record-rule-scoped access per site, and XML-RPC endpoints to feed a patient-facing website or app.
Achetez la licence sur ecosire.com et téléchargez le module ZIP Clinical Telemedicine depuis le tableau de bord de votre compte.
Extrayez le ZIP dans votre dossier de modules complémentaires personnalisés Odoo sur le serveur (ou téléchargez-le via Applications > Installer à partir du fichier sur Odoo.sh / runbot).
Activez le mode développeur, ouvrez les applications, cliquez sur Mettre à jour la liste des applications, recherchez Clinical Telemedicine et appuyez sur Installer.
Ouvrez le nouveau menu, collez votre clé de licence ECOSIRE, connectez toutes les informations d'identification externes (Shopify, Amazon, Stripe, etc.) et enregistrez.
Exécutez le test de connexion intégré, synchronisez vos 10 premiers enregistrements et planifiez le cron récurrent. Contactez le support si quelque chose échoue.
| Critère | ÉCOSIRE | Construction personnalisée | Concurrent | Odoo natif |
|---|---|---|---|---|
| Pay-before-call enforcement | Payment transaction gates the join link natively in the portal | Possible but you build and test the payment-to-link gate yourself | Often books first, chases payment later or not at all | |
| Video integration | Hook for Discuss WebRTC, self-hosted Jitsi, or external URL | Whatever you code, from scratch each time | Usually locked to one bundled provider | |
| EMR / encounter linkage | Encounters merge into the patient EMR timeline via clinical core | Depends entirely on your own data model | May store visits separately from any clinical record | |
| E-prescribing | In-call prescription lines plus auto-emailed QWeb PDF summary | Build the model, report, and email pipeline yourself | Varies; often a free-text note, not structured lines | |
| Pre-consult intake + waiting room | Structured intake form and a real waiting-room state signal | Buildable with effort; forms and states are your job | Inconsistent; waiting-room signal often missing | |
| Fit to your workflow | Built to your scope on your Odoo edition and version | Fully bespoke but you carry all design decisions | Fixed feature set; you adapt to it | |
| Support and ownership | Post-go-live support window plus full git repo handover | Only what your developer or team provides | Vendor support tiers; source rarely handed over | |
| Total cost profile | Indicative from $399, fixed quote after scoping | Unbounded developer time and maintenance risk | Low list price but gaps you fill with extra tools |
No. Clinical Telemedicine is build-to-order. ECOSIRE designs, builds, installs, and supports it for your specific Odoo setup after you request a quotation and we agree scope. It is not an off-the-shelf apps.odoo.com download.
Typical delivery is 2–4 weeks from confirmed scope. Simple single-company builds land at the shorter end; multi-branch setups, a specific video provider, regulated prescription formatting, or EMR data migration push toward the longer end. We give you a firm timeline in the fixed-scope statement after the scoping call.
Pricing starts from $399 as an indicative single-company base figure. It is not a fixed price — after a short scoping call we issue a fixed-quote statement of work. Drivers that raise the quote include the video/meeting provider you want integrated, e-prescription regulatory depth, multi-company or multi-branch needs, and how much EMR data we migrate.
Your choice. We build against an integration hook, so the encounter's meeting link can drive Odoo Discuss WebRTC, a self-hosted Jitsi room, or an external meeting URL from a provider you already use. We confirm the target during scoping and wire it during the build.
Yes. We build for Odoo 17.0, 18.0, or 19.0 on Community or Enterprise. During scoping we confirm which edition-specific features (such as the Enterprise appointment engine) are available on your instance and design around them so the module installs cleanly on your edition.
The patient pays through Odoo's portal payment flow. Only when the `payment.transaction` reaches a `done` state does the encounter unlock — a boolean flips and the QWeb portal renders the join button. Until payment clears, the meeting link is simply not available, which closes the unpaid no-show gap.
You receive a post-go-live support window for defect fixes and configuration questions, plus the full git repository so your team owns the code. Longer-term maintenance, feature additions, and version upgrades (for example moving from Odoo 18 to 19) are available as a separate support engagement.

A custom-built Magento 2 / Adobe Commerce extension that adds a real-time 3D product viewer with color, material, size, and per-component selectors, plus accurate per-option pricing. Built, installed, and supported by ECOSIRE on your store.

A true finite-capacity APS engine for Dynamics 365 Business Central that builds optimized, executable schedules respecting machines, labor, tooling and material availability simultaneously. Built, installed and supported by ECOSIRE as a per-tenant AL extension.

A build-to-order AL extension that supercharges Business Central's native MRP/MPS with demand-driven forecasting, bulk SKU parameter management, and supply-vs-demand pegging — so planners replan thousands of items in minutes. Built, installed as a per-tenant extension, and supported by ECOSIRE.
A made-to-order Odoo telemedicine layer that turns appointments into secure paid video visits — with pre-consult intake, a virtual waiting room, in-call notes, e-prescriptions, and everything filed into the patient's EMR timeline. ECOSIRE scopes, builds, installs and supports it for your practice.