Practitioner Communication History - hmislk/hmis GitHub Wiki

Practitioner β€” Communication History

When HMIS sends a short message in response to a doctor event β€” a channel booking on a doctor's session, the doctor's arrival, a booking cancellation, a payment, or the daily referring-doctor summary β€” every dispatch is logged. The logs let you confirm whether a message reached the gateway and whether the gateway accepted it. This article shows how to find those messages and what to do when something fails.

This article is for the end user (cashier, reception, or audit). The administrator-side configuration of which triggers fire and what template text is used lives in Admin β€” Channel Doctor Notification SMS.

Doctor-related SMS triggers

HMIS dispatches the following channel-doctor messages when the corresponding setting is enabled:

Trigger Default audience Template setting
Channel booking confirmed Patient smsTemplateForChannelBooking
Channel booking cancellation Patient smsTemplateForChannelBookingCancellation
Doctor arrival at clinic Patients in the session smsTemplateForChannelDoctorArrival
Booking completion Patient smsTemplateForChannelBookingCompletion
No-show booking Patient smsTemplateForChannelBookingNoShow
Doctor payment confirmation Doctor smsTemplateForChannelBookingDoctorPayment
Daily summary for referring doctors Doctor (composed in code; gated by sentDailySmsSummeryForReferringDoctors)

Whether each of these fires for any given event is controlled by matching sendSmsOn… flags on the user preferences. The history screens described below log every dispatch regardless of trigger.

All SMS list

Use this screen to see every SMS the system has sent (or tried to send).

Navigation

Top menu β†’ Analytics β†’ SMS Reports β†’ All SMS (the exact menu wording depends on your installation).

Path: /analytics/sms_list.xhtml.

Privilege required: typically Analytics plus an SMS-list privilege if configured.

Filters

Filter Notes
From Date / To Date Required date-time range. Pattern uses the application's long date-time format.

Click Search to populate the grid. Excel exports the grid to All SMS.xlsx.

Grid columns

Column Notes
# Row number.
ID The SMS record ID (useful when raising a support ticket).
Create At Timestamp the system queued the SMS.
SMS Type The trigger that caused the dispatch (e.g., ChannelBooking, ChannelDoctorArrival, OpdBill, etc.). Filter by typing in the column.
Message Final message text after template substitution.
Phone Number The destination mobile number. Filter by typing.
Status Green Success tag or red Failed tag.

Practical uses

  • "Did the patient receive the doctor-arrival SMS this morning?" β€” filter SMS Type contains Arrival, set today's date range, look for the patient.
  • "What exactly did we send to the doctor yesterday?" β€” filter by SMS Type and date; the Message column shows the final substituted text.

Failed SMS list

The Failed list shows only the messages where the gateway refused or returned an error.

Navigation

Top menu β†’ Analytics β†’ SMS Reports β†’ Failed SMS.

Path: /analytics/sms_faild.xhtml.

Filters and grid

Same date-range filters as the All SMS list. The grid additionally surfaces the Patient column (where applicable) for quick scanning. The Status column is implicitly Failed for every row.

When to use it

  • A doctor reports they did not get the daily summary SMS yesterday. Filter Failed SMS by date and look for their mobile number; if the entry is here, the gateway rejected the message. Check the recipient phone number and the doctor's mobile on their staff record (Practitioner β€” Register a Doctor).
  • A patient says they did not receive a booking confirmation. Look here first; if you do not find a failed record, also check the All SMS list to confirm the system queued anything at all.

SMS Report (consolidated)

A higher-level report at the path /sms_report.xhtml combines counts of sent vs failed messages by type and by day. Use it for monthly review of SMS volume and reliability.

Send Custom SMS

For ad-hoc messaging outside the doctor-event triggers, use Analytics β†’ SMS Send (/analytics/sms_send.xhtml). Type the recipient phone number and message body. This is convenient for one-off notices but it does not populate the doctor-event triggers β€” sending a custom SMS does not record the message under, say, ChannelDoctorArrival. It is recorded with a custom-send type.

Why a message might be missing or failed

Symptom Likely cause Remedy
No record at all for an event you expected The sendSmsOn… flag for that event is off, or the recipient (doctor or patient) has no mobile number on file. Ask the administrator to enable the flag (Admin β€” Channel Doctor Notification SMS) and verify the mobile number on the practitioner / patient record.
Record present, marked Failed Gateway error (bad credentials, expired credits, malformed phone number, network outage). Check the gateway dashboard. If credentials or quota are the cause, the administrator must fix them (SMS Configuration and Gateway Setup).
Record present, Success, but recipient says no SMS Telecom-side delivery failure (mostly invisible to HMIS). The gateway returns Success when it accepts the message; delivery to the handset is a downstream event the gateway provider tracks separately. Confirm the gateway-side delivery report.

Cannot resend automatically

There is no built-in Retry button on a failed SMS. To resend the same content:

  • For doctor-event triggers, re-do the action (e.g., cancel and rebook). HMIS will re-fire the SMS.
  • For ad-hoc messages, copy the body from the failed record into the Send Custom SMS form and submit again, after first fixing the cause of the failure.

Limitations

  • The SMS history is keyed by phone number. If a doctor's mobile number was wrong at the time the message went out, the history shows it sent to the wrong number; fixing the number now does not re-deliver yesterday's message.
  • The grid does not record which template version was used. If the administrator edits the template halfway through the day, both old and new messages appear with whatever text was sent at the time.
  • "Daily summary for referring doctors" is composed in code rather than from a single template field, so its log entry shows a longer, free-form Message body unique to each doctor's daily activity.

Related articles

Back to Practitioner Module Overview