Programs synchronization

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

OpenMRS class

FHIR class

PatientState

EpisodeOfCare

PatientProgram

ReferralRequest

Program

PlanDefinition

ProgramWorkflow

CarePlan

ProgramWorkflowState

ReferralRequest


Keyword extension means that FHIR Extension has to be used to synchronize this field.

OpenMRS class PatientState. FHIR class EpisodeOfCare.

OpenMRS class

OpenMRS field

DB column

FHIR field

Details

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

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

OpenMRS class

OpenMRS field

DB column

FHIR field

Details

PatientProgram

patientProgramId : Integer

patient_program_id : INT

-

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

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

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

uuid : CHAR(38)

idenfifier : Identifier







OpenMRS class ProgramWorkflowState. FHIR class ReferralRequest.



OpenMRS class

OpenMRS field

DB column

FHIR field

Details

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:

  1. using the status field

  2. using the note field

ProgramWorkflowState

terminal : Boolean

terminal : TINYINT

extension

Other solutions:

  1. using the status field

  2. using the note field

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