Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Context

Purpose and Benefits

This functionality can take care of all possible orders encountered in a Hospital Scenario.

The need for an Order arises when the doctor or any other medical provider wants some action to be taken by some other medical provider in the Hospital for a patient. 

Info

For instance, when a doctor wants an X-ray to be performed for a patient, he would give this order (currently written on a physical paper). Then the patient would report to the X-Ray Department where some other provider in the X-Ray department would perform the procedure based on the order of the doctor.

The entire process as mentioned above can be digitalised through Bahmni which involves two contact points for the providers. One is the part of the application from where orders will be placed and the second is from where the orders will be fulfilled.

Image Added

Workflow

The work flow would be as follows:

Orders Module

Steps

Placing an order

To place an order, the medical practitioner visits configured "Orders" Tab via Clinical consultation. The Orders Tab can be configured to list all the possible type of orders.

Note
  • As shown in the above screenshot, there are two different order types (Lab, Radiology) configured
  • Selected Orders section will list down all the selected orders

Expanding any of the order type will display all the concepts that are associated to this order type in hierarchical manner.Image Removed

Info

In the above screenshot, all the tests and panel that are associated to Blood are listed

Select the required orders and then save to place an order.

Tip

Selected Orders section will list down all the selected orders

Configuration

Image Added

Tests and panels associated to Blood Order Type


Placing an Order

The following are is the configuration details for the orders scenario.

For setting up the functionality to place the order. 

  • To set up a new order type, you need to add the order type in the database.

    Tipcode
    titlelanguageSample Querysql
    insert into order_type (name, description, creator, uuid,java_class_name) values ("Test Order", "description",1,uuid(),"org.openmrs.Order");


  • Every order_type in Bahmni is associated with a Concept Set.  This acts as a starting point in navigation of tests during Order Creation.  For the newly setup Order Type, create a corresponding Concept Set and associate it as a child of "All Orderables".  

    Info
    titleAssociating concept to concept set

    Add new concept_set as set member for "All Orderables"

    Note

    This The concept set called "All Orderables" is already available in Bahmni.


  • The Concept Set that is defined in Step 2 is a Two Level Set.  Level 1 shows up the Left Navigation Bar.  Level 2 should contain the tests that needs to be shown up on the UI.  The doctor can select the provided tests.  The grouping of the Tests happen using the "Concept Class". 

    Tip

     Lets say, if Blood contains both Anaemia Panel (Concept Class as Panel) and "Heamoglobin" (Concept Class as Test), then the grouping of the tests on UI happens based on Panel and Test.


Fulfilling an Order

Order fulfilment is a separate app that can be configured.

Configuring

orders

Orders app

In home,extension.json add the following configuration to see orders app on home dashboard.

Code Block
languagejs
titleConfiguring Orders app
"orders": {
 "id": "bahmni.orders",
 "extensionPointId": "org.bahmni.home.dashboard",
 "type": "link",
 "label": "Orders",
 "url": "../orders/#/search",
 "icon": "fa-book",
 "order": 10,
 "requiredPrivilege": "app:orders"
 }


Warningtip
  • Make sure that the value for key "url" is always "../orders/#/search"
Tip
  • One can change the "requiredPrivilege", to restrict access to other users who doesn't have this configured privilege

Image Removed


Configuring Patient Queues/Lists

Patient lists can be configured according to the use case and requirement. For instance, one can configure to show all the patients who have Lab Orders. One can choose to configure any number such queues or lists.The view of the queue can be configured to be tile or tabular similar to the patient queues in clinical

tip
Info
  • Add the configuration similar to sample configuration below (with required changes) in orders/extension.json
  • Please use the sample configuration that can be used to configure patient queue (which displays all the active patients). One can provide custom query that can be used to populate this list. Please refer the documentation for customising the query.
  • Please make sure that the "forwardUrl" as navigation Url when the patient is selected from the list. If you want to use order fulfilment, the supported url is "../orders/#/patient/{{patientUuid}}/fulfillment/{Order_type}"

    Order_type = type of orders that you want to see (or fulfil)

  • In the configuration below, "Radiology Order" is the order_type
  • To list all the available order types, the sample query is "select * from order_type;"
  • One can change the "requiredPrivilege", to restrict access to other users who doesn't have this privilege



Code Block
languagejs
titleSample config for configuring order patient list queues
{
	"bahmniClinicalPatientsSearchRadiologyOrderAllPatients":{
	 "id": "bahmni.clinical.patients.search.RadiologyOrderAllPatients",
	 "extensionPointId": "org.bahmni.patient.search",
	 "type": "config",
	 "extensionParams": {
	  "searchHandler": "emrapi.sqlSearch.activePatients",
	  "display":"Radiology Orders",
	  "translationKey": "MODULE_LABEL_RADIOLOGY_ORDERS_KEY",
	  "forwardUrl" : "../orders/#/patient/{{patientUuid}}/fulfillment/Radiology Order",
	  "forwardButtonTitle" : "View",
	  "view":"tabular"
	 },
	 "label": "Radiology Order",
	 "order": 1,
	 "requiredPrivilege": "app:orders"
	 }
}


Warning

Please make sure that the "forwardUrl" as navigation Url when the patient is selected from the list. If you want to use order fulfilment, the supported url is "../orders/#/patient/{{patientUuid}}/fulfillment/{Order_type}"

Order_type = type of orders that you want to see (or fulfil)

Note

In the above configuration, "Radiology Order" is the order_type

Tip
titleSample Query to list all the available order types

select * from order_type;

Tip

One can change the "requiredPrivilege", to restrict access to other users who doesn't have this configured privilege


Configuring Fulfilment Form/Template

Provider fulfilling an order will select the order to be fulfilled and fill in the form/template (for that order) Capturing observations for the configured templates or forms is considered as fulfilment of the order. When ever the visit of patient whose order is completed ends then the order will no longer appear in the queue.

Create a concept set (template) in openmrs with required set member. The form is populated based on the set members.

Warningtip
  • The name of the concept set should be "{Order_type} Fulfilment Form"
Tip

Below is the screenshot of concept set created for Radiology Orders. So the concept set name is "Radiology Order Fulfilment Form"

Image RemovedIn the screenshot below, "Summary" is the
  • The form/template in Order Fulfilment Page will be populated based on the members of concept set "{Order_type} Fulfilment Form"
Info
titleExample : How Form is populated

Image Added

Concept set for Radiology Orders with name "Radiology Order Fulfillment Form"

Image Added

Form populated with "Summary" as it is the set member of "Radiology Order

Fulfilment Form" and thus the form is populated with "Summary" and its members respectively.

Image Removed

Fulfillment Form"

Setting up Order Display Control

for viewing in fulfillment page

Once a lab technician navigates to order fulfillment page, one can view the orders that are partially/fully fulfilled.  If one wants to view the results (observations) that are already entered in previous encounters, one can do so in the "Order Display Control" configured for each and every order.  

Note
titleSetting up Order Display Control On Dashboard

Please refer Configuring Orders Control to configure orders control on dashboard

The following is the configuration for it in orders module's app.json.

Add below configuration (with required changes) in code
Infocode
title
Config: Add to orders/app.json
Expand
titleClick here to view sample configuration...
collapsetrue
[
  {
    "id": "bahmni.orders",
    "extensionPoints": [
		...
    ],
    "config": {
      "fulfillment": {
        "Radiology Order": {
          "isObservation": true,
          "conceptNames": [
            "Summary"
          ],
          "numberOfVisits": 2,
          "scope": "latest"
        }
      }
    }
  }
]

Image Removed

Note
titleSetting up Order Display Control On Dashboard
Please refer Configuring Orders Control to configure orders control on dashboard

Image Added



Tip
iconfalse
titleOn this Page

Table of Contents
stylenone