HOSPITAL OPERATIONS · BUILT ON ODOO 20

The Complete Software Suite for Hospital Management

Run patients, consultations, wards, lab, pharmacy and billing from one hospital record. Built on standard Odoo 20 apps (Employees, Invoicing and Inventory), with a screen for every hospital role from the front desk to the pharmacy, and an AI assistant that answers questions about the hospital's data. Open the demo and click through the real thing.

Checking the demo…Contact us
  • Patients & Appointments

    Patient register, slot booking from each doctor's schedule, referrals and video consultations.

  • Clinical Care

    OPD consultations with vitals and prescriptions, IPD admissions through to discharge.

  • Wards, Lab & Pharmacy

    A live bed map, lab requests with flagged results, dispensing from inventory.

  • Billing & Insurance

    Invoices from visits, tests and prescriptions, with the insurer's share split off.

THE BIG PICTURE

One hospital record, from front desk to discharge

A patient's day crosses the front desk, the consulting room, the ward, the lab, the pharmacy and the billing counter, and each of them needs what the one before it wrote down. When those live in separate tools, staff re-type the same patient at every step and nobody can say how many beds are free or which invoices are still unpaid without asking around. Here every step reads and writes the same Odoo database: the appointment becomes the consultation, the consultation carries its prescription and lab requests, the admission holds its bed, and each of them can be billed in one click.

Hospital Overview dashboard with tiles for total patients, today's and this month's appointments, active IPD admissions, available beds, pending lab tests and online consultations

PATIENTS & APPOINTMENTS

Book the right doctor
at a free slot

  • Every patient, one record.

    Each patient gets an ID, with blood group, known allergies, chronic conditions and an emergency contact on file, and their appointments, OPD visits, admissions and referrals are counted on the same record.

  • Slots come from the doctor's own schedule.

    The booking screen offers the next seven days, built from each doctor's Working Schedule in Odoo. Days off show as off, past slots are ruled out, and the doctor's consultation fee is shown before you book.

  • No double booking for a patient.

    A patient can't hold two active appointments at the same date and time, and each booking is typed as an OPD consultation, follow-up, referral, emergency or procedure, with a priority.

Book Appointment screen with a patient and a gastroenterologist selected, the doctor's free slots for the next seven days, and a summary with the consultation fee

OPD CONSULTATION

One screen for the whole consultation

  • Vitals, assessment and plan in one place.

    Temperature, blood pressure, pulse, respiration, SpO₂, weight and height (BMI is worked out for you), then complaint, symptoms, diagnosis, treatment plan and a follow-up date, with the patient's chronic conditions and recent visits alongside.

  • The prescription builds as you chart.

    Add medicines with dose, frequency, duration and route and watch the prescription preview fill in. The visit and its prescription are saved together, and completing the visit confirms the prescription.

  • Refer without losing the thread.

    Refer the patient to another specialization or doctor from the same screen. The referral moves from pending to booked to completed as its appointment does.

  • Doctors work on their own records.

    A doctor records consultations and admissions only under their own name and sees only their own appointments, consultations, admissions, prescriptions and lab requests.

Doctor consultation window with the patient's chronic conditions and recent visits, vitals filled in, the chief complaint, and a live prescription preview

IPD, WARDS & BEDS

Every bed, live on one map

  • See open beds at a glance.

    Each ward shows its occupancy and every bed by status: available, occupied, under maintenance or reserved. Wards can be general, ICU, emergency, maternity, pediatric, surgical, psychiatric or oncology.

  • A bed can't be given out twice.

    Admitting a patient claims the chosen bed, and a bed that is already occupied can't be taken by a second admission.

  • Discharge with a summary, not a gap.

    A patient can't be discharged without a discharge summary. Discharging frees the bed, records the time and closes the length of stay.

  • The stay carries its care.

    Diagnosis, treatment notes, diet type, prescriptions and lab requests all hang off the admission.

Wards & Beds map with a card per ward showing occupancy and bed chips coloured by status, across emergency, general, ICU, maternity, oncology, pediatric and surgical wards

LABORATORY & PHARMACY

Results flagged, medicines dispensed from stock

  • Lab requests with a clear trail.

    Each request moves from requested to sample collected (time-stamped) to processing to results ready. Only lab technicians and managers handle samples and results.

  • Out-of-range results stand out.

    Numeric results are checked against the test's normal range and flagged below normal, above normal, or critical when they fall more than 20% outside it. A catalogue of 40 common tests ships with the module, each with its category, unit and reference range, ready for your own prices.

  • Dispensing moves real stock.

    Doctors confirm prescriptions and pharmacists dispense them, and dispensing creates and validates a delivery order in Odoo Inventory, so medicine stock goes down as it leaves the pharmacy.

  • Printable when it counts.

    Prescriptions and lab reports print as PDFs.

Lab request in Results Ready state with a fasting blood glucose result flagged Above Normal and an HbA1c result flagged Critical against their reference ranges

BILLING & INSURANCE

Bill every service,
split the insurer's share

  • Invoices from the work itself.

    Create the invoice from the appointment or OPD visit (the doctor's consultation fee), the lab request (each test's price) or the prescription (each medicine's price). An IPD admission gets a draft invoice linked to the stay, for the billing officer to complete.

  • Insurance split on posting.

    Set the insurer and coverage on the invoice. When it is posted, every line is split: the patient keeps their share and a second invoice for the insurer's share is created and posted with it. The pair is cancelled together.

  • Know what is still unpaid.

    OPD, IPD, lab and pharmacy invoices each have their own list, with Draft, Unpaid, Paid and Cancelled tabs, the count in each and the amount outstanding. Payments use Odoo's own invoice payments.

IPD Invoices list with status tabs and the outstanding amount, showing each stay billed as a patient-share invoice and a separate insurer-share invoice

ONLINE CONSULTATIONS

Video consultations, no app for the patient

  • Built on Odoo's own video calls.

    Scheduling a consultation creates a private Odoo Discuss room. The patient gets an email invitation and joins from a browser as a guest, with no account or app to install.

  • No clashing calls.

    A doctor can't have two consultations that overlap, and neither can a patient. The doctor's consultation fee is filled in for you.

  • The call is part of the record.

    Call start and end times are recorded with the actual duration, alongside notes, diagnosis, advice, a follow-up date and a prescription written from the consultation.

Scheduled online consultation with Start Video Call and Resend Invitation buttons, the patient and doctor, the schedule and the consultation fee

MEDICO AI

Ask the hospital's data
in plain words

  • Questions in, records out.

    Type a question such as "show today's appointments" and get the matching records back as a table or a chart, with the filters it applied shown above them and a link to open the same list in Odoo.

  • It knows the hospital's screens.

    "OPD invoices this month" means the invoices the OPD Invoices menu shows, and "nurses" means the staff on the Nurses list. It also understands patient ages ("patients over 60") and ward names or codes in a question.

  • Never more than you can see.

    Odoo reads the records as the signed-in user, so access rights and record rules apply: nobody sees more through the assistant than they could on screen.

  • Every answer shows its cost.

    Each answer shows the tokens and the OpenRouter cost it used, and "How I worked it out" lists the steps it took, so you can check how it got there.

  • On every screen.

    A floating chat button opens the assistant from anywhere in the backend. Answers export to PDF or Excel. It can also draft new records (an administrator can switch that off) and, once voice is switched on, answer spoken questions.

Medico AI chat answering "Show today's appointments" with a table of ten appointments, the filters it used, and the tokens and cost of the answer

EVERY ROLE, ONE SYSTEM

A screen for every role

Staff are Odoo employees with a hospital role: doctor, nurse, receptionist, lab technician, pharmacist, billing officer or hospital manager. The role grants the matching access, and My Dashboard puts together the figures and queues for the roles each person holds. The main flows, as the system runs them:

Outpatient visit

  1. 1Book the appointment
  2. 2Confirm it
  3. 3Start the OPD consultation
  4. 4Prescribe and complete
  5. 5Invoice the consultation fee

Inpatient stay

  1. 1Create the admission with ward and bed
  2. 2Admit: the bed is taken
  3. 3Prescriptions and lab requests
  4. 4Write the discharge summary
  5. 5Discharge: the bed is freed

Lab test

  1. 1Request the tests
  2. 2Collect the sample
  3. 3Process
  4. 4Results ready, out-of-range values flagged
  5. 5Invoice the tests
My Dashboard for a user holding several roles, with hospital-wide tiles for patients, appointments, bed occupancy and billing, and role tiles for admissions, discharges and lab work

REPORTS

Drill down, then export

Four reports, Billing / Revenue, Patient Visit / OPD, IPD Admission / Discharge and Lab Test, open a level at a time down to the records themselves, with filters for period, doctor, status, insurer and more. Each prints as a PDF or exports to Excel, and each role sees only the reports it is allowed to.

Patient Visit / OPD report expanded by doctor and patient down to individual consultations, with Export XLSX and Print PDF buttons

The screen, the PDF and the spreadsheet are built from the same query, so the three always agree.

Why this platform

Built to be owned, not rented

  • Open source, no lock-in

    The hospital modules are LGPL-3. Own the code and change the workflows, prices or screens yourself, without a vendor change request.

  • Standard Odoo underneath

    Staff are Odoo employees, medicines are Inventory products and every bill is an Odoo invoice, so accounting and stock work the way Odoo already does.

  • Access by role

    Seven hospital roles, each with its own menus and rights, so the front desk, clinicians, lab, pharmacy and billing each see their own work.

  • Clinical records kept

    A started consultation, an admitted stay, a confirmed prescription or a finished lab result can't be deleted, only cancelled, so the history stays on the record.

  • Ready to configure

    Ships with 48 specializations, 40 lab tests, 14 insurers and the hospital departments, so a new hospital starts from a filled-in setup.

  • A calmer backend

    The Hospital Theme lays Odoo out with a permanent left sidebar, adds a dark mode switch to the top bar, and takes an accent colour from Settings.

FAQ

Hospital Management, answered.

  • Patient registration, appointments, OPD consultations with vitals and prescriptions, IPD admissions and discharges, wards and beds, laboratory requests and results, pharmacy dispensing, billing with insurance, online video consultations, referrals between doctors, staff roles, dashboards and reports.

  • No. There is no HL7, FHIR or DICOM integration and no link to imaging (PACS) systems. Clinical data such as vitals, diagnoses, prescriptions, lab results and discharge summaries is recorded inside Odoo, on the patient's visits and admissions.

  • Each insurer has a default coverage percentage. When an invoice carrying an insurer is posted, every line is split between the patient and a second invoice addressed to the insurer, and both are posted together. Claims are not submitted to insurers electronically: the insurer invoice is sent and paid like any other Odoo invoice.

  • Not in this suite. Appointments are booked by staff in the Book Appointment screen. Patients join online video consultations from an emailed link without an account, but there is no public self-booking page.

  • Doctors can look up patients, but they see and work only on their own appointments, consultations, admissions, prescriptions and lab requests, and they can't record a consultation or admission under another doctor's name. Hospital managers see everything.

  • Medicines are Odoo Inventory products. When a pharmacist dispenses a confirmed prescription, a delivery order is created and validated for those medicines, so stock goes down at the moment they leave the pharmacy.

  • Beds change status through the admissions themselves: admitting a patient marks the bed occupied, and discharging or cancelling the stay frees it. Beds can also be set to reserved or under maintenance, and each ward shows its occupancy from those statuses.

  • Nothing outside Odoo. Calls run on Odoo Discuss's built-in video, and the patient's invitation goes out by email, so the instance needs outgoing mail set up for the invitation to arrive.

  • Medico AI is a separate, optional module. An administrator has to set an OpenRouter API key in its settings before it answers, and by default it also uses Odoo's own AI service, which can be switched off there. It reads data as the signed-in user, so it can only answer from what that user is allowed to see. Like any AI, it can get an answer wrong, so check important figures against the records it links to.

Hospital Management

Run patients, consultations, wards, lab, pharmacy and billing from one hospital record.

Checking the demo…Browse all industry demos