From: Sebastian H. <ha...@us...> - 2001-11-23 15:07:11
|
Update of /cvsroot/dcm4che/dcm4chex-web/src/main/org/tiani/dcm4chex/experimental/web/logic In directory usw-pr-cvs1:/tmp/cvs-serv16195/logic Added Files: CodeLogic.java ImageLogic.java ImagingServiceRequestLogic.java MPPSLogic.java PatientLogic.java ProcedurePlanLogic.java ProcedureTypeLogic.java ProtocolLogic.java RequestedProcedureLogic.java SPSLogic.java SRLogic.java SeriesLogic.java StudyLogic.java VisitLogic.java Log Message: Added the logic sources that keep all the ejb related logic so we have a cleaner design and not all that stuff in the action servlets. --- NEW FILE: CodeLogic.java --- /* * $Id: CodeLogic.java,v 1.1 2001/11/23 15:07:08 hauer Exp $ * Created on November 21, 2001, 3:06 PM * * Copyright 2001 by TIANI MEDGRAPH AG */ /* * * * Created on November 21, 2001, 3:06 PM */ package org.tiani.dcm4chex.experimental.web.logic; //local import import org.tiani.dcm4chex.experimental.web.helper.Homer; import org.tiani.dcm4chex.experimental.web.helper.CodeSAXDefaultHandler; import org.tiani.dcm4chex.experimental.web.bean.ProtocolCodeBean; import org.tiani.dcm4chex.experimental.web.bean.ProcedureTypeCodeBean; //dcm4che imports import org.dcm4che.iod.macro.CodeItem; import org.tiani.dcm4chex.ejb.mwl.Protocol; import org.tiani.dcm4chex.ejb.code.CodeHome; import org.tiani.dcm4chex.ejb.code.Code; //java import import java.io.InputStream; import java.io.IOException; import java.util.Collection; import java.util.Iterator; import java.rmi.RemoteException; //javax imports import javax.xml.parsers.SAXParserFactory; import javax.xml.parsers.SAXParser; import javax.xml.parsers.ParserConfigurationException; import javax.rmi.PortableRemoteObject; import javax.ejb.FinderException; //other imports import org.apache.log4j.Category; import org.xml.sax.SAXException; /** * * @author Sebastian Hauer * @version 0.1 */ public class CodeLogic { private final Category log = Category.getInstance(CodeLogic.class.getName()); private Homer homer = null; public CodeLogic() { try { homer = Homer.getInstance(); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } public ProtocolCodeBean findProtocolCodeBean(String codeValue, Collection protocolCodeBeanList) { java.util.HashMap map = new java.util.HashMap(); for (Iterator iter = protocolCodeBeanList.iterator(); iter.hasNext();) { ProtocolCodeBean pcb = (ProtocolCodeBean)iter.next(); map.put(pcb.getCodeValue(), pcb); } ProtocolCodeBean pcb = (ProtocolCodeBean)map.get(codeValue); return pcb; } public Collection getProcedureTypeCodeData() throws FinderException, RemoteException { Collection procTypeCodeList = homer.getProcedureTypeCodeHome().findAll(); Collection procTypeCodeDataList = new java.util.LinkedList(); for (Iterator iter = procTypeCodeList.iterator(); iter.hasNext();) { Code procTypeCode = (Code)PortableRemoteObject .narrow(iter.next(), Code.class); int primaryKey = ((Integer)procTypeCode.getPrimaryKey()).intValue(); String codingSchemeDesignator = procTypeCode.getCodingSchemeDesignator(); String codingSchemeVersion = procTypeCode.getCodingSchemeVersion(); String codeValue = procTypeCode.getCodeValue(); String codeMeaning = procTypeCode.getCodeMeaning(); ProcedureTypeCodeBean ptcb = new ProcedureTypeCodeBean(primaryKey, codeValue, codingSchemeDesignator, codingSchemeVersion, codeMeaning); procTypeCodeDataList.add(ptcb); } return procTypeCodeDataList; }//end getProcedureTypeCodeData() public ProcedureTypeCodeBean getProcedureTypeCodeBean(int primaryKey) throws FinderException, RemoteException { Code procTypeCode = homer.getProcedureTypeCodeHome().findByPrimaryKey(primaryKey); String codingSchemeDesignator = procTypeCode.getCodingSchemeDesignator(); String codingSchemeVersion = procTypeCode.getCodingSchemeVersion(); String codeValue = procTypeCode.getCodeValue(); String codeMeaning = procTypeCode.getCodeMeaning(); ProcedureTypeCodeBean ptcb = new ProcedureTypeCodeBean(primaryKey, codeValue, codingSchemeDesignator, codingSchemeVersion, codeMeaning); return ptcb; } public Collection getProtocolCodeData() throws FinderException, RemoteException { Collection protCodeList = homer.getProtocolCodeHome().findAll(); Collection protCodeDataList = new java.util.LinkedList(); for (Iterator iter = protCodeList.iterator(); iter.hasNext();) { Code protCode = (Code)PortableRemoteObject .narrow(iter.next(), Code.class); String codingSchemeDesignator = protCode.getCodingSchemeDesignator(); String codingSchemeVersion = protCode.getCodingSchemeVersion(); String codeValue = protCode.getCodeValue(); String codeMeaning = protCode.getCodeMeaning(); ProtocolCodeBean pcb = new ProtocolCodeBean(codeValue, codingSchemeDesignator, codingSchemeVersion, codeMeaning); protCodeDataList.add(pcb); } return protCodeDataList; }//end getProtocolCodeData() public void createProtocolCodes(InputStream in) { try { Collection codeItemList = parseCodeFile(in); CodeHome protocolCodeHome = homer.getProtocolCodeHome(); log.debug("Got protocol code home"); for (Iterator iter = codeItemList.iterator(); iter.hasNext();) { CodeItem codeItem = (CodeItem)iter.next(); protocolCodeHome.create(codeItem); log.debug("Created new protocol code"); } } catch (Exception e) { log.debug("Unexpected exception during protocol code creation:", e); } }//end createProtocolCodes() public void createProcedureTypeCodes(InputStream in) { try { Collection codeItemList = parseCodeFile(in); CodeHome procedureTypeCodeHome = homer.getProcedureTypeCodeHome(); log.debug("Got procedure type home"); for (Iterator iter = codeItemList.iterator(); iter.hasNext();) { CodeItem codeItem = (CodeItem)iter.next(); procedureTypeCodeHome.create(codeItem); log.debug("Created new procedure type code"); } } catch (Exception e) { log.debug("Unexpected exception during procedure type " + "code creation:", e); } }//end createProcedureTypeCodes() private Collection parseCodeFile(InputStream in) throws ParserConfigurationException, SAXException, IOException { CodeSAXDefaultHandler dh = new CodeSAXDefaultHandler(); SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); parser.parse(in, dh); log.debug("Parsed XML file"); Collection codeItemList = dh.getCodeItemList(); return codeItemList; }//end parseCodeFile() }//end class CodeLogic --- NEW FILE: ImageLogic.java --- /* * $Id: ImageLogic.java,v 1.1 2001/11/23 15:07:08 hauer Exp $ * Created on November 21, 2001, 3:06 PM * * Copyright 2001 by TIANI MEDGRAPH AG */ /* * * * Created on November 21, 2001, 3:06 PM */ package org.tiani.dcm4chex.experimental.web.logic; //local import import org.tiani.dcm4chex.experimental.web.helper.Homer; //dcm4che imports import org.tiani.dcm4chex.ejb.image.Image; //java import import java.util.Collection; import java.util.Iterator; import java.rmi.RemoteException; //javax imports import javax.rmi.PortableRemoteObject; import javax.ejb.FinderException; //other imports import org.apache.log4j.Category; /** * * @author Sebastian Hauer * @version 0.1 */ public class ImageLogic { private final Category log = Category.getInstance(ImageLogic.class.getName()); private Homer homer = null; public ImageLogic() { try { homer = Homer.getInstance(); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } public Collection getSeriesImageFileIDs(int seriesPK) throws FinderException, RemoteException { Collection images = homer.getImageHome().findBySeriesPK(seriesPK); Collection iconIds = new java.util.LinkedList(); for (Iterator iter = images.iterator(); iter.hasNext();) { Image image = (Image)PortableRemoteObject.narrow(iter.next(), Image.class); String[] fileIds = image.getFileIDs(); StringBuffer path = new StringBuffer(); path.append(image.getRetrieveAETs()[0]); path.append(java.io.File.separator); for (int i = 0; i < fileIds.length; i++) { path.append(fileIds[i]); path.append(java.io.File.separator); } iconIds.add(path); } return iconIds; }//end getSeriesImageFileIDs() }//end class ImageLogic --- NEW FILE: ImagingServiceRequestLogic.java --- /* * $Id: ImagingServiceRequestLogic.java,v 1.1 2001/11/23 15:07:08 hauer Exp $ * Created on November 20, 2001, 3:06 PM * * Copyright 2001 by TIANI MEDGRAPH AG * All rights reserved. */ /* * Patient.java * * Created on November 20, 2001, 3:06 PM */ package org.tiani.dcm4chex.experimental.web.logic; //local import import org.tiani.dcm4chex.experimental.web.helper.Homer; import org.tiani.dcm4chex.experimental.web.bean.ISRDataBean; //dcm4che imports import org.tiani.dcm4chex.ejb.patient.Patient; import org.tiani.dcm4chex.ejb.mwl.ImagingServiceRequest; //java import import java.rmi.RemoteException; import java.util.Collection; import java.util.Iterator; //javax imports import javax.rmi.PortableRemoteObject; import javax.ejb.FinderException; import javax.ejb.CreateException; //other imports import org.apache.log4j.Category; /** * * @author Sebastian Hauer * @version 0.1 */ public class ImagingServiceRequestLogic { private final Category log = Category.getInstance(ImagingServiceRequestLogic.class.getName()); private Homer homer = null; public ImagingServiceRequestLogic() { try { homer = Homer.getInstance(); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } /** * Create a new ImagingServiceRequest EJB. */ public ImagingServiceRequest createImagingServiceRequest(String accessionNumber, int patientPK) throws FinderException, CreateException, RemoteException { Patient patient = homer.getPatientHome().findByPrimaryKey(patientPK); ImagingServiceRequest isr = homer.getIsrHome().create(accessionNumber, patient); return isr; }//end createImagingServiceRequest() public Collection getAllISRDataList() throws FinderException, RemoteException { Collection isrList = homer.getIsrHome().findAll(); Collection isrDataList = new java.util.LinkedList(); for (Iterator it = isrList.iterator(); it.hasNext();) { ImagingServiceRequest isr = (ImagingServiceRequest)PortableRemoteObject .narrow(it.next(), ImagingServiceRequest.class); ISRDataBean isrData = new ISRDataBean(); isrData.setPrimaryKey(((Integer)isr.getPrimaryKey()).intValue()); isrData.setAccessionNumber(isr.getAccessionNumber()); isrData.setRequestingPhysician(isr.getRequestingPhysician()); isrDataList.add(isrData); } return isrDataList; }//end getAllISRDataList() }//end class ImagingServiceRequestLogic --- NEW FILE: MPPSLogic.java --- /* * $Id: MPPSLogic.java,v 1.1 2001/11/23 15:07:08 hauer Exp $ * Created on November 20, 2001, 3:06 PM * * Copyright 2001 by TIANI MEDGRAPH AG */ /* * * * Created on November 20, 2001, 3:06 PM */ package org.tiani.dcm4chex.experimental.web.logic; //local import import org.tiani.dcm4chex.experimental.web.helper.Homer; import org.tiani.dcm4chex.experimental.web.bean.MPPSDataBean; //dcm4che imports import org.tiani.dcm4chex.ejb.mpps.PPS; import org.tiani.dcm4chex.ejb.patient.Patient; import org.tiani.dcm4chex.ejb.series.Series; import org.dcm4che.iod.module.study.PerformedSeriesItem; import org.dcm4che.iod.module.study.ScheduledStepAttributeItem; //java import import java.util.Collection; import java.util.Iterator; import java.rmi.RemoteException; import java.io.IOException; //javax imports import javax.rmi.PortableRemoteObject; import javax.ejb.FinderException; //other imports import org.apache.log4j.Category; /** * * @author Sebastian Hauer * @version 0.1 */ public class MPPSLogic { private final Category log = Category.getInstance(MPPSLogic.class.getName()); private Homer homer = null; public MPPSLogic() { try { homer = Homer.getInstance(); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } public Collection getSpsMPPSData(String spsID) throws FinderException, RemoteException { Collection mppsList = homer.getPpsHome().findBySPSID(spsID); return getMPPSData(mppsList); }//end getMPPSDataList() public Collection getAllMPPSData() throws FinderException, RemoteException { Collection mppsList = homer.getPpsHome().findAll(); return getMPPSData(mppsList); }//end getMPPSDataBean() public MPPSDataBean getSOPInstanceUIDMPPSData(String ppsSOPInstanceUID) throws FinderException, RemoteException { PPS pps = homer.getPpsHome().findBySOPInstanceUID(ppsSOPInstanceUID); return createMPPSDataBean(pps); } private Collection getMPPSData(Collection mppsList) throws RemoteException { Collection mppsDataList = new java.util.LinkedList(); for (Iterator iter = mppsList.iterator(); iter.hasNext();) { PPS pps = (PPS)PortableRemoteObject.narrow(iter.next(), PPS.class); mppsDataList.add(createMPPSDataBean(pps)); }//end for ppsList return mppsDataList; }//end getMPPSData() private MPPSDataBean createMPPSDataBean(PPS pps) throws RemoteException { Patient patient = pps.getPatient(); MPPSDataBean mppsData = new MPPSDataBean(); mppsData.setPatientName(patient.getPatientName()); mppsData.setId(pps.getPPSID()); mppsData.setDateStartDate(pps.getPPSStartDatetime()); mppsData.setDescription(pps.getPPSDescription()); mppsData.setProcedureCodeMeaning(pps.getProcedureCode() != null ? pps.getProcedureCode().codeMeaning : ""); mppsData.setStatus(pps.getPPSStatus()); Collection protocolCodes = new java.util.LinkedList(); for (int i = 0; i < pps.getPerformedProtocolCodeSeq().length; i++) { protocolCodes.add(pps.getPerformedProtocolCodeSeq()[i].codeMeaning); } mppsData.setProtocolCodes(protocolCodes); int performedSeriesNumber = pps.getPerformedSeriesSeq() != null ? pps.getPerformedSeriesSeq().length : 0; mppsData.setPerformedSeriesNumber(performedSeriesNumber); int performedInstanceNumber = 0; if (pps.getPerformedSeriesSeq() != null) { for (int i = 0; i < pps.getPerformedSeriesSeq().length; i++) { PerformedSeriesItem psi = pps.getPerformedSeriesSeq()[i]; performedInstanceNumber += psi != null ? psi.refImageSeq.length : 0; } } mppsData.setPerformedInstanceNumber(performedInstanceNumber); mppsData.setPpsSOPInstanceUID(pps.getSOPInstanceUID()); PerformedSeriesItem[] psiList = pps.getPerformedSeriesSeq(); mppsData.setPerformedSeriesItems(psiList); //try to find any already existing image instances int existingSeriesInstances = 0; for (int i = 0; i < psiList.length; i++) { try { if (psiList[i] != null) { //find the series Series series = homer.getSeriesHome() .findBySeriesInstanceUID(psiList[i].seriesInstanceUID); //count the existing image instances to this series existingSeriesInstances += series.getNumberOfSeriesRelatedInstances(); } } catch (Exception e) { log.debug("Could not find series with seriesInstanceUID: " + psiList[i].seriesInstanceUID); } } mppsData.setExistingSeriesInstances(existingSeriesInstances); ScheduledStepAttributeItem[] attrs = pps.getScheduledStepAttributeSeq(); Collection spsIDList = new java.util.LinkedList(); for (int i = 0; attrs != null && i < attrs.length; i++) { if (attrs[i].spsID != null) { spsIDList.add(attrs[i].spsID); } } mppsData.setSpsIDList(spsIDList); mppsData.setSpsNumber(spsIDList.size()); return mppsData; }//end createMPPSDataBean() }//end class MPPSLogic --- NEW FILE: PatientLogic.java --- /* * $Id: PatientLogic.java,v 1.1 2001/11/23 15:07:08 hauer Exp $ * Created on November 20, 2001, 3:06 PM * * Copyright 2001 by TIANI MEDGRAPH AG */ /* * Patient.java * * Created on November 20, 2001, 3:06 PM */ package org.tiani.dcm4chex.experimental.web.logic; //local import import org.tiani.dcm4chex.experimental.web.helper.Homer; import org.tiani.dcm4chex.experimental.web.bean.PatientDataBean; //dcm4che imports import org.tiani.dcm4chex.ejb.patient.Patient; //other imports import org.apache.log4j.Category; //java import import java.util.Collection; import java.util.Iterator; import java.rmi.RemoteException; //javax imports import javax.rmi.PortableRemoteObject; import javax.ejb.FinderException; import javax.ejb.CreateException; /** * * @author Sebastian Hauer * @version 0.1 */ public class PatientLogic { private final Category log = Category.getInstance(PatientLogic.class.getName()); private Homer homer = null; public PatientLogic() { try { homer = Homer.getInstance(); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } public Collection getAllPatientData() throws FinderException, RemoteException { Collection patientList = new java.util.LinkedList(); Collection patients = homer.getPatientHome().findAll(); log.debug("Number of patients: " + patients.size()); for (Iterator iter = patients.iterator(); iter.hasNext();) { Patient patient = (Patient)PortableRemoteObject .narrow(iter.next(), Patient.class); PatientDataBean patientData = new PatientDataBean(); int patientPK = ((Integer)patient.getPrimaryKey()).intValue(); patientData.setPrimaryKey(patientPK); patientData.setId(patient.getPatientID()); patientData.setPatientName(patient.getPatientName()); patientData.setSex(patient.getPatientSex()); patientData.setDateBirthday(patient.getPatientBirthDatetime()); //get all visits just to count them.... uuugly hack Collection visits = homer.getVisitHome().findByPatientPK(patientPK); patientData.setVisits(visits.size()); patientList.add(patientData); } return patientList; }//end getAllPatientData() public PatientDataBean getPatientData(int patientPK) throws FinderException, RemoteException { Patient patient = homer.getPatientHome().findByPrimaryKey(patientPK); PatientDataBean patientData = new PatientDataBean(); patientData.setPrimaryKey(patientPK); patientData.setPatientName(patient.getPatientName()); Patient mergedPatient = patient.getMergedWithPatient(); if (mergedPatient != null) { patientData .setMergedWithPatientName(mergedPatient.getPatientName()); } patientData.setId(patient.getPatientID()); patientData.setSex(patient.getPatientSex()); patientData.setDateBirthday(patient.getPatientBirthDatetime()); patientData.setMedicalAlerts(patient.getMedicalAlerts()); return patientData; }//end getPatientData() public Patient createPatient(String patientID) throws CreateException, RemoteException { Patient patient = null; if (patientID != null && patientID.trim().length() > 0) { patient = homer.getPatientHome().create(patientID); } else { log.debug("createPatient() patientID was null"); } return patient; }//end createPatient() }//end class PatientLogic --- NEW FILE: ProcedurePlanLogic.java --- /* * $Id: ProcedurePlanLogic.java,v 1.1 2001/11/23 15:07:08 hauer Exp $ * Created on November 20, 2001, 3:06 PM * * Copyright 2001 by TIANI MEDGRAPH AG */ /* * * * Created on November 20, 2001, 3:06 PM */ package org.tiani.dcm4chex.experimental.web.logic; //local import import org.tiani.dcm4chex.experimental.web.helper.Homer; import org.tiani.dcm4chex.experimental.web.bean.ProcedurePlanDataBean; //dcm4che imports import org.tiani.dcm4chex.ejb.mwl.ProcedurePlan; import org.tiani.dcm4chex.ejb.mwl.ProcedureType; import org.tiani.dcm4chex.ejb.mwl.Protocol; //java import import java.util.Collection; import java.util.Iterator; import java.rmi.RemoteException; //javax imports import javax.rmi.PortableRemoteObject; import javax.ejb.FinderException; import javax.ejb.CreateException; //other imports import org.apache.log4j.Category; /** * * @author Sebastian Hauer * @version 0.1 */ public class ProcedurePlanLogic { private final Category log = Category.getInstance(ProcedureTypeLogic.class.getName()); private Homer homer = null; public ProcedurePlanLogic() { try { homer = Homer.getInstance(); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } public void createProcedurePlan(String procedurePlanName, int procedureTypePK, int[] protocolPKs) throws CreateException, FinderException, RemoteException { ProcedureType pt = homer.getProcedureTypeHome() .findByPrimaryKey(procedureTypePK); ProcedurePlan pp = homer.getProcedurePlanHome().create(procedurePlanName, pt); for (int i = 0; protocolPKs != null && i < protocolPKs.length; i++) { log.debug("Add protocol with protocolPKs[" + i + "]=" + protocolPKs[i]); if (protocolPKs[i] != -1) { Protocol prot = homer.getProtocolHome().findByPrimaryKey(protocolPKs[i]); pp.addProtocol(prot); } } }//end createProcedurePlan() public Collection getProcedurePlanData() throws FinderException, RemoteException { Collection ppList = homer.getProcedurePlanHome().findAll(); Collection ppDataList = new java.util.LinkedList(); for (Iterator iter = ppList.iterator(); iter.hasNext();) { ProcedurePlan pp = (ProcedurePlan)PortableRemoteObject .narrow(iter.next(), ProcedurePlan.class); ProcedurePlanDataBean ppData = createProcedurePlanDataBean(pp); ppDataList.add(ppData); } return ppDataList; }//end getProcedurePlanData() public ProcedurePlanDataBean getProcedurePlanDataBean(int procedurePlanPK) throws FinderException, RemoteException { ProcedurePlan pp = homer.getProcedurePlanHome() .findByPrimaryKey(procedurePlanPK); return createProcedurePlanDataBean(pp); }//end getProcedurePlanDataBean() private ProcedurePlanDataBean createProcedurePlanDataBean(ProcedurePlan pp) throws RemoteException { ProcedureType pt = pp.getProcedureType(); ProcedurePlanDataBean ppData = new ProcedurePlanDataBean(); ppData.setPrimaryKey((Integer)pp.getPrimaryKey()); ppData.setProcedurePlanName(pp.getProcedurePlanName()); ppData.setProcedureTypeDescription(pt.getProcedureDescription()); ppData.setProcedureTypeLocation(pt.getProcedureLocation()); ppData.setProcedureCode(pt.getProcedureCode()); Protocol[] prots = pp.getProtocols(); ppData.setProtocols(prots); Collection protNameList = new java.util.LinkedList(); for (int i = 0; prots != null && i < prots.length; i++) { protNameList.add(prots[i].getProtocolName()); } ppData.setProtocolNameList(protNameList); return ppData; }//end createProcedurePlanDataBean() }//end class ProcedurePlanLogic --- NEW FILE: ProcedureTypeLogic.java --- /* * $Id: ProcedureTypeLogic.java,v 1.1 2001/11/23 15:07:08 hauer Exp $ * Created on November 20, 2001, 3:06 PM * * Copyright 2001 by TIANI MEDGRAPH AG */ /* * * * Created on November 20, 2001, 3:06 PM */ package org.tiani.dcm4chex.experimental.web.logic; //local import import org.tiani.dcm4chex.experimental.web.helper.Homer; import org.tiani.dcm4chex.experimental.web.bean.ProcedureTypeDataBean; import org.tiani.dcm4chex.experimental.web.bean.ProcedureTypeCodeBean; //dcm4che imports import org.dcm4che.iod.macro.CodeItem; import org.tiani.dcm4chex.ejb.mwl.ProcedureType; //java import import java.util.Collection; import java.util.Iterator; import java.rmi.RemoteException; //javax imports import javax.rmi.PortableRemoteObject; import javax.ejb.FinderException; import javax.ejb.CreateException; //other imports import org.apache.log4j.Category; /** * * @author Sebastian Hauer * @version 0.1 */ public class ProcedureTypeLogic { private final Category log = Category.getInstance(ProcedureTypeLogic.class.getName()); private Homer homer = null; public ProcedureTypeLogic() { try { homer = Homer.getInstance(); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } public Collection getProcedureTypeData() throws FinderException, RemoteException { Collection ptList = homer.getProcedureTypeHome().findAll(); Collection ptDataList = new java.util.LinkedList(); for (Iterator iter = ptList.iterator(); iter.hasNext();) { ProcedureType pt = (ProcedureType)PortableRemoteObject .narrow(iter.next(), ProcedureType.class); ProcedureTypeDataBean ptData = new ProcedureTypeDataBean(); ptData.setPrimaryKey((Integer)pt.getPrimaryKey()); CodeItem ptCodeItem = pt.getProcedureCode(); ptData.setCodeValue(ptCodeItem.codeValue); ptData.setCodingSchemeDesignator(ptCodeItem.codingSchemeDesignator); ptData.setCodingSchemeVersion(ptCodeItem.codingSchemeVersion); ptData.setCodeMeaning(ptCodeItem.codeMeaning); ptData.setProcedureDescription(pt.getProcedureDescription()); ptData.setProcedureLocation(pt.getProcedureLocation()); ptDataList.add(ptData); } return ptDataList; }//end getProcedureTypeData() public void createProcedureType(ProcedureTypeCodeBean ptcb, String procedureDescription, String procedureLocation) throws CreateException, RemoteException { CodeItem codeItem = new CodeItem(); codeItem.codingSchemeDesignator = ptcb.getCodingSchemeDesignator(); codeItem.codingSchemeVersion = ptcb.getCodingSchemeVersion(); codeItem.codeValue = ptcb.getCodeValue(); codeItem.codeMeaning = ptcb.getCodeMeaning(); ProcedureType pt = homer.getProcedureTypeHome().create(codeItem); if (procedureDescription != null && procedureDescription.trim().length() > 0) { pt.setProcedureDescription(procedureDescription); log.debug("procedureDescription=#" + procedureDescription + "#"); } if (procedureLocation != null && procedureLocation.trim().length() > 0) { pt.setProcedureLocation(procedureLocation); log.debug("procedureLocation=#" + procedureLocation + "#"); } }//end createProcedureType() }//end class ProcedureTypeLogic --- NEW FILE: ProtocolLogic.java --- /* * $Id: ProtocolLogic.java,v 1.1 2001/11/23 15:07:08 hauer Exp $ * Created on November 21, 2001, 3:06 PM * * Copyright 2001 by TIANI MEDGRAPH AG */ /* * * * Created on November 21, 2001, 3:06 PM */ package org.tiani.dcm4chex.experimental.web.logic; //local import import org.tiani.dcm4chex.experimental.web.helper.Homer; import org.tiani.dcm4chex.experimental.web.bean.ProtocolDataBean; import org.tiani.dcm4chex.experimental.web.bean.ProtocolCodeBean; //dcm4che imports import org.dcm4che.iod.macro.CodeItem; import org.tiani.dcm4chex.ejb.mwl.Protocol; //java import import java.util.Collection; import java.util.Iterator; import java.rmi.RemoteException; //javax imports import javax.rmi.PortableRemoteObject; import javax.ejb.FinderException; import javax.ejb.CreateException; //other imports import org.apache.log4j.Category; /** * * @author Sebastian Hauer * @version 0.1 */ public class ProtocolLogic { private final Category log = Category.getInstance(ProtocolLogic.class.getName()); private Homer homer = null; public ProtocolLogic() { try { homer = Homer.getInstance(); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } public Collection getProtocolData() throws FinderException, RemoteException { Collection protList = homer.getProtocolHome().findAll(); Collection protDataList = new java.util.LinkedList(); for (Iterator iter = protList.iterator(); iter.hasNext();) { Protocol prot = (Protocol)PortableRemoteObject .narrow(iter.next(), Protocol.class); ProtocolDataBean protData = new ProtocolDataBean(); CodeItem[] codeItems = prot.getProtocolCodeSeq(); Collection codeValueList = new java.util.LinkedList(); for (int i = 0; codeItems != null && i < codeItems.length; i++) { codeValueList.add(codeItems[i].codeValue); } protData.setProtocolCodeValueList(codeValueList); protData.setPrimaryKey((Integer)prot.getPrimaryKey()); protData.setProtocolName(prot.getProtocolName()); protData.setStationAET(prot.getStationAET()); protData.setStationName(prot.getStationName()); protData.setLocation(prot.getLocation()); protData.setDuration(prot.getDuration()); protData.setDescription(prot.getDescription()); protData.setModality(prot.getModality()); protData .setRequestedContrastAgent(prot.getRequestedContrastAgent()); protData.setPreMedication(prot.getPreMedication()); protDataList.add(protData); } return protDataList; }//end getProtocolData() public void createProtocol(Collection protocolCodeBeanList, String protocolName, String stationAET, String stationName, String location, Integer duration, String description, String modality, String requestedContrastAgent, String preMedication) throws CreateException, RemoteException { Protocol prot = null; Iterator iter = protocolCodeBeanList.iterator(); if (iter.hasNext()) { CodeItem codeItem = getCodeItemFromBean((ProtocolCodeBean)iter.next()); prot = homer.getProtocolHome().create(codeItem); } while (iter.hasNext()) { prot.addProtocolCode( getCodeItemFromBean((ProtocolCodeBean)iter.next())); } if (protocolName != null && protocolName.trim().length() > 0) { prot.setProtocolName(protocolName); } if (stationAET != null && stationAET.trim().length() > 0) { prot.setStationAET(stationAET); } if (stationName != null && stationName.trim().length() > 0) { prot.setStationName(stationName); } if (location != null && location.trim().length() > 0) { prot.setLocation(location); } if (duration != null) { prot.setDuration(duration); } if (description != null && description.trim().length() > 0) { prot.setDescription(description); } if (modality != null && modality.trim().length() > 0) { prot.setModality(modality); } if (requestedContrastAgent != null && requestedContrastAgent.trim().length() > 0) { prot.setRequestedContrastAgent(requestedContrastAgent); } if (preMedication != null && preMedication.trim().length() > 0) { prot.setPreMedication(preMedication); } }//end createProtocol() private CodeItem getCodeItemFromBean(ProtocolCodeBean bean) { CodeItem codeItem = new CodeItem(); codeItem.codeValue = bean.getCodeValue(); codeItem.codingSchemeDesignator = bean.getCodingSchemeDesignator(); codeItem.codingSchemeVersion = bean.getCodingSchemeVersion(); codeItem.codeMeaning = bean.getCodeMeaning(); return codeItem; }//end getCodeItemFromBean() }//end class ProtocolLogic --- NEW FILE: RequestedProcedureLogic.java --- /* * $Id: RequestedProcedureLogic.java,v 1.1 2001/11/23 15:07:08 hauer Exp $ * Created on November 20, 2001, 3:06 PM * * Copyright 2001 by TIANI MEDGRAPH AG */ /* * * * Created on November 20, 2001, 3:06 PM */ package org.tiani.dcm4chex.experimental.web.logic; //local import import org.tiani.dcm4chex.experimental.web.helper.Homer; import org.tiani.dcm4chex.experimental.web.bean.RequestedProcedureDataBean; //dcm4che imports import org.dcm4che.iod.macro.CodeItem; import org.tiani.dcm4chex.ejb.mwl.RequestedProcedure; import org.tiani.dcm4chex.ejb.mwl.ImagingServiceRequest; //java import import java.util.Collection; import java.util.Iterator; import java.rmi.RemoteException; //javax imports import javax.rmi.PortableRemoteObject; import javax.ejb.FinderException; import javax.ejb.CreateException; //other imports import org.apache.log4j.Category; /** * * @author Sebastian Hauer * @version 0.1 */ public class RequestedProcedureLogic { private final Category log = Category.getInstance(RequestedProcedureLogic.class.getName()); private Homer homer = null; public RequestedProcedureLogic() { try { homer = Homer.getInstance(); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } public int createRequestedProcedure(String requestedProcedureID, String studyInstanceUID, CodeItem procedureCodeItem, int imagingServiceRequestPK, String requestedProcedureDescription) throws FinderException, CreateException, RemoteException { ImagingServiceRequest isr = homer.getIsrHome().findByPrimaryKey(imagingServiceRequestPK); //now create the requested procedure RequestedProcedure rp = homer.getRpHome() .create(requestedProcedureID, studyInstanceUID, procedureCodeItem, isr); if (requestedProcedureDescription != null) { rp.setRequestedProcedureDescription(requestedProcedureDescription); } return ((Integer)rp.getPrimaryKey()).intValue(); }//end createRequestedProcedure() public Collection getRequestedProcedureData() throws FinderException, RemoteException { Collection rpDataList = new java.util.LinkedList(); Collection rpList = homer.getRpHome().findAll(); for (Iterator iter = rpList.iterator(); iter.hasNext();) { RequestedProcedure rp = (RequestedProcedure)PortableRemoteObject.narrow(iter.next(), RequestedProcedure.class); RequestedProcedureDataBean rpData = new RequestedProcedureDataBean(); rpData.setRequestedProcedureID(rp.getRequestedProcedureID()); rpData.setRequestedProcedureDescription(rp .getRequestedProcedureDescription()); CodeItem codeItem = rp.getRequestedProcedureCode(); //rpData.setRpCodeValue(codeItem.codeValue); //rpData.setRpCodingSchemeDesignator(codeItem.codingSchemeDesignator); //rpData.setRpCodingSchemeVersion(codeItem.codingSchemeVersion); rpData.setRpCodeMeaning(codeItem.codeMeaning); rpData.setStudyInstanceUID(rp.getStudyInstanceUID()); rpDataList.add(rpData); } return rpDataList; }//end getRequestedProcedureData() }//end class RequestedProcedureLogic --- NEW FILE: SPSLogic.java --- /* * $Id: SPSLogic.java,v 1.1 2001/11/23 15:07:08 hauer Exp $ * Created on November 20, 2001, 3:06 PM * * Copyright 2001 by TIANI MEDGRAPH AG */ /* * * * Created on November 20, 2001, 3:06 PM */ package org.tiani.dcm4chex.experimental.web.logic; //local import import org.tiani.dcm4chex.experimental.web.helper.Homer; import org.tiani.dcm4chex.experimental.web.bean.SPSDataBean; //dcm4che imports import org.dcm4che.iod.module.study.SPSItem; import org.dcm4che.iod.macro.CodeItem; import org.tiani.dcm4chex.ejb.mwl.SPS; import org.tiani.dcm4chex.ejb.mwl.RequestedProcedure; import org.tiani.dcm4chex.ejb.mwl.ImagingServiceRequest; import org.tiani.dcm4chex.ejb.patient.Patient; import org.tiani.dcm4chex.ejb.visit.Visit; import org.tiani.dcm4chex.ejb.mwl.Protocol; //java import import java.util.Collection; import java.util.Iterator; import java.util.Date; import java.rmi.RemoteException; //javax imports import javax.rmi.PortableRemoteObject; import javax.ejb.FinderException; import javax.ejb.CreateException; //other imports import org.apache.log4j.Category; /** * * @author Sebastian Hauer * @version 0.1 */ public class SPSLogic { private final Category log = Category.getInstance(SPSLogic.class.getName()); private Homer homer = null; public SPSLogic() { try { homer = Homer.getInstance(); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } public void createProtocolSPS(int requestedProcedurePK, Protocol[] prots) throws FinderException, CreateException, RemoteException { RequestedProcedure rp = homer.getRpHome().findByPrimaryKey(requestedProcedurePK); for (int i = 0; prots != null && i < prots.length; i++) { SPSItem item = new SPSItem(); item.scheduledStationAET = prots[i].getStationAET(); item.scheduledStationName = prots[i].getStationName(); item.spsLocation = prots[i].getLocation(); item.spsDescription = prots[i].getDescription(); item.scheduledProtocolCodeSeq = prots[i].getProtocolCodeSeq(); item.modality = prots[i].getModality(); item.requestedContrastAgent = prots[i].getRequestedContrastAgent(); item.preMedication = prots[i].getPreMedication(); log.debug("Try to create new SPS *******************************"); homer.getSpsHome().create(item, rp); } }//end createProtocolSPS() /** * Get the SPS belonging to a visit. */ public Collection getVisitSPSData(int visitPK) throws FinderException, RemoteException { Collection spsDataList = new java.util.LinkedList(); Collection spsList = homer.getSpsHome().findByVisitPK(visitPK); for (Iterator iter = spsList.iterator(); iter.hasNext();) { SPS sps = (SPS)PortableRemoteObject.narrow(iter.next(), SPS.class); SPSDataBean spsData = getSPSDataBean(sps); spsDataList.add(spsData); } return spsDataList; }//end getVisitSPSData() public Collection getAllSPSData() throws FinderException, RemoteException { Collection spsDataList = new java.util.LinkedList(); Collection spsList = homer.getSpsHome().findAll(); for (Iterator iter = spsList.iterator(); iter.hasNext();) { SPS sps = (SPS)PortableRemoteObject.narrow(iter.next(), SPS.class); SPSDataBean spsData = getSPSDataBean(sps); spsDataList.add(spsData); } return spsDataList; }//end getAllSPSData() public SPSDataBean getSPSData(String spsID) throws FinderException, RemoteException { SPS sps = homer.getSpsHome().findBySPSID(spsID); SPSDataBean spsData = getSPSDataBean(sps); return spsData; }//end getSPSDataBean() public SPSDataBean getSPSData(int primaryKey) throws FinderException, RemoteException { SPS sps = homer.getSpsHome().findByPrimaryKey(primaryKey); SPSDataBean spsData = getSPSDataBean(sps); return spsData; }//end getSPSDataBean() public void updateSPS(int primaryKey, String spsID, String description, String stationAET, String stationName, String location, String modality, String requestedContrastAgent, String preMedication, String performingPhysicianName, Date startDatetime, Date endDatetime) throws FinderException, RemoteException { SPS sps = homer.getSpsHome().findByPrimaryKey(primaryKey); sps.setSPSID(spsID); sps.setSPSDescription(description); sps.setScheduledStationAET(stationAET); sps.setScheduledStationName(stationName); if (startDatetime != null) { sps.setSPSStartDatetime(startDatetime); } if (endDatetime != null) { sps.setSPSEndDatetime(endDatetime); } sps.setSPSLocation(location); sps.setModality(modality); sps.setRequestedContrastAgent(requestedContrastAgent); sps.setPreMedication(preMedication); sps.setScheduledPerformingPhysicianName(performingPhysicianName); }//end updateSPS() /** * Find all SPS linked with a PPS. */ public Collection getSPSData(Collection spsIDList) throws FinderException, RemoteException { Collection spsDataList = new java.util.LinkedList(); for (Iterator iter = spsIDList.iterator(); iter.hasNext();) { String spsID = (String)iter.next(); spsDataList.add(getSPSData(spsID)); } return spsDataList; }//end getSPSDataBeanList() private SPSDataBean getSPSDataBean(SPS sps) throws FinderException, RemoteException { SPSDataBean spsData = new SPSDataBean(); spsData.setPrimaryKey(((Integer)sps.getPrimaryKey()).intValue()); spsData.setScheduledStationAET(sps.getScheduledStationAET()); spsData.setScheduledStationName(sps.getScheduledStationName()); spsData.setDateSpsStartDate(sps.getSPSStartDatetime()); spsData.setDateSpsStartTime(sps.getSPSStartDatetime()); spsData.setDateSpsEndDate(sps.getSPSEndDatetime()); spsData.setDateSpsEndTime(sps.getSPSEndDatetime()); spsData.setSpsID(sps.getSPSID()); spsData.setModality(sps.getModality()); spsData.setSpsLocation(sps.getSPSLocation()); spsData.setSpsDescription(sps.getSPSDescription()); spsData.setSpsRequestedContrastAgent(sps.getRequestedContrastAgent()); spsData.setSpsPreMedication(sps.getPreMedication()); spsData.setSpsPerformingPhysicianName(sps .getScheduledPerformingPhysicianName()); CodeItem[] spcs = sps.getScheduledProtocolCodeSeq(); if (spcs != null) { log.debug("scheduledProtocolCodeSeq not null"); String[] spCodeMeaning = new String[spcs.length]; for (int i = 0; i < spCodeMeaning.length; i++) { spCodeMeaning[i] = spcs[i].codeMeaning; log.debug("scheduledProtocolCode[" + i + "]=" + spCodeMeaning[i]); } spsData.setScheduledProtocolCodes(spCodeMeaning); } else { log.debug("scheduledProtocolCodeSeq is null"); } RequestedProcedure rp = sps.getRequestedProcedure(); spsData.setRequestedProcedureID(rp.getRequestedProcedureID()); spsData.setStudyInstanceUID(rp.getStudyInstanceUID()); spsData.setRpDescription(rp.getRequestedProcedureDescription()); spsData.setRpCodeMeaning(rp.getRequestedProcedureCode().codeMeaning); ImagingServiceRequest isr = rp.getImagingServiceRequest(); if (isr != null) { spsData.setAccessionNumber(isr.getAccessionNumber()); Patient patient = isr.getPatient(); if (patient != null) { spsData.setPatientName(patient.getPatientName()); } } Visit visit = rp.getVisit(); if (visit != null) { spsData.setAdmissionID(visit.getAdmissionID()); } Collection ppsList = homer.getPpsHome().findBySPSID(spsData.getSpsID()); spsData.setPpsNumber(ppsList.size()); return spsData; }//end getSPSDataBean() }//end class SPSLogic --- NEW FILE: SRLogic.java --- /* * $Id: SRLogic.java,v 1.1 2001/11/23 15:07:08 hauer Exp $ * Created on November 21, 2001, 3:06 PM * * Copyright 2001 by TIANI MEDGRAPH AG */ /* * * * Created on November 21, 2001, 3:06 PM */ package org.tiani.dcm4chex.experimental.web.logic; //local import import org.tiani.dcm4chex.experimental.web.helper.Homer; import org.tiani.dcm4chex.experimental.web.bean.SRDataBean; //dcm4che imports import org.tiani.dcm4chex.ejb.sr.SRDocument; //java import import java.util.Collection; import java.util.Iterator; import java.rmi.RemoteException; //javax imports import javax.rmi.PortableRemoteObject; import javax.ejb.FinderException; //other imports import org.apache.log4j.Category; /** * * @author Sebastian Hauer * @version 0.1 */ public class SRLogic { private final Category log = Category.getInstance(SRLogic.class.getName()); private Homer homer = null; public SRLogic() { try { homer = Homer.getInstance(); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } public Collection getSRData(int seriesPK) throws FinderException, RemoteException { Collection srDataList = new java.util.LinkedList(); Collection srList = homer.getSRDocumentHome().findBySeriesPK(seriesPK); for (Iterator iter = srList.iterator(); iter.hasNext();) { SRDocument sr = (SRDocument)PortableRemoteObject .narrow(iter.next(), SRDocument.class); SRDataBean srData = new SRDataBean(); srData.setPrimaryKey(sr.getPrimaryKey()); srData.setInstanceNumber(sr.getInstanceNumber()); srData.setDate(sr.getContentDatetime()); srData.setTitle(sr.getConceptNameCode().codeMeaning); srData.setCompletionFlag(sr.getCompletionFlag()); srData.setVerificationFlag(sr.getVerificationFlag()); srDataList.add(srData); } return srDataList; }//end getSRDataList() }//end class SRLogic --- NEW FILE: SeriesLogic.java --- /* * $Id: SeriesLogic.java,v 1.1 2001/11/23 15:07:08 hauer Exp $ * Created on November 21, 2001, 3:06 PM * * Copyright 2001 by TIANI MEDGRAPH AG */ /* * * * Created on November 21, 2001, 3:06 PM */ package org.tiani.dcm4chex.experimental.web.logic; //local import import org.tiani.dcm4chex.experimental.web.helper.Homer; import org.tiani.dcm4chex.experimental.web.bean.SeriesDataBean; //dcm4che imports import org.dcm4che.iod.module.study.PerformedSeriesItem; import org.dcm4che.iod.module.composite.GeneralEquipmentModule; import org.dcm4che.iod.macro.RefSOPItem; import org.tiani.dcm4chex.ejb.series.Series; //java import import java.util.Collection; import java.util.Iterator; import java.rmi.RemoteException; //javax imports import javax.rmi.PortableRemoteObject; import javax.ejb.FinderException; import javax.ejb.ObjectNotFoundException; //other imports import org.apache.log4j.Category; /** * * @author Sebastian Hauer * @version 0.1 */ public class SeriesLogic { private final Category log = Category.getInstance(SeriesLogic.class.getName()); private Homer homer = null; public SeriesLogic() { try { homer = Homer.getInstance(); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } private SeriesDataBean createSeriesDataBean(Series series) throws RemoteException { SeriesDataBean seriesData = new SeriesDataBean(); seriesData.setPrimaryKey(series.getPrimaryKey()); seriesData.setDate(series.getSeriesDatetime()); seriesData.setModality(series.getModality()); seriesData.setSeriesNumber(series.getSeriesNumber()); seriesData.setNumberOfInstances(series .getNumberOfSeriesRelatedInstances()); GeneralEquipmentModule gem = series.getGeneralEquipmentModule(); if (gem != null) { seriesData.setStationName(gem.stationName); seriesData.setManufacturer(gem.manufacturer); } RefSOPItem refStudyComponent = series.getRefStudyComponent(); if (refStudyComponent != null) { seriesData .setPpsSOPInstanceUID(refStudyComponent.refSOPInstanceUID); } return seriesData; }//end createSeriesDataBean() public SeriesDataBean getSeriesDataBean(int seriesPK) throws FinderException, RemoteException { Series series = homer.getSeriesHome().findByPrimaryKey(seriesPK); return createSeriesDataBean(series); }//end getSeriesDataBean(int) public Collection getSeriesData(PerformedSeriesItem[] performedSeriesItems) throws FinderException, RemoteException { Collection seriesDataList = new java.util.LinkedList(); for (int i = 0; i < performedSeriesItems.length; i++) { String seriesInstanceUID = performedSeriesItems[i].seriesInstanceUID; log.debug("Trying to find series with seriesInstanceUID: " + seriesInstanceUID); try { Series series = homer.getSeriesHome() .findBySeriesInstanceUID(seriesInstanceUID); SeriesDataBean seriesData = createSeriesDataBean(series); //get the numbers of referring instances (images) //belonging to this performed series item //so we compare them with the received instance number. int performedInstanceNumber = performedSeriesItems[i].refImageSeq != null ? performedSeriesItems[i].refImageSeq.length : 0; seriesData .setPpsPerformedInstanceNumber(performedInstanceNumber); log.debug("Got series with pk=" + series.getPrimaryKey()); seriesDataList.add(seriesData); } catch (ObjectNotFoundException e) { log.debug("Could not find series with seriesInstanceUID: " + seriesInstanceUID); } } return seriesDataList; }//end getSeriesData(PerformedSeriesItem[]) public Collection getSeriesData(int studyPK) throws FinderException, RemoteException { Collection seriesDataList = new java.util.LinkedList(); Collection seriesList = homer.getSeriesHome().findByStudyPK(studyPK); for (Iterator iter = seriesList.iterator(); iter.hasNext();) { Series series = (Series)PortableRemoteObject .narrow(iter.next(), Series.class); log.debug("Got series with pk=" + series.getPrimaryKey()); seriesDataList.add(createSeriesDataBean(series)); } return seriesDataList; }//end getSeriesData(int) }//end class SeriesLogic --- NEW FILE: StudyLogic.java --- /* * $Id: StudyLogic.java,v 1.1 2001/11/23 15:07:08 hauer Exp $ * Created on November 21, 2001, 3:06 PM * * Copyright 2001 by TIANI MEDGRAPH AG */ /* * * * Created on November 21, 2001, 3:06 PM */ package org.tiani.dcm4chex.experimental.web.logic; //local import import org.tiani.dcm4chex.experimental.web.helper.Homer; import org.tiani.dcm4chex.experimental.web.bean.StudyDataBean; //dcm4che imports import org.tiani.dcm4chex.ejb.study.Study; import org.tiani.dcm4chex.ejb.patient.Patient; //java import import java.util.Collection; import java.util.Iterator; import java.rmi.RemoteException; //javax imports import javax.ejb.FinderException; import javax.ejb.CreateException; //other imports import org.apache.log4j.Category; /** * * @author Sebastian Hauer * @version 0.1 */ public class StudyLogic { private final Category log = Category.getInstance(StudyLogic.class.getName()); private Homer homer = null; public StudyLogic() { try { homer = Homer.getInstance(); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } public StudyDataBean getStudyDataBean(String studyInstanceUID) throws FinderException, RemoteException { StudyDataBean studyData = new StudyDataBean(); Study study = homer.getStudyHome().findByStudyInstanceUID(studyInstanceUID); studyData.setStudyPK(((Integer)study.getPrimaryKey()).intValue()); Patient patient = study.getPatient(); studyData.setStudyInstanceUID(studyInstanceUID); studyData.setPatientName(patient.getPatientName()); studyData.setBirthday(patient.getPatientBirthDatetime()); studyData.setPatientSex(patient.getPatientSex()); studyData.setDateDate(study.getStudyDatetime()); studyData.setModalities(study.getModalitiesInStudy()); studyData.setAccessionNumber(study.getAccessionNumber()); studyData.setDescription(study.getStudyDescription()); studyData.setNumberOfSeries(study.getNumberOfStudyRelatedSeries()); studyData.setNumberOfInstances(study .getNumberOfStudyRelatedInstances()); return studyData; }//end getStudyData() public void removeStudy(String studyInstanceUID) throws FinderException, CreateException, RemoteException { Study study = homer.getStudyHome().findByStudyInstanceUID(studyInstanceUID); homer.getRemoveHome().create().remove(study); }//end removeStudy() }//end class StudyLogic --- NEW FILE: VisitLogic.java --- /* * $Id: VisitLogic.java,v 1.1 2001/11/23 15:07:08 hauer Exp $ * Created on November 20, 2001, 3:06 PM * * Copyright 2001 by TIANI MEDGRAPH AG */ /* * * * Created on November 20, 2001, 3:06 PM */ package org.tiani.dcm4chex.experimental.web.logic; //local import import org.tiani.dcm4chex.experimental.web.helper.Homer; import org.tiani.dcm4chex.experimental.web.bean.VisitDataBean; //dcm4che imports import org.tiani.dcm4chex.ejb.visit.Visit; import org.tiani.dcm4chex.ejb.patient.Patient; //other imports import org.apache.log4j.Category; //java import import java.util.Collection; import java.util.Iterator; import java.rmi.RemoteException; //javax imports import javax.rmi.PortableRemoteObject; import javax.ejb.FinderException; import javax.ejb.CreateException; /** * * @author Sebastian Hauer * @version 0.1 */ public class VisitLogic { private final Category log = Category.getInstance(VisitLogic.class.getName()); private Homer homer = null; public VisitLogic() { try { homer = Homer.getInstance(); } catch (Exception e) { throw new IllegalStateException(e.getMessage()); } } public Collection getPatientVisitData(int patientPK) throws FinderException, RemoteException { Collection visits = new java.util.LinkedList(); log.debug("Trying to find Visits for patientPK=" + patientPK); Collection visitList = homer.getVisitHome().findByPatientPK(patientPK); log.debug("visitList.size() = " + visitList.size()); for (Iterator it = visitList.iterator(); it.hasNext();) { Visit visit = (Visit)PortableRemoteObject.narrow(it.next(), Visit.class); VisitDataBean visitData = new VisitDataBean(); visitData .setPrimaryKey(((Integer)visit.getPrimaryKey()).intValue()); visitData.setAdmissionID(visit.getAdmissionID()); visitData.setStatus(visit.getVisitStatusID()); visitData.setRouteOfAdmissions(visit.getRouteOfAdmissions()); visitData .setReferringPhysicianName(visit.getReferringPhysicianName()); visits.add(visitData); } return visits; }//end getPatientVisitData() public Collection getAllVisitData() throws FinderException, RemoteException { Collection visitDataList = new java.util.LinkedList(); Collection visitList = homer.getVisitHome().findAll(); for (Iterator iter = visitList.iterator(); iter.hasNext();) { Visit visit = (Visit)PortableRemoteObject.narrow(iter.next(), Visit.class); VisitDataBean visitData = new VisitDataBean(); int visitPK = ((Integer)visit.getPrimaryKey()).intValue(); visitData.setPrimaryKey(visitPK); visitData.setAdmissionID(visit.getAdmissionID()); visitData.setPatientLocation(visit.getCurrentPatientLocation()); visitData.setRouteOfAdmissions(visit.getRouteOfAdmissions()); visitData .setReferringPhysicianName(visit.getReferringPhysicianName()); visitDataList.add(visitData); } return visitDataList; }//end getAllVisitData() /** * Find Visit by either a visitPK or admissionID. */ public VisitDataBean getVisitData(int visitPK, String admissionID) throws FinderException, RemoteException { ... [truncated message content] |