Appointment Module Enhancement

Dear Community,

We would like to enhance the appointment module to bring in additional features

  • Ability to serve multiple regions/timezones - currently the appointment weekly schedule and appointments have no timezone indication.

    • Both appointment_service_weekly_availability and patient_appointment tables store in DATETIME

    • MySQL TIMESTAMP stores the data in UTC - which makes it hard for queries.

    • Options:

      • introduce a timezone column.

      • Convert the datetime fields to timestamp.

      • Keep the datetime field, but introduce a utc_datetime (TIMESTAMP).

  • Ability to mention reason(s) for appointment - currently we can only have “service types”.

    • Recommendations: Additional table for appointment reason (1 => n) for storing reasons (Concepts) for an appointment.
  • Ability to reserve a slot, to support online appointment booking by patients.

    • Option 1: We build additional tables to keep track of slots reserved for a certain time. However, these slots need to be released. In this approach, in OMRS, the only option is to run a background job to clear off such data. Can work but it’s not precise (maybe we don’t need such precision) and jobs need to run frequently.

    • Option 2: Keep such reservations in memory/cache (potentially in a different subsystem). For EMR servers in a cluster, this means the memory/cache needs to be available and shared across a cluster.

      • OMRS 2.8 supports Infinispan, a distributed in memory cache/datagrid - that seems possible, but till Bahmni moves to 2.8, we need to have an alternate option (in a cluster). Infinispan has automatic key expiration.

      • We pre-compute (aggregate capacity in the subsystem) by date+service+hours in advance - as appointments are updated, an event will be raised, the subsystem will process and keep data pre-computed and aggregated, thus reducing hits on the transaction databases.

      • We introduce a configuration that enables checking with the subsystem, if not default fallback is the current appointment db query.

Ideas/thoughts? Please let us know what you think.

1 Like

Another important aspect of the software which can be enhanced.. Thanks again for taking this too into consideration for development. Appointment really serves a great many jobs mainly for receptionist and i feel this is the central pillar for following up the patients. This purely in general terms and not related to coding.. just my perspective.

  1. One of the main things to consider is easy integration into consultation and registration modules for easy and efficient way to create and track appointment. [Needs discussion on where to place such options within bahmni.]
  2. Creating case specific - pre-defined appointment scheduling , for eg : For Antenatal Patients , where there is specified list of things that patient has to go through , like monthly checkups , Anomaly scan in second trimester , and other such time bound works. These can be easily adopted if we simply follow central govt guidelines.. no need for any hospital to create. Here : https://www.fogsi.org/wp-content/uploads/2024/08/Binder_Routine-Antenatal-Care-for-the-Healthy-Pregnant-Women.pdf If you go through the pdf , it will show how to schedule an ANC patient. These are the things which will be created once , but will be hugely beneficial to doctors to track and even give printout to patient , so that they can follow. The same goes to other such conditions. These are all one time creation , let us not leave it to individual doctors/implementers to do this.[We can discuss among doctors on what those conditions they want to have a predefined schedule for]
  3. Have easy icons to reschedule/postpone/make direct contact(whatsapp/call/etc).
  4. Ability to print these appointment list for doctors to know what patient they are expecting either for that day or week or other pending cases. We can just list the patient while printing for doctors while if we want we add other details like phone number , address etc for receptionist/staffs. Customized printing of list.
  5. Ability to make internal referral to other departments like from Medicine dept to Surgery Dept and so on. Ability to view among doctors what other doctor prescribed for that patient , so that there is no overlap of medicines when another doctor wants to add drugs.
  6. Ability to set mandatory entry of next review date for patients by the doctors and make it print the same on the prescription.
  7. There are times when we schedule a patient for doctors visit and they too confirm , but ultimately dont showup , so there should be an option to reschedule these patients as soon as that doctors OP closes. This will help tracking patients / scheduling much effecient.

[Last edit : 02-10-2025]

These are the points i was able to recollect .. will add as i remember.. Thanks.

1 Like