@Override public IHICData updateFormValuesWithDBData(IHICData incomingDO) { HashMap<String, Object> map = incomingDO.getDataObjectDetails(); WorkflowComponent.log(0, "[INSIDE FUNCTION - updateFormValuesWithDBData]"); String patientId = getPatientIdFromFormValues(incomingDO); WorkflowComponent.log( 0, "[INSIDE FUNCTION - updateFormValuesWithDBData]; patientId=" + patientId); if (patientId != null) { String scheduleId = getScheduleIdFromFormValues(incomingDO); WorkflowComponent.log( 0, "[INSIDE FUNCTION - updateFormValuesWithDBData]; scheduleId=" + scheduleId); HashMap<String, Object> ret = DataObjectListUtil.getPatientDOFormValuesFromDB( patientId, scheduleId, (String) map.get(CoreConstants.DATAOBJECT_WORKFLOW_PATTERN), (String) map.get(CoreConstants.DATAOBJECT_WORKFLOW_PATTERN_NODE)); if (ret != null) { Hashtable<String, Object> formValues = incomingDO.getData().getFormPattern().getFormValues(); Iterator<String> keyIter = ret.keySet().iterator(); while (keyIter.hasNext()) { String key = keyIter.next(); if (!formValues.containsKey(key)) formValues.put(key, ret.get(key)); WorkflowComponent.log( 0, "[INSIDE FUNCTION - updateFormValuesWithDBData]\t[key]" + key + "\t[value]" + ret.get(key)); } } } return incomingDO; }
/** * Function for adding DO to Node Queue in database. * * @param workflowId * @param nodeId * @param dataObject */ private void addDataObjectToDBQueue(String workflowId, String nodeId, IHICData dataObject) { try { // This makes sure that the current call is pertaining to Workflow tool if (!isPatientSchedulePresentInFormValues(dataObject)) return; // Disallow non-visual WF to store entry in DB Workflowinfo workflow = WorkFlowImpl.getWorkflowBasedOnWorkflowName(workflowId); Boolean isVisual = workflow.getIsVisual(); if (isVisual == null) return; if (!isVisual.booleanValue()) return; /*// Update DO unique id to Patient ID which is unique for each patient updateDataObjectUniqueId(dataObject);*/ // Get WorkflowNodeInfo for current nodeId Workflownodeinfo wfNodeInfo = WorkFlowNodeInfoImpl.getWorkFlowNodeInfo(workflowId, nodeId); /* * &&&&&&&&&&&&&&&&&&&&&& PRINTING &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */ DataObjectListUtil.printDataObject(dataObject, "THIS IS WHAT HAS COME FOR SAVE", "*"); WorkflowComponent.log( 0, "[workflowId]" + workflowId + "\n[nodeId]" + nodeId + "\n[NODE_EXECUTION_STATUS]" + ((wfNodeInfo.getNodeinfo().getNodetype().indexOf("I") >= 0) ? WorkflowConstant.NODE_EXECUTION_STATUS_WAITING : WorkflowConstant.NODE_EXECUTION_STATUS_PROGRESS)); /* * &&&&&&&&&&&&&&&&&&&&&& PRINTING &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */ // Store DataObject HashMap<String, Object> doDetails = dataObject.getDataObjectDetails(); // Create meta data based on which search is required Hashtable<String, Object> metaData = HashUtil.removeNonRequiredKeysFromHashtable( ApplicationConstant.REQUIRED_KEYS_FOR_UNIQUE_DO, (Hashtable<String, Object>) doDetails.get(CoreConstants.DATAOBJECT_FORM_VALUES)); Dataobject doQueue = DataObjectQueueImpl.addDataObjectToDbQueueWithExistingCheck( StringUtil.getString(doDetails.get(CoreConstants.DATAOBJECT_FORM_PATTERN)), StringUtil.getString(doDetails.get(CoreConstants.DATAOBJECT_DATA_PATTERN)), StringUtil.getString(doDetails.get(CoreConstants.DATAOBJECT_STATUS)), wfNodeInfo, StringUtil.getString(doDetails.get(CoreConstants.DATAOBJECT_USER_PATTERN)), StringUtil.getString(doDetails.get(CoreConstants.DATAOBJECT_USER_ID)), StringUtil.getString(doDetails.get(CoreConstants.DATAOBJECT_UNIQUE_ID)), (wfNodeInfo.getNodeinfo().getNodetype().indexOf("I") >= 0) ? WorkflowConstant.NODE_EXECUTION_STATUS_WAITING : WorkflowConstant.NODE_EXECUTION_STATUS_PROGRESS, metaData); // Store DataObject Metadata appendToDataObjectMetaData(workflowId, nodeId, dataObject, doQueue); } catch (WorkflowComponentException e) { e.printStackTrace(); } }
@Override public void removeDataObjectFromNode(String workflowId, String nodeId, IHICData dataObject) { WorkflowComponent.log(0, "[DataObjectManagerDB][removeDataObjectFromNode]"); updateDataObjectStatusInDBQueue(workflowId, nodeId, dataObject); }