From ad74f82a4f28c08899e9460a955a8500847d6951 Mon Sep 17 00:00:00 2001 From: nehashri Date: Thu, 25 Feb 2016 16:47:58 +0530 Subject: [PATCH] Neha | bdshr-1156 | fixing openmrs to fhir visit type mapping. --- .../fhir/mapper/bundler/EncounterMapper.java | 2 +- .../mapper/bundler/EncounterMapperTest.java | 39 ++++++++++++++----- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/fhirmapper/src/main/java/org/openmrs/module/fhir/mapper/bundler/EncounterMapper.java b/fhirmapper/src/main/java/org/openmrs/module/fhir/mapper/bundler/EncounterMapper.java index ec55cfe3..a49b657a 100644 --- a/fhirmapper/src/main/java/org/openmrs/module/fhir/mapper/bundler/EncounterMapper.java +++ b/fhirmapper/src/main/java/org/openmrs/module/fhir/mapper/bundler/EncounterMapper.java @@ -78,7 +78,7 @@ private void setClass(org.openmrs.Encounter openMrsEncounter, Encounter encounte private EncounterClassEnum identifyEncounterClass(final String visitType) { try { - return EncounterClassEnum.valueOf(visitType); + return EncounterClassEnum.forCode(visitType); } catch (Exception e) { logger.warn("Could not identify FHIR Encounter.class for MRS visitType:" + visitType); } diff --git a/fhirmapper/src/test/java/org/openmrs/module/fhir/mapper/bundler/EncounterMapperTest.java b/fhirmapper/src/test/java/org/openmrs/module/fhir/mapper/bundler/EncounterMapperTest.java index 04e485e2..017c5d10 100644 --- a/fhirmapper/src/test/java/org/openmrs/module/fhir/mapper/bundler/EncounterMapperTest.java +++ b/fhirmapper/src/test/java/org/openmrs/module/fhir/mapper/bundler/EncounterMapperTest.java @@ -1,6 +1,7 @@ package org.openmrs.module.fhir.mapper.bundler; import ca.uhn.fhir.model.dstu2.composite.ResourceReferenceDt; +import ca.uhn.fhir.model.dstu2.valueset.EncounterClassEnum; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; @@ -32,12 +33,8 @@ public void setUp(){ @Test public void shouldSetSubject() throws Exception { - Encounter encounter = new Encounter(); - encounter.setEncounterType(new EncounterType("foo", "bar")); - Patient patient = new Patient(1000); - encounter.setPatient(patient); - encounter.setVisit(getVisit()); String healthId = "1234"; + Encounter encounter = getMrsEncounter("foo", "foo"); FHIREncounter fhirEncounter = encounterMapper.map(encounter, healthId, getSystemProperties("1")); ResourceReferenceDt subject = fhirEncounter.getPatient(); @@ -45,9 +42,33 @@ public void shouldSetSubject() throws Exception { assertEquals("http://public.com/api/default/patients/" + healthId, subject.getReference().getValue()); } - private Visit getVisit() { - Visit visit = new Visit(2000); - visit.setVisitType(new VisitType("foo", "bar")); - return visit; + @Test + public void shouldSetVisitType() throws Exception { + assertEquals(EncounterClassEnum.OUTPATIENT.getCode(), mapEncounterWithVisitType("LAB VISIT").getClassElement()); + assertEquals(EncounterClassEnum.HOME.getCode(), mapEncounterWithVisitType("home").getClassElement()); + assertEquals(EncounterClassEnum.FIELD.getCode(), mapEncounterWithVisitType("field").getClassElement()); + assertEquals(EncounterClassEnum.AMBULATORY.getCode(), mapEncounterWithVisitType("ambulatory").getClassElement()); + assertEquals(EncounterClassEnum.EMERGENCY.getCode(), mapEncounterWithVisitType("emergency").getClassElement()); + assertEquals(EncounterClassEnum.OUTPATIENT.getCode(), mapEncounterWithVisitType("outpatient").getClassElement()); + assertEquals(EncounterClassEnum.INPATIENT.getCode(), mapEncounterWithVisitType("inpatient").getClassElement()); + assertEquals(EncounterClassEnum.OUTPATIENT.getCode(), mapEncounterWithVisitType("OPD").getClassElement()); + assertEquals(EncounterClassEnum.INPATIENT.getCode(), mapEncounterWithVisitType("IPD").getClassElement()); + } + + private ca.uhn.fhir.model.dstu2.resource.Encounter mapEncounterWithVisitType(String visitType) { + String healthId = "1234"; + Encounter encounter = getMrsEncounter("foo", visitType); + return encounterMapper.map(encounter, healthId, getSystemProperties("1")).getEncounter(); + } + + private Encounter getMrsEncounter(String encounterType, String visitType) { + Encounter encounter = new Encounter(); + encounter.setEncounterType(new EncounterType(encounterType, "Desc")); + Patient patient = new Patient(1000); + encounter.setPatient(patient); + Visit visit = new Visit(3000); + visit.setVisitType(new VisitType(visitType, "Desc")); + encounter.setVisit(visit); + return encounter; } } \ No newline at end of file