Note
On the OpenMRS Design Forum 2018-10-03 (meeting notes: https://notes.openmrs.org/2018-10-03-Design-Forum) we decided (together with OpenMRS community) synchronize this object via REST because mapping via FHIR is too complex.
Introduction
Note that information about OpenMRS programs is placed here.
FHIR Mapping
On this page are placed suggestion on how to map OpenMRS classes:
OpenMRS class | FHIR class |
---|
This is a suggestion on how to map OpenMRS Form object into FHIR Questionnaire.
...
PatientState | EpisodeOfCare |
PatientProgram | ReferralRequest |
Program | PlanDefinition |
ProgramWorkflow | CarePlan |
ProgramWorkflowState | ReferralRequest |
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.
OpenMRS class
...
PatientState. FHIR
...
class EpisodeOfCare.
OpenMRS class | OpenMRS field | DB |
---|
column | FHIR field | Details |
---|
PatientState |
patientStateId : Integer |
patient_state_id : INT |
- | Instead of database id is used the UUID. | |||
PatientState | patientProgram : PatientProgram | patient_program_id : INT | referralRequest : Reference(ReferralRequest) | |
PatientState | state : ProgramWorkflowState | state : INT | referralRequest : Reference(ReferralRequest) | |
PatientState | startDate : Date | start_date : DATE | period : Period | Used start date from the Period object. |
PatientState | endDate : Date | end_date : DATE | period : Period | Used end date from the Period object. |
BaseOpenmrsData | creator : User | creator : INT |
extension | |||
BaseOpenmrsData | dateCreated : Date | date_created : DATETIME | extension |
BaseOpenmrsData | changedBy : User | changed_by : INT | extension |
BaseOpenmrsData | dateChanged : Date | date_changed : DATETIME |
extension | |
BaseOpenmrsData | voided : Boolean |
voided : |
TINYINT |
status : code
(draft | active | retired | unknown)
extension | ||||
BaseOpenmrsData | dateVoided : Date | date_voided : DATETIME | extension | |
BaseOpenmrsData | voidedBy : User | voided_by : INT | extension | |
BaseOpenmrsData | voidedReason : String | void_reason : VARCHAR(255) | extension | |
BaseOpenmrsObject | uuid : String | uuid : |
CHAR(38) | identifier : Identifier |
OpenMRS
...
class PatientProgram. FHIR
...
class ReferralRequest.
OpenMRS class | OpenMRS field | DB |
---|
column | FHIR field | Details |
---|
PatientProgram |
patientProgramId : Integer |
patient_program_id : INT |
type : code
(group | display | boolean | decimal | integer | date | dateTime +
QuestionnaireItemType)
- | Instead of database id is used the UUID. | |||
PatientProgram | patient : Patient | patient_id : INT | subject : Reference(Patient) | |
PatientProgram | program : Program | program_id : INT | definition : Reference(PlanDefinition) | |
PatientProgram | location : Location | location_id : INT | supportingInfo : Reference(Any) | |
PatientProgram | dateEnrolled : Date | date_enrolled : DATETIME | occurrencePeriod : Period | Used start date from the Period object. |
PatientProgram | dateCompleted : Date | date_completed : DATETIME | occurrencePeriod : Period | Used end date from the Period object. |
PatientProgram | outcome : Concept | outcome_concept_id : INT | reasonCode : CodeableConcept | |
PatientProgram | states : Set<PatientState> | Many to one relation | - | In the PatientState is the reference to PatientProgram. |
BaseOpenmrsData | creator : User | creator : INT | extension | |
BaseOpenmrsData | dateCreated : Date | date_created : DATETIME | authoredOn : dateTime | |
BaseOpenmrsData | changedBy : User | changed_by : INT | extension | |
BaseOpenmrsData | dateChanged : Date | date_changed : DATETIME | extension | |
BaseOpenmrsData | voided : Boolean | voided : TINYINT | extension | |
BaseOpenmrsData | dateVoided : Date | date_voided : DATETIME | extension | |
BaseOpenmrsData | voidedBy : User | voided_by : INT | extension | |
BaseOpenmrsData | voidedReason : String | void_reason : VARCHAR(255) | extension | |
BaseOpenmrsObject | uuid : String | uuid : CHAR(38) | idenfifier : Identifier |
OpenMRS class Program. FHIR class PlanDefinition.
OpenMRS class | OpenMRS field | DB column | FHIR field | Details |
---|---|---|---|---|
Program | programId : Integer | program_id : INT | - | Instead of database id is used the UUID. |
Program | concept : Concept | concept_id : INT | goal.description : CodeableConcept | |
Program | outcomesConcept : Concept | Outcomes_concept_id : INT | goal.target.detailCodeableConcept : CodeableConcept | |
Program | allWorkflows : Set<ProgramWorkflow> | Many to one relation | - | In the PatientProgram is the reference to Program. |
BaseOpenmrsMetadata | name : String | name : VARCHAR(50) | name : string | |
BaseOpenmrsMetadata | description : String | description : TEXT | description : markdown | |
BaseOpenmrsMetadata | creator : User | creator : INT | extension | |
BaseOpenmrsMetadata | dateCreated : Date | date_created : DATETIME | extension | |
BaseOpenmrsMetadata | changedBy : User | changed_by : INT | extension | |
BaseOpenmrsMetadata | dateChanged : Date | date_changed : DATETIME | date : dateTime | |
BaseOpenmrsMetadata | retired : Boolean | retired : TINYINT | extension | |
BaseOpenmrsObject | uuid : String | uuid : CHAR(38) | idenfifier : Identifier |
OpenMRS class ProgramWorkflow. FHIR class CarePlan.
OpenMRS class | OpenMRS field | DB column | FHIR field | Details |
---|---|---|---|---|
ProgramWorkflow | programWorkflowId : Integer | program_workflow_id : INT | - | Instead of database id is used the UUID. |
ProgramWorkflow | program : Program | program_id : INT | definition : Reference(PlanDefinition) | |
ProgramWorkflow | concept : Concept | concept_id : INT | category : CodeableConcept | |
ProgramWorkflow | states : Set<ProgramWorkflowState> | Many to one relation | - | In the ProgramWorkflowState is the referance to ProgramWorkflow. |
BaseOpenmrsMetadata | creator : User | creator : INT | extension |
BaseOpenmrsMetadata | dateCreated : Date | date_created : DATETIME | extension | |
BaseOpenmrsMetadata | changedBy : User | changed_by : INT | extension |
BaseOpenmrsMetadata | dateChanged : Date | date_changed : DATETIME | extension | |
BaseOpenmrsMetadata | retired : Boolean | retired : |
TINYINT | extension |
BaseOpenmrsObject |
uuid : |
String |
OpenMRS class FieldAnswer.
uuid : CHAR(38) | idenfifier : Identifier |
OpenMRS class ProgramWorkflowState. FHIR class ReferralRequest.
OpenMRS class | OpenMRS field | DB column | FHIR field | Details |
---|---|---|---|---|
ProgramWorkflowState | programWorkflowStateId : Integer | program_workflow_state_id : INT | - | Instead of database id is used the UUID. |
ProgramWorkflowState | programWorkflow : ProgramWorkflow | program_workflow_id : INT | basedOn : Reference(CarePlan) | |
ProgramWorkflowState | concept : Concept | concept_id : INT | reasonCode : CodeableConcept | |
ProgramWorkflowState | initial : Boolean | initial : TINYINT | extension | Other solutions:
|
ProgramWorkflowState | terminal : Boolean | terminal : TINYINT | extension | Other solutions:
|
BaseOpenmrsMetadata | creator : User | creator : INT | extension | |
BaseOpenmrsMetadata | dateCreated : Date | date_created : DATETIME | extension |
BaseOpenmrsMetadata |
changedBy : |
User |
changed_ |
by : INT |
extension |
BaseOpenmrsMetadata |
dateChanged : |
Date |
date_changed : |
DATETIME | extension |
BaseOpenmrsMetadata |
retired : |
Boolean |
retired : |
TINYINT | extension | |
BaseOpenmrsObject | uuid : String | uuid : |
CHAR(38) | idenfifier : Identifier |