Skip to content

Commit 2038ead

Browse files
author
nehashri
committed
Neha | SHR-1365 | sending performer with procedure.
1 parent e4d294c commit 2038ead

2 files changed

Lines changed: 21 additions & 1 deletion

File tree

fhirmapper/src/main/java/org/openmrs/module/fhir/mapper/bundler/ProcedureMapper.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import ca.uhn.fhir.model.dstu2.composite.PeriodDt;
99
import ca.uhn.fhir.model.dstu2.composite.ResourceReferenceDt;
1010
import ca.uhn.fhir.model.dstu2.resource.DiagnosticReport;
11+
import ca.uhn.fhir.model.dstu2.resource.Encounter;
1112
import ca.uhn.fhir.model.dstu2.resource.Observation;
1213
import ca.uhn.fhir.model.dstu2.resource.Procedure;
1314
import ca.uhn.fhir.model.dstu2.valueset.ObservationStatusEnum;
@@ -71,13 +72,23 @@ private List<FHIRResource> mapProcedure(Obs obs, FHIREncounter fhirEncounter, Sy
7172
procedure.setStatus(getProcedureStatus(compoundObservationProcedure));
7273
procedure.setNotes(getProcedureNotes(compoundObservationProcedure));
7374
procedure.setPerformed(getProcedurePeriod(compoundObservationProcedure));
75+
setPerformers(fhirEncounter, procedure);
7476
addReportToProcedure(compoundObservationProcedure, fhirEncounter, systemProperties, procedure, resources);
7577
FHIRResource procedureResource = new FHIRResource("Procedure", procedure.getIdentifier(), procedure);
7678
resources.add(procedureResource);
7779
}
7880
return resources;
7981
}
8082

83+
private void setPerformers(FHIREncounter fhirEncounter, Procedure procedure) {
84+
List<Encounter.Participant> participants = fhirEncounter.getEncounter().getParticipant();
85+
for (Encounter.Participant participant : participants) {
86+
Procedure.Performer performer = new Procedure.Performer();
87+
performer.setActor(participant.getIndividual());
88+
procedure.addPerformer(performer);
89+
}
90+
}
91+
8192
private BoundCodeDt<ProcedureStatusEnum> getProcedureStatus(CompoundObservation procedure) {
8293
Obs procdureStatusObs = procedure.getMemberObsForConcept(omrsConceptLookup.findTRConceptOfType(TrValueSetType.PROCEDURE_STATUS));
8394
if (procdureStatusObs != null) {

fhirmapper/src/test/java/org/openmrs/module/fhir/mapper/bundler/ProcedureMapperIT.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@
3131
import java.util.Date;
3232
import java.util.List;
3333

34-
import static org.junit.Assert.*;
34+
import static org.junit.Assert.assertEquals;
35+
import static org.junit.Assert.assertNotNull;
36+
import static org.junit.Assert.assertTrue;
3537
import static org.openmrs.module.fhir.MapperTestHelper.containsCoding;
3638
import static org.openmrs.module.fhir.MapperTestHelper.getSystemProperties;
3739
import static org.openmrs.module.fhir.TestFhirFeedHelper.getResourceByReference;
@@ -85,6 +87,10 @@ public void shouldMapPatientAndEncounter() {
8587
ResourceReferenceDt patient = new ResourceReferenceDt();
8688
patient.setReference("Hid");
8789
fhirEncounter.setPatient(patient);
90+
Encounter.Participant participant = new Encounter.Participant();
91+
ResourceReferenceDt resourceReferenceDt = new ResourceReferenceDt("10");
92+
participant.setIndividual(resourceReferenceDt);
93+
fhirEncounter.addParticipant(participant);
8894

8995
List<FHIRResource> fhirResources = mapProcedure(1100, fhirEncounter);
9096
assertEquals(3, fhirResources.size());
@@ -93,6 +99,9 @@ public void shouldMapPatientAndEncounter() {
9399
assertEquals(patient, procedure.getSubject());
94100

95101
assertEquals(fhirEncounter.getId().getValue(), procedure.getEncounter().getReference().getValue());
102+
103+
assertEquals(1, procedure.getPerformer().size());
104+
assertEquals(resourceReferenceDt, procedure.getPerformer().get(0).getActor());
96105
}
97106

98107
@Test

0 commit comments

Comments
 (0)