package edu.harvard.i2b2.crc.loader.ejb; import java.util.List; import edu.harvard.i2b2.common.exception.I2B2Exception; import edu.harvard.i2b2.common.util.jaxb.DTOFactory; import edu.harvard.i2b2.crc.loader.dao.ILoaderDAOFactory; import edu.harvard.i2b2.crc.loader.dao.IUploaderDAOFactory; import edu.harvard.i2b2.crc.loader.dao.LoaderDAOFactoryHelper; import edu.harvard.i2b2.crc.loader.dao.UploadStatusDAOI; import edu.harvard.i2b2.crc.loader.datavo.loader.DataSourceLookup; import edu.harvard.i2b2.crc.loader.datavo.loader.UploadSetStatus; import edu.harvard.i2b2.crc.loader.datavo.loader.UploadStatus; import edu.harvard.i2b2.crc.loader.datavo.loader.query.LoadDataListResponseType; import edu.harvard.i2b2.crc.loader.datavo.loader.query.LoadDataResponseType; import edu.harvard.i2b2.crc.loader.datavo.loader.query.SetStatusType; import edu.harvard.i2b2.crc.loader.datavo.loader.query.LoadDataResponseType.DataFileLocationUri; public class LoaderStatusBean implements LoaderStatusBeanLocal, LoaderStatusBeanRemote { private DTOFactory dtoFactory = new DTOFactory(); public LoadDataListResponseType getLoadDataResponseByUserId( DataSourceLookup dataSourceLookup, String userId) throws I2B2Exception { LoadDataListResponseType responseList = new LoadDataListResponseType(); LoaderDAOFactoryHelper daoHelper = new LoaderDAOFactoryHelper( dataSourceLookup.getDomainId(), dataSourceLookup .getProjectPath(), dataSourceLookup.getOwnerId()); ILoaderDAOFactory loaderDaoFactory = daoHelper.getDAOFactory(); IUploaderDAOFactory uploaderDaoFactory = loaderDaoFactory .getUpLoaderDAOFactory(); UploadStatusDAOI statusDao = uploaderDaoFactory.getUploadStatusDAO(); List<UploadStatus> uploadStatusList = statusDao .getUpoadStatusByUser(userId); for (UploadStatus uploadStatus : uploadStatusList) { LoadDataResponseType loadDataResponse = new LoadDataResponseType(); DataFileLocationUri fileLoc = new DataFileLocationUri(); fileLoc.setValue(uploadStatus.getInputFileName()); loadDataResponse.setDataFileLocationUri(fileLoc); loadDataResponse.setLoadStatus(uploadStatus.getLoadStatus()); loadDataResponse.setUploadId(String.valueOf(uploadStatus .getUploadId())); loadDataResponse.setUserId(uploadStatus.getUserId()); loadDataResponse .setTransformerName(uploadStatus.getTransformName()); loadDataResponse.setStartDate(dtoFactory .getXMLGregorianCalendar(uploadStatus.getLoadDate() .getTime())); if (uploadStatus.getEndDate() != null) { loadDataResponse.setEndDate(dtoFactory .getXMLGregorianCalendar(uploadStatus.getEndDate() .getTime())); } loadDataResponse.setMessage(uploadStatus.getMessage()); List<UploadSetStatus> setStatusList = statusDao .getUploadSetStatusByLoadId(uploadStatus.getUploadId()); for (UploadSetStatus setStatus : setStatusList) { SetStatusType responseSetStatusType = new SetStatusType(); responseSetStatusType.setIgnoredRecord(setStatus .getNoOfRecord() - setStatus.getLoadedRecord()); responseSetStatusType.setInsertedRecord(setStatus .getLoadedRecord()); responseSetStatusType.setTotalRecord(setStatus.getNoOfRecord()); responseSetStatusType.setMessage(setStatus.getMessage()); if (setStatus.getSetTypeId() == 1) { loadDataResponse.setEventSet(responseSetStatusType); } else if (setStatus.getSetTypeId() == 2) { loadDataResponse.setPatientSet(responseSetStatusType); } else if (setStatus.getSetTypeId() == 3) { loadDataResponse.setConceptSet(responseSetStatusType); } else if (setStatus.getSetTypeId() == 4) { loadDataResponse.setObserverSet(responseSetStatusType); } else if (setStatus.getSetTypeId() == 5) { loadDataResponse.setObservationSet(responseSetStatusType); } else if (setStatus.getSetTypeId() == 6) { loadDataResponse.setPidSet(responseSetStatusType); } else if (setStatus.getSetTypeId() == 7) { loadDataResponse.setEventidSet(responseSetStatusType); } else if (setStatus.getSetTypeId() == 8) { loadDataResponse.setModifierSet(responseSetStatusType); } } responseList.getLoadDataResponse().add(loadDataResponse); } return responseList; } public LoadDataResponseType getLoadDataResponseByUploadId( DataSourceLookup dataSourceLookup, int uploadId) throws I2B2Exception { LoadDataResponseType loadDataResponse = new LoadDataResponseType(); LoaderDAOFactoryHelper daoHelper = new LoaderDAOFactoryHelper( dataSourceLookup.getDomainId(), dataSourceLookup .getProjectPath(), dataSourceLookup.getOwnerId()); ILoaderDAOFactory loaderDaoFactory = daoHelper.getDAOFactory(); IUploaderDAOFactory uploaderDaoFactory = loaderDaoFactory .getUpLoaderDAOFactory(); UploadStatusDAOI statusDao = uploaderDaoFactory.getUploadStatusDAO(); UploadStatus uploadStatus = statusDao.findById(uploadId); if (uploadStatus != null) { DataFileLocationUri fileLoc = new DataFileLocationUri(); fileLoc.setValue(uploadStatus.getInputFileName()); loadDataResponse.setDataFileLocationUri(fileLoc); loadDataResponse.setLoadStatus(uploadStatus.getLoadStatus()); loadDataResponse.setUploadId(String.valueOf(uploadStatus .getUploadId())); loadDataResponse.setUserId(uploadStatus.getUserId()); loadDataResponse .setTransformerName(uploadStatus.getTransformName()); loadDataResponse.setStartDate(dtoFactory .getXMLGregorianCalendar(uploadStatus.getLoadDate() .getTime())); if (uploadStatus.getEndDate() != null) { loadDataResponse.setEndDate(dtoFactory .getXMLGregorianCalendar(uploadStatus.getEndDate() .getTime())); } loadDataResponse.setMessage(uploadStatus.getMessage()); List<UploadSetStatus> setStatusList = statusDao .getUploadSetStatusByLoadId(uploadStatus.getUploadId()); for (UploadSetStatus setStatus : setStatusList) { SetStatusType responseSetStatusType = new SetStatusType(); responseSetStatusType.setIgnoredRecord(setStatus .getNoOfRecord() - setStatus.getLoadedRecord()); responseSetStatusType.setInsertedRecord(setStatus .getLoadedRecord()); responseSetStatusType.setMessage(setStatus.getMessage()); responseSetStatusType.setTotalRecord(setStatus.getNoOfRecord()); if (setStatus.getSetTypeId() == 1) { loadDataResponse.setEventSet(responseSetStatusType); } else if (setStatus.getSetTypeId() == 2) { loadDataResponse.setPatientSet(responseSetStatusType); } else if (setStatus.getSetTypeId() == 3) { loadDataResponse.setConceptSet(responseSetStatusType); } else if (setStatus.getSetTypeId() == 4) { loadDataResponse.setObserverSet(responseSetStatusType); } else if (setStatus.getSetTypeId() == 5) { loadDataResponse.setObservationSet(responseSetStatusType); } else if (setStatus.getSetTypeId() == 6) { loadDataResponse.setPidSet(responseSetStatusType); } else if (setStatus.getSetTypeId() == 7) { loadDataResponse.setEventidSet(responseSetStatusType); } else if (setStatus.getSetTypeId() == 8) { loadDataResponse.setModifierSet(responseSetStatusType); } } } return loadDataResponse; } }