Multi-patient checkout

Description

From http://www.openvpms.org/project/multi-patient-checkout

Summary

This project will allow all patients associated with a customer's current invoice to be checked out at once.

It will also enforce check-out when finalising invoices via Customers - Charges to ensure patients are correctly discharged.

Background

At present, OpenVPMS provides a Check-Out workflow to automate the task of checking out a single patient. This

  • optionally prompts to select one or more boarding appointments to Check-Out

  • automatically charges any boarding fees

  • displays the invoice

  • prompts for payment, if the invoice is finalised

  • optionally prints documents

  • optionally creates a follow-up task

  • optionally imports documents from Smart Flow Sheet

  • sets the Appointment and Visit status to Completed

  • sends HL7 discharge events to Cubex/IDEXX etc

  • completes the Task, if Check-Out was launched from one

For multiple patients, users have several options:

  • run the Check-Out workflow multiple times, skipping invoice finalisation and payment to the last patient

  • perform each step manually, finalising the invoice via Customers - Charges

This latter approach means that users can forget to complete appointments and visits, effectively leaving patients checked in to the hospital.

To prevent this:

  • the Check-Out workflow will be updated to support multi-patient check-out

  • attempting to finalise an invoice with checked in patients will prompt to run the Check-Out workflow

Check-Out workflow

To support multiple patients, the Check-Out workflow will be changed to:

  1. locate all current appointments for the customer at the practice location. If there is:

    • more than one, it will prompt which patients to check-out

    • only one, or none, the workflow will run as it does now. There can be none if Check-Out is run for a completed appointment or task.

  2. automatically charge any boarding fees for the selected patient(s)

  3. display the invoice

  4. prompt for payment, if the invoice is finalised

  5. optionally print documents for the selected patient(s)

  6. optionally create a follow-up task for the selected patient(s)

  7. optionally imports documents from Smart Flow Sheet for the selected patient(s)

  8. set the Appointment and Visit status to Completed for the selected patient(s)

  9. send HL7 discharge events to Cubex/IDEXX etc for the selected patient(s)

  10. completes the Task, if Check-Out was launched from one, and complete any Tasks linked to the appointments of the selected patient(s)

Finalising Invoices

When an Invoice is finalised in Customers - Charges, it will:
1. Collect all patients in the invoice
2. Locate their appointments and visits
3. Display a confirmation to the user:

The confirmation window will provide the following buttons:

  • OK - check out the selected patients

  • Cancel - cancel check-out and finalisation

  • Skip - skip checkout, perform finalisation
    If any of the patients are checked in at a different practice location, they will be listed, along with the location, but will not be available for selection.

4. If OK is selected, the Check-Out workflow will be run, from Step 2.
The invoice will only be displayed again if boarding has not been charged.

Finalised Status

At present, the Invoice editor allows the Status to be changed to Finalised to finalise the invoice. This will be prevented if any of the patients referred to on the invoice have appointments that are not Pending, Cancelled, or Completed, and the invoice editing wasn't launched via the Check-Out workflow.

Environment

None

Status

Assignee

Tim Anderson

Reporter

Tim Anderson

Labels

None

Components

Fix versions

Priority

Major
Configure