Open the app

Inpatient Admission Starter

From the doctor's admit order to the patient in a bed: admission queue, one-page registration with coverage check, deposit and on-screen consents, a live bed board, ward hand-over, wristbands and reports.

Spring Boot 4 · Java 17+ · Microsoft SQL Server

User Guide · Version 1.0.0

Contents

  1. What the system does
  2. Install and start
  3. Demo accounts
  4. Find your way around
  5. Order an admission (doctor)
  6. The admission queue
  7. Register an admission
  8. Identity and the ID card reader
  9. Coverage, eligibility and pre-authorization
  10. Deposit
  11. Consents
  12. Choose a bed
  13. Admit and print the wristband
  14. The bed board
  15. Wards: receive, move, discharge
  16. Housekeeping
  17. Reports and exceptions
  18. Set-up
  19. Users, roles and security
  20. Connecting other systems
  21. Frequently asked questions

1. What the system does

Admitting a patient involves many people: the doctor decides, the admission desk checks who the patient is and who pays, takes a deposit and the consents, finds a bed, and the ward gets ready. Inpatient Admission Starter puts all of this on one screen per person, so nobody needs to phone around:

  1. Admit order — the doctor orders the admission from the outpatient or emergency visit.
  2. Registration — the clerk checks identity, coverage and eligibility, takes the deposit and consents.
  3. Bed — the clerk holds a free bed that fits the patient, seen on the live bed board.
  4. Admitted — an admission number (AN) is given, the wristband is printed and the ward sees the patient coming.
  5. In the ward — the nurse confirms the arrival; later transfers and the discharge free the bed for housekeeping.

Every step is time-stamped, so the reports show how long patients wait at each stage.

Dashboard
The dashboard: free beds, occupancy, the queue and patients on the way to a ward.

2. Install and start

  1. Install Java 17 or newer and SQL Server 2019 or newer (the free Express edition is fine).
  2. Open database/01-create-database.sql, change the password in it and run it as an administrator:
    sqlcmd -S localhost\SQLEXPRESS -E -C -i database\01-create-database.sql
  3. Start the application:
    set DB_PASSWORD=the-password-you-chose
    mvnw.cmd spring-boot:run
    run-local.cmd / run-local.sh do the same. If your SQL Server is not localhost\SQLEXPRESS, also set DB_URL (examples in env.example).
  4. Open http://localhost:8080. On the first start the tables are created and a fictional demo hospital is loaded.
To import the project in Eclipse or IntelliJ: File > Import > Existing Maven Project, then run IpdAdmissionApplication with the environment variable DB_PASSWORD.

For a real hospital, read docs/DEPLOY.md: switch the demo data off, set your own keys, use HTTPS and back up the database.

3. Demo accounts

All demo users have the password Demo@2026. On the sign-in page you can click a name to sign in.

UserRoleTry
clerkAdmission clerkRegister the first patient in the queue and admit them
dr.haleDoctor (internal medicine)Open a patient and order an admission
bedmanagerBed managerBed board, block a bed for maintenance, move a patient
nurseWard nurseWards: receive the patients on the way, discharge
cashierCashierTake a deposit and print the receipt
housekeepingHousekeepingMark beds clean
managerNursing / admissions managerReports, exceptions, waive a deposit
auditorAuditorAudit log (read only)
adminSystem adminEverything, including set-up and users

The demo hospital "Maple Hollow General Hospital" has 8 wards with 88 beds, 6 coverage plans with invented payers, about 420 patients with their outpatient visits, three weeks of admissions, a few orders waiting in the queue, two registrations in progress and three patients on the way to a ward. All names and numbers are invented.

Sign-in
Sign-in page with the demo accounts.

5. Order an admission (doctor)

  1. Open Patients, find the patient and open the chart. The chart shows the latest visit with vital signs, diagnoses, medicines and lab results (high values in red, low in blue).
  2. Press Order admission (or Admit from this visit next to a visit).
  3. Fill in the diagnosis (type a code or a word: the ICD-10 list helps), the urgency, the ward type, the room class if it matters, the expected stay and the flags Needs isolation and Fall risk.
  4. Leave the cost estimate empty to let the system estimate it from the room rate and the daily care cost in Settings.
  5. Press Send to the admission desk. The order appears in the queue at once.
Order admission
The admit order form with the visit's findings next to it.
Patient chart
The patient chart (opening it is written to the audit log).

6. The admission queue

Admission queue lists the open orders: emergencies first, then the longest waiting. The waiting time turns amber after 45 minutes and red after 2 hours. Tabs show orders waiting, being registered, admitted and cancelled.

Press Register to start. If someone else has started, the button says Continue and shows who. An order nobody needs any more is cancelled from its page (with a reason).

Admission queue
The admission queue.

7. Register an admission

Registration is one page with five sections. The checklist on the left shows what is done (green tick) and what is still missing; work in any order, each section saves on its own, and you can leave and come back from the queue. Admit patient is enabled when every required step is done.

Registration
Registration: checklist on the left, the order and the steps on the right.

8. Identity and the ID card reader

With a card reader at your desk: put the patient's ID card in the reader and press Read card. The page shows the name on the card, the last 4 digits and whether it matches the patient's record. If the record has no ID number yet, it is added from the card. If the card belongs to someone else, it is refused. Press Use this card.

The Desk box must match the desk code your reader sends (remembered on this computer). Without a reader, or for a patient who cannot show a card, use I checked a photo document or Known patient.

On the demo there is no card reader: Simulate card pretends the patient's own card was read.

9. Coverage, eligibility and pre-authorization

  1. Choose who pays: one of the patient's coverages, Self-pay, or another plan with a member number.
  2. Press Save and check eligibility. The payer answers Eligible, Not eligible (choose another plan or self-pay) or Self-pay. Every check is kept with the payer's reference.
  3. When the payer's system cannot be reached, call them and use Confirmed by phone or portal with their reference.
  4. Plans that need it show a Pre-authorization part: Request from payer, or Record payer's answer when it comes by phone. Elective and urgent admissions need it approved (Settings); emergencies may go ahead.
The demo uses a test payer: member numbers starting with X are not eligible; pre-authorizations above 20,000 stay pending and member numbers starting with D are denied.

10. Deposit

The deposit is worked out for you and shown with its parts:

Enter the amount, how it was paid (cash, card with its last 4 digits, transfer or QR with the reference) and press Take payment. A receipt with a gap-free number is issued; print it from the green message or the payments table. Pressing twice does not take the money twice. A manager can Waive deposit with a reason.

Emergency admissions may be completed before the deposit is paid (Settings); they then appear in Exceptions until paid. Top-ups are taken from the admission page later.

Deposit
Coverage and deposit.

11. Consents

Press Sign next to a form. Read the text with the patient; choose who signs (the patient or a relative) and let them sign in the box with a finger, a pen or the mouse. Save signature stores the exact text, the signature, the time and you as the witness. Signed consents cannot be changed; View prints one.

Consent
Signing a consent on the screen.

12. Choose a bed

The Bed section lists free beds that fit the patient, best match first: the ward type and room class the doctor asked for and the room class the plan pays for. Beds in a ward for the other sex, children's beds for adults, and (when isolation was ordered) rooms without isolation are not offered. Press a bed to hold it.

Or press Choose on the bed board to pick from the map: free beds show Choose.

A held bed is kept for 2 hours (Settings). If the admission is not completed in time, the bed is released and the registration appears in Exceptions. If two clerks press the same bed at the same moment, only one gets it; the other is asked to choose another bed.

Bed choice
Free beds that fit the patient.

13. Admit and print the wristband

When the checklist is complete, press Admit patient and confirm. The system gives the AN, marks the bed occupied, makes the patient an inpatient and tells the ward. Press Print wristband: it has the name, HN, AN, birth date, ward and bed, a barcode and a QR code, and marks for allergies, isolation and fall risk. Print the Face sheet for the chart.

Wristband
The wristband (25 x 2.6 cm).
Face sheet
The admission face sheet.

14. The bed board

Bed board shows every bed by ward and room:

ColourStatusMeaning
GreenAvailableClean and free
AmberReservedHeld for a registration (minutes left shown)
RedOccupiedPatient, age, day of stay, flags
BlueCleaningFreed by a discharge or transfer
GreyMaintenance / blockedOut of use, with the reason

Click a colour above the board to show only those beds; filter by ward or room class. Click a patient to open the admission. A bed manager clicks a free, cleaning or out-of-use bed to change its status. The board refreshes every minute.

Bed board
The bed board.
Bed board dark
The same board in dark mode.

15. Wards: receive, move, discharge

Wards lists every ward with its occupancy and the patients on the way. Open your ward: Patients on the way shows who is coming, to which bed, with diagnosis, doctor and allergies; the list updates by itself when a new patient is admitted. When the patient arrives, press Arrived. A patient not in the ward an hour after admission (Settings) appears in Exceptions.

From the admission page: Move bed (choose a free bed and give the reason; the old bed goes to cleaning) and Discharge (home, transfer to another hospital, against medical advice or deceased; the bed goes to cleaning).

Ward
A ward: patients on the way and the census.
Admission
The admission page with its timeline.

16. Housekeeping

Housekeeping staff see only the beds to clean, longest waiting first, and press Clean when a bed is ready. The page works well on a phone and refreshes by itself. Isolation rooms are marked so the right cleaning procedure is used.

Housekeeping
Beds to clean.

17. Reports and exceptions

Reports (choose the dates): admit orders, admissions and discharges per day, turnaround from order to admitted and from admitted to the ward (median and the time within which 90% were done), registration time, average length of stay, payer mix, deposits by payment method, occupancy by ward now. Admissions CSV downloads the admissions for Excel.

Exceptions lists what needs a person; write what was done and press Resolved. Events that could not be sent to another system can be retried here.

Reports
Reports.
Exceptions
Exceptions.

18. Set-up

Ward set-up
A ward with its rooms.
Coverage plans
Coverage plans.

19. Users, roles and security

Users & roles creates accounts. The role decides what a person may see and do; the table on the user page shows every permission per role. Pages hide what you may not use and the server checks the permission again for every action.

RoleMay
DoctorSee patients, order and cancel admissions, see beds, discharge
Admission clerkRegister patients and admissions, take deposits, hold beds
Bed managerBeds: hold, block, move patients; reports
Ward nurseReceive patients, move, discharge
CashierTake deposits
HousekeepingSee beds, mark clean (no patient names)
Nursing / admissions managerAll admission work, waive deposits, reports
System adminEverything, set-up and users
AuditorAudit log and reports
Roles
A user and the permission matrix.
Audit log
The audit log.

20. Connecting other systems

In API clients create a key for your hospital information system and for each ID card reader agent. The HIS can send admit orders, read bed availability and the status of an admission; card readers post what they read. Set a webhook URL in Settings to receive admission.completed, patient.transferred and patient.discharged events. Details and examples are in docs/API.md.

The demo data creates two API clients with known keys. Turn them off or replace their keys before going live.

21. Frequently asked questions

Admit patient stays grey.

The list under the button and the checklist show what is missing. Common causes: eligibility not checked, a required consent not signed, the bed hold expired, or pre-authorization not approved for an elective admission.

The bed I wanted is not in the list.

It does not fit the patient (ward for the other sex, children's ward, isolation) or is not free. Choose a ward in the filter to see all its free beds, or look at the bed board.

A patient was admitted by mistake.

Before the patient reaches the ward, Cancel admission on the admission page frees the bed and cancels the order. Deposits already taken appear in Exceptions for a refund. The AN is kept (numbers never go back).

Where do OPD visits come from?

In the demo they are part of the sample data. In a hospital they come from your outpatient system: load them into the OPD_VISIT, OPD_DIAGNOSIS, OPD_MEDICATION and OPD_LAB_RESULT tables (or a view), or send admit orders through the API.

Can I change the colours or the logo?

Colours are CSS variables at the top of static/css/app.css and static/css/ipd.css; the logo is static/img/favicon.svg and the hospital name is in Settings.