FHIR Mapping
The strategy was originally implemented by Kwateng on 06.08.2017. commit 881e70acf638df9ef8572e4ec96e19e0c5057828
This is a suggestion on how to map OpenMRS DrugOrder object into FHIR TBD.
Fields which didn't match into FHIR representation are marked on red. Keyword extension means that FHIR Extension has to be used to synchronize this field.
Fields which partially match into FHIR representation are marked on orange.
Fields from parent classes are omitted.
OpenMRS Order documentation - Order Entry API.
OpenMRS class DrugOrder extends Order
OpenMRS class | OpenMRS field | DB field | FHIR field | Details |
---|---|---|---|---|
DrugOrder | dose : Double | drug_order.dose | dosageInstruction : Dosage | See table FHIR Dosage class |
DrugOrder | doseUnits : Concept | drug_order.units | dosageInstruction : Dosage | See table FHIR Dosage class |
DrugOrder | frequency : OrderFrequency | drug_order.frequency | dosageInstruction : Dosage | See table FHIR Dosage class |
DrugOrder | asNeeded : Boolean | drug_order.prn | dosageInstruction : Dosage | PRN = "As Needed", See table FHIR Dosage class |
DrugOrder | quantity : Double | drug_order.quantity | dispenseRequest.quantity : SimpleQuantity | See table FHIR SimpleQuantity class |
DrugOrder | quantityUnits : Concept | - | dispenseRequest.quantity : SimpleQuantity | See table FHIR SimpleQuantity class |
DrugOrder | drug : Drug | drug_order.drug_inventory_id | medicationCodeableConcept : CodeableConcept | - |
DrugOrder | asNeededCondition : String | - | dosageInstruction : Dosage | See table FHIR Dosage class |
DrugOrder | dosingType: DosingInstructions | - | extension | - |
DrugOrder | numRefills : Integer | - | extension | - |
DrugOrder | dosingInstructions : String | order.instructions | dosageInstruction : Dosage | See table FHIR Dosage class |
DrugOrder | duration : String | - | dosageInstruction : Dosage | See table FHIR Dosage class |
DrugOrder | durationUnits : Concept | - | dosageInstruction : Dosage | See table FHIR Dosage class |
DrugOrder | route : Concept | - | dosageInstruction : Dosage | See table FHIR Dosage class |
DrugOrder | brandName : String | - | extension | - |
DrugOrder | dispenseAsWritten : Boolean | - | extension | - |
DrugOrder | drugNonCoded : String | - | extension | - |
FHIR Dosage class - description
OpenMRS class | OpenMRS field | DB field | FHIR field | Details |
---|---|---|---|---|
DrugOrder | dose : Double, doseUnits : Concept | drug_order.dose, drug_order.units | doseQuantity : SimpleQuantity | See table FHIR SimpleQuantity class |
DrugOrder | frequency : OrderFrequency | - | timing : Timing | See table FHIR Timing class |
DrugOrder | asNeeded : Boolean | drug_order.prn | asNeededBoolean : boolean | - |
DrugOrder | asNeededCondition : String | - | asNeededCodeableConcept : CodeableConcept | - |
DrugOrder | dosingInstructions: String | order.instructions | text : string | - |
DrugOrder | duration : String, durationUnits : Concept | - - | timing : Timing | See table FHIR Timing class |
DrugOrder | route : Concept | - | route : CodeableConcept | - |
FHIR Timing class - description
OpenMRS class | OpenMRS field | DB field | FHIR field | Details |
---|---|---|---|---|
DrugOrder | frequency : OrderFrequency | drug_order.frequency | repeat.frequency : integer, repeat.period : decimal, repeat.periodUnit : UnitsOfTime | frequencyPerDay = frequency / (period * periodUnit), where period=1, periodUnit=d; if there's a period, periodUnit is required |
DrugOrder | duration : String, durationUnits : Concept | - - | repeat.duration : decimal, repeat.durationUnit : code | if there's a duration, durationUnit is required |