Update of /cvsroot/dcm4che/dcm4jboss/src/java/ejb/org/dcm4chex/ejb/session In directory sc8-pr-cvs1:/tmp/cvs-serv11697/src/java/ejb/org/dcm4chex/ejb/session Modified Files: PatientMgtBean.java ProcedureMgtBean.java RetrieveBean.java MppsMgrBean.java ReadAccessBean.java StorageBean.java Log Message: adjust for use with jboss 3.2.1 remove unused imports Index: PatientMgtBean.java =================================================================== RCS file: /cvsroot/dcm4che/dcm4jboss/src/java/ejb/org/dcm4chex/ejb/session/PatientMgtBean.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** PatientMgtBean.java 14 Mar 2003 00:34:46 -0000 1.8 --- PatientMgtBean.java 25 Jun 2003 11:19:34 -0000 1.9 *************** *** 23,48 **** package org.dcm4chex.ejb.session; ! import org.dcm4chex.ejb.interfaces.PatientLocal; ! import org.dcm4chex.ejb.interfaces.PatientLocalHome; ! ! import org.dcm4che.hl7.HL7; ! import org.dcm4che.hl7.HL7Exception; ! import org.dcm4che.hl7.HL7Factory; ! import org.dcm4che.hl7.HL7Message; ! import org.dcm4che.hl7.HL7Segment; - import javax.ejb.CreateException; - import javax.ejb.FinderException; - import javax.ejb.ObjectNotFoundException; import javax.ejb.EJBException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; - import javax.naming.Context; - import javax.naming.InitialContext; - - import java.util.Iterator; import org.apache.log4j.Logger; /** --- 23,40 ---- package org.dcm4chex.ejb.session; ! import java.util.Iterator; import javax.ejb.EJBException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; import javax.naming.Context; import org.apache.log4j.Logger; + import org.dcm4che.hl7.HL7; + import org.dcm4che.hl7.HL7Exception; + import org.dcm4che.hl7.HL7Factory; + import org.dcm4che.hl7.HL7Message; + import org.dcm4che.hl7.HL7Segment; + import org.dcm4chex.ejb.interfaces.PatientLocalHome; /** Index: ProcedureMgtBean.java =================================================================== RCS file: /cvsroot/dcm4che/dcm4jboss/src/java/ejb/org/dcm4chex/ejb/session/ProcedureMgtBean.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ProcedureMgtBean.java 14 Mar 2003 00:34:47 -0000 1.5 --- ProcedureMgtBean.java 25 Jun 2003 11:19:34 -0000 1.6 *************** *** 23,63 **** package org.dcm4chex.ejb.session; ! import org.dcm4chex.ejb.interfaces.PatientLocal; ! import org.dcm4chex.ejb.interfaces.PatientLocalHome; ! import org.dcm4chex.ejb.interfaces.CodeLocal; ! import org.dcm4chex.ejb.interfaces.CodeLocalHome; ! import org.dcm4chex.ejb.interfaces.VisitLocal; ! import org.dcm4chex.ejb.interfaces.VisitLocalHome; ! import org.dcm4chex.ejb.interfaces.ISRLocal; ! import org.dcm4chex.ejb.interfaces.ISRLocalHome; ! import org.dcm4chex.ejb.interfaces.RPLocal; ! import org.dcm4chex.ejb.interfaces.RPLocalHome; ! import org.dcm4chex.ejb.interfaces.MspsLocal; ! import org.dcm4chex.ejb.interfaces.MspsLocalHome; ! ! import org.dcm4che.hl7.HL7; ! import org.dcm4che.hl7.HL7Exception; ! import org.dcm4che.hl7.HL7Factory; ! import org.dcm4che.hl7.HL7Message; ! import org.dcm4che.hl7.HL7Segment; import javax.ejb.CreateException; import javax.ejb.FinderException; import javax.ejb.ObjectNotFoundException; - import javax.ejb.EJBException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; - import javax.naming.Context; - import javax.naming.InitialContext; - - import java.util.Arrays; - import java.util.ArrayList; - import java.util.HashMap; - import java.util.HashSet; - import java.util.Iterator; - import java.util.List; import org.apache.log4j.Logger; /** --- 23,58 ---- package org.dcm4chex.ejb.session; ! import java.util.ArrayList; ! import java.util.Arrays; ! import java.util.HashMap; ! import java.util.HashSet; ! import java.util.Iterator; ! import java.util.List; import javax.ejb.CreateException; + import javax.ejb.EJBException; import javax.ejb.FinderException; import javax.ejb.ObjectNotFoundException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; import javax.naming.Context; import org.apache.log4j.Logger; + import org.dcm4che.hl7.HL7; + import org.dcm4che.hl7.HL7Exception; + import org.dcm4che.hl7.HL7Factory; + import org.dcm4che.hl7.HL7Message; + import org.dcm4che.hl7.HL7Segment; + import org.dcm4chex.ejb.interfaces.CodeLocalHome; + import org.dcm4chex.ejb.interfaces.ISRLocal; + import org.dcm4chex.ejb.interfaces.ISRLocalHome; + import org.dcm4chex.ejb.interfaces.MspsLocal; + import org.dcm4chex.ejb.interfaces.MspsLocalHome; + import org.dcm4chex.ejb.interfaces.PatientLocal; + import org.dcm4chex.ejb.interfaces.PatientLocalHome; + import org.dcm4chex.ejb.interfaces.RPLocal; + import org.dcm4chex.ejb.interfaces.RPLocalHome; + import org.dcm4chex.ejb.interfaces.VisitLocal; + import org.dcm4chex.ejb.interfaces.VisitLocalHome; /** Index: RetrieveBean.java =================================================================== RCS file: /cvsroot/dcm4che/dcm4jboss/src/java/ejb/org/dcm4chex/ejb/session/RetrieveBean.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** RetrieveBean.java 28 Aug 2002 21:44:15 -0000 1.3 --- RetrieveBean.java 25 Jun 2003 11:19:34 -0000 1.4 *************** *** 23,45 **** package org.dcm4chex.ejb.session; - import org.dcm4chex.ejb.interfaces.AELocal; - import org.dcm4chex.ejb.interfaces.AELocalHome; - import org.dcm4chex.ejb.interfaces.AEData; - import org.dcm4chex.ejb.interfaces.RetrieveData; - import org.dcm4chex.ejb.sql.RetrieveCmd; - - import org.dcm4che.data.Dataset; - import org.dcm4che.data.DcmValueException; - - import javax.ejb.CreateException; import javax.ejb.FinderException; import javax.ejb.ObjectNotFoundException; - import javax.ejb.EJBException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; - import javax.naming.Context; ! import javax.naming.InitialContext; /** --- 23,41 ---- package org.dcm4chex.ejb.session; import javax.ejb.CreateException; + import javax.ejb.EJBException; import javax.ejb.FinderException; import javax.ejb.ObjectNotFoundException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; import javax.naming.Context; ! ! import org.dcm4che.data.Dataset; ! import org.dcm4che.data.DcmValueException; ! import org.dcm4chex.ejb.interfaces.AEData; ! import org.dcm4chex.ejb.interfaces.AELocal; ! import org.dcm4chex.ejb.interfaces.AELocalHome; ! import org.dcm4chex.ejb.interfaces.RetrieveData; ! import org.dcm4chex.ejb.sql.RetrieveCmd; /** Index: MppsMgrBean.java =================================================================== RCS file: /cvsroot/dcm4che/dcm4jboss/src/java/ejb/org/dcm4chex/ejb/session/MppsMgrBean.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** MppsMgrBean.java 31 Mar 2003 11:29:07 -0000 1.11 --- MppsMgrBean.java 25 Jun 2003 11:19:34 -0000 1.12 *************** *** 23,71 **** package org.dcm4chex.ejb.session; ! import org.dcm4chex.ejb.interfaces.CodeLocal; ! import org.dcm4chex.ejb.interfaces.CodeLocalHome; ! import org.dcm4chex.ejb.interfaces.PatientLocal; ! import org.dcm4chex.ejb.interfaces.PatientLocalHome; ! import org.dcm4chex.ejb.interfaces.MppsLocal; ! import org.dcm4chex.ejb.interfaces.MppsLocalHome; ! import org.dcm4chex.ejb.interfaces.MppsSpsAttrLocal; ! import org.dcm4chex.ejb.interfaces.MppsSpsAttrLocalHome; ! import org.dcm4chex.ejb.interfaces.MppsPerfSeriesLocal; ! import org.dcm4chex.ejb.interfaces.MppsPerfSeriesLocalHome; ! import org.dcm4chex.ejb.interfaces.MppsExposureDoseLocal; ! import org.dcm4chex.ejb.interfaces.MppsExposureDoseLocalHome; ! import org.dcm4chex.ejb.interfaces.MppsFilmConsumptionLocal; ! import org.dcm4chex.ejb.interfaces.MppsFilmConsumptionLocalHome; ! import org.dcm4chex.ejb.interfaces.MppsBillingSupplyLocal; ! import org.dcm4chex.ejb.interfaces.MppsBillingSupplyLocalHome; ! import org.dcm4chex.ejb.interfaces.InstanceLocalHome; ! import org.dcm4chex.ejb.interfaces.InstanceLocal; ! import org.dcm4chex.ejb.interfaces.SeriesLocalHome; ! import org.dcm4chex.ejb.interfaces.SeriesLocal; ! import org.dcm4chex.ejb.interfaces.StudyLocal; ! import org.dcm4chex.ejb.interfaces.SOPLocal; ! import org.dcm4chex.ejb.interfaces.SOPLocalHome; ! import org.dcm4chex.ejb.interfaces.StudyLocal; ! ! import org.dcm4che.data.Dataset; ! import org.dcm4che.data.DcmElement; ! import org.dcm4che.data.DcmValueException; ! import org.dcm4che.dict.Status; ! import org.dcm4che.dict.Tags; ! import org.dcm4che.net.DcmServiceException; - import javax.ejb.SessionBean; - import javax.ejb.SessionContext; import javax.ejb.CreateException; import javax.ejb.EJBException; import javax.ejb.FinderException; import javax.ejb.ObjectNotFoundException; import javax.naming.Context; - import java.util.Collection; - import java.util.List; - import java.util.Iterator; - import org.apache.log4j.Logger; /** --- 23,64 ---- package org.dcm4chex.ejb.session; ! import java.util.Collection; ! import java.util.Iterator; ! import java.util.List; import javax.ejb.CreateException; import javax.ejb.EJBException; import javax.ejb.FinderException; import javax.ejb.ObjectNotFoundException; + import javax.ejb.SessionBean; + import javax.ejb.SessionContext; import javax.naming.Context; import org.apache.log4j.Logger; + import org.dcm4che.data.Dataset; + import org.dcm4che.data.DcmElement; + import org.dcm4che.data.DcmValueException; + import org.dcm4che.dict.Status; + import org.dcm4che.dict.Tags; + import org.dcm4che.net.DcmServiceException; + import org.dcm4chex.ejb.interfaces.CodeLocalHome; + import org.dcm4chex.ejb.interfaces.InstanceLocal; + import org.dcm4chex.ejb.interfaces.MppsBillingSupplyLocal; + import org.dcm4chex.ejb.interfaces.MppsBillingSupplyLocalHome; + import org.dcm4chex.ejb.interfaces.MppsExposureDoseLocal; + import org.dcm4chex.ejb.interfaces.MppsExposureDoseLocalHome; + import org.dcm4chex.ejb.interfaces.MppsFilmConsumptionLocal; + import org.dcm4chex.ejb.interfaces.MppsFilmConsumptionLocalHome; + import org.dcm4chex.ejb.interfaces.MppsLocal; + import org.dcm4chex.ejb.interfaces.MppsLocalHome; + import org.dcm4chex.ejb.interfaces.MppsPerfSeriesLocal; + import org.dcm4chex.ejb.interfaces.MppsPerfSeriesLocalHome; + import org.dcm4chex.ejb.interfaces.MppsSpsAttrLocal; + import org.dcm4chex.ejb.interfaces.MppsSpsAttrLocalHome; + import org.dcm4chex.ejb.interfaces.PatientLocalHome; + import org.dcm4chex.ejb.interfaces.SOPLocal; + import org.dcm4chex.ejb.interfaces.SOPLocalHome; + import org.dcm4chex.ejb.interfaces.SeriesLocal; + import org.dcm4chex.ejb.interfaces.SeriesLocalHome; /** Index: ReadAccessBean.java =================================================================== RCS file: /cvsroot/dcm4che/dcm4jboss/src/java/ejb/org/dcm4chex/ejb/session/ReadAccessBean.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ReadAccessBean.java 20 Oct 2002 21:53:42 -0000 1.4 --- ReadAccessBean.java 25 Jun 2003 11:19:34 -0000 1.5 *************** *** 23,61 **** package org.dcm4chex.ejb.session; ! import org.dcm4chex.ejb.interfaces.PatientLocal; ! import org.dcm4chex.ejb.interfaces.StudyLocal; ! import org.dcm4chex.ejb.interfaces.SeriesLocal; ! import org.dcm4chex.ejb.interfaces.InstanceLocal; ! import org.dcm4chex.ejb.interfaces.CodeLocal; ! import org.dcm4chex.ejb.interfaces.SRVerifierLocal; ! import org.dcm4chex.ejb.interfaces.StudyLocalHome; ! import org.dcm4chex.ejb.interfaces.MppsLocal; ! import org.dcm4chex.ejb.interfaces.MppsSpsAttrLocal; ! import org.dcm4chex.ejb.interfaces.MppsPerfSeriesLocal; ! import org.dcm4chex.ejb.interfaces.MppsLocalHome; ! import org.dcm4chex.ejb.sql.ListStudiesCmd; ! import org.dcm4chex.ejb.sql.ListMspsCmd; ! import org.dcm4chex.ejb.sql.ListMppsCmd; ! ! import org.dcm4che.dict.DictionaryFactory; ! import org.dcm4che.dict.UIDDictionary; ! ! import org.jdom.Document; ! import org.jdom.Element; import javax.ejb.CreateException; - import javax.ejb.FinderException; - import javax.ejb.ObjectNotFoundException; import javax.ejb.EJBException; import javax.ejb.FinderException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; - import javax.naming.Context; - import javax.naming.InitialContext; ! import java.text.SimpleDateFormat; ! import java.util.Date; ! import java.util.Iterator; /** --- 23,55 ---- package org.dcm4chex.ejb.session; ! import java.text.SimpleDateFormat; ! import java.util.Date; ! import java.util.Iterator; import javax.ejb.CreateException; import javax.ejb.EJBException; import javax.ejb.FinderException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; import javax.naming.Context; ! import org.dcm4che.dict.DictionaryFactory; ! import org.dcm4che.dict.UIDDictionary; ! import org.dcm4chex.ejb.interfaces.CodeLocal; ! import org.dcm4chex.ejb.interfaces.InstanceLocal; ! import org.dcm4chex.ejb.interfaces.MppsLocal; ! import org.dcm4chex.ejb.interfaces.MppsLocalHome; ! import org.dcm4chex.ejb.interfaces.MppsPerfSeriesLocal; ! import org.dcm4chex.ejb.interfaces.MppsSpsAttrLocal; ! import org.dcm4chex.ejb.interfaces.PatientLocal; ! import org.dcm4chex.ejb.interfaces.SRVerifierLocal; ! import org.dcm4chex.ejb.interfaces.SeriesLocal; ! import org.dcm4chex.ejb.interfaces.StudyLocal; ! import org.dcm4chex.ejb.interfaces.StudyLocalHome; ! import org.dcm4chex.ejb.sql.ListMppsCmd; ! import org.dcm4chex.ejb.sql.ListMspsCmd; ! import org.dcm4chex.ejb.sql.ListStudiesCmd; ! import org.jdom.Document; ! import org.jdom.Element; /** Index: StorageBean.java =================================================================== RCS file: /cvsroot/dcm4che/dcm4jboss/src/java/ejb/org/dcm4chex/ejb/session/StorageBean.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** StorageBean.java 22 Sep 2002 22:14:57 -0000 1.9 --- StorageBean.java 25 Jun 2003 11:19:34 -0000 1.10 *************** *** 1,320 **** ! /***************************************************************************** ! * * ! * Copyright (c) 2002 by TIANI MEDGRAPH AG * ! * * ! * This file is part of dcm4che. * ! * * ! * This library is free software; you can redistribute it and/or modify it * ! * under the terms of the GNU Lesser General Public License as published * ! * by the Free Software Foundation; either version 2 of the License, or * ! * (at your option) any later version. * ! * * ! * This library is distributed in the hope that it will be useful, but * ! * WITHOUT ANY WARRANTY; without even the implied warranty of * ! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * ! * Lesser General Public License for more details. * ! * * ! * You should have received a copy of the GNU Lesser General Public * ! * License along with this library; if not, write to the Free Software * ! * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ! * * ! *****************************************************************************/ ! package org.dcm4chex.ejb.session; ! ! import org.dcm4chex.ejb.interfaces.CodeLocal; ! import org.dcm4chex.ejb.interfaces.CodeLocalHome; ! import org.dcm4chex.ejb.interfaces.PatientLocal; ! import org.dcm4chex.ejb.interfaces.PatientLocalHome; ! import org.dcm4chex.ejb.interfaces.StudyLocal; ! import org.dcm4chex.ejb.interfaces.StudyLocalHome; ! import org.dcm4chex.ejb.interfaces.SeriesLocal; ! import org.dcm4chex.ejb.interfaces.SeriesLocalHome; ! import org.dcm4chex.ejb.interfaces.SeriesRefRequestLocal; ! import org.dcm4chex.ejb.interfaces.SeriesRefRequestLocalHome; ! import org.dcm4chex.ejb.interfaces.InstanceLocal; ! import org.dcm4chex.ejb.interfaces.InstanceLocalHome; ! import org.dcm4chex.ejb.interfaces.MppsPerfSeriesLocal; ! import org.dcm4chex.ejb.interfaces.PRRefSeriesLocal; ! import org.dcm4chex.ejb.interfaces.PRRefSeriesLocalHome; ! import org.dcm4chex.ejb.interfaces.SRRefRequestLocal; ! import org.dcm4chex.ejb.interfaces.SRRefRequestLocalHome; ! import org.dcm4chex.ejb.interfaces.SRVerifierLocal; ! import org.dcm4chex.ejb.interfaces.SRVerifierLocalHome; ! import org.dcm4chex.ejb.interfaces.SOPLocal; ! import org.dcm4chex.ejb.interfaces.SOPLocalHome; ! import org.dcm4chex.ejb.interfaces.StorageData; ! ! import org.dcm4che.data.Dataset; ! import org.dcm4che.data.DcmElement; ! import org.dcm4che.data.DcmObjectFactory; ! import org.dcm4che.data.DcmValueException; ! import org.dcm4che.dict.Status; ! import org.dcm4che.dict.Tags; ! import org.dcm4che.dict.DictionaryFactory; ! import org.dcm4che.dict.UIDDictionary; ! import org.dcm4che.net.DcmServiceException; ! ! import java.util.Collection; ! import java.util.Iterator; ! ! import javax.ejb.SessionBean; ! import javax.ejb.SessionContext; ! import javax.ejb.CreateException; ! import javax.ejb.EJBException; ! import javax.ejb.FinderException; ! import javax.ejb.ObjectNotFoundException; ! import javax.ejb.RemoveException; ! import javax.naming.Context; ! ! import org.apache.log4j.Logger; ! ! /** ! * Storage Bean. ! * ! * @ejb:bean type="Stateless" name="Storage" view-type="both" ! * jndi-name="org.dcm4chex.ejb.interfaces.StorageHome" ! * local-jndi-name="org.dcm4chex.ejb.interfaces.StorageLocalHome" ! * @ejb:transaction type="Required" ! * @ejb:transaction-type type="Container" ! * @ejb:ejb-ref ejb-name="Code" view-type="local" ref-name="Code" ! * @ejb:ejb-ref ejb-name="Patient" view-type="local" ref-name="Patient" ! * @ejb:ejb-ref ejb-name="Study" view-type="local" ref-name="Study" ! * @ejb:ejb-ref ejb-name="Series" view-type="local" ref-name="Series" ! * @ejb:ejb-ref ejb-name="SeriesRefRequest" view-type="local" ref-name="SeriesRefRequest" ! * @ejb:ejb-ref ejb-name="Instance" view-type="local" ref-name="Instance" ! * @ejb:ejb-ref ejb-name="PRRefSeries" view-type="local" ref-name="PRRefSeries" ! * @ejb:ejb-ref ejb-name="SRRefRequest" view-type="local" ref-name="SRRefRequest" ! * @ejb:ejb-ref ejb-name="SRVerifier" view-type="local" ref-name="SRVerifier" ! * @ejb:ejb-ref ejb-name="SOP" view-type="local" ref-name="SOP" ! */ ! public abstract class StorageBean implements SessionBean { ! ! static final Logger log = Logger.getLogger(StorageBean.class); ! static final DcmObjectFactory dsFact = DcmObjectFactory.getInstance(); ! static final DictionaryFactory dictFact = DictionaryFactory.getInstance(); ! static final UIDDictionary uidDict = dictFact.getDefaultUIDDictionary(); ! ! private CodeSupport codeSupport; ! private PatientSupport patSupport; ! private StudyLocalHome studyHome; ! private SeriesLocalHome seriesHome; ! private SeriesRefRequestLocalHome seriesRefRequestHome; ! private InstanceLocalHome instanceHome; ! private PRRefSeriesLocalHome prRefSeriesHome; ! private SRRefRequestLocalHome srRefRequestHome; ! private SRVerifierLocalHome srVerifierHome; ! private SOPSupport sopSupport; ! ! public void setSessionContext(SessionContext sessionContext) { ! try { ! Context jndiCtx = new javax.naming.InitialContext(); ! codeSupport = new CodeSupport( ! (CodeLocalHome) jndiCtx.lookup("java:comp/env/ejb/Code")); ! patSupport = new PatientSupport(log, ! (PatientLocalHome) jndiCtx.lookup("java:comp/env/ejb/Patient")); ! studyHome = ! (StudyLocalHome) jndiCtx.lookup("java:comp/env/ejb/Study"); ! seriesHome = ! (SeriesLocalHome) jndiCtx.lookup("java:comp/env/ejb/Series"); ! seriesRefRequestHome = ! (SeriesRefRequestLocalHome) jndiCtx.lookup("java:comp/env/ejb/SeriesRefRequest"); ! instanceHome = ! (InstanceLocalHome) jndiCtx.lookup("java:comp/env/ejb/Instance"); ! prRefSeriesHome = ! (PRRefSeriesLocalHome) jndiCtx.lookup("java:comp/env/ejb/PRRefSeries"); ! srRefRequestHome = ! (SRRefRequestLocalHome) jndiCtx.lookup("java:comp/env/ejb/SRRefRequest"); ! srVerifierHome = ! (SRVerifierLocalHome) jndiCtx.lookup("java:comp/env/ejb/SRVerifier"); ! sopSupport = new SOPSupport( ! (SOPLocalHome) jndiCtx.lookup("java:comp/env/ejb/SOP")); ! } ! catch(javax.naming.NamingException e) { ! throw new EJBException(e); ! } ! } ! ! /** ! * @ejb:interface-method ! */ ! public void store(StorageData dto) throws DcmServiceException { ! Dataset ds = dto.getDataset(); ! if (log.isDebugEnabled()) { ! log.debug("try store " + ds.getFileMetaInfo()); ! } ! try { ! String iuid = ds.getString(Tags.SOPInstanceUID); ! String cuid = ds.getString(Tags.SOPClassUID); ! SOPLocal sop = sopSupport.findOrCreate(iuid, cuid); ! boolean hidden = sop.getMppsPerfSeries() != null ! && sop.getMppsPerfSeries().getHide(); ! hideCopies(sop.getInstances()); ! InstanceLocal instance = instanceHome.create(sop, ! findOrCreateSeries(ds, hidden), hidden); ! instance.setVersion( ! new java.sql.Timestamp(System.currentTimeMillis())); ! instance.setUrl(dto.getUrl()); ! instance.setInstanceNumber(ds.getString(Tags.InstanceNumber)); ! instance.setContentDatetime(toTimestamp( ! ds.getDateTime(Tags.ContentDate, Tags.ContentTime))); ! ! if (ds.contains(Tags.Rows)) { ! updateImage(instance, ds); ! } else if (ds.contains(Tags.PresentationLabel)) { ! updatePR(instance, ds); ! } else if (ds.contains(Tags.ConceptNameCodeSeq)) { ! updateSR(instance, ds); ! } ! } catch (Exception e) { ! log.error("Failed to store " + ds.getFileMetaInfo(), e); ! throw new DcmServiceException(Status.ProcessingFailure, e); ! } ! } ! ! private java.sql.Timestamp toTimestamp(java.util.Date date) { ! if (date == null) { ! return null; ! } ! return new java.sql.Timestamp(date.getTime()); ! } ! ! private void hideCopies(Collection c) { ! for (Iterator it = c.iterator(); it.hasNext();) { ! InstanceLocal inst = (InstanceLocal) it.next(); ! inst.hide(); ! } ! } ! ! private void updateImage(InstanceLocal img, Dataset ds) ! throws DcmValueException { ! img.setRows(ds.getInteger(Tags.Rows)); ! img.setColumns(ds.getInteger(Tags.Columns)); ! img.setBitsAllocated(ds.getInteger(Tags.BitsAllocated)); ! img.setNumberOfFrames(ds.getInteger(Tags.NumberOfFrames)); ! } ! ! private void updatePR(InstanceLocal pr, Dataset ds) ! throws FinderException, CreateException, DcmValueException { ! pr.setPrLabel(ds.getString(Tags.PresentationLabel)); ! pr.setPrDescription(ds.getString(Tags.PresentationDescription)); ! pr.setPrCreationDatetime(toTimestamp(ds.getDateTime( ! Tags.PresentationCreationDate, Tags.PresentationCreationTime))); ! pr.setPrCreatorName(ds.getString(Tags.PresentationCreatorName)); ! DcmElement refSeries = ds.get(Tags.RefSeriesSeq); ! if (refSeries == null) { ! log.warn("Missing RefSeriesSeq in " + pr.getSop()); ! return; ! } ! for (int i = 0, n = refSeries.vm(); i < n; ++i) { ! Dataset series = refSeries.getItem(i); ! String suid = series.getString(Tags.SeriesInstanceUID); ! DcmElement refImages = series.get(Tags.RefImageSeq); ! if (refImages == null) { ! log.warn("Missing >RefImageSeq in " + pr.getSop()); ! continue; ! } ! PRRefSeriesLocal prRefSeries = prRefSeriesHome.create(pr, suid); ! Collection imageSOPs = prRefSeries.getImageSOPs(); ! for (int j = 0, m = refImages.vm(); j < m; ++j) { ! imageSOPs.add(sopSupport.findOrCreateRefSOP(refImages.getItem(j))); ! } ! } ! } ! ! private void updateSR(InstanceLocal sr, Dataset ds) ! throws FinderException, CreateException, DcmValueException { ! sr.setConceptNameCode(codeSupport.findOrCreate( ! ds.getItem(Tags.ConceptNameCodeSeq))); ! sr.setCompletionFlag( ! ds.getString(Tags.CompletionFlag)); ! sr.setCompletionFlagDescription( ! ds.getString(Tags.CompletionFlagDescription)); ! sr.setVerificationFlag( ! ds.getString(Tags.VerificationFlag)); ! sr.setObservationDatetime(toTimestamp( ! ds.getDate(Tags.ObservationDateTime))); ! DcmElement vos = ds.get(Tags.VerifyingObserverSeq); ! if (vos != null) { ! for (int i = 0, n = vos.vm(); i < n; ++i) { ! Dataset vo = vos.getItem(i); ! srVerifierHome.create(sr, ! vo.getString(Tags.VerifyingObserverName), ! codeSupport.findOrCreate( ! vo.getItem(Tags.VerifyingObserverIdentificationCodeSeq)), ! vo.getString(Tags.VerifyingOrganization), ! toTimestamp(vo.getDate(Tags.VerificationDateTime))); ! } ! } ! DcmElement reqs = ds.get(Tags.RefRequestSeq); ! if (reqs != null) { ! for (int i = 0, n = reqs.vm(); i < n; ++i) { ! Dataset req = reqs.getItem(i); ! srRefRequestHome.create(sr, ! req.getString(Tags.StudyInstanceUID), ! req.getString(Tags.AccessionNumber), ! req.getString(Tags.RequestedProcedureID), ! codeSupport.findOrCreate( ! req.getItem(Tags.RequestedProcedureCodeSeq))); ! } ! } ! } ! ! private SeriesLocal findOrCreateSeries(Dataset ds, boolean hidden) ! throws FinderException, CreateException, DcmValueException { ! SeriesLocal series = null; ! String uid = ds.getString(Tags.SeriesInstanceUID); ! try { ! series = seriesHome.findBySeriesInstanceUID(uid); ! // TODO check equality of other series attributes ! } catch (ObjectNotFoundException onfe) { ! series = seriesHome.create(findOrCreateStudy(ds, hidden), uid, ! ds.getString(Tags.Modality), hidden); ! series.setSeriesDatetime(toTimestamp( ! ds.getDateTime(Tags.SeriesDate, Tags.SeriesTime))); ! series.setSeriesNumber(ds.getString(Tags.SeriesNumber)); ! series.setSeriesDescription(ds.getString(Tags.SeriesDescription)); ! series.setLaterality(ds.getString(Tags.Laterality)); ! series.setBodyPartExamined(ds.getString(Tags.BodyPartExamined)); ! series.setPatientPosition(ds.getString(Tags.PatientPosition)); ! series.setPpsStartDatetime(toTimestamp( ! ds.getDateTime(Tags.PPSStartDate, Tags.PPSStartTime))); ! series.setManufacturer(ds.getString(Tags.Manufacturer)); ! series.setStationName(ds.getString(Tags.StationName)); ! series.setManufacturerModelName( ! ds.getString(Tags.ManufacturerModelName)); ! series.setRefPPS(sopSupport.findOrCreateRefSOP( ! ds.getItem(Tags.RefPPSSeq))); ! DcmElement ras = ds.get(Tags.RequestAttributesSeq); ! if (ras != null) { ! for (int i = 0, n = ras.vm(); i < n; ++i) { ! Dataset ra = ras.getItem(i); ! seriesRefRequestHome.create(series, ! ra.getString(Tags.RequestedProcedureID), ! ra.getString(Tags.SPSID)); ! } ! } ! } ! return series; ! } ! ! private StudyLocal findOrCreateStudy(Dataset ds, boolean hidden) ! throws FinderException, CreateException, DcmValueException { ! StudyLocal study = null; ! String uid = ds.getString(Tags.StudyInstanceUID); ! try { ! study = studyHome.findByStudyInstanceUID(uid); ! // TODO check equality of other study attributes ! } catch (ObjectNotFoundException onfe) { ! study = studyHome.create( ! patSupport.findOrCreate(ds), uid, hidden); ! study.setAccessionNumber(ds.getString(Tags.AccessionNumber)); ! study.setStudyID(ds.getString(Tags.StudyID)); ! study.setStudyDescription(ds.getString(Tags.StudyDescription)); ! study.setStudyDatetime(toTimestamp( ! ds.getDateTime(Tags.StudyDate, Tags.StudyTime))); ! study.setReferringPhysicianName( ! ds.getString(Tags.ReferringPhysicianName)); ! } ! return study; ! } ! } --- 1,311 ---- ! /***************************************************************************** ! * * ! * Copyright (c) 2002 by TIANI MEDGRAPH AG * ! * * ! * This file is part of dcm4che. * ! * * ! * This library is free software; you can redistribute it and/or modify it * ! * under the terms of the GNU Lesser General Public License as published * ! * by the Free Software Foundation; either version 2 of the License, or * ! * (at your option) any later version. * ! * * ! * This library is distributed in the hope that it will be useful, but * ! * WITHOUT ANY WARRANTY; without even the implied warranty of * ! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * ! * Lesser General Public License for more details. * ! * * ! * You should have received a copy of the GNU Lesser General Public * ! * License along with this library; if not, write to the Free Software * ! * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ! * * ! *****************************************************************************/ ! package org.dcm4chex.ejb.session; ! ! import java.util.Collection; ! import java.util.Iterator; ! ! import javax.ejb.CreateException; ! import javax.ejb.EJBException; ! import javax.ejb.FinderException; ! import javax.ejb.ObjectNotFoundException; ! import javax.ejb.SessionBean; ! import javax.ejb.SessionContext; ! import javax.naming.Context; ! ! import org.apache.log4j.Logger; ! import org.dcm4che.data.Dataset; ! import org.dcm4che.data.DcmElement; ! import org.dcm4che.data.DcmObjectFactory; ! import org.dcm4che.data.DcmValueException; ! import org.dcm4che.dict.DictionaryFactory; ! import org.dcm4che.dict.Status; ! import org.dcm4che.dict.Tags; ! import org.dcm4che.dict.UIDDictionary; ! import org.dcm4che.net.DcmServiceException; ! import org.dcm4chex.ejb.interfaces.CodeLocalHome; ! import org.dcm4chex.ejb.interfaces.InstanceLocal; ! import org.dcm4chex.ejb.interfaces.InstanceLocalHome; ! import org.dcm4chex.ejb.interfaces.PRRefSeriesLocal; ! import org.dcm4chex.ejb.interfaces.PRRefSeriesLocalHome; ! import org.dcm4chex.ejb.interfaces.PatientLocalHome; ! import org.dcm4chex.ejb.interfaces.SOPLocal; ! import org.dcm4chex.ejb.interfaces.SOPLocalHome; ! import org.dcm4chex.ejb.interfaces.SRRefRequestLocalHome; ! import org.dcm4chex.ejb.interfaces.SRVerifierLocalHome; ! import org.dcm4chex.ejb.interfaces.SeriesLocal; ! import org.dcm4chex.ejb.interfaces.SeriesLocalHome; ! import org.dcm4chex.ejb.interfaces.SeriesRefRequestLocalHome; ! import org.dcm4chex.ejb.interfaces.StorageData; ! import org.dcm4chex.ejb.interfaces.StudyLocal; ! import org.dcm4chex.ejb.interfaces.StudyLocalHome; ! ! /** ! * Storage Bean. ! * ! * @ejb:bean type="Stateless" name="Storage" view-type="both" ! * jndi-name="org.dcm4chex.ejb.interfaces.StorageHome" ! * local-jndi-name="org.dcm4chex.ejb.interfaces.StorageLocalHome" ! * @ejb:transaction type="Required" ! * @ejb:transaction-type type="Container" ! * @ejb:ejb-ref ejb-name="Code" view-type="local" ref-name="Code" ! * @ejb:ejb-ref ejb-name="Patient" view-type="local" ref-name="Patient" ! * @ejb:ejb-ref ejb-name="Study" view-type="local" ref-name="Study" ! * @ejb:ejb-ref ejb-name="Series" view-type="local" ref-name="Series" ! * @ejb:ejb-ref ejb-name="SeriesRefRequest" view-type="local" ref-name="SeriesRefRequest" ! * @ejb:ejb-ref ejb-name="Instance" view-type="local" ref-name="Instance" ! * @ejb:ejb-ref ejb-name="PRRefSeries" view-type="local" ref-name="PRRefSeries" ! * @ejb:ejb-ref ejb-name="SRRefRequest" view-type="local" ref-name="SRRefRequest" ! * @ejb:ejb-ref ejb-name="SRVerifier" view-type="local" ref-name="SRVerifier" ! * @ejb:ejb-ref ejb-name="SOP" view-type="local" ref-name="SOP" ! */ ! public abstract class StorageBean implements SessionBean { ! ! static final Logger log = Logger.getLogger(StorageBean.class); ! static final DcmObjectFactory dsFact = DcmObjectFactory.getInstance(); ! static final DictionaryFactory dictFact = DictionaryFactory.getInstance(); ! static final UIDDictionary uidDict = dictFact.getDefaultUIDDictionary(); ! ! private CodeSupport codeSupport; ! private PatientSupport patSupport; ! private StudyLocalHome studyHome; ! private SeriesLocalHome seriesHome; ! private SeriesRefRequestLocalHome seriesRefRequestHome; ! private InstanceLocalHome instanceHome; ! private PRRefSeriesLocalHome prRefSeriesHome; ! private SRRefRequestLocalHome srRefRequestHome; ! private SRVerifierLocalHome srVerifierHome; ! private SOPSupport sopSupport; ! ! public void setSessionContext(SessionContext sessionContext) { ! try { ! Context jndiCtx = new javax.naming.InitialContext(); ! codeSupport = new CodeSupport( ! (CodeLocalHome) jndiCtx.lookup("java:comp/env/ejb/Code")); ! patSupport = new PatientSupport(log, ! (PatientLocalHome) jndiCtx.lookup("java:comp/env/ejb/Patient")); ! studyHome = ! (StudyLocalHome) jndiCtx.lookup("java:comp/env/ejb/Study"); ! seriesHome = ! (SeriesLocalHome) jndiCtx.lookup("java:comp/env/ejb/Series"); ! seriesRefRequestHome = ! (SeriesRefRequestLocalHome) jndiCtx.lookup("java:comp/env/ejb/SeriesRefRequest"); ! instanceHome = ! (InstanceLocalHome) jndiCtx.lookup("java:comp/env/ejb/Instance"); ! prRefSeriesHome = ! (PRRefSeriesLocalHome) jndiCtx.lookup("java:comp/env/ejb/PRRefSeries"); ! srRefRequestHome = ! (SRRefRequestLocalHome) jndiCtx.lookup("java:comp/env/ejb/SRRefRequest"); ! srVerifierHome = ! (SRVerifierLocalHome) jndiCtx.lookup("java:comp/env/ejb/SRVerifier"); ! sopSupport = new SOPSupport( ! (SOPLocalHome) jndiCtx.lookup("java:comp/env/ejb/SOP")); ! } ! catch(javax.naming.NamingException e) { ! throw new EJBException(e); ! } ! } ! ! /** ! * @ejb:interface-method ! */ ! public void store(StorageData dto) throws DcmServiceException { ! Dataset ds = dto.getDataset(); ! if (log.isDebugEnabled()) { ! log.debug("try store " + ds.getFileMetaInfo()); ! } ! try { ! String iuid = ds.getString(Tags.SOPInstanceUID); ! String cuid = ds.getString(Tags.SOPClassUID); ! SOPLocal sop = sopSupport.findOrCreate(iuid, cuid); ! boolean hidden = sop.getMppsPerfSeries() != null ! && sop.getMppsPerfSeries().getHide(); ! hideCopies(sop.getInstances()); ! InstanceLocal instance = instanceHome.create(sop, ! findOrCreateSeries(ds, hidden), hidden); ! instance.setVersion( ! new java.sql.Timestamp(System.currentTimeMillis())); ! instance.setUrl(dto.getUrl()); ! instance.setInstanceNumber(ds.getString(Tags.InstanceNumber)); ! instance.setContentDatetime(toTimestamp( ! ds.getDateTime(Tags.ContentDate, Tags.ContentTime))); ! ! if (ds.contains(Tags.Rows)) { ! updateImage(instance, ds); ! } else if (ds.contains(Tags.PresentationLabel)) { ! updatePR(instance, ds); ! } else if (ds.contains(Tags.ConceptNameCodeSeq)) { ! updateSR(instance, ds); ! } ! } catch (Exception e) { ! log.error("Failed to store " + ds.getFileMetaInfo(), e); ! throw new DcmServiceException(Status.ProcessingFailure, e); ! } ! } ! ! private java.sql.Timestamp toTimestamp(java.util.Date date) { ! if (date == null) { ! return null; ! } ! return new java.sql.Timestamp(date.getTime()); ! } ! ! private void hideCopies(Collection c) { ! for (Iterator it = c.iterator(); it.hasNext();) { ! InstanceLocal inst = (InstanceLocal) it.next(); ! inst.hide(); ! } ! } ! ! private void updateImage(InstanceLocal img, Dataset ds) ! throws DcmValueException { ! img.setRows(ds.getInteger(Tags.Rows)); ! img.setColumns(ds.getInteger(Tags.Columns)); ! img.setBitsAllocated(ds.getInteger(Tags.BitsAllocated)); ! img.setNumberOfFrames(ds.getInteger(Tags.NumberOfFrames)); ! } ! ! private void updatePR(InstanceLocal pr, Dataset ds) ! throws FinderException, CreateException, DcmValueException { ! pr.setPrLabel(ds.getString(Tags.PresentationLabel)); ! pr.setPrDescription(ds.getString(Tags.PresentationDescription)); ! pr.setPrCreationDatetime(toTimestamp(ds.getDateTime( ! Tags.PresentationCreationDate, Tags.PresentationCreationTime))); ! pr.setPrCreatorName(ds.getString(Tags.PresentationCreatorName)); ! DcmElement refSeries = ds.get(Tags.RefSeriesSeq); ! if (refSeries == null) { ! log.warn("Missing RefSeriesSeq in " + pr.getSop()); ! return; ! } ! for (int i = 0, n = refSeries.vm(); i < n; ++i) { ! Dataset series = refSeries.getItem(i); ! String suid = series.getString(Tags.SeriesInstanceUID); ! DcmElement refImages = series.get(Tags.RefImageSeq); ! if (refImages == null) { ! log.warn("Missing >RefImageSeq in " + pr.getSop()); ! continue; ! } ! PRRefSeriesLocal prRefSeries = prRefSeriesHome.create(pr, suid); ! Collection imageSOPs = prRefSeries.getImageSOPs(); ! for (int j = 0, m = refImages.vm(); j < m; ++j) { ! imageSOPs.add(sopSupport.findOrCreateRefSOP(refImages.getItem(j))); ! } ! } ! } ! ! private void updateSR(InstanceLocal sr, Dataset ds) ! throws FinderException, CreateException, DcmValueException { ! sr.setConceptNameCode(codeSupport.findOrCreate( ! ds.getItem(Tags.ConceptNameCodeSeq))); ! sr.setCompletionFlag( ! ds.getString(Tags.CompletionFlag)); ! sr.setCompletionFlagDescription( ! ds.getString(Tags.CompletionFlagDescription)); ! sr.setVerificationFlag( ! ds.getString(Tags.VerificationFlag)); ! sr.setObservationDatetime(toTimestamp( ! ds.getDate(Tags.ObservationDateTime))); ! DcmElement vos = ds.get(Tags.VerifyingObserverSeq); ! if (vos != null) { ! for (int i = 0, n = vos.vm(); i < n; ++i) { ! Dataset vo = vos.getItem(i); ! srVerifierHome.create(sr, ! vo.getString(Tags.VerifyingObserverName), ! codeSupport.findOrCreate( ! vo.getItem(Tags.VerifyingObserverIdentificationCodeSeq)), ! vo.getString(Tags.VerifyingOrganization), ! toTimestamp(vo.getDate(Tags.VerificationDateTime))); ! } ! } ! DcmElement reqs = ds.get(Tags.RefRequestSeq); ! if (reqs != null) { ! for (int i = 0, n = reqs.vm(); i < n; ++i) { ! Dataset req = reqs.getItem(i); ! srRefRequestHome.create(sr, ! req.getString(Tags.StudyInstanceUID), ! req.getString(Tags.AccessionNumber), ! req.getString(Tags.RequestedProcedureID), ! codeSupport.findOrCreate( ! req.getItem(Tags.RequestedProcedureCodeSeq))); ! } ! } ! } ! ! private SeriesLocal findOrCreateSeries(Dataset ds, boolean hidden) ! throws FinderException, CreateException, DcmValueException { ! SeriesLocal series = null; ! String uid = ds.getString(Tags.SeriesInstanceUID); ! try { ! series = seriesHome.findBySeriesInstanceUID(uid); ! // TODO check equality of other series attributes ! } catch (ObjectNotFoundException onfe) { ! series = seriesHome.create(findOrCreateStudy(ds, hidden), uid, ! ds.getString(Tags.Modality), hidden); ! series.setSeriesDatetime(toTimestamp( ! ds.getDateTime(Tags.SeriesDate, Tags.SeriesTime))); ! series.setSeriesNumber(ds.getString(Tags.SeriesNumber)); ! series.setSeriesDescription(ds.getString(Tags.SeriesDescription)); ! series.setLaterality(ds.getString(Tags.Laterality)); ! series.setBodyPartExamined(ds.getString(Tags.BodyPartExamined)); ! series.setPatientPosition(ds.getString(Tags.PatientPosition)); ! series.setPpsStartDatetime(toTimestamp( ! ds.getDateTime(Tags.PPSStartDate, Tags.PPSStartTime))); ! series.setManufacturer(ds.getString(Tags.Manufacturer)); ! series.setStationName(ds.getString(Tags.StationName)); ! series.setManufacturerModelName( ! ds.getString(Tags.ManufacturerModelName)); ! series.setRefPPS(sopSupport.findOrCreateRefSOP( ! ds.getItem(Tags.RefPPSSeq))); ! DcmElement ras = ds.get(Tags.RequestAttributesSeq); ! if (ras != null) { ! for (int i = 0, n = ras.vm(); i < n; ++i) { ! Dataset ra = ras.getItem(i); ! seriesRefRequestHome.create(series, ! ra.getString(Tags.RequestedProcedureID), ! ra.getString(Tags.SPSID)); ! } ! } ! } ! return series; ! } ! ! private StudyLocal findOrCreateStudy(Dataset ds, boolean hidden) ! throws FinderException, CreateException, DcmValueException { ! StudyLocal study = null; ! String uid = ds.getString(Tags.StudyInstanceUID); ! try { ! study = studyHome.findByStudyInstanceUID(uid); ! // TODO check equality of other study attributes ! } catch (ObjectNotFoundException onfe) { ! study = studyHome.create( ! patSupport.findOrCreate(ds), uid, hidden); ! study.setAccessionNumber(ds.getString(Tags.AccessionNumber)); ! study.setStudyID(ds.getString(Tags.StudyID)); ! study.setStudyDescription(ds.getString(Tags.StudyDescription)); ! study.setStudyDatetime(toTimestamp( ! ds.getDateTime(Tags.StudyDate, Tags.StudyTime))); ! study.setReferringPhysicianName( ! ds.getString(Tags.ReferringPhysicianName)); ! } ! return study; ! } ! } |