Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

NoOpenMRS EntityFHIR ResourceFHIR Maturity
Level
Notes
1Patienthttps://www.hl7.org/fhir/patient.html5 
2Obshttps://www.hl7.org/fhir/observation.html5 
3Encounterhttps://www.hl7.org/fhir/encounter.html2 
4VisitList of encounters can be considered: https://www.hl7.org/fhir/list.html 

FHIR's Encounter resource can serve either as an OpenMRS Encounter or OpenMRS Visit. OpenMRS Encounter is a point in time.

  • If a FHIR Encounter spans a period of time (e.g., days), it would be an OpenMRS Visit.
  • If a FHIR Encounter has observations linked to it, it's an OpenMRS Encounter
5Providerhttps://www.hl7.org/fhir/practitioner.html3 
6Allergyhttps://www.hl7.org/fhir/allergyintolerance.html3 
7Drughttps://www.hl7.org/fhir/medication.html3 
8Locationhttps://www.hl7.org/fhir/location.html3 
9Order https://www.hl7.org/fhir/medicationrequest.html 

FHIR Nutrition Order and MedicationRequest can be considered, but orders have a broader sense in OpenMRS.

Priority would be MedicationRequest (Drug Order) and ProcedureRequest (Test Order)

10PatientProgramhttps://www.hl7.org/fhir/episodeofcare.html2 
11PatientStatehttps://www.hl7.org/fhir/condition.html3 
12Personhttps://www.hl7.org/fhir/person.html2 
13Relationshiphttps://www.hl7.org/fhir/relatedperson.html2 
14Cohorthttps://www.hl7.org/fhir/group.html1 

Synchronizing objects via FHIR

To add another object to FHIR synchronization, you must implement the FHIR Strategy Pattern

...

Code Block
package org.openmrs.module.fhir.api.strategies.objectname;

import org.hl7.fhir.dstu3.model.Objectname;

public interface GenericObjectnameStrategy {

   Objectname getObjectname(String uuid);

   void deleteObjectname(String uuid);

   Objectname updateObjectname(String uuid, Objectname objectname);

   Objectname createObjectname(Objectname objectname);
}


...

Code Block
package org.openmrs.module.fhir.api.strategies.objectname;

import org.openmrs.api.context.Context;
import org.openmrs.module.fhir.api.util.FHIRUtils;

public class ObjectNameStrategyUtil {

   public static GenericObjectNameStrategy getObjectNameStrategy() {
      String strategy = FHIRUtils.getObjectNameStrategy();

      return strategy == null ? new ObjectNameStrategy() :
            Context.getRegisteredComponent(strategy, GenericObjectNameStrategy.class);
   }
}