Skip to content

Commit

Permalink
Neha | bdshr-1168 | looking for order only if test result has an orde…
Browse files Browse the repository at this point in the history
…r associated with it.
  • Loading branch information
nehashri committed Mar 1, 2016
1 parent ad74f82 commit f994624
Show file tree
Hide file tree
Showing 3 changed files with 252 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,8 @@ private void populateResultsAndNotes(ShrEncounterBundle encounterComposition, Em

private Obs findObsByOrder(EmrEncounter emrEncounter, Order order) {
for (Obs obs : emrEncounter.getTopLevelObs()) {
if (obs.getOrder().equals(order) && obs.getConcept().equals(order.getConcept())) {
Order obsOrder = obs.getOrder();
if (obsOrder != null && order.equals(obsOrder) && obs.getConcept().equals(order.getConcept())) {
return obs;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,38 @@ public void shouldMapDiagnosticReportForLocalTestConcept() throws Exception {

assertTestObsWithTextResult(topLevelObs, localTestConcept, "20.0", "changed", null);
}

@Test
public void shouldMapDiagnosticReportForLocalTestAndTRPanel() throws Exception {
Bundle bundle = (Bundle) new MapperTestHelper()
.loadSampleFHIREncounter("encounterBundles/dstu2/diagnosticReportWithLocalTestAndTRPanelResult.xml", springContext);
List<IResource> resources = FHIRBundleHelper.identifyResourcesByName(bundle, new DiagnosticReport().getResourceName());
Encounter encounter = new Encounter();
EmrEncounter emrEncounter = new EmrEncounter(encounter);
encounter.setPatient(patientService.getPatient(1));

ShrEncounterBundle encounterComposition = new ShrEncounterBundle(bundle, "98101039678", "shr-enc-id-1");
for (IResource resource : resources) {
diagnosticReportMapper.map(resource, emrEncounter, encounterComposition, getSystemProperties("1"));
}
Set<Obs> obsSet = emrEncounter.getTopLevelObs();
assertEquals(2, obsSet.size());

Concept localTestConcept = conceptService.getConceptByName("WBC" + MRSProperties.UNVERIFIED_BY_TR);
Obs localTestObs = findObsByConcept(obsSet, localTestConcept);
assertNull(localTestObs.getOrder());
assertTestObsWithTextResult(localTestObs, localTestConcept, "20.0", "changed", null);

Concept trPanelConcept = conceptService.getConcept(302);
Obs trPanelObs = findObsByConcept(obsSet, trPanelConcept);
Order panelOrder = orderService.getOrder(16);
assertEquals(panelOrder, trPanelObs.getOrder());
assertEquals(1, trPanelObs.getGroupMembers().size());
Concept hemoglobinConcept = conceptService.getConcept(303);
Obs hemoglobinObs = findObsByConcept(trPanelObs.getGroupMembers(), hemoglobinConcept);
assertNotNull(hemoglobinObs);
assertTestObsWithNumericResult(hemoglobinObs, hemoglobinConcept, 20.0, null, panelOrder);
}

private void assertTestObsWithNumericResult(Obs topLevelObs, Concept resultObsConcept, Double resultValueNumeric, String notesValue, Order testOrder) {
Obs resultObsGroupObs = assertTestObs(topLevelObs, notesValue, testOrder);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
<Bundle xmlns="http://hl7.org/fhir">
<id value="9122262f-45a7-4ee0-8614-238b98dd302e"/>
<meta>
<lastUpdated value="2015-08-31T17:03:08.000+05:30"/>
</meta>
<type value="collection"/>
<entry>
<fullUrl value="urn:uuid:199c90a7-6c15-4c8e-8681-2659526fee5e"/>
<resource>
<Composition xmlns="http://hl7.org/fhir">
<id value="199c90a7-6c15-4c8e-8681-2659526fee5e"/>
<identifier>
<value value="urn:uuid:199c90a7-6c15-4c8e-8681-2659526fee5e"/>
</identifier>
<date value="2015-08-31T17:03:08.000+05:30"/>
<type>
<coding>
<system value="http://hl7.org/fhir/vs/doc-typecodes"/>
<code value="51899-3"/>
<display value="Details Document"/>
</coding>
</type>
<title value="Patient Clinical Encounter" />
<status value="final"/>
<confidentiality value="N"/>
<subject>
<reference value="http://172.18.46.56:8081/api/v1/patients/98101039678"/>
<display value="98101039678"/>
</subject>
<author>
<reference value="http://hrmtest.dghs.gov.bd/api/1.0/facilities/10019841.json"/>
</author>
<encounter>
<reference value="urn:uuid:85c310fd-1f9d-4c1e-a16b-4e53a636c46d"/>
</encounter>
<section>
<entry>
<reference value="urn:uuid:85c310fd-1f9d-4c1e-a16b-4e53a636c46d"/>
<display value="Encounter"/>
</entry>
</section>
<section>
<entry>
<reference value="urn:uuid:b052c4dc-d425-4ef7-90f8-0376d6e9e29a"/>
<display value="WBC"/>
</entry>
</section>
<section>
<entry>
<reference value="urn:uuid:b052c4dc-d425-4ef7-sl2a-0376d6e9e29a"/>
<display value="Hemoglobin"/>
</entry>
</section>
<section>
<entry>
<reference value="urn:uuid:2f933127-feb9-4131-be06-4c92980d0b7b"/>
<display value="Diagnostic Report"/>
</entry>
</section>
<section>
<entry>
<reference value="urn:uuid:2f933127-0302-4131-be06-4c92980d0b7b"/>
<display value="Diagnostic Report"/>
</entry>
</section>
</Composition>
</resource>
</entry>
<entry>
<fullUrl value="urn:uuid:85c310fd-1f9d-4c1e-a16b-4e53a636c46d"/>
<resource>
<Encounter xmlns="http://hl7.org/fhir">
<id value="85c310fd-1f9d-4c1e-a16b-4e53a636c46d"/>
<identifier>
<value value="urn:uuid:85c310fd-1f9d-4c1e-a16b-4e53a636c46d"/>
</identifier>
<status value="finished"/>
<class value="outpatient"/>
<type>
<text value="LAB_RESULT"/>
</type>
<patient>
<reference value="http://172.18.46.56:8081/api/v1/patients/98101039678"/>
<display value="98101039678"/>
</patient>
<serviceProvider>
<reference value="http://hrmtest.dghs.gov.bd/api/1.0/facilities/10019841.json"/>
</serviceProvider>
</Encounter>
</resource>
</entry>
<entry>
<fullUrl value="urn:uuid:b052c4dc-d425-4ef7-90f8-0376d6e9e29a"/>
<resource>
<Observation xmlns="http://hl7.org/fhir">
<id value="b052c4dc-d425-4ef7-90f8-0376d6e9e29a"/>
<code>
<coding>
<display value="WBC"/>
</coding>
</code>
<valueQuantity>
<value value="20.0"/>
</valueQuantity>
<comments value="changed"/>
<status value="final"/>
<identifier>
<value value="urn:uuid:b052c4dc-d425-4ef7-90f8-0376d6e9e29a"/>
</identifier>
<subject>
<reference value="http://172.18.46.56:8081/api/v1/patients/98101039678"/>
<display value="98101039678"/>
</subject>
<encounter>
<reference value="urn:uuid:85c310fd-1f9d-4c1e-a16b-4e53a636c46d"/>
</encounter>
</Observation>
</resource>
</entry>
<entry>
<fullUrl value="urn:uuid:2f933127-feb9-4131-be06-4c92980d0b7b"/>
<resource>
<DiagnosticReport xmlns="http://hl7.org/fhir">
<id value="2f933127-feb9-4131-be06-4c92980d0b7b"/>
<code>
<coding>
<display value="WBC"/>
</coding>
</code>
<status value="final"/>
<issued value="2015-08-31T17:14:30.000+05:30"/>
<subject>
<reference value="http://172.18.46.56:8081/api/v1/patients/98101039678"/>
<display value="98101039678"/>
</subject>
<encounter>
<reference value="urn:uuid:85c310fd-1f9d-4c1e-a16b-4e53a636c46d"/>
</encounter>
<identifier>
<value value="urn:uuid:2f933127-feb9-4131-be06-4c92980d0b7b"/>
</identifier>
<effectiveDateTime value="2015-08-31T17:03:09.000+05:30"/>
<result>
<reference value="urn:uuid:b052c4dc-d425-4ef7-90f8-0376d6e9e29a"/>
</result>
</DiagnosticReport>
</resource>
</entry>
<entry>
<fullUrl value="urn:uuid:b052c4dc-d425-4ef7-sl2a-0376d6e9e29a"/>
<resource>
<Observation xmlns="http://hl7.org/fhir">
<id value="b052c4dc-d425-4ef7-sl2a-0376d6e9e29a"/>
<code>
<coding>
<system value="http://127.0.0.1:9997/openmrs/ws/rest/v1/tr/referenceterms/94f5e936-1b2d-421d-8f83-21048270bf32"/>
<code value="20563-3"/>
<display value="Hemoglobin"/>
</coding>
<coding>
<system value="http://127.0.0.1:9997/openmrs/ws/rest/v1/tr/concepts/79647ed4-a60e-4cf5-ba68-cf4d55956cba"/>
<code value="79647ed4-a60e-4cf5-ba68-cf4d55956cba"/>
<display value="Hemoglobin"/>
</coding>
</code>
<valueQuantity>
<value value="20.0"/>
</valueQuantity>
<comments value="changed"/>
<status value="final"/>
<identifier>
<value value="urn:uuid:b052c4dc-d425-4ef7-sl2a-0376d6e9e29a"/>
</identifier>
<subject>
<reference value="http://172.18.46.56:8081/api/v1/patients/98101039678"/>
<display value="98101039678"/>
</subject>
<encounter>
<reference value="urn:uuid:85c310fd-1f9d-4c1e-a16b-4e53a636c46d"/>
</encounter>
</Observation>
</resource>
</entry>
<entry>
<fullUrl value="urn:uuid:2f933127-0302-4131-be06-4c92980d0b7b"/>
<resource>
<DiagnosticReport xmlns="http://hl7.org/fhir">
<id value="2f933127-0302-4131-be06-4c92980d0b7b"/>
<code>
<coding>
<system value="http://127.0.0.1:9997/openmrs/ws/rest/v1/tr/concepts/79647ed4-a60e-4cf5-ba68-cf4d55956cba"/>
<code value="79647ed4-a60e-4cf5-ba68-cf4d55956cba"/>
<display value="Hemoglobin"/>
</coding>
</code>
<status value="final"/>
<issued value="2015-08-31T17:14:30.000+05:30"/>
<subject>
<reference value="http://172.18.46.56:8081/api/v1/patients/98101039678"/>
<display value="98101039678"/>
</subject>
<encounter>
<reference value="urn:uuid:85c310fd-1f9d-4c1e-a16b-4e53a636c46d"/>
</encounter>
<identifier>
<value value="urn:uuid:2f933127-0302-4131-be06-4c92980d0b7b"/>
</identifier>
<request>
<reference value="http://localhost:9997/patients/hid/encounters/shrEncounterId2"/>
</request>
<effectiveDateTime value="2015-08-31T17:03:09.000+05:30"/>
<result>
<reference value="urn:uuid:b052c4dc-d425-4ef7-sl2a-0376d6e9e29a"/>
</result>
</DiagnosticReport>
</resource>
</entry>
</Bundle>

0 comments on commit f994624

Please sign in to comment.