use of org.openmrs.Encounter in project openmrs-module-pihcore by PIH.
the class PihCloseStaleVisitsTaskTest method test_shouldNotCloseVisitIfMostRecentDispositionKeepsVisitOpen.
@Test
public void test_shouldNotCloseVisitIfMostRecentDispositionKeepsVisitOpen() throws Exception {
ContextSensitiveMetadataTestUtils.setupDispositionDescriptor(conceptService, dispositionService);
ContextSensitiveMetadataTestUtils.setupAdmissionDecisionConcept(conceptService, emrApiProperties);
ContextSensitiveMetadataTestUtils.setupSupportsVisitLocationTag(locationService);
// patient already has one visit in test dataset
Patient patient = patientService.getPatient(7);
// need o tag the unknown location so we don't run into an error when testing against the existing visits in the test dataset
Location unknownLocation = locationService.getLocation(1);
unknownLocation.addTag(emrApiProperties.getSupportsVisitsLocationTag());
locationService.saveLocation(unknownLocation);
Location location = locationService.getLocation(2);
location.addTag(emrApiProperties.getSupportsVisitsLocationTag());
locationService.saveLocation(location);
Visit visit = new Visit();
// because recently-created visits won't be closed
visit.setDateCreated(DateUtils.addHours(new Date(), -30));
visit.setStartDatetime(DateUtils.addHours(new Date(), -14));
visit.setPatient(patient);
visit.setLocation(location);
visit.setVisitType(emrApiProperties.getAtFacilityVisitType());
// create an encounter with a disposition obs
Encounter encounter = new Encounter();
encounter.setPatient(patient);
encounter.setEncounterType(encounterService.getEncounterType(1));
encounter.setEncounterDatetime(visit.getStartDatetime());
Obs dispositionObsGroup = new Obs();
dispositionObsGroup.setConcept(dispositionService.getDispositionDescriptor().getDispositionSetConcept());
Obs dispositionObs = new Obs();
dispositionObs.setConcept(dispositionService.getDispositionDescriptor().getDispositionConcept());
// this fake code is set in ContextSensitiveMetadataTestUtils
dispositionObs.setValueCoded(emrConceptService.getConcept(EmrApiConstants.EMR_CONCEPT_SOURCE_NAME + ":Admit to hospital"));
dispositionObsGroup.addGroupMember(dispositionObs);
encounter.addObs(dispositionObsGroup);
encounterService.saveEncounter(encounter);
visit.addEncounter(encounter);
visitService.saveVisit(visit);
VisitDomainWrapper activeVisit = adtService.getActiveVisit(patient, location);
// sanity check
assertNotNull(activeVisit);
new PihCloseStaleVisitsTask().run();
activeVisit = adtService.getActiveVisit(patient, location);
assertNotNull(activeVisit);
}
use of org.openmrs.Encounter in project openmrs-module-pihcore by PIH.
the class BmiEncounterDataEvaluatorTest method shouldReturnNullIfNoHeight.
@Test
public void shouldReturnNullIfNoHeight() throws Exception {
EncounterBuilder eb = data.encounter();
eb.patient(createPatient());
eb.encounterDatetime(DateUtil.getDateTime(2015, 4, 15));
eb.location(locationService.getLocation("CDI Klinik Ekstèn Jeneral"));
eb.encounterType(getVitalsEncounterType());
eb.obs(Metadata.getConcept("PIH:HEIGHT (CM)"), 152.4);
Encounter enc = eb.save();
EncounterEvaluationContext context = new EncounterEvaluationContext();
context.setBaseEncounters(new EncounterIdSet(enc.getEncounterId()));
EvaluatedEncounterData res = encounterDataService.evaluate(new BmiEncounterDataDefinition(), context);
assertNull(res.getData().get(enc.getEncounterId()));
}
use of org.openmrs.Encounter in project openmrs-module-pihcore by PIH.
the class BmiEncounterDataEvaluatorTest method shouldReturnNullIfNoWeight.
@Test
public void shouldReturnNullIfNoWeight() throws Exception {
EncounterBuilder eb = data.encounter();
eb.patient(createPatient());
eb.encounterDatetime(DateUtil.getDateTime(2015, 4, 15));
eb.location(locationService.getLocation("CDI Klinik Ekstèn Jeneral"));
eb.encounterType(getVitalsEncounterType());
eb.obs(Metadata.getConcept("PIH:WEIGHT (KG)"), 45.4);
Encounter enc = eb.save();
EncounterEvaluationContext context = new EncounterEvaluationContext();
context.setBaseEncounters(new EncounterIdSet(enc.getEncounterId()));
EvaluatedEncounterData res = encounterDataService.evaluate(new BmiEncounterDataDefinition(), context);
assertNull(res.getData().get(enc.getEncounterId()));
}
use of org.openmrs.Encounter in project openmrs-module-pihcore by PIH.
the class RetrospectiveEncounterDataEvaluatorTest method shouldFindEncounterToBeRetrospective.
@Test
public void shouldFindEncounterToBeRetrospective() throws Exception {
EncounterBuilder eb = data.encounter();
eb.patient(createPatient());
eb.encounterDatetime(DateUtil.getDateTime(2015, 4, 15));
eb.location(locationService.getLocation("CDI Klinik Ekstèn Jeneral"));
eb.encounterType(encounterService.getAllEncounterTypes().get(0));
Encounter enc = eb.save();
EncounterEvaluationContext context = new EncounterEvaluationContext();
context.setBaseEncounters(new EncounterIdSet(enc.getEncounterId()));
EvaluatedEncounterData res = encounterDataService.evaluate(new RetrospectiveEncounterDataDefinition(), context);
assertTrue((Boolean) res.getData().get(enc.getEncounterId()));
}
use of org.openmrs.Encounter in project openmrs-module-pihcore by PIH.
the class PihCloseStaleVisitsTaskTest method test_shouldNotCloseVisitIfHasEncounterWithinExpirationRange.
@Test
public void test_shouldNotCloseVisitIfHasEncounterWithinExpirationRange() throws Exception {
ContextSensitiveMetadataTestUtils.setupDispositionDescriptor(conceptService, dispositionService);
ContextSensitiveMetadataTestUtils.setupAdmissionDecisionConcept(conceptService, emrApiProperties);
ContextSensitiveMetadataTestUtils.setupSupportsVisitLocationTag(locationService);
// patient already has one visit in test dataset
Patient patient = patientService.getPatient(7);
// need o tag the unknown location so we don't run into an error when testing against the existing visits in the test dataset
Location unknownLocation = locationService.getLocation(1);
unknownLocation.addTag(emrApiProperties.getSupportsVisitsLocationTag());
locationService.saveLocation(unknownLocation);
Location location = locationService.getLocation(2);
location.addTag(emrApiProperties.getSupportsVisitsLocationTag());
locationService.saveLocation(location);
Visit visit = new Visit();
// because recently-created visits won't be closed
visit.setDateCreated(DateUtils.addHours(new Date(), -30));
visit.setStartDatetime(DateUtils.addHours(new Date(), -14));
visit.setPatient(patient);
visit.setLocation(location);
visit.setVisitType(emrApiProperties.getAtFacilityVisitType());
// create an encounter within the expiration range
Encounter encounter = new Encounter();
encounter.setPatient(patient);
encounter.setEncounterType(encounterService.getEncounterType(1));
// expire hours - 1
encounter.setEncounterDatetime(DateUtils.addHours(new Date(), -(emrApiProperties.getVisitExpireHours() - 1)));
encounterService.saveEncounter(encounter);
visit.addEncounter(encounter);
visitService.saveVisit(visit);
VisitDomainWrapper activeVisit = adtService.getActiveVisit(patient, location);
// sanity check
assertNotNull(activeVisit);
new PihCloseStaleVisitsTask().run();
activeVisit = adtService.getActiveVisit(patient, location);
assertNotNull(activeVisit);
}
Aggregations