@Test public void testParsingDispositions() throws Exception { Concept admit = new ConceptBuilder( null, conceptService.getConceptDatatypeByName("N/A"), conceptService.getConceptClassByName("Misc")) .addName("Admit") .get(); when(emrConceptService.getConcept("test:admit")).thenReturn(admit); Obs dispositionObs = dispositionDescriptor.buildObsGroup( new Disposition( "emrapi.admit", "Admit", "test:admit", Collections.<String>emptyList(), Collections.<DispositionObs>emptyList()), emrConceptService); encounter.addObs(doNotGoToServiceToFormatMembers(dispositionObs)); ParsedObs parsed = parser.parseObservations(Locale.ENGLISH); assertThat(parsed.getDiagnoses().size(), is(0)); assertThat(parsed.getDispositions().size(), is(1)); assertThat(parsed.getObs().size(), is(0)); assertThat(path(parsed.getDispositions(), 0, "disposition"), is((Object) "Admit")); assertThat( path(parsed.getDispositions(), 0, "additionalObs"), is((Object) Collections.emptyList())); }
@Test public void testParsingSimpleObs() throws Exception { ConceptDatatype textDatatype = conceptService.getConceptDatatypeByName("Text"); ConceptClass misc = conceptService.getConceptClassByName("Misc"); String consultNote = "Consult note"; // intentionally the same as what will result from // capitalizeFirstLetter(consultNote) String valueText = "Patient is here for blah blah blah."; Concept consultComments = new ConceptBuilder(conceptService, textDatatype, misc).addName(consultNote).get(); encounter.addObs(new ObsBuilder().setConcept(consultComments).setValue(valueText).get()); ParsedObs parsed = parser.parseObservations(Locale.ENGLISH); assertThat(parsed.getDiagnoses().size(), is(0)); assertThat(parsed.getDispositions().size(), is(0)); assertThat(parsed.getObs().size(), is(1)); assertThat(path(parsed.getObs(), 0, "question"), is((Object) consultNote)); assertThat(path(parsed.getObs(), 0, "answer"), is((Object) valueText)); }
@Test public void testParsingObsWithLocationAnswer() throws Exception { ConceptDatatype textDatatype = conceptService.getConceptDatatypeByName("Text"); ConceptClass misc = conceptService.getConceptClassByName("Misc"); Location xanadu = new Location(); xanadu.setName("Xanadu"); when(locationService.getLocation(2)).thenReturn(xanadu); Concept someLocation = new ConceptBuilder(conceptService, textDatatype, misc).addName("Some location").get(); encounter.addObs( new ObsBuilder() .setConcept(someLocation) .setValue("2") .setComment("org.openmrs.Location") .get()); ParsedObs parsed = parser.parseObservations(Locale.ENGLISH); ; assertThat(parsed.getObs().size(), is(1)); assertThat(path(parsed.getObs(), 0, "question"), is((Object) "Some location")); assertThat(path(parsed.getObs(), 0, "answer"), is((Object) "Xanadu")); }
@Test public void testParsingDiagnoses() throws Exception { encounter.addObs( diagnosisMetadata.buildDiagnosisObsGroup( new Diagnosis(new CodedOrFreeTextAnswer("Random Disease"), Diagnosis.Order.PRIMARY))); ParsedObs parsed = parser.parseObservations(Locale.ENGLISH); assertThat(parsed.getDiagnoses().size(), is(1)); assertThat(parsed.getDispositions().size(), is(0)); assertThat(parsed.getObs().size(), is(0)); assertThat( path(parsed.getDiagnoses(), 0, "question"), is((Object) "coreapps.patientDashBoard.diagnosisQuestion.PRIMARY")); assertThat( path(parsed.getDiagnoses(), 0, "answer"), is((Object) "(coreapps.Diagnosis.Certainty.PRESUMED) \"Random Disease\"")); assertThat(path(parsed.getDiagnoses(), 0, "order"), is((Object) 0)); }
@Test public void testParsingDispositionWithTransferLocation() throws Exception { Concept admit = new ConceptBuilder( null, conceptService.getConceptDatatypeByName("N/A"), conceptService.getConceptClassByName("Misc")) .addName("Transfer") .get(); when(emrConceptService.getConcept("test:transfer")).thenReturn(admit); Obs dispositionObs = dispositionDescriptor.buildObsGroup( new Disposition( "emrapi.transfer", "Transfer", "test:transfer", Collections.<String>emptyList(), Collections.<DispositionObs>emptyList()), emrConceptService); Obs transferLocationObs = new Obs(); transferLocationObs.setObsId(100); transferLocationObs.setConcept(dispositionDescriptor.getInternalTransferLocationConcept()); transferLocationObs.setValueText("3"); dispositionObs.addGroupMember(transferLocationObs); Location transferLocation = new Location(); transferLocation.setName("Outpatient clinic"); when(locationService.getLocation(3)).thenReturn(transferLocation); encounter.addObs(doNotGoToServiceToFormatMembers(dispositionObs)); ParsedObs parsed = parser.parseObservations(Locale.ENGLISH); SimpleObject expectedTransferLocationObject = SimpleObject.create("obsId", transferLocationObs.getObsId()); expectedTransferLocationObject.put("question", "Transfer location"); expectedTransferLocationObject.put("answer", "Outpatient clinic"); List<SimpleObject> expectedAdditionalObsList = new ArrayList<SimpleObject>(); expectedAdditionalObsList.add(expectedTransferLocationObject); assertThat(parsed.getDiagnoses().size(), is(0)); assertThat(parsed.getDispositions().size(), is(1)); assertThat(parsed.getObs().size(), is(0)); assertThat(path(parsed.getDispositions(), 0, "disposition"), is((Object) "Transfer")); assertThat( path(parsed.getDispositions(), 0, "additionalObs"), is((Object) expectedAdditionalObsList)); }
@Test public void testParsingDispositionWithDateOfDeath() throws Exception { Concept admit = new ConceptBuilder( null, conceptService.getConceptDatatypeByName("N/A"), conceptService.getConceptClassByName("Misc")) .addName("Death") .get(); when(emrConceptService.getConcept("test:death")).thenReturn(admit); Obs dispositionObs = dispositionDescriptor.buildObsGroup( new Disposition( "emrapi.death", "Death", "test:death", Collections.<String>emptyList(), Collections.<DispositionObs>emptyList()), emrConceptService); Date dateOfDeath = new DateTime(2012, 2, 20, 10, 10, 10).toDate(); Obs dateOfDeathObs = new Obs(); dateOfDeathObs.setObsId(100); dateOfDeathObs.setConcept(dispositionDescriptor.getDateOfDeathConcept()); dateOfDeathObs.setValueDate(dateOfDeath); dispositionObs.addGroupMember(dateOfDeathObs); encounter.addObs(doNotGoToServiceToFormatMembers(dispositionObs)); ParsedObs parsed = parser.parseObservations(Locale.ENGLISH); SimpleObject expectedAdmissionLocationObject = SimpleObject.create("obsId", dateOfDeathObs.getObsId()); expectedAdmissionLocationObject.put("question", "Date of death"); expectedAdmissionLocationObject.put("answer", "20 Feb 2012 10:10 AM"); List<SimpleObject> expectedAdditionalObsList = new ArrayList<SimpleObject>(); expectedAdditionalObsList.add(expectedAdmissionLocationObject); assertThat(parsed.getDiagnoses().size(), is(0)); assertThat(parsed.getDispositions().size(), is(1)); assertThat(parsed.getObs().size(), is(0)); assertThat(path(parsed.getDispositions(), 0, "disposition"), is((Object) "Death")); assertThat( path(parsed.getDispositions(), 0, "additionalObs"), is((Object) expectedAdditionalObsList)); }