| saveProgram(Program) |  | 0% |  | 0% | 12 | 12 | 21 | 21 | 1 | 1 |
| triggerStateConversion(Patient, Concept, Date) |   | 33% |   | 39% | 8 | 10 | 12 | 21 | 0 | 1 |
| unRetireProgram(Program) |  | 0% |  | 0% | 7 | 7 | 9 | 9 | 1 | 1 |
| getStates(boolean) |  | 0% |  | 0% | 6 | 6 | 7 | 7 | 1 | 1 |
| getPossibleOutcomes(Integer) |  | 0% |  | 0% | 6 | 6 | 14 | 14 | 1 | 1 |
| unvoidPatientProgram(PatientProgram) |  | 0% |  | 0% | 4 | 4 | 9 | 9 | 1 | 1 |
| savePatientProgram(PatientProgram) |   | 51% |   | 45% | 9 | 11 | 9 | 16 | 0 | 1 |
| retireProgram(Program) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| getProgramByName(String) |  | 0% |  | 0% | 4 | 4 | 6 | 6 | 1 | 1 |
| getWorkflow(Integer) |  | 0% |  | 0% | 4 | 4 | 5 | 5 | 1 | 1 |
| patientsInProgram(Program, Date, Date) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| getCurrentPrograms(Patient, Date) |  | 0% |  | 0% | 4 | 4 | 5 | 5 | 1 | 1 |
| getPatientState(Integer) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| getCurrentWorkflowsByPatientProgram(PatientProgram) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| getCurrentWorkflowsByPatient(Patient) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| enrollPatientInProgram(Patient, Program, Date, Date, User) |  | 0% | | n/a | 1 | 1 | 8 | 8 | 1 | 1 |
| getState(Integer) |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
| saveConceptStateConversion(ConceptStateConversion) |  | 0% |  | 0% | 4 | 4 | 3 | 3 | 1 | 1 |
| getPatientPrograms(Cohort, Collection) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| purgeProgram(Program, boolean) |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
| purgePatientProgram(PatientProgram, boolean) |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
| isInProgram(Patient, Program, Date, Date) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| updateWorkflow(ProgramWorkflow) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| voidPatientProgram(PatientProgram, String) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| voidWorkflow(ProgramWorkflow, String) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| getPatientPrograms(Patient) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| changeToState(PatientProgram, ProgramWorkflow, ProgramWorkflowState, Date) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| voidLastState(PatientProgram, ProgramWorkflow, String) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| terminatePatientProgram(PatientProgram, ProgramWorkflowState, Date) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getConceptStateConversion(ProgramWorkflow, Concept) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isLegalTransition(ProgramWorkflowState, ProgramWorkflowState) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getProgram(Integer) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getAllPrograms(boolean) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getPrograms(String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| purgeProgram(Program) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getPatientProgram(Integer) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| purgePatientProgram(PatientProgram) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getConceptStateConversion(Integer) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| purgeConceptStateConversion(ConceptStateConversion) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| purgeConceptStateConversion(ConceptStateConversion, boolean) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| createOrUpdateProgram(Program) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| createPatientProgram(PatientProgram) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| updatePatientProgram(PatientProgram) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getProgramsByConcept(Concept) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getProgramWorkflowsByConcept(Concept) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getProgramWorkflowStatesByConcept(Concept) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| createConceptStateConversion(ConceptStateConversion) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| updateConceptStateConversion(ConceptStateConversion) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getConceptStateConversionByUuid(String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getPatientProgramByUuid(String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getProgramByUuid(String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getStateByUuid(String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getPatientStateByUuid(String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getWorkflowByUuid(String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getProgram(String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getAllPrograms() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getAllConceptStateConversions() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| createWorkflow(ProgramWorkflow) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getWorkflow(Program, String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getStates() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getState(ProgramWorkflow, String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getPossibleNextStates(PatientProgram, ProgramWorkflow) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getLatestState(PatientProgram, ProgramWorkflow) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| deleteConceptStateConversion(ConceptStateConversion) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getPrograms() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getAllConversions() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getPatientPrograms(Patient, Program, Date, Date, Date, Date, boolean) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| ProgramWorkflowServiceImpl() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| setProgramWorkflowDAO(ProgramWorkflowDAO) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |