Examples of PatientProgram


Examples of org.openmrs.PatientProgram

     
      @Override
      public void testResults(SubmissionResults results) {
        results.assertNoErrors();
        results.assertEncounterCreated();
        PatientProgram pp = pws.getPatientProgram(patientProgramId);
       
        //the user selected date shouldhave been set, as it is before the enrollment date
        Assert.assertEquals(ymdToDate(dateAsString(newEnrollmentDate)), ymdToDate(dateAsString(pp.getDateEnrolled())));
       
        //the start dates for all states with start date equal to the enrollment date should have been
        //changed to the new enrollment date
        boolean foundStateStartedDuringEnrollment = false;
        boolean skippedOtherState = false;
        for (PatientState patientState : pp.getStates()) {
          if (idForStateStartedOnEnrollmentDate.equals(patientState.getId())) {
            Assert.assertEquals(ymdToDate(dateAsString(newEnrollmentDate)),
                ymdToDate(dateAsString(patientState.getStartDate())));
            foundStateStartedDuringEnrollment = true;
          } else {
View Full Code Here

Examples of org.openmrs.PatientProgram

    final Integer programId = 10;
    final Patient patient = Context.getPatientService().getPatient(patientId);
    Assert.assertEquals(0, pws.getPatientPrograms(patient, pws.getProgram(programId), null, null, null, null, false)
            .size());
    //enroll the patient in a test program
    PatientProgram pp = new PatientProgram();
    pp.setPatient(patient);
    Program program = pws.getProgram(programId);
    pp.setProgram(pws.getProgram(programId));
    final ProgramWorkflow wf = program.getWorkflow(100);
    final Date initialEnrollmentDate = new Date();
    pp.setDateEnrolled(initialEnrollmentDate);
    pp.transitionToState(wf.getState(200), initialEnrollmentDate);
    pws.savePatientProgram(pp);
    final ProgramWorkflowState originalState = pp.getCurrentState(wf).getState();
    final Integer patientProgramId = pp.getId();
    final Date completionDate = pp.getDateCompleted();
   
    //ensure the program is created
    Assert.assertEquals(1, pws.getPatientPrograms(patient, pws.getProgram(programId), null, null, null, null, false)
            .size());
    final Date encounterDate = new Date();
View Full Code Here

Examples of org.openmrs.PatientProgram

  }
 
  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);
  }
View Full Code Here

Examples of org.openmrs.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);
  }
View Full Code Here

Examples of org.openmrs.PatientProgram

     */
  public static PatientProgram getPatientProgramByWorkflow(Patient patient, ProgramWorkflow workflow) {
    List<PatientProgram> patientPrograms = Context.getProgramWorkflowService().getPatientPrograms(patient,
        workflow.getProgram(), null, null, null, null, false);
   
    PatientProgram patientProgram = null;
   
    for (PatientProgram eachPatientProgram : patientPrograms) {
      boolean foundState = false;
      for (PatientState patientState : eachPatientProgram.getStates()) {
        if (patientState.getState().getProgramWorkflow().equals(workflow)) {
View Full Code Here

Examples of org.openmrs.PatientProgram

      throw new IllegalArgumentException("date should not be null");
   
    if (patient.getPatientId() == null)
      return null;
   
    PatientProgram closestProgram = null;
    List<PatientProgram> patientPrograms = Context.getProgramWorkflowService().getPatientPrograms(patient, program,
        date, null, null, null, false);
   
    for (PatientProgram pp : patientPrograms) {
      if ((closestProgram == null || pp.getDateEnrolled().before(closestProgram.getDateEnrolled()))
              && pp.getDateEnrolled().after(date)) {
        closestProgram = pp;
      }
     
    }
View Full Code Here

Examples of org.openmrs.PatientProgram

    }
    cannotBePreviewed();
    ProgramWorkflow workflow = getProgramWorkflowService().getWorkflow(programWorkflowId); // not sure if and how I want to reference the UUID
    List<PatientProgram> pps = getProgramWorkflowService().getPatientPrograms(p, workflow.getProgram(), null, null,
        null, null, false);
    PatientProgram mostRecentPatientProgram = null;
    for (PatientProgram pp : pps) {
      // try to figure out which program enrollment is active or the most
      // recent one; guess this would better fit somewhere in the
      // ProgramWorkflowServive
      if (!pp.isVoided()) {
        if (mostRecentPatientProgram == null) {
          mostRecentPatientProgram = pp;
        } else {
          if (mostRecentPatientProgram.getDateCompleted() != null && pp.getDateCompleted() == null) {
            // found an uncompleted one
            mostRecentPatientProgram = pp;
          } else if (mostRecentPatientProgram.getDateCompleted() != null && pp.getDateCompleted() != null
                  && pp.getDateCompleted().after(mostRecentPatientProgram.getDateCompleted())) {
            // pp was completed later
            // maybe the start date is also important
            mostRecentPatientProgram = pp;
          } else {
            // let the states decide for uncompleted programs
            // (_should_ not be necessary, but that's life,
            // partially due
            // to ProgramLocation module, or Reopening of old
            // programs, or patient merge)
            PatientState mostRecentState = mostRecentPatientProgram.getCurrentState(workflow);
            PatientState ps = pp.getCurrentState(workflow);
            if (mostRecentState == null || ps == null) {
              // just do nothing
            } else if (mostRecentState.getEndDate() != null && ps.getEndDate() == null) {
              mostRecentPatientProgram = pp;
            } else if (ps.getStartDate().after(mostRecentState.getStartDate())) {
              mostRecentPatientProgram = pp;
            }
          }
        }
      }
    }
    if (mostRecentPatientProgram != null) {
      PatientState ps = mostRecentPatientProgram.getCurrentState(workflow);
      if (ps != null && ps.getState() != null && ps.getState().getConcept().getName() != null) {
        return ps;
      }
    }
    return null;
View Full Code Here

Examples of org.openmrs.PatientProgram

  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()));
  }
View Full Code Here

Examples of org.openmrs.PatientProgram

  public void isEnrolledInProgram_shouldReturnFalseIfTheDateIsBeforeTheExistingPatientProgramEnrollmentDateIgnoringTimeFields()
      throws Exception {//2008-08-01 00:00:00.0
    ProgramWorkflowService pws = Context.getProgramWorkflowService();
    Patient patient = Context.getPatientService().getPatient(2);
    Program program = pws.getProgram(1);
    PatientProgram pp = pws.getPatientProgram(1);
   
    Calendar cal = Calendar.getInstance();
    cal.set(2008, 6, 31);
    Date newEnrollmentDate = cal.getTime();
    Assert.assertTrue(newEnrollmentDate.before(pp.getDateEnrolled()));//sanity check
    Assert.assertFalse(HtmlFormEntryUtil.isEnrolledInProgramOnDate(patient, program, newEnrollmentDate));
  }
View Full Code Here

Examples of org.openmrs.PatientProgram

   
    Calendar cal = Calendar.getInstance();
    cal.set(2001, 6, 31);
    Date date = cal.getTime();
   
    PatientProgram pp = HtmlFormEntryUtil.getClosestFutureProgramEnrollment(patient, program, date);
    Assert.assertEquals("32296060-03aa-102d-b0e3-001ec94a0cc5", pp.getUuid());
   
    // now, if we roll the date back a year earlier, it should get the earlier of the two programs for this patient
    cal.set(2000, 6, 31);
    date = cal.getTime();
   
    pp = HtmlFormEntryUtil.getClosestFutureProgramEnrollment(patient, program, date);
    Assert.assertEquals("32596060-03aa-102d-b0e3-001ec94a0cc5", pp.getUuid());
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.