/** * @see org.openmrs.api.ProgramWorkflowService#voidPatientProgram(org.openmrs.PatientProgram, * java.lang.String) */ @Override public PatientProgram voidPatientProgram(PatientProgram patientProgram, String reason) { patientProgram.setVoided(true); patientProgram.setVoidReason(reason); return Context.getProgramWorkflowService().savePatientProgram(patientProgram); // The savePatientProgram method handles all of the voiding defaults and cascades }
pws.savePatientProgram(pp); ++numAdded;
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()); } } }
/** * @see org.openmrs.api.ProgramWorkflowService#voidPatientProgram(org.openmrs.PatientProgram, * java.lang.String) */ @Override public PatientProgram unvoidPatientProgram(PatientProgram patientProgram) { Date voidDate = patientProgram.getDateVoided(); patientProgram.setVoided(false); for (PatientState state : patientProgram.getStates()) { if (voidDate != null && voidDate.equals(state.getDateVoided())) { state.setVoided(false); state.setVoidedBy(null); state.setDateVoided(null); state.setVoidReason(null); } } return Context.getProgramWorkflowService().savePatientProgram(patientProgram); // The savePatientProgram method handles all of the unvoiding defaults }
Context.getProgramWorkflowService().savePatientProgram(patientProgram);
@Test public void savePatientProgram_shouldFailForNullPatient() { exception.expect(APIException.class); exception.expectMessage("PatientProgram requires a Patient and a Program"); PatientProgram patientProgram = new PatientProgram(1); patientProgram.setProgram(new Program(1)); pws.savePatientProgram(patientProgram); }
@Test public void savePatientProgram_shouldFailForNullProgram() { exception.expect(APIException.class); exception.expectMessage("PatientProgram requires a Patient and a Program"); PatientProgram patientProgram = new PatientProgram(1); patientProgram.setPatient(new Patient(1)); pws.savePatientProgram(patientProgram); }
/** * @throws InterruptedException * @see ProgramWorkflowService#triggerStateConversion(Patient,Concept,Date) */ @Test public void triggerStateConversion_shouldSkipPastPatientProgramsThatAreAlreadyCompleted() throws InterruptedException { Integer patientProgramId = 1; PatientProgram pp = pws.getPatientProgram(patientProgramId); Date originalDateCompleted = new Date(); pp.setDateCompleted(originalDateCompleted); pp = pws.savePatientProgram(pp); Concept diedConcept = cs.getConcept(16); //sanity check to ensure the patient died is a possible state in one of the work flows Assert.assertNotNull(pp.getProgram().getWorkflow(1).getState(diedConcept)); Thread.sleep(10);//delay so that we have a time difference pp = pws.getPatientProgram(patientProgramId); Assert.assertEquals(originalDateCompleted, pp.getDateCompleted()); }
@Override public PatientProgram save(PatientProgram delegate) { return Context.getProgramWorkflowService().savePatientProgram(delegate); }
Context.getProgramWorkflowService().savePatientProgram(patientprogram);
pws.savePatientProgram(patientprogram);
patientProgram.setChangedBy(Context.getAuthenticatedUser()); patientProgram.setDateChanged(today); pws.savePatientProgram(patientProgram);
@Override protected void delete(PatientProgramAttribute delegate, String reason, RequestContext context) throws ResponseException { delegate.setVoided(true); delegate.setVoidReason(reason); Context.getService(ProgramWorkflowService.class).savePatientProgram(delegate.getPatientProgram()); }
@Override public PatientProgramAttribute save(PatientProgramAttribute delegate) { boolean needToAdd = true; Collection<PatientProgramAttribute> activeAttributes = delegate.getPatientProgram().getActiveAttributes(); for (PatientProgramAttribute pa : activeAttributes) { if (pa.equals(delegate)) { needToAdd = false; break; } } if (needToAdd) { delegate.getPatientProgram().addAttribute(delegate); } Context.getService(ProgramWorkflowService.class).savePatientProgram(delegate.getPatientProgram()); return delegate; }
@Override protected void delete(PatientState delegate, String reason, RequestContext context) throws ResponseException { PatientProgram patientProgram = delegate.getPatientProgram(); PatientState lastPatientState = getLastPatientState(delegate.getState().getProgramWorkflow(), patientProgram); if (lastPatientState != null) { if (lastPatientState.getUuid().equals(delegate.getUuid())) { patientProgram.voidLastState(delegate.getState().getProgramWorkflow(), Context.getAuthenticatedUser(), null, null); Context.getProgramWorkflowService().savePatientProgram(patientProgram); } else { throw new ResourceDoesNotSupportOperationException("Only last state can be deleted"); } } }
/** * @see {@link HtmlFormEntryUtil#isEnrolledInProgramOnDate(Patient,Program,Date)} */ @Test @Verifies(value = "should return false if the program was completed", method = "isEnrolledInProgram(Patient,Program,Date)") public void isEnrolledInProgram_shouldReturnFalseIfTheProgramWasCompleted() throws Exception { ProgramWorkflowService pws = Context.getProgramWorkflowService(); Patient patient = Context.getPatientService().getPatient(2); //for test purposes, lets set a program as complete PatientProgram pp = pws.getPatientProgram(1); Assert.assertSame(patient, pp.getPatient()); pp.setDateCompleted(new Date()); Thread.sleep(100); pws.savePatientProgram(pp); Assert.assertFalse(HtmlFormEntryUtil.isEnrolledInProgramOnDate(patient, pws.getProgram(1), new Date())); }
private void enrollInProgram(String state, Date date) { ProgramWorkflowState workflowState = Context.getProgramWorkflowService().getStateByUuid(state); PatientProgram patientProgram = getPatientProgramByWorkflow(patient, workflowState.getProgramWorkflow(), date); if (patientProgram == null) { patientProgram = new PatientProgram(); patientProgram.setPatient(patient); patientProgram.setProgram(workflowState.getProgramWorkflow().getProgram()); patientProgram.setDateEnrolled(date); } Context.getProgramWorkflowService().savePatientProgram(patientProgram); }
private void transitionToState(String state, Date date) { ProgramWorkflowState workflowState = Context.getProgramWorkflowService().getStateByUuid(state); PatientProgram patientProgram = getPatientProgramByWorkflow(patient, workflowState.getProgramWorkflow(), date); if (patientProgram == null) { patientProgram = new PatientProgram(); patientProgram.setPatient(patient); patientProgram.setProgram(workflowState.getProgramWorkflow().getProgram()); patientProgram.setDateEnrolled(date); } patientProgram.transitionToState(workflowState, date); Context.getProgramWorkflowService().savePatientProgram(patientProgram); }
patientProgram.setProgram(Context.getProgramWorkflowService().getProgram(10)); patientProgram.setDateEnrolled(PAST_DATE); Context.getProgramWorkflowService().savePatientProgram(patientProgram);
patientProgram.setProgram(Context.getProgramWorkflowService().getProgram(10)); patientProgram.setDateEnrolled(PAST_DATE); Context.getProgramWorkflowService().savePatientProgram(patientProgram);