Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
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 |
---|
|
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 |
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 titlelanguage Sample 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 title Associating 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
ordersOrders app
In home,extension.json add the following configuration to see orders app on home dashboard.
Code Block | ||||
---|---|---|---|---|
| ||||
"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 |
---|
|
Tip |
|
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
Info |
---|
|
|
Code Block | ||||
---|---|---|---|---|
| ||||
{
"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 |
---|
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 |
---|
|
Tip |
---|
Below is the screenshot of concept set created for Radiology Orders. So the concept set name is "Radiology Order Fulfilment Form" |
| ||
Info | ||
---|---|---|
|
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 pageOnce 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 | ||
---|---|---|
| ||
Please refer Configuring Orders Control to configure orders control on dashboard |
The following is the configuration for it in orders module's app.json.
Infocode | |||
---|---|---|---|
| Add below configuration (with required changes) in code
| ||
Expand | |||
| |||
| |||
[
{
"id": "bahmni.orders",
"extensionPoints": [
...
],
"config": {
"fulfillment": {
"Radiology Order": {
"isObservation": true,
"conceptNames": [
"Summary"
],
"numberOfVisits": 2,
"scope": "latest"
}
}
}
}
]
|
Image Removed
title | Setting up Order Display Control On Dashboard |
---|
Image Added
Tip | ||||
---|---|---|---|---|
| ||||
|