/* * Copyright (c) 2012 Massachusetts General Hospital * All rights reserved. This program and the accompanying materials * are made available under the terms of the i2b2 Software License v1.0 * which accompanies this distribution. * * Creator: * Neha Patel */ package edu.harvard.i2b2.im.delegate; import java.util.Iterator; import java.util.List; import edu.harvard.i2b2.common.exception.I2B2Exception; import edu.harvard.i2b2.common.util.jaxb.JAXBUtilException; import edu.harvard.i2b2.im.dao.IMDbDao; import edu.harvard.i2b2.im.dao.IMKey; import edu.harvard.i2b2.im.dao.PdoDao; import edu.harvard.i2b2.im.ws.GetAuditRequestMessage; import edu.harvard.i2b2.im.ws.MessageFactory; import edu.harvard.i2b2.im.ws.IsKeySetRequestMessage; import edu.harvard.i2b2.im.ws.PDORequestMessage; import edu.harvard.i2b2.im.ws.PDOResponseMessage; import edu.harvard.i2b2.im.datavo.i2b2message.MessageHeaderType; import edu.harvard.i2b2.im.datavo.i2b2message.ResponseMessageType; import edu.harvard.i2b2.im.datavo.pdo.PatientDataType; import edu.harvard.i2b2.im.datavo.pdo.PidSet; import edu.harvard.i2b2.im.datavo.pdo.query.PageByPatientType; import edu.harvard.i2b2.im.datavo.pdo.query.PageRangeType; import edu.harvard.i2b2.im.datavo.pdo.query.PageType; import edu.harvard.i2b2.im.datavo.pdo.query.PatientDataResponseType; import edu.harvard.i2b2.im.datavo.pm.ProjectType; import edu.harvard.i2b2.im.datavo.wdo.AuditsType; import edu.harvard.i2b2.im.datavo.wdo.GetAuditType; import edu.harvard.i2b2.im.datavo.wdo.IsKeySetType; public class GetAuditHandlerHandler extends RequestHandler { private String userId = null; private ProjectType projectInfo = null; private PdoDao imDao = null; private GetAuditRequestMessage auditRequestMsg; private GetAuditType requestType; public GetAuditHandlerHandler(GetAuditRequestMessage requestMsg) throws I2B2Exception{ try { imDao = new PdoDao(); auditRequestMsg = requestMsg; requestType = requestMsg.getAuditType(); userId = requestMsg.getMessageHeaderType().getSecurity().getUsername(); projectInfo = getRoleInfo(requestMsg.getMessageHeaderType()); //If projectInfo is null than get project from allprojects. if (projectInfo == null) { projectInfo = getAllProjectsInfo(requestMsg.getMessageHeaderType(), requestType.getProjectId()); if (projectInfo != null) { projectInfo.getRole().add("ADMIN"); requestMsg.getMessageHeaderType().setProjectId(requestType.getProjectId()); } } // projectInfo = getAllProjectsInfo(requestMsg.getMessageHeaderType()); setDbInfo(requestMsg.getMessageHeaderType()); } catch (Exception e) { log.error("error setting up GetAuditHandlerHandler"); throw new I2B2Exception("GetAuditHandlerHandler not configured"); } } public String execute() throws I2B2Exception{ // call ejb and pass input object //IMDao foldersDao = new IMDao(); ResponseMessageType responseMessageType = null; String errResponse = ""; Boolean errorFlag = false; // check to see if we have userId(if not indicates problem) if(userId == null) { log.error("user Id is null"); responseMessageType = MessageFactory.doBuildErrorResponse(auditRequestMsg.getMessageHeaderType(), "PM service is not responding"); } // Error flag has been set to true, return a error response with appropriate message if(errorFlag){ responseMessageType = MessageFactory.doBuildErrorResponse(auditRequestMsg.getMessageHeaderType(), errResponse); errResponse = MessageFactory.convertToXMLString(responseMessageType); return errResponse; } String response = null; // PDOResponseMessage protectedDataMsg = new PDOResponseMessage(); try { //MM AuditsType patientDataType = imDao.getAudit(auditRequestMsg.getAuditType(), userId, projectInfo, this.getDbInfo()); //response = IMKey.isKeySet(projectInfo); MessageHeaderType messageHeader = MessageFactory.createResponseMessageHeader(auditRequestMsg.getMessageHeaderType()); responseMessageType = MessageFactory.createBuildResponseAudits(messageHeader, patientDataType); //responseMessageType.setMessageBody(protectedDataMsg.getBodyType(patientDataType)); //response = MessageFactory.convertToXMLString(responseMessageType); // MessageHeaderType messageHeader = MessageFactory.createResponseMessageHeader(getFoldersMsg.getMessageHeaderType()); // responseMessageType = MessageFactory.createBuildResponseKeySet(messageHeader, keySet); response = MessageFactory.convertToXMLString(responseMessageType); //response = protectedDataMsg.doBuildXML(patientDataResponsse,pdoRequestMsg.getMessageHeaderType()); } catch (Exception e) { responseMessageType = MessageFactory.doBuildErrorResponse(auditRequestMsg.getMessageHeaderType(), e.getMessage()); response = MessageFactory.convertToXMLString(responseMessageType); } return response; } }