Admin Bill Cancellation Approval - hmislk/hmis GitHub Wiki

Bill Cancellation Request and Approval Workflow

Overview

In some HMIS deployments, billing staff cannot cancel bills directly — instead, they must submit a cancellation request for a supervisor or manager to approve. This two-step process (request → approval) provides an audit trail and a separation of duties for financial control. This page covers the full workflow for OPD batch bill cancellations.

Required Privileges

Step Required Privilege
Submit cancellation request No special privilege beyond OPD billing access
Approve a request BillCancelRequestApproval

Step 1: Submitting a Cancellation Request (Billing Staff)

  1. Navigate to the OPD Bill Search and find the bill to cancel
  2. Open the bill and click the cancellation option — this opens the Bill Cancellation Request page
  3. The page shows:
    • Patient Details panel — patient name, ID, and other info
    • Batch Bill Detail panel — Bill No, Bill Type, Total, Discount, Net Amount, Payment Method
  4. Enter the Reason of the Cancel in the text box
  5. Click Request Cancel Bill (red button)
  6. The request is submitted and moves to PENDING status

The billing staff cannot proceed further — the bill is not cancelled yet.

Step 2: Approving or Rejecting the Request (Supervisor)

  1. Navigate to the View Requests page — accessible from the administration index or from a notification
  2. Search for the pending request
  3. Click to open the Bill Cancellation Request Approval page
  4. The page shows the same patient and bill details, plus the submitted comment
  5. Enter an Approval Comment (optional notes)
  6. Click Approve (green button) to approve and process the cancellation

Or: 6. Click Reject (red button) to deny the request — the bill is not cancelled

Note: Once a request has been approved, rejected, or completed, the Approval Comment and action buttons become read-only (disabled).

Request Statuses

Status Meaning
PENDING Request submitted, awaiting approval
APPROVED Supervisor approved — bill cancellation will be processed
REJECTED Supervisor rejected — bill is NOT cancelled
COMPLETED Approval was processed and the bill has been cancelled

Cancelling the Request (Requester Retracts)

If the billing staff want to withdraw their own request before it is acted upon:

  1. Navigate to the bill cancellation request
  2. Use the Cancel Request page (accessible from the request status screen)
  3. The request moves to a cancelled state and the bill remains active

Viewing All Requests

Navigate to View Request (from the administration or reporting index) to search across all request types, filtered by status, date, or user. This gives supervisors a queue of pending approvals.

Technical Notes (Admin/Developer)

Requests are stored as Request entities with requestType = RequestType.OPD_BILL_CANCEL (or similar). requestController.createRequestforOPDBatchBill() creates the pending request. requestController.approveRequest() processes the approval and triggers the bill cancellation. The status field maps to RequestStatus enum values. The BillCancelRequestApproval privilege gates the approval page.

Related Features