@Test public void testFetchPatientAppointments() { try { when(this.mockJMeadowsClient.getPatientAppointments(any(JMeadowsQuery.class))) .thenReturn(createTestData()); JMeadowsQuery query = new JMeadowsQueryBuilder().user(user).patient(patient).build(); PatientIds patientIds = new PatientIds.Builder().pid(pid).icn(icn).uid(uid).edipi(edipi).build(); List<VistaDataChunk> vistaDataChunkList = jMeadowsAppointmentService.fetchDodPatientAppointments(query, patientIds); assertNotNull(vistaDataChunkList); // dod status report should have been removed assertThat(vistaDataChunkList.size(), is(2)); List<PatientAppointments> testDataList = createTestData(); for (int i = 0; i < vistaDataChunkList.size(); i++) { VistaDataChunk vistaDataChunk = vistaDataChunkList.get(i); assertThat( JMeadowsAppointmentService.DOMAIN_APPOINTMENT_VISIT, is(vistaDataChunk.getDomain())); assertThat(2, is(vistaDataChunk.getItemCount())); assertThat(i + 1, is(vistaDataChunk.getItemIndex())); assertThat(vistaId, is(vistaDataChunk.getParams().get("vistaId"))); assertThat(dfn, is(vistaDataChunk.getParams().get("patientDfn"))); assertThat(vistaId, is(vistaDataChunk.getSystemId())); assertThat(dfn, is(vistaDataChunk.getLocalPatientId())); assertThat(icn, is(vistaDataChunk.getPatientIcn())); assertThat(pid, is(vistaDataChunk.getPatientId())); assertThat( "vrpcb://9E7A/HMP SYNCHRONIZATION CONTEXT/HMPDJFS API", is(vistaDataChunk.getRpcUri())); assertThat(VistaDataChunk.NEW_OR_UPDATE, is(vistaDataChunk.getType())); Map<String, Object> jsonMap = vistaDataChunk.getJsonMap(); PatientAppointments testPatientAppointment = testDataList.get(i); // assertThat("Allergy/Adverse Reaction", is(jsonMap.get("kind"))); assertThat("DOD", is(jsonMap.get("facilityCode"))); assertThat("DOD", is(jsonMap.get("facilityName"))); assertThat( "urn:va:appointment:DOD:" + edipi + ":" + testPatientAppointment.getCdrEventId(), is(jsonMap.get("uid"))); List<Map<String, Object>> providers = (List<Map<String, Object>>) jsonMap.get("providers"); Map<String, Object> provider = providers.get(0); assertThat(testPatientAppointment.getProviderName(), is(provider.get("name"))); } } catch (JMeadowsException_Exception e) { fail(e.getMessage()); } }
private List<PatientAppointments> createTestData() { // create two test Appointments Site dodSite = new Site(); dodSite.setMoniker("DOD"); dodSite.setSiteCode("DOD"); dodSite.setName("DOD"); PatientAppointments appointment1 = new PatientAppointments(); appointment1.setSourceProtocol(SOURCE_PROTOCOL_DODADAPTER); appointment1.setSite(dodSite); appointment1.setCdrEventId("123456789"); PatientAppointments appointment2 = new PatientAppointments(); appointment2.setSourceProtocol(SOURCE_PROTOCOL_DODADAPTER); appointment2.setSite(dodSite); appointment2.setCdrEventId("987654321"); // generate dod status report beans PatientAppointments dodStatusReport1 = new PatientAppointments(); // dodStatusReport1.setAllergyName("status.report.text"); Site dodStatusSite = new Site(); dodStatusSite.setMoniker(DOD_STATUS_REPORT_FLAG); dodStatusSite.setName(DOD_STATUS_REPORT_FLAG); dodStatusSite.setSiteCode(DOD_STATUS_REPORT_FLAG); dodStatusReport1.setSite(dodStatusSite); // generate connection unavailable bean PatientAppointments connectionUnavailable = new PatientAppointments(); // connectionUnavailable.setAllergyName("Connection unavailable."); Site caSite = new Site(); caSite.setMoniker("DOD"); caSite.setName("DOD"); caSite.setAgency("DOD"); caSite.setSiteCode("DOD"); connectionUnavailable.setSite(caSite); return Arrays.asList(appointment1, appointment2, dodStatusReport1, connectionUnavailable); }