StoreSCP patientmatching with pid,issuer?[familyname,givenname,middlename?,birthdate] - Problem

694 views
Skip to first unread message

ehrenbe...@gmail.com

unread,
Jun 1, 2014, 6:07:42 PM6/1/14
to

Hey,

I have a problem with the PatientMatching in the storescp. I got two different cds with dicom studies and images from two different patients from
tow different hospitals but the patient id and the issuer where the same. The import - sending to the pacs - from patient number one was okay.
With sending patient number two all patient information in the image file where change to patient number one.
This is a no go for a PACS because a physician/doctor will have wrong information for a wrong patient.

How can i avoid this?
Removing the issuer and the [] brackets won't work because dcm4chee needs the issuer? word in the patientmatching line. :(

Btw: Patient ID and issuer are not unique ids in the dicom standard so why is dcm4chee count on that?

Hope someone has a good idea and can help me.

Thanks in advanced.

Frank
 

Peter Heiles

unread,
Jun 2, 2014, 9:01:32 AM6/2/14
to dcm...@googlegroups.com
you could:
a) just remove the brackets [leave the issuer? as criteria] - this will force a check on all criteria, but will most likely lead to unwanted duplicate patient records (e.g. if modalities mess up one of the parameters)
b) drop the patient id and the issuer in a calling aet (of the import tool used) specific cstorerq.xsl - this will cause dcm4chee to generate a new patient id [according to storescp config], e.g.:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="xml" indent="no"/>
   <xsl:template match="/dataset">
    <dataset>
     <attr tag="00100020" vr="LO"/>
     <attr tag="00100021" vr="LO"/>
    </dataset>
  </xsl:template>
</xsl:stylesheet>
This might also be a helpflull indicator for patient records which need reconcillation.

see IHE RAD TF, Vol.2 Appendix D for further explanation about the utilization of the issuer of patient id

ehrenbe...@gmail.com

unread,
Jun 2, 2014, 7:21:16 PM6/2/14
to
Hey Peter,



a) just remove the brackets [leave the issuer? as criteria] - this will force a check on all criteria, but will most likely lead to unwanted duplicate patient records (e.g. if modalities mess up one of the parameters)

point a should work as I thought too but it won't. I or better dcm4chee gets a null pointer exception:


2014-06-02 23:55:23,880 INFO  OREX->DCM4CHEE (TCPServer-1) [org.dcm4cheri.net.FsmImpl] received [pc-1] 1:C_STORE_RQ with Dataset
   
class:    1.2.840.10008.5.1.4.1.1.1/Computed Radiography Image Storage
    inst
:    1.2.392.200036.9107.500.305.6430.20120626.172404.703.106430/?
2014-06-02 23:55:23,912 INFO  OREX->DCM4CHEE (TCPServer-1) [org.dcm4chex.archive.mbean.FileSystemMgt2Service] Free disk space on G:\VitalPACS\Server\dcm4chee-2.17.3-psql\server\default\archive: 25.59365GB
2014-06-02 23:55:23,917 INFO  OREX->DCM4CHEE (TCPServer-1) [org.dcm4chex.archive.dcm.storescp.StoreScpService] M-WRITE file:G:\VitalPACS\Server\dcm4chee-2.17.3-psql\server\default\archive\2014\6\2\23\B7C806B6\22835984\12A6A2F2
2014-06-02 23:55:24,100 INFO  OREX->DCM4CHEE (TCPServer-1) [org.dcm4chex.archive.ejb.session.StorageBean] inserting instance FileMetaInfo[uid=1.2.392.200036.9107.500.305.6430.20120626.172404.703.106430
   
class=1.2.840.10008.5.1.4.1.1.1/Computed Radiography Image Storage
    ts
=1.2.840.10008.1.2.1/Explicit VR Little Endian
    impl
=1.2.40.0.13.1.1.1-dcm4che-1.4.33]
2014-06-02 23:55:24,118 WARN  OREX->DCM4CHEE (TCPServer-1) [org.dcm4chex.archive.ejb.session.StorageBean] inserting records for instance[uid=1.2.392.200036.9107.500.305.6430.20120626.172404.703.106430] failed: Existing Patient[pk=8751, pid=-1, issuer=TEST, name=MUSTERMANN^DONALD^^^] with equal Patient ID but different demographis than Patient[id=-1, issuer=TEST, name=ANONYMOUS^382^null^null]
2014-06-02 23:55:24,122 INFO  OREX->DCM4CHEE (TCPServer-1) [org.dcm4chex.archive.dcm.storescp.StoreScpService] Generate Patient ID: PACS-1973068499^^^DCM4CHEE for Patient: Anonymous^382
2014-06-02 23:55:24,126 ERROR OREX->DCM4CHEE (TCPServer-1) [org.dcm4chex.archive.dcm.storescp.StoreScpService]
java
.lang.NullPointerException
    at org
.dcm4chex.archive.dcm.storescp.StoreScp.doActualCStore(StoreScp.java:718)
    at org
.dcm4chex.archive.dcm.storescp.StoreScp.doCStore(StoreScp.java:471)
    at org
.dcm4che.net.DcmServiceBase.c_store(DcmServiceBase.java:116)
    at org
.dcm4cheri.net.ActiveAssociationImpl.run(ActiveAssociationImpl.java:230)
    at org
.dcm4cheri.util.LF_ThreadPool.join(LF_ThreadPool.java:174)
    at org
.dcm4cheri.net.ActiveAssociationImpl.run(ActiveAssociationImpl.java:164)
    at org
.dcm4cheri.server.DcmHandlerImpl.handle(DcmHandlerImpl.java:249)
    at org
.dcm4cheri.server.ServerImpl.run(ServerImpl.java:288)
    at org
.dcm4cheri.util.LF_ThreadPool.join(LF_ThreadPool.java:174)
    at org
.dcm4cheri.server.ServerImpl$1.run(ServerImpl.java:242)
    at java
.lang.Thread.run(Thread.java:724)
2014-06-02 23:55:24,127 INFO  OREX->DCM4CHEE (TCPServer-1) [org.dcm4chex.archive.dcm.storescp.StoreScpService] M-DELETE file:G:\VitalPACS\Server\dcm4chee-2.17.3-psql\server\default\archive\2014\6\2\23\B7C806B6\22835984\12A6A2F2
2014-06-02 23:55:24,130 INFO  OREX->DCM4CHEE (TCPServer-1) [org.dcm4cheri.net.FsmImpl] sending [pc-1] 1:C_STORE_RSP
   
class:    1.2.840.10008.5.1.4.1.1.1/Computed Radiography Image Storage
    inst
:    1.2.392.200036.9107.500.305.6430.20120626.172404.703.106430/?
    status
:    110
    error comment
:    java.lang.NullPointerException
2014-06-02 23:55:24,168 INFO  OREX->DCM4CHEE (TCPServer-1) [org.dcm4cheri.net.FsmImpl] received A-RELEASE-RQ
2014-06-02 23:55:24,175 INFO  OREX->DCM4CHEE (TCPServer-1) [org.dcm4cheri.net.FsmImpl] sending A-RELEASE-RP


b) drop the patient id and the issuer in a calling aet (of the import tool used) specific cstorerq.xsl - this will cause dcm4chee to generate a new patient id [according to storescp config], e.g.:

With changing the patient matching string back to the original value and using the cstoreq.xsl file in the MOD_AET direcotry the patient information where merged. :(

 c)  c=a AND b won't work too.

I guess I'm using the wrong cstoreq.xsl.

Peter, maybe you could give a hint and thanks for you help.

Btw: because of your IHE advise - thanks for that I'll read it. We have a PACS for 'small' radiologist like orthopedic specialist and surgeon who has x-ray equipment  and/or ultrasound devices. We have
a RIS between the PACS and their patient management software with GDT as interface to the patient management software  so we only need the pacs for storing and querying studies, series and images.

Frank

Reply all
Reply to author
Forward
0 new messages