Learning contextDemo Retail Group LLC12 stores · 2 distribution centres · AED/SAR/USD · omnichannel replenishmentChange scenario details →
Skip to content

Demo HorizonCare Hospitals: a multi-branch hospital day ​

Demo HorizonCare Hospitals operates three hospitals and six outpatient clinics in India, the UAE, and Kenya. It treats insured and self-pay patients, imports specialist medicines, runs an in-house pharmacy and laboratory, pays consultants by contract, and reports each legal entity in its local currency while the group reports in USD. This lab shows how OSERP joins the patient journey to a controlled accounting event. A clinical system may remain the source of diagnosis and observations; OSERP is the source of commercial, inventory, receivable, payable, workforce, and financial truth.

1. Design the organisation before the first patient ​

Create one tenant for HorizonCare Group, then legal companies for India, UAE, and Kenya. Each company has branches, departments, cost centres, warehouses, tax registrations, fiscal calendars, and a functional currency. Do not use a branch name as a company: a company owns books and tax obligations; a branch is an operating location inside those books.

Setup fieldDemo valueWhy it matters
CompanyHorizonCare India Pvt LtdLegal ledger, tax return, statutory books
BranchBengaluru Central HospitalOperational and revenue reporting
DepartmentCardiologyService, staffing, and cost analysis
Cost centreCC-CARDIO-01Allocates shared theatre and nursing cost
CurrencyINRTransaction and local reporting precision
Reporting currencyUSDGroup consolidation and board view
WarehouseBLR-PHARM-MAINMedicine custody and expiry tracking
Tax profileGST healthcare rulesDetermines taxable versus exempt lines
Period statusOpenAllows approved posting only

The company master also stores registration number, address, timezone, first fiscal period, numbering series, default receivable and payable accounts, rounding rule, and approval policy. A user must be scoped to a company and branch before a patient, supplier, invoice, or journal can be created. A disabled branch remains in history but cannot accept new transactions.

2. Register a patient and payer correctly ​

The patient profile is a controlled party record, not a free-text name on an invoice. Required fields include patient number, legal name, preferred name, date of birth, sex, nationality, contact, address, emergency contact, consent status, payer type, and privacy classification. The identifier is unique within the tenant, while the same person can have encounters at multiple branches.

Payer setup determines how a charge becomes cash. A self-pay payer requires price list, deposit policy, credit status, and receipt method. An insurer requires policy number, member number, plan, network, pre-authorisation rule, claim submission channel, copayment percentage, deductible, currency, and validity dates. Never overwrite an expired policy; create a version so a resubmitted claim can prove which terms applied on the service date.

Example: Aisha Khan visits Bengaluru Central on 2026-09-17. Her insurer covers 80% of an MRI after a INR 5,000 deductible. The encounter stores the policy snapshot, referral, authorisation number, attending consultant, department, and service location. If the policy is edited later, the encounter still retains the original coverage terms.

3. Schedule an encounter and reserve capacity ​

An appointment header stores patient, branch, department, clinician, appointment type, date/time, status, referral, payer, and source. Detail rows can include consultation, procedure, room, equipment, and estimated duration. The scheduler prevents a clinician or MRI room from being double-booked and records cancellation reason, no-show flag, and reschedule link.

The appointment status path is Requested → Confirmed → Checked in → In service → Completed, with controlled exits for Cancelled, No show, and Rejected. Only a completed encounter can release billable service lines. A receptionist can check in a patient but cannot approve a discount or alter a posted charge. The audit event records actor, device, timestamp, previous status, new status, and reason.

4. Capture services without losing clinical-to-finance traceability ​

Charge capture translates a performed service into an item, price, tax, department, and payer responsibility. The charge header stores encounter, patient, company, branch, clinician, payer, currency, price list, claim batch, and status. Each detail stores service code, description, performing department, quantity, unit price, discount, tax code, payer share, patient share, cost centre, revenue account, and source event.

Charge fieldDemo MRI valueOperational meaning
Service codeRAD-MRI-BRAINLinks catalogue, price, and revenue mapping
Quantity1Billable units, not appointment count
Unit priceINR 18,000.00Price-list amount at service date
DeductibleINR 5,000.00Patient responsibility before coverage
Insurer shareINR 10,400.00Claimable amount after deductible
Patient shareINR 7,600.00Deductible plus uncovered amount
Tax codeHEALTH-EXEMPTPrevents accidental GST/VAT posting
Source eventENC-2026-0917-0042Evidence for audit and claim

The charge engine checks that payer share plus patient share equals the net charge, applies contract-specific tariffs, and rejects negative or over-100% coverage. A price override requires reason, permission, and approver. A cancelled service reverses the charge through a credit event; staff must not delete the original line.

5. Invoice self-pay and insurance separately ​

Self-pay invoices are issued at checkout with deposit allocation, receipt, payment method, bank reference, and balance. Insurance invoices are grouped into a claim batch only after coding review. The claim header stores insurer, submission period, currency, encounter count, total amount, author, reviewer, submission channel, acknowledgement number, and status. Detail rows retain patient, policy, diagnosis or service code, authorisation, gross, deductible, covered amount, rejection reason, and resubmission link.

For Aisha, OSERP creates a patient invoice for INR 7,600 and an insurer receivable for INR 10,400. The two receivables share the encounter but have different payer, due date, tax, collection workflow, and dispute status. A rejected insurer line is moved to Rejected, not silently written off. The billing team corrects the cause, resubmits with a new version, and keeps the original acknowledgement.

6. Run pharmacy and laboratory as inventory-controlled services ​

Medicine and consumables use batch-managed items with expiry, manufacturer, UoM, storage condition, cost, tax, and controlled-substance flag. A prescription or procedure consumption request reserves stock; a pharmacist issues the approved quantity using FEFO (first expiry, first out). The issue document stores patient, encounter, prescriber, warehouse, batch, expiry, quantity, unit cost, and waste reason.

The laboratory catalogue separates the test service from reagents consumed. A CBC charge can therefore post revenue while reagent lots post cost of service. A recalled batch can be quarantined by lot and traced to every patient issue, supplier invoice, and branch transfer. Stock adjustments require count sheet, reason code, witness, and approval; expiry write-offs post to a configured medical-waste expense account.

7. Procure medicines, implants, and outsourced services ​

The procure-to-pay flow begins with a department request containing item, clinical justification, required date, warehouse, budget, and preferred supplier. Purchase orders hold supplier, contract, currency, price, tax, delivery schedule, batch requirements, and approval. Goods receipts capture lot, expiry, quantity accepted, quantity rejected, temperature check, and inspection result. Supplier invoices are matched to purchase order and receipt before posting.

An imported implant may be priced in EUR, shipped to Dubai, and received in INR books. OSERP retains supplier currency, transaction rate, landed-cost components, customs reference, freight, insurance, and local valuation. The landed cost is allocated by quantity or value according to the configured method; it is never hidden in a manual journal. A three-way mismatch routes to exception approval instead of forcing payment.

8. Pay consultants and hospital employees ​

Consultant contracts store speciality, branch, service rate, revenue share, minimum guarantee, effective dates, currency, tax withholding, bank, and approval. A monthly statement is generated from completed, non-refunded encounters. The statement detail links each encounter, service code, gross charge, payer status, consultant percentage, withholding, and net payable. A consultant cannot approve their own rate change or statement.

Employee payroll uses the same company and cost-centre dimensions but a separate payroll policy. Nursing overtime, on-call allowance, benefits, deductions, and employer contributions are posted by department. Payroll journals summarize approved payroll runs while preserving employee-level evidence behind restricted permissions.

9. Manage deposits, refunds, and patient credit ​

Patient deposits are liabilities until consumed by an approved charge. The receipt stores patient, payer, branch, currency, bank or gateway, reference, amount, and allocation status. Allocation links a receipt to invoice lines; an unapplied balance remains visible on the patient statement. Refunds require reason, original receipt, bank validation, approval, and segregation from the user who collected cash.

Example: Aisha paid INR 10,000 before the MRI. INR 7,600 is allocated to her patient invoice and INR 2,400 remains as deposit. If the insurer later pays its INR 10,400, OSERP does not net the patient deposit against the insurer: each party retains a clean statement and the deposit can be refunded or used for a later service.

10. Close the hospital month ​

The controller closes in layers: cash and gateways, patient receivables, insurer claims, deposits, pharmacy stock, expired and quarantined lots, supplier accruals, consultant statements, payroll, fixed assets, intercompany transfers, tax, FX revaluation, and GL. The close checklist requires owner, evidence link, expected balance, actual balance, variance, reviewer, and sign-off date.

Multi-currency balances retain transaction rate, source, timestamp, and revaluation rate. A UAE insurer receivable in AED is revalued at period end; the unrealised FX entry is reversed or carried according to policy. Intercompany pharmacy transfers between India and UAE use mirrored documents and matching due-to/due-from accounts. Period lock prevents backdated edits while approved correction journals remain possible with reason and audit trail.

KPIBefore OSERP disciplineAfter OSERP disciplineImprovement
Claim submission cycle12 days3 days75% faster
Insurance rejection rate14.8%5.1%65.5% lower
Pharmacy stock variance3.9%0.8%79.5% lower
Patient checkout time31 min12 min61% faster
Month-end close18 days6 days67% faster
Expired-stock write-offINR 4.2mINR 1.1m74% lower

Practice challenge ​

Create the three legal entities, configure a cardiology department and pharmacy warehouse, register Aisha with an insurer policy, schedule an MRI, check her in, capture the service, split payer responsibility, issue medicine by batch, submit the claim, collect and allocate a deposit, receive a supplier invoice in EUR, pay a consultant, revalue the AED receivable, and close the month. For every field, explain its data type, length or precision, source, permission, validation, accounting impact, tax result, API identifier, exception path, and audit event.

Related: Setup field guide, Inventory field guide, AR Invoice field guide, AP Invoice field guide, GL mapping guide, Multi-currency lab, and API cookbook.

OSERP™ Atlas · Understand every field. Master every workflow.