private RulesPostImportContainer prepareRulesPostImportRuleSetRuleContainer( String ruleSetRuleIds) { HashMap<Integer, RuleSetBean> ruleSets = new HashMap<Integer, RuleSetBean>(); HashSet<RuleBean> rules = new HashSet<RuleBean>(); RulesPostImportContainer rpic = new RulesPostImportContainer(); String[] splitExpression = ruleSetRuleIds.split(","); for (String string : splitExpression) { RuleSetRuleBean rsr = getRuleSetService().getRuleSetRuleDao().findById(Integer.valueOf(string)); Collections.sort(rsr.getActions(), new RuleActionComparator()); Integer key = rsr.getRuleSetBean().getId(); if (ruleSets.containsKey(key)) { RuleSetBean rs = ruleSets.get(key); rs.setTarget(rsr.getRuleSetBean().getTarget()); rs.addRuleSetRule(rsr); } else { RuleSetBean rs = new RuleSetBean(); rs.setTarget(rsr.getRuleSetBean().getTarget()); rs.addRuleSetRule(rsr); ruleSets.put(key, rs); } rules.add(rsr.getRuleBean()); } for (Map.Entry<Integer, RuleSetBean> entry : ruleSets.entrySet()) { rpic.addRuleSet(entry.getValue()); } for (RuleBean theRule : rules) { rpic.addRuleDef(theRule); } return rpic; }
private RulesPostImportContainer prepareRulesPostImportRuleSetContainer(String ruleSetId) { RulesPostImportContainer rpic = new RulesPostImportContainer(); RuleSetBean ruleSet = getRuleSetService().getRuleSetDao().findById(Integer.valueOf(ruleSetId), currentStudy); rpic.addRuleSet(ruleSet); for (RuleSetRuleBean ruleSetRule : ruleSet.getRuleSetRules()) { rpic.addRuleDef(ruleSetRule.getRuleBean()); } return rpic; }
private RulesPostImportContainer mapRulesToRulesPostImportContainer( org.openclinica.ns.rules.v31.Rules rules) { RulesPostImportContainer rpic = new RulesPostImportContainer(); for (RuleAssignmentType rat : rules.getRuleAssignment()) { TargetType targetType = rat.getTarget(); ExpressionBean targetBean = new ExpressionBean(Context.OC_RULES_V1, targetType.getValue()); RunOnScheduleType scheduleType = rules.getRuleAssignment().get(0).getRunOnSchedule(); RuleSetBean ruleSetBean = new RuleSetBean(); ruleSetBean.setOriginalTarget(targetBean); if (scheduleType != null) { if (!scheduleType.getTime().equals("")) { ruleSetBean.setRunTime(scheduleType.getTime()); } } for (RuleRefType rrt : rat.getRuleRef()) { RuleSetRuleBean ruleSetRuleBean = new RuleSetRuleBean(); ruleSetRuleBean.setOid(rrt.getOID()); for (DiscrepancyNoteActionType discrepancyNoteActionType : rrt.getDiscrepancyNoteAction()) { DiscrepancyNoteActionBean action = new DiscrepancyNoteActionBean(); action.setMessage(discrepancyNoteActionType.getMessage()); action.setExpressionEvaluatesTo( Boolean.valueOf(discrepancyNoteActionType.getIfExpressionEvaluates())); action .getRuleActionRun() .setInitialDataEntry(discrepancyNoteActionType.getRun().isInitialDataEntry()); action .getRuleActionRun() .setDoubleDataEntry(discrepancyNoteActionType.getRun().isDoubleDataEntry()); action .getRuleActionRun() .setAdministrativeDataEntry( discrepancyNoteActionType.getRun().isAdministrativeDataEntry()); action .getRuleActionRun() .setImportDataEntry(discrepancyNoteActionType.getRun().isImportDataEntry()); action.getRuleActionRun().setBatch(discrepancyNoteActionType.getRun().isBatch()); ruleSetRuleBean.addAction(action); } for (EmailActionType emailActionType : rrt.getEmailAction()) { EmailActionBean action = new EmailActionBean(); action.setMessage(emailActionType.getMessage()); action.setTo(emailActionType.getTo()); action.setExpressionEvaluatesTo( Boolean.valueOf(emailActionType.getIfExpressionEvaluates())); action .getRuleActionRun() .setInitialDataEntry(emailActionType.getRun().isInitialDataEntry()); action .getRuleActionRun() .setDoubleDataEntry(emailActionType.getRun().isDoubleDataEntry()); action .getRuleActionRun() .setAdministrativeDataEntry(emailActionType.getRun().isAdministrativeDataEntry()); action .getRuleActionRun() .setImportDataEntry(emailActionType.getRun().isImportDataEntry()); action.getRuleActionRun().setBatch(emailActionType.getRun().isBatch()); ruleSetRuleBean.addAction(action); } for (ShowActionType showActionType : rrt.getShowAction()) { ShowActionBean action = new ShowActionBean(); action.setMessage(showActionType.getMessage()); action.setExpressionEvaluatesTo( Boolean.valueOf(showActionType.getIfExpressionEvaluates())); action .getRuleActionRun() .setInitialDataEntry(showActionType.getRun().isInitialDataEntry()); action.getRuleActionRun().setDoubleDataEntry(showActionType.getRun().isDoubleDataEntry()); action .getRuleActionRun() .setAdministrativeDataEntry(showActionType.getRun().isAdministrativeDataEntry()); action.getRuleActionRun().setImportDataEntry(showActionType.getRun().isImportDataEntry()); action.getRuleActionRun().setBatch(showActionType.getRun().isBatch()); for (PropertyType propertyType : showActionType.getDestinationProperty()) { PropertyBean property = new PropertyBean(); property.setOid(propertyType.getOID()); action.addProperty(property); } ruleSetRuleBean.addAction(action); } for (HideActionType hideActionType : rrt.getHideAction()) { HideActionBean action = new HideActionBean(); action.setMessage(hideActionType.getMessage()); action.setExpressionEvaluatesTo( Boolean.valueOf(hideActionType.getIfExpressionEvaluates())); action .getRuleActionRun() .setInitialDataEntry(hideActionType.getRun().isInitialDataEntry()); action.getRuleActionRun().setDoubleDataEntry(hideActionType.getRun().isDoubleDataEntry()); action .getRuleActionRun() .setAdministrativeDataEntry(hideActionType.getRun().isAdministrativeDataEntry()); action.getRuleActionRun().setImportDataEntry(hideActionType.getRun().isImportDataEntry()); action.getRuleActionRun().setBatch(hideActionType.getRun().isBatch()); for (PropertyType propertyType : hideActionType.getDestinationProperty()) { PropertyBean property = new PropertyBean(); property.setOid(propertyType.getOID()); action.addProperty(property); } ruleSetRuleBean.addAction(action); } for (InsertActionType insertActionType : rrt.getInsertAction()) { InsertActionBean action = new InsertActionBean(); action.setExpressionEvaluatesTo( Boolean.valueOf(insertActionType.getIfExpressionEvaluates())); action .getRuleActionRun() .setInitialDataEntry(insertActionType.getRun().isInitialDataEntry()); action .getRuleActionRun() .setDoubleDataEntry(insertActionType.getRun().isDoubleDataEntry()); action .getRuleActionRun() .setAdministrativeDataEntry(insertActionType.getRun().isAdministrativeDataEntry()); action .getRuleActionRun() .setImportDataEntry(insertActionType.getRun().isImportDataEntry()); action.getRuleActionRun().setBatch(insertActionType.getRun().isBatch()); ruleSetRuleBean.addAction(action); for (PropertyType propertyType : insertActionType.getDestinationProperty()) { PropertyBean property = new PropertyBean(); property.setOid(propertyType.getOID()); property.setValue(propertyType.getValue()); ExpressionBean expressionBean = new ExpressionBean( Context.OC_RULES_V1, propertyType.getValueExpression().getValue()); property.setValueExpression(expressionBean); action.addProperty(property); } ruleSetRuleBean.addAction(action); } for (EventActionType eventActionType : rrt.getEventAction()) { EventActionBean action = new EventActionBean(); action.setExpressionEvaluatesTo( Boolean.valueOf(eventActionType.getIfExpressionEvaluates())); action.setOc_oid_reference(eventActionType.getOID()); action .getRuleActionRun() .setNot_started(eventActionType.getRunOnStatus().isNotScheduled()); action.getRuleActionRun().setScheduled(eventActionType.getRunOnStatus().isScheduled()); action .getRuleActionRun() .setData_entry_started(eventActionType.getRunOnStatus().isDataEntryStarted()); action.getRuleActionRun().setComplete(eventActionType.getRunOnStatus().isCompleted()); action.getRuleActionRun().setSkipped(eventActionType.getRunOnStatus().isSkipped()); action.getRuleActionRun().setStopped(eventActionType.getRunOnStatus().isStopped()); for (EventDestinationType eventDestinationType : eventActionType.getEventDestination()) { EventPropertyBean property = new EventPropertyBean(); property.setProperty(eventDestinationType.getProperty()); ExpressionBean expressionBean = new ExpressionBean( Context.OC_RULES_V1, eventDestinationType.getValueExpression().getValue()); property.setValueExpression(expressionBean); action.addProperty(property); } ruleSetRuleBean.addAction(action); } for (NotificationActionType notificationActionType : rrt.getNotificationAction()) { NotificationActionBean action = new NotificationActionBean(); action.setExpressionEvaluatesTo( Boolean.valueOf(notificationActionType.getIfExpressionEvaluates())); action.setTo(notificationActionType.getTo()); action.setSubject(notificationActionType.getSubject()); action.setMessage(notificationActionType.getMessage()); ruleSetRuleBean.addAction(action); } ruleSetBean.addRuleSetRule(ruleSetRuleBean); } rpic.addRuleSet(ruleSetBean); } for (RuleDefType rdt : rules.getRuleDef()) { RuleBean ruleBean = new RuleBean(); ExpressionBean ruleExpressionBean = new ExpressionBean(Context.OC_RULES_V1, rdt.getExpression().getValue()); ruleBean.setExpression(ruleExpressionBean); ruleBean.setDescription(rdt.getDescription()); ruleBean.setName(rdt.getName()); ruleBean.setOid(rdt.getOID()); rpic.addRuleDef(ruleBean); } return rpic; }