/** @see org.openmrs.module.kenyaui.simplifier.AbstractSimplifier#simplify(Object) */ @Override protected SimpleObject simplify(VisitType visitType) { SimpleObject ret = new SimpleObject(); ret.put("id", visitType.getId()); ret.put("name", visitType.getName()); ret.put("description", visitType.getDescription()); return ret; }
@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)); }
SimpleObject simplify(UiUtils ui, EmrApiProperties emrApiProperties, Patient patient) { PersonName name = patient.getPersonName(); SimpleObject preferredName = SimpleObject.fromObject(name, ui, "givenName", "middleName", "familyName", "familyName2"); preferredName.put("name", ui.format(name)); PatientIdentifierType primaryIdentifierType = emrApiProperties.getPrimaryIdentifierType(); List<PatientIdentifier> primaryIdentifiers = patient.getPatientIdentifiers(primaryIdentifierType); SimpleObject o = SimpleObject.fromObject( patient, ui, "patientId", "gender", "age", "birthdate", "birthdateEstimated"); o.put("preferredName", preferredName); o.put("primaryIdentifiers", SimpleObject.fromCollection(primaryIdentifiers, ui, "identifier")); return o; }
/** Validate patient records */ @AppAction(EmrConstants.APP_DEVELOPER) public List<SimpleObject> validatePatients(UiUtils ui) { List<SimpleObject> problems = new ArrayList<SimpleObject>(); for (Patient patient : Context.getPatientService().getAllPatients()) { BindException errors = new BindException(patient, ""); Context.getAdministrationService().validate(patient, errors); if (errors.hasErrors()) { SimpleObject problem = new SimpleObject(); problem.put("patient", ui.simplifyObject(patient)); problem.put("errors", uniqueErrorMessages(errors)); problem.put("cause", errors.getCause()); problems.add(problem); } } return problems; }