OPD Doctor Payments Per Shift - hmislk/hmis GitHub Wiki

OPD Doctor Payments — Per Shift

This article covers paying an OPD doctor for the OPD bills generated during one specific working session (one Mark-In to Mark-Out cycle). It is the workflow most hospitals use when doctors are paid at the end of each shift.

For paying all due fees across multiple shifts in one go, see OPD Doctor Payments — All Due.

Prerequisites

Before you can pay a doctor for a shift, three things must be true:

  1. The doctor has a Doctor (or Consultant) record in HMIS.
  2. The doctor was marked in at the start of the shift and marked out at the end. See OPD Doctor Working Times — Mark In / Mark Out.
  3. The user processing the payment has the OpdBilling privilege (the page is hidden otherwise).

If your installation has the configuration option "Pay Doctors only After Marking Out" enabled, then the shift must have a recorded Mark Out before you can pay it. Likewise, "Pay Doctors only After Marking In" enforces the Mark In.

Navigation

Top menu → OPD → Pay Doctor.

Path: /opd/pay_doctor.xhtml.

The screen still exists as pay_doctor.xhtml. A newer index, /opd/opd_doctor_payment_index.xhtml, also reaches this functionality through its Initiate Professional Payments button. Either entry point works.

Privilege required: OpdBilling. The page shows "You are NOT authorized" if you lack it.

Step 1 — Select the doctor

The first screen has three buttons across the top:

Button What it does
Process Shift Payments Per-shift payment workflow (this article).
Process All Due Payments Multi-shift / all-due workflow. Only shown when the configuration OPD Doctor Payments can be given without closing the shift is enabled. See OPD Doctor Payments — All Due.
List Completed Payments Search past doctor payment bills.

Below the buttons:

  1. Speciality — optional filter. Pick a Doctor Speciality from the dropdown (filterable). Selecting a speciality narrows the next dropdown.
  2. Doctor / Staff — required. Pick the doctor whose shift you are paying.
  3. Click Process Shift Payments.

If the doctor has no Mark-In recorded yet, you see "No Work Time Recorded" — first ask the doctor to be marked in (and out, if your installation requires it).

If the doctor's most recent shift has already been paid, the system bounces you to the bill-list view instead.

Step 2 — Review the per-shift summary

The "Pay Staff" panel now opens with the selected doctor's most recent (not-yet-paid) shift. The header row shows:

  • Doctor — name.
  • Speciality — selected speciality.
  • ID — internal record ID (useful for support).
  • Shift Start — Mark-In timestamp.
  • Shift End — Mark-Out timestamp.
  • Payment Method — pick from the configured list (Cash, Card, Cheque, Bank Transfer, etc.). This is mandatory.

The body of the panel breaks down the amount to be paid in four lines:

Line What it shows
Bill Fee Value The total of all OPD bill fees raised against this doctor during the shift. The grid lists each contributing bill with its Bill No, Bill Time, Item, and Fee Value.
Admission Fee Value The amount payable for inpatient admissions that this doctor referred or attended during the shift. Editable — Rate × Count.
Shift Payment Value Any fixed shift allowance entered for this shift. Editable.
Other Fee Value Any additional miscellaneous fee added to this shift. Editable.

Two action buttons sit on the right:

  • Calculate — re-totals after you change any of the editable fields.
  • Pay — commits the payment. Disabled if a payment bill has already been issued for this shift.

The grid only shows the bills that fall within the shift window. If the installation has "Pay Doctors only After Marking In" on, the window starts at Mark In; if "Pay Doctors only After Marking Out" is on, the window ends at Mark Out. If both are off, the window is open-ended for that doctor.

Step 3 — Commit the payment

  1. Select a Payment Method.
  2. Adjust Admission Rate, Shift Payment Value, or Other Fee Value if needed; click Calculate to refresh the total.
  3. Click Pay.

The system:

  1. Creates a PaymentBill of type Professional Payment for Staff for OPD Services. The bill number uses the PROPAY prefix and is generated from the department's bill-number sequence.
  2. Records the payment lines (bill fee, admission fee, shift, other) against this bill.
  3. Links the working-time (shift) record to the new payment bill so the shift is now considered paid.
  4. Switches the screen to print-preview mode.

Step 4 — Print

In print-preview mode you see:

  • A Paper Type dropdown — pick the paper format your printer is loaded with (e.g., FiveFivePrintedPaper for a 5×5 inch payment voucher).
  • A redraw button — re-renders the layout after changing paper type.
  • A Print button — sends the rendered voucher to the printer.

The 5×5 paper layout (used when Paper Type = FiveFivePrintedPaper) renders the bill via the bill:DoctorPayment5x5Bill composite component.

After printing you may click Back to return to the doctor-selection screen and process the next doctor.

Withholding tax in the per-shift flow

The per-shift "Pay Doctor" screen does not display the WHT panel inline; WHT is applied by the back-end if the active calculation mode dictates it. To see and adjust WHT for the payment, use the all-due flow (OPD Doctor Payments — All Due) or the dedicated WHT discussion (Withholding Tax on Professional Payments).

What if the doctor was paid by mistake?

The payment bill can be cancelled via the standard payment-bill cancellation route. After cancellation, the shift becomes payable again and you can rerun the workflow. See the OPD bill cancellation pages (payment_staff_bill_cancel.xhtml).

Limitations

  • Each shift can only be paid once. To pay extra for the same shift, you would need to cancel the existing payment first.
  • The screen does not show an explicit "from-to date" picker; it always operates on the last unpaid shift. To pay an older unpaid shift, mark out / pay forward sequentially.
  • The Admission Fee, Shift Payment, and Other Fee inputs are free-form numbers; the system trusts whatever you enter. Double-check before clicking Pay.

Related articles

Back to Practitioner Module Overview