package org.akaza.openclinica.web.job; import org.akaza.openclinica.bean.submit.crfdata.FormDataBean; import org.akaza.openclinica.bean.submit.crfdata.ImportItemDataBean; import org.akaza.openclinica.bean.submit.crfdata.ImportItemGroupDataBean; import org.akaza.openclinica.bean.submit.crfdata.StudyEventDataBean; import org.akaza.openclinica.bean.submit.crfdata.SubjectDataBean; import org.akaza.openclinica.bean.submit.crfdata.SummaryStatsBean; import java.util.ArrayList; import java.util.HashMap; import java.util.ResourceBundle; public class TriggerService { public TriggerService() { // do nothing, for the moment } public static final String PERIOD = "periodToRun"; public static final String TAB = "tab"; public static final String CDISC = "cdisc"; public static final String SPSS = "spss"; public static final String DATASET_ID = "dsId"; public static final String DATE_START_JOB = "job"; public static final String EMAIL = "contactEmail"; public static final String JOB_NAME = "jobName"; public static final String JOB_DESC = "jobDesc"; public static final String USER_ID = "user_id"; public static final String STUDY_NAME = "study_name"; public static final String STUDY_OID = "study_oid"; public static final String DIRECTORY = "filePathDir"; private static String IMPORT_TRIGGER = "importTrigger"; public String generateSummaryStatsMessage(SummaryStatsBean ssBean, ResourceBundle respage, HashMap<String, String> validationMsgs) { // TODO i18n StringBuffer sb = new StringBuffer(); sb.append(""); sb.append("Summary Statistics: "); sb.append("Subjects Affected: " + ssBean.getStudySubjectCount() + ", "); sb.append("Event CRFs Affected: " + ssBean.getEventCrfCount() + ", "); sb.append("# of Warnings: " + validationMsgs.size() + ", "); sb.append("# of Discrepancy Notes: " + ssBean.getDiscNoteCount() + ". "); return sb.toString(); } public String generateHardValidationErrorMessage(ArrayList<SubjectDataBean> subjectData, HashMap<String, String> hardValidationErrors, String groupRepeatKey) { StringBuffer sb = new StringBuffer(); String studyEventRepeatKey = null; sb.append(""); for (SubjectDataBean subjectDataBean : subjectData) { ArrayList<StudyEventDataBean> studyEventDataBeans = subjectDataBean.getStudyEventData(); for (StudyEventDataBean studyEventDataBean : studyEventDataBeans) { studyEventRepeatKey = studyEventDataBean.getStudyEventRepeatKey(); ArrayList<FormDataBean> formDataBeans = studyEventDataBean.getFormData(); for (FormDataBean formDataBean : formDataBeans) { ArrayList<ImportItemGroupDataBean> itemGroupDataBeans = formDataBean.getItemGroupData(); for (ImportItemGroupDataBean itemGroupDataBean : itemGroupDataBeans) { ArrayList<ImportItemDataBean> itemDataBeans = itemGroupDataBean.getItemData(); for (ImportItemDataBean itemDataBean : itemDataBeans) { String oidKey = itemDataBean.getItemOID() + "_" + studyEventRepeatKey + "_" + groupRepeatKey + "_" + subjectDataBean.getSubjectOID(); if (hardValidationErrors.containsKey(oidKey)) { // What about event repeat ordinal and item group and item group repeat ordinal? sb.append(subjectDataBean.getSubjectOID() + "." + studyEventDataBean.getStudyEventOID()); if (studyEventDataBean.getStudyEventRepeatKey() != null) sb.append("(" + studyEventDataBean.getStudyEventRepeatKey() + ")"); sb.append("." + formDataBean.getFormOID() + "." + itemGroupDataBean.getItemGroupOID()); if (itemGroupDataBean.getItemGroupRepeatKey() != null) sb.append("(" + itemGroupDataBean.getItemGroupRepeatKey() + ")"); sb.append("." + itemDataBean.getItemOID()); sb.append(": "); sb.append(itemDataBean.getValue() + " -- "); sb.append(hardValidationErrors.get(oidKey)); sb.append(""); } } } } } } sb.append(""); return sb.toString(); } }