ART Regimen orders

Does anyone have examples of using the RefApp or Bahmni with ordering ART regimens for HIV? I’d be interested to see if anyone selects a multi-drug ART regimen and it pre-populates standard dosing for the individual drugs – even better if it takes age or weight into consideration.

Anything useful or fancy to share?

Partners In Health has implemented several older versions:

  • Lesotho: Recording regimen pickup which is represented using WHO abbreviations (ie. 1a, 1b, etc) but not recording any dosing information. Only the regimen abbreviation and pickup date.
  • Malawi: Record regimen using WHO abbreviations using htmlform for ART Mastercard for intake and followup visits
  • Rwanda: Records regimen (ie. AZT + 3TC + NVP) on the patient dashboard with OpenMRS pre-RefApp dashboard.

@ball have you checked the Uganda ART form? it has odema, age and weight in consideration, recording regimen pickup which is represented using WHO abbreviations which has dosing, information,pickup date and follow up visit

Juliet - Great to hear. I’d love to see. Can you provide a URL for a demo?


The “right” way to do this is using Order Sets. The Bahmni team introduced these in openmrs-core version 1.12, though they aren’t used in the RefApp UI.

Bahmni has them, but our demo doesn’t have any configured by default. The admin screen looks like this, and shows how you can do fixed or weight-based dosing in the order set members (fake regimen of course):

This uses a rulesengine module that you can see some of the code for here:

(With some effort someone could probably turn this into a shared OpenMRS module.)

Thanks, @darius. Very helpful. To clarify your example from Bahmni, when you select the order set “ARV Regimen 1a”, does it automatically show three order set members – Stavudine (d4T), Lamivudine (3TC), and Efavirenz (EFV) with suggested dosing? Do the rules work for calculating dose based on weight and age?

The screenshot I shared before was the admin screen. When you actually place an order for an order set, it does show all the members. You can also uncheck them, or edit them before actually saving the prescription.

(This is a different example since the db was cleared since the last one. I set Rifampicin to 7.5mg/kg, thus that strange dosage.) hope it will be of help

I did a little looking at the rulesengine module and it definitely looks like something that could be more broadly utilized. @darius / @burke, would it make sense for Rule-based dosing to be something that the core order entry ui should be designed to support / account for? Would it make sense to de-bahmnify the rulesengine module, or to extract the same approach into core or emrapi?

Can I clarify that this is going from the regimen concept to the drug concept to the individual drug table rows? Or is this something different. CIEL currently manages the concept (ingredient) to drug rows, and we also manage regimen (n/a class) to ingredients (drug class) with associated SNOMED and RxNORM mapping. I just want to be sure that we are not manually recreating or otherwise making redundant work that CIEL is doing. How can I be of more assistance here?

I didn’t realize CIEL was managing regimens. Do you mean something like this?

The OpenMRS design is that one should be creating these things as Order Sets, and they would include more info than just the concepts/drugs, e.g. it includes the dosing. Would CIEL really want to be including that level of detail?

(I was expecting that CIEL would define what goes in the concept and drug tables in OpenMRS (though we don’t have a good subscription mechanism for this yet.)

Yes. We are holding the concept of the regimen, but not actually creating the links between the regimen concept and the individual drug concepts (in concept) except through the SNOMED maps… I don’t expect that we will manage more than that going forward. Can you leverage it?

I think the biggest value in this case comes from people using the CIEL concepts for the ingredients/medications (with the mappings). I don’t see the regimen concepts being valuable enough to try to somehow leverage them when creating order sets.