Have you implemented OpenMRS? Please participate in the Implementation Site Survey. If you already have, thank you!
Page tree
Skip to end of metadata
Go to start of metadata

What this module does

This adds the ability to scheduling patients for appointments then manage their flow through a clinic once they arrive for appointments. In simple terms, the module allows implementations to do the following:

    1. Create a schedule of when providers are available to see patients
    2. Schedule appointments for patients based on provider schedule
    3. Manage the patient queue through the clinic when the patients arrive for their appointments.

Documentation / How-To

In January 2015, a demo was given on the OpenMRS Developers call showcasing the latest features of the module. Links to a recording of that call can be found here:

2015-01-08 Developers Forum

 

Below an OpenMRS University how-to on YouTube (below) that explains how to use an earlier version of the module. This video explains the basics of the module from version 0.2.


Privileges

  
  
  

 

Privilege Without it the user won’t be able to…
View Appointment Types  View “Appointment Types” link below the main header
 Enter Appointment Type list form via url
Manage Appointment Types  View “Add” button in appointment type list form
 View appointment types names as hyperlink
 Access appointment types form via url
View Appointment Blocks  View “Provider Scheduling” link below the main header
 Access appointment block list form via url
Manage Appointment Blocks  View “Add/Edit/Remove” buttons below the blocks list table
 Access appointment blocks form via url
View Appointments  View the “Appointments” link on the main header
 Access appointments list form via url
Schedule Appointments  View the “Schedule Appointment” button on appointment list
form nor patient dashboard appointment tab
 View the Schedule Walk-In Appointment button
 Access appointment form via url
Update Appointment Status  View the states buttons in appointment list form
 View the “End-Consultation” button on the patient’s dashboard
 View the “Start Consultation” button on the dialog in the
appointment list form
Squeezing Appointments  View the “Show full timeslots” checkbox on schedule
appointment form nor walk in appointment form
View Patient Appointment
History
 View appointment tab on the patient’s dashboard

 

Because the module relies on other aspects of OpenMRS users will need the following privileges:

Privilege

Function

View Providers

View appointment management form
Edit VisitsEnd consultation, miss/cancel any currently waiting or in-consultation appointment
View Visit TypesCheck-in
View Visit Attribute TypesCheck-in
Add VisitsCheck-in
View PatientsUse search widget on schedule appointment form


Requirements

  • OpenMRS 1.9 with visits enabled 

Downloads

https://addons.openmrs.org/#/show/org.openmrs.module.appointmentscheduling

Screenshots

Release Notes

About

This module was developed by Ben Gurion University of the Negev students Tobin Greensweig (medicine), Yonatan Grinberg, and Adam Lauz (both Information Systems Engineering) in collaboration with MigrantHealth:IL and the Tel Aviv Refugee Clinic. The OpenMRS community contributed to the design and early development. The module was built based on the specifications and input from all parties involved so we hope it will be generalizable and usable by many organizations!

If you have any questions or would like to contribute to the project, please don't hesitate to ask!

The OpenMRS Project page:  Appointment Module

 

  • No labels

9 Comments

  1. If you are upgrading from v0.2: First delete the module, then run this SQL script, then reinstall the v0.3 or later.

    ALTER TABLE appointment RENAME TO appointmentscheduling_appointment;
    ALTER TABLE appointment_block RENAME TO appointmentscheduling_appointment_block;
    ALTER TABLE appointment_block_type_map RENAME TO appointmentscheduling_block_type_map;
    ALTER TABLE appointment_status_history RENAME TO appointmentscheduling_appointment_status_history;
    ALTER TABLE appointment_type RENAME TO appointmentscheduling_appointment_type;
    ALTER TABLE appointment_time_slot RENAME TO appointmentscheduling_time_slot;

    DELETE FROM `openmrs`.`liquibasechangelog` WHERE `ID`='10000000-1000-appointment-appointment' and`AUTHOR`='yony258' and`FILENAME`='liquibase.xml';
    DELETE FROM `openmrs`.`liquibasechangelog` WHERE `ID`='10000000-1000-appointment-block' and`AUTHOR`='yony258' and`FILENAME`='liquibase.xml';
    DELETE FROM `openmrs`.`liquibasechangelog` WHERE `ID`='10000000-1000-appointment-block-type-map' and`AUTHOR`='dkayiwa' and`FILENAME`='liquibase.xml';
    DELETE FROM `openmrs`.`liquibasechangelog` WHERE `ID`='10000000-1000-appointment-status' and`AUTHOR`='yony258' and`FILENAME`='liquibase.xml';
    DELETE FROM `openmrs`.`liquibasechangelog` WHERE `ID`='10000000-1000-appointment-time-slot' and`AUTHOR`='yony258' and`FILENAME`='liquibase.xml';
    DELETE FROM `openmrs`.`liquibasechangelog` WHERE `ID`='10000000-1000-appointment-type' and`AUTHOR`='dkayiwa' and`FILENAME`='liquibase.xml';

    DELETE FROM `openmrs`.`global_property` WHERE `property`='appointment.started';
    DELETE FROM `openmrs`.`global_property` WHERE `property`='appointment.mandatory';
    DELETE FROM `openmrs`.`global_property` WHERE `property`='appointment.phoneNumberPersonAttributeTypeId';
    DELETE FROM `openmrs`.`global_property` WHERE `property`='appointment.defaultTimeSlotDuration';
    DELETE FROM `openmrs`.`global_property` WHERE `property`='appointment.manageAppointmentsFormTimout';
    DELETE FROM `openmrs`.`global_property` WHERE `property`='appointment.defaultVisitType';

  2. Tobin, is there where i need to make some further configurations for Appointment scheduling module.. For the visit type.

    1. The configuration of the module is done on the "Settings" page that can be found on the administration page in OpenMRS. The appointment types (different from visit types) are configured from the Appointment types page in the module. Visits are part of OpenMRS and can be found on the OpenMRS administration page.

  3. Is this wiki referencing to the same module as in Appointment Module? If not, how do they differ?
    I am looking for a module which provides REST API that I can call from a telephony application. Which one should I use?

     

  4. How does a module like this compare with an appointment scheduling system like BookMyCity? (https://www.bookmycity.com/online-schedule-maker)

  5. I got 

    java.text.ParseException: Unparseable date: "11/27/2014 12:00 ��"

    errors when using this module.Any workaround?

    1. did you find a work around? We have the same problem.

      org.springframework.validation.BeanPropertyBindingResult: 2 errors
      Field error in object 'appointmentBlock' on field 'endDate': rejected value [2015-03-18 PM06:00]; codes [typeMismatch.appointmentBlock.endDate,typeMismatch.endDate,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [appointmentBlock.endDate,endDate]; arguments []; default message [endDate]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'endDate'; nested exception is java.lang.IllegalArgumentException: java.text.ParseException: Unparseable date: "2015-03-18 PM06:00"]
      Field error in object 'appointmentBlock' on field 'startDate': rejected value [2015-03-18 AM06:00]; codes [typeMismatch.appointmentBlock.startDate,typeMismatch.startDate,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [appointmentBlock.startDate,startDate]; arguments []; default message [startDate]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'startDate'; nested exception is java.lang.IllegalArgumentException: java.text.ParseException: Unparseable date: "2015-03-18 AM06:00"]
      1. Find the solution myself.

        If you choose a Locale other then english, the system will add the the AM or PM or other things to the time string. It will mess up the parsing.

        Change your locale to english, it solved our problem. Cost me a day.

  6. I have a provider who is in my clinic everyday from 9:00-5:00. Is there a way to add provider schedule monthly to the same time slot?

    I tried adding, i.e. Feb 17-March 3, then the provider available time slots have midnight slots.