/** * @see org.openmrs.api.ProgramWorkflowService#purgeProgram(org.openmrs.Program, boolean) */ @Override public void purgeProgram(Program program, boolean cascade) throws APIException { if (cascade && !program.getAllWorkflows().isEmpty()) { throw new APIException("Program.cascade.purging.not.implemented", (Object[]) null); } for (PatientProgram patientProgram : Context.getProgramWorkflowService().getPatientPrograms(null, program, null, null, null, null, true)) { purgePatientProgram(patientProgram); } dao.deleteProgram(program); }
private void mergeProgramEnrolments(Patient preferred, Patient notPreferred, PersonMergeLogData mergedData) { // copy all program enrollments ProgramWorkflowService programService = Context.getProgramWorkflowService(); for (PatientProgram pp : programService.getPatientPrograms(notPreferred, null, null, null, null, null, false)) { if (!pp.getVoided()) { PatientProgram enroll = pp.copy(); enroll.setPatient(preferred); log.debug("Copying patientProgram " + pp.getPatientProgramId() + " to " + preferred.getPatientId()); PatientProgram persisted = programService.savePatientProgram(enroll); mergedData.addCreatedProgram(persisted.getUuid()); } } }
.getPatientPrograms(notPreferred, null, null, null, null, null, false).get(0); List<PatientProgram> programs = Context.getProgramWorkflowService().getPatientPrograms(preferred, null, null, null, null, null, false); for (PatientProgram p : programs) {
List<PatientProgram> notPrefPrograms = programService.getPatientPrograms(notPreferredCohort, programs); Assert.assertTrue(notPrefPrograms.size() > 0);
@Test public void purgeProgram_shouldPurgeProgramWithPatientsEnrolled() { Program program = Context.getProgramWorkflowService().getProgram(2); // program has at least one patient enrolled List<PatientProgram> patientPrograms = Context.getProgramWorkflowService().getPatientPrograms(null, program, null, null, null, null, true); assertTrue(patientPrograms.size() > 0); Context.getProgramWorkflowService().purgeProgram(program); // should cascade to patient programs for (PatientProgram patientProgram : patientPrograms) { assertNull(Context.getProgramWorkflowService().getPatientProgram(patientProgram.getId())); } // make sure that the program was deleted properly assertNull(Context.getProgramWorkflowService().getProgram(2)); } @Test
@Override public void testResults(SubmissionResults results) { results.assertNoErrors(); results.assertEncounterCreated(); List<PatientProgram> pps = pws.getPatientPrograms(ps.getPatient(patientId), pws.getProgram(programId), null, null, null, null, false); Assert.assertEquals(1, pps.size()); // make sure the state has been set Set<PatientState> states = pps.get(0).getStates(); Assert.assertEquals(1, states.size()); Assert.assertTrue(((PatientState) states.toArray()[0]).getState().equals(Context.getProgramWorkflowService().getStateByUuid("6de7ed10-53ad-11e1-8cb6-00248140a5eb"))); };
@Override public void testResults(SubmissionResults results) { results.assertNoErrors(); results.assertEncounterCreated(); List<PatientProgram> pps = pws.getPatientPrograms(ps.getPatient(patientId), pws.getProgram(programId), null, null, null, null, false); Assert.assertEquals(1, pps.size()); //the encounter date should have been set as the enrollment date Assert.assertEquals(ymdToDate(dateAsString(encounterDate)), ymdToDate(dateAsString(pps.get(0) .getDateEnrolled()))); };
@Override public void testResults(SubmissionResults results) { results.assertNoErrors(); results.assertEncounterCreated(); List<PatientProgram> pps = pws.getPatientPrograms(ps.getPatient(patientId), pws.getProgram(programId), null, null, null, null, false); Assert.assertEquals(1, pps.size()); //the user selected date should have been set Assert.assertEquals(ymdToDate(dateAsString(enrollmentDate)), ymdToDate(dateAsString(pps.get(0) .getDateEnrolled()))); //the initial state should have been set Assert.assertEquals(1, pps.get(0).getStates().size()); Assert.assertEquals(200, pps.get(0).getCurrentState(pws.getWorkflowByUuid("72a90efc-5140-11e1-a3e3-00248140a5eb")).getState() .getId().intValue()); };
@Override public void testResults(SubmissionResults results) { results.assertNoErrors(); results.assertEncounterCreated(); List<PatientProgram> pps = pws.getPatientPrograms(ps.getPatient(patientId), pws.getProgram(programId), null, null, null, null, false); Assert.assertEquals(1, pps.size()); //the encounter date should have been set as the enrollment date Assert.assertEquals(ymdToDate(dateAsString(encounterDate)), ymdToDate(dateAsString(pps.get(0) .getDateEnrolled()))); };
@Override public void testEditedResults(SubmissionResults results) { results.assertNoErrors(); results.assertEncounterEdited(); List<PatientProgram> pps = pws.getPatientPrograms(ps.getPatient(patientId), pws.getProgram(programId), null, null, null, null, false); Assert.assertEquals(1, pps.size()); //the earlier encounter date should have been set as the enrollment date Assert.assertEquals(ymdToDate(dateAsString(earlierEncounterDate)), ymdToDate(dateAsString(pps.get(0) .getDateEnrolled()))); };
@Override public void testResults(SubmissionResults results) { results.assertNoErrors(); results.assertEncounterCreated(); List<PatientProgram> pps = pws.getPatientPrograms(ps.getPatient(patientId), pws.getProgram(programId), null, null, null, null, false); Assert.assertEquals(1, pps.size()); //the original encounter date should have been set as the enrollment date Assert.assertEquals(ymdToDate(dateAsString(originalEncounterDate)), ymdToDate(dateAsString(pps.get(0) .getDateEnrolled()))); };
@Test @Override public void shouldGetAll() throws Exception { MockHttpServletRequest req = request(RequestMethod.GET, getURI()); req.setParameter("patient", RestTestConstants1_8.PATIENT_IN_A_PROGRAM_UUID); SimpleObject result = deserialize(handle(req)); Patient patient = patientService.getPatientByUuid(RestTestConstants1_8.PATIENT_IN_A_PROGRAM_UUID); List<PatientProgram> patientPrograms = service.getPatientPrograms(patient, null, null, null, null, null, true); Assert.assertEquals(patientPrograms.size(), Util.getResultsSize(result)); }
@Test @Override public void shouldGetAll() throws Exception { MockHttpServletRequest req = request(RequestMethod.GET, getURI()); req.setParameter("patient", RestTestConstants1_8.PATIENT_IN_A_PROGRAM_UUID); SimpleObject result = deserialize(handle(req)); Patient patient = patientService.getPatientByUuid(RestTestConstants1_8.PATIENT_IN_A_PROGRAM_UUID); List<PatientProgram> patientPrograms = service.getPatientPrograms(patient, null, null, null, null, null, false); Assert.assertEquals(patientPrograms.size(), Util.getResultsSize(result)); }
@Override public void testResults(SubmissionResults results) { results.assertNoErrors(); // sanity check Assert.assertEquals(1, Context.getProgramWorkflowService().getPatientPrograms(patient, Context.getProgramWorkflowService().getProgram(10), null, null, null, null, false).size()); // sanity check: program should not yet be in the start state ProgramWorkflowState state = Context.getProgramWorkflowService().getStateByUuid(START_STATE); PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), state, DATE); Assert.assertNull(patientProgram); }
@Test public void shouldExcludeVoided() throws Exception { MockHttpServletRequest req = request(RequestMethod.GET, getURI()); req.setParameter("patient", RestTestConstants1_8.PATIENT_WITH_VOIDED_PROGRAM_UUID); SimpleObject result = deserialize(handle(req)); Patient patient = patientService.getPatientByUuid(RestTestConstants1_8.PATIENT_WITH_VOIDED_PROGRAM_UUID); List<PatientProgram> patientPrograms = service.getPatientPrograms(patient, null, null, null, null, null, false); Assert.assertEquals(patientPrograms.size(), Util.getResultsSize(result)); }
@Test public void shouldExcludeVoided() throws Exception { MockHttpServletRequest req = request(RequestMethod.GET, getURI()); req.setParameter("patient", RestTestConstants1_8.PATIENT_WITH_VOIDED_PROGRAM_UUID); SimpleObject result = deserialize(handle(req)); Patient patient = patientService.getPatientByUuid(RestTestConstants1_8.PATIENT_WITH_VOIDED_PROGRAM_UUID); List<PatientProgram> patientPrograms = service.getPatientPrograms(patient, null, null, null, null, null, false); Assert.assertEquals(patientPrograms.size(), Util.getResultsSize(result)); }
public void testEditedResults(SubmissionResults results) { results.assertNoErrors(); Assert.assertEquals(1, Context.getProgramWorkflowService().getPatientPrograms(patient, Context.getProgramWorkflowService().getProgram(10), null, null, null, null, false).size()); // double check that state has been set ProgramWorkflowState state = Context.getProgramWorkflowService().getStateByUuid(START_STATE); PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), state, DATE); PatientState patientState = getPatientState(patientProgram, state, DATE); Assert.assertNotNull(patientProgram); Assert.assertEquals(dateAsString(DATE), dateAsString(patientState.getStartDate())); Assert.assertEquals(dateAsString(PAST_DATE), dateAsString(patientProgram.getDateEnrolled())); } }.run();
@Override public void testResults(SubmissionResults results) { results.assertNoErrors(); Assert.assertEquals(1, Context.getProgramWorkflowService().getPatientPrograms(patient, Context.getProgramWorkflowService().getProgram(10), null, null, null, null, false).size()); // double check that state has been set ProgramWorkflowState state = Context.getProgramWorkflowService().getStateByUuid(START_STATE); PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), state, DATE); PatientState patientState = getPatientState(patientProgram, state, DATE); Assert.assertNotNull(patientProgram); Assert.assertEquals(dateAsString(DATE), dateAsString(patientState.getStartDate())); Assert.assertEquals(dateAsString(PAST_DATE), dateAsString(patientProgram.getDateEnrolled())); } }.run();
@Override public void testResults(SubmissionResults results) { results.assertNoErrors(); Assert.assertEquals(1, Context.getProgramWorkflowService().getPatientPrograms(patient, Context.getProgramWorkflowService().getProgram(10), null, null, null, null, false).size()); // double check that states have been set ProgramWorkflowState state = Context.getProgramWorkflowService().getStateByUuid(START_STATE); ProgramWorkflowState anotherState = Context.getProgramWorkflowService().getStateByUuid("67337cdc-53ad-11e1-8cb6-00248140a5eb"); PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), state, DATE); PatientState patientState = getPatientState(patientProgram, state, DATE); PatientState anotherPatientState = getPatientState(patientProgram, anotherState, DATE); Assert.assertNotNull(patientProgram); Assert.assertEquals(dateAsString(DATE), dateAsString(patientState.getStartDate())); Assert.assertEquals(dateAsString(DATE), dateAsString(patientProgram.getDateEnrolled())); Assert.assertEquals(dateAsString(DATE), dateAsString(anotherPatientState.getStartDate())); } }.run();
@Override public void testResults(SubmissionResults results) { Date datePartOnly = ymdToDate(dateAsString(date)); results.assertNoErrors(); results.assertPatient(); Assert.assertEquals("Given", results.getPatient().getPersonName().getGivenName()); Assert.assertEquals("Family", results.getPatient().getPersonName().getFamilyName()); Assert.assertEquals("F", results.getPatient().getGender()); Assert.assertEquals(datePartOnly, results.getPatient().getBirthdate()); Assert.assertEquals(false, results.getPatient().getBirthdateEstimated()); Assert.assertEquals("987654-1", results.getPatient().getPatientIdentifier().getIdentifier()); List<PatientProgram> patientPrograms = Context.getProgramWorkflowService().getPatientPrograms( results.getPatient(), null, null, null, null, null, false); Assert.assertTrue(patientPrograms.size() == 1); } }.run();