A build-to-order Odoo module for hospital inpatient admissions — ward and bed allocation, nursing vitals, and discharge billing on one record. ECOSIRE builds, installs, and supports it for Odoo 17, 18, or 19 after we scope it with you. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $299.00 USD; request a quote for a scoped proposal.

A build-to-order Odoo module for hospital inpatient admissions — ward and bed allocation, nursing vitals, and discharge billing on one record. ECOSIRE builds, installs, and supports it for Odoo 17, 18, or 19 after we scope it with you.
Sin pago ahora. Esto envía una solicitud de presupuesto a nuestro equipo; te responderemos por correo con precios y próximos pasos.
Hospitals running Odoo hit a wall the moment a patient is admitted rather than sold to. Odoo's native sale.order → account.move flow assumes a transaction that begins and ends, but an inpatient stay is an open-ended event: a bed is occupied for days, nurses chart vitals every few hours, doctors add orders, consumables and room charges accrue continuously, and only at discharge does all of that collapse into a single itemized bill. Core Odoo has no concept of a ward, a bed, an admission, or a length-of-stay charge, so teams end up tracking occupancy in spreadsheets and re-keying charges into invoices by hand — slow, error-prone, and impossible to audit.
Dedicated `ecosire.inpatient.admission` model linking patient (`res.partner`), attending practitioner, bed, and all stay events as one auditable record
Facility → ward → bed hierarchy with real-time occupancy state and an ORM `@api.constrains` guard that blocks double-booking an occupied bed
Admission lifecycle enforced in code: admitted → in-treatment → discharge-pending → discharged → billed, with guarded state transitions
Nursing vitals captured on a timestamped `one2many` observation model (temp, BP, pulse, SpO2, respiration) with the recording user tracked
`@api.depends` computes for length-of-stay, bed-day count, and running total charges that update automatically as the stay progresses
Bed-day, procedure, and consumable charges accrue to the admission and post through Odoo's native `account.move` at discharge
We build a dedicated Inpatient Management module that models the stay as a first-class object. A new ecosire.inpatient.admission model (with models.Model, proper fields, and @api.depends computes for length-of-stay and running charges) links the patient (res.partner), the attending practitioner, the assigned bed, and every clinical and financial event during the stay. Facilities, wards, and beds are their own models with real-time occupancy state, so the admissions desk sees which beds are free before allocating one — with an ORM constraint that prevents double-booking an occupied bed. Nursing vitals (temperature, BP, pulse, SpO2, respiration) are captured on a one2many observation model with timestamps and the recording user, rendered in list and OWL-friendly form views for fast bedside entry. Bed-day charges, procedures, and consumed items post to the admission and, at discharge, generate a draft account.move through Odoo's standard accounting engine — so the discharge bill is native, taxable, and reconcilable rather than bolted on.
Everything ships as a clean installable module: a __manifest__.py declaring dependencies (base, mail for chatter/activities, account for billing), models under models/, views and menus in XML, QWeb PDF reports for the admission summary and the discharge invoice, and ir.model.access.csv plus record rules so ward staff, billing, and administrators each see only what their role permits. State transitions (admitted → in-treatment → discharge-pending → discharged → billed) are enforced in code, and automated actions can flag long-stay patients or trigger discharge-billing checklists. Because it uses Odoo's own ORM and accounting, the data is reachable over the standard XML-RPC / JSON-RPC API for lab systems, insurance portals, or reporting tools, and it runs on Odoo Community — no Enterprise dependency — while remaining compatible with Enterprise if you run it.
Delivery is build-to-order. It starts with a short scoping call to confirm your ward and bed structure, charge model, billing rules, and target Odoo version (17.0, 18.0, or 19.0). We then build against a staging copy of your database, walk you through UAT, and deploy only once you sign off — typically 2 to 4 weeks from confirmed scope. You receive the full source, documentation, a training session, and a post-go-live support window. Pricing starts from $299 (indicative, single-company base scope); multi-hospital or multi-company rollout, insurance/TPA claim integration, deeper localization of the discharge invoice, and migration of existing admission history increase the quoted scope. You get a fixed quote after the scoping call — never a surprise.
Runs the facility's Odoo instance and needs the inpatient workflow delivered as a clean, dependency-light module they can maintain, upgrade, and read the source of — not a black box that breaks on the next version bump.
Needs a live, reliable view of bed occupancy to place patients quickly, prevent double-booking, and see who is pending discharge — without chasing status across spreadsheets and phone calls.
Wants every bed-day, procedure, and consumable to accrue automatically and collapse into one accurate, taxable discharge invoice inside Odoo accounting, so nothing is missed and every charge is traceable.
Needs fast bedside vitals entry with timestamps and accountability, plus handover notes on the patient record, so clinical observations are captured consistently and never lost between shifts.
Compre la licencia en ecosire.com y descargue el módulo ZIP Inpatient Management desde el panel de su cuenta.
Extraiga el ZIP en su carpeta de complementos personalizados de Odoo en el servidor (o cárguelo a través de Aplicaciones > Instalar desde archivo en Odoo.sh/runbot).
Active el modo de desarrollador, abra Aplicaciones, haga clic en Actualizar lista de aplicaciones, busque Inpatient Management y presione Instalar.
Abra el nuevo menú, pegue su clave de licencia de ECOSIRE, conecte cualquier credencial externa (Shopify, Amazon, Stripe, etc.) y guarde.
Ejecute la prueba de conexión integrada, sincronice sus primeros 10 registros y programe el cron recurrente. Póngase en contacto con el soporte si algo falla.
| Criterio | ECOSIRE | Construcción personalizada | Competidor | Odoo Nativo |
|---|---|---|---|---|
| Fit to your wards, beds & charge model | Built to your exact facility structure and billing rules | Fully bespoke but you specify and manage every detail | Fixed feature set; you adapt your process to it | |
| Bed occupancy & double-booking guard | Real-time occupancy with ORM constraint blocking double-booking | Possible, but you design and test the logic | Often present but rigid to its own model | |
| Discharge billing into Odoo accounting | Native `account.move` from accrued stay charges | Achievable with in-house accounting integration effort | Varies; may use a separate billing scheme | |
| Source code & ownership | Full source + git repo handover | You own it, if built and documented well in-house | Usually closed or license-restricted | |
| Delivery time | Typically 2–4 weeks from confirmed scope | Months, subject to your team's capacity | Instant install but generic | |
| Odoo version support | Built for 17.0, 18.0, or 19.0; Community-compatible | Whatever you build and maintain | Depends on vendor's supported versions | |
| Ongoing support & upgrades | Included support window + optional upgrade retainer | Your team carries all maintenance | Vendor-dependent, often paywalled | |
| Cost model | Indicative from $299; fixed quote after scoping | High upfront developer time | Low sticker price, hidden fit cost |
No. This is a build-to-order module — ECOSIRE builds, installs, and supports it for you after a scoping call. It is not an instant download from the Odoo app store. We tailor the bed structure, charge model, and billing rules to your facility, then deliver the finished module for your Odoo version.
Typically 2 to 4 weeks from confirmed scope. The clock starts once we've agreed the ward/bed structure, charge model, billing rules, and target Odoo version on the scoping call. Larger multi-hospital rollouts or heavy integration work extend the timeline, which we state clearly in the quote.
Pricing starts from $299 as an indicative single-company base-scope figure. After a short scoping call we send a fixed written quote — no surprises. Drivers that raise the scope include multi-hospital/multi-company setups, insurance or TPA claim integration, deeper localization of the discharge invoice, and migrating existing admission history.
We build for Odoo 17.0, 18.0, or 19.0 — you choose. The module depends only on `base`, `mail`, and `account`, so it runs on Odoo Community and is fully compatible with Enterprise if you run it. It does not require any paid Enterprise app to function.
Every build includes a post-go-live support window for defect fixes and questions. You also receive the full source and git repository, so your team can maintain it. Beyond the included window, we offer ongoing support and version-upgrade retainers if you'd like us to keep it current across future Odoo releases.
Yes. Because the module uses Odoo's native ORM and accounting, all admission, vitals, and billing data is reachable over the standard XML-RPC / JSON-RPC API. We can scope integrations with lab systems, pharmacy/inventory, or insurance portals as part of the quote.
Yes. Charges post through Odoo's standard `account.move`, so the discharge invoice is a native, taxable, reconcilable accounting document — using your existing chart of accounts, taxes, and journals. It is not a separate parallel billing system bolted on the side.

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 build-to-order Odoo module for hospital inpatient admissions — ward and bed allocation, nursing vitals, and discharge billing on one record. ECOSIRE builds, installs, and supports it for Odoo 17, 18, or 19 after we scope it with you.