/** find the Prior Therapy from List. */ private PriorTherapy findPriorTherapy( PriorTherapy pt, DomainObjectImportOutcome<ExpeditedAdverseEventReport> outcome) { List<PriorTherapy> resultLst = priorTherapyDao.searchByExampleIgnoreCase(pt, false); if (resultLst == null || resultLst.isEmpty()) { outcome.addError("ER-SPT-1", "Matching prior therapy is not found for " + pt.getText()); return null; } if (resultLst.size() > 1) { outcome.addError("ER-SPT-2", "Multiple matching prior therapies found for " + pt.getText()); return null; } return resultLst.get(0); }
/** * Validate SAEREportPriorTherapy Dates. * * @param saeReportPriorTherapy * @param outcome */ private void validateSAEREportPriorTherapyDates( SAEReportPriorTherapy saeReportPriorTherapy, DomainObjectImportOutcome<ExpeditedAdverseEventReport> outcome) { if (saeReportPriorTherapy.getStartDate() != null && saeReportPriorTherapy.getEndDate() != null) { if (saeReportPriorTherapy .getStartDate() .toDate() .after(saeReportPriorTherapy.getEndDate().toDate())) { outcome.addError( "PAT_PTY1_ERR", "Report PriorTherapy 'end date' cannot be before 'start date'' "); } } }
public void migrate( ExpeditedAdverseEventReport aeReportSrc, ExpeditedAdverseEventReport aeReportDest, DomainObjectImportOutcome<ExpeditedAdverseEventReport> outcome) { TreatmentInformation src = aeReportSrc.getTreatmentInformation(); TreatmentInformation dest = aeReportDest.getTreatmentInformation(); // Setting the Course Information from the reporting period. CourseDate adverseEventCourseDate = new CourseDate(); adverseEventCourseDate.setDate(dest.getReport().getReportingPeriod().getStartDate()); adverseEventCourseDate.setNumber(dest.getReport().getReportingPeriod().getCycleNumber()); dest.setAdverseEventCourse(adverseEventCourseDate); if (aeReportDest.getAssignment().getStartDateOfFirstCourse() != null) { dest.setFirstCourseDate(aeReportDest.getAssignment().getStartDateOfFirstCourse()); } dest.setTotalCourses(aeReportDest.getAssignment().getMaxCycleNumber()); dest.setTreatmentAssignmentDescription(src.getTreatmentAssignmentDescription()); dest.setInvestigationalAgentAdministered(src.getInvestigationalAgentAdministered()); AdverseEventReportingPeriod reportingPeriod = aeReportDest.getReportingPeriod(); if (src.getTreatmentAssignment() != null && !StringUtils.isEmpty(src.getTreatmentAssignment().getCode())) { // find the tac from study TreatmentAssignment treatmentAssignment = reportingPeriod .getStudy() .findActiveTreatmentAssignment(src.getTreatmentAssignment().getCode()); if (treatmentAssignment == null) { outcome.addError( "WS_SAE_002", "Treatment assignment is no longer active " + src.getTreatmentAssignment().getCode(), src.getTreatmentAssignment().getCode()); return; } dest.setTreatmentAssignment(treatmentAssignment); dest.setTreatmentDescription(reportingPeriod.getTreatmentAssignmentDescription()); } else { // default it to what it is there in reporting period dest.setTreatmentAssignment(reportingPeriod.getTreatmentAssignment()); dest.setTreatmentDescription(reportingPeriod.getTreatmentAssignmentDescription()); } // migrate course agents for (CourseAgent caSrc : src.getCourseAgents()) { migrateCourseAgent(caSrc, aeReportDest, outcome); } }