rosejose
|
Posted: July 07, 2011 20:08 by rosejose
|
|
Hi, I have a multiple domain (issuer of ID) system architecture who's expecting to get the Global patient ID for each PDQ. What I do is that I register a patient with it's local ID, then I register the patient with the global ID. My goal is to always get the global ID to use it for XDS queries (to avoid an explicit PIX query). When I PDQ using local patient ID I only get the local ID. But if I leave it blank and query the patient name I get the local and global ID. This is the expected behaviour as stated in ITI-TF vol 2. sec. 3.21.4.1.2.2.2. I would like to get a "non exclusive match", i.e. if the patient found in the specified domain has an ID : "11111^^^&LOCAL_DOMAIN&ISO" I would like to get "11111^^^&LOCAL_DOMAIN&ISO~11111^^^&GLOBAL_DOMAIN&ISO" where the second domain should be returned regardless of the query attributes. Do I have to fiddle with the source code? thank you |
Multi-domain workaround to get additional default domain in PDQ response.
Replies: 12 - Last Post: August 18, 2011 18:43
by: odysseas
by: odysseas
showing 1 - 13 of 13
odysseas
|
Posted: July 19, 2011 17:55 by odysseas
|
|
Hi Rose, If you can provide me with the PDQ query that you are submitting I may be able to help. I believe that the following example confirms that you can get the behavior that you are expecting if I am understanding your question correctly. We submit a query for patients with the ID PDQ113XX05. MSH|^~\&|MESA_PD_CONSUMER|MESA_DEPARTMENT|MESA_PD_SUPPLIER|XYZ_HOSPITAL|||QBP^Q22|11311110|P|2.5 QPD|IHE PDQ Query|QRY11320110|@PID.3.1^PDQ113XX05| RCP|I|10^RD| In response we get the three identifiers associated with this patient. It is up to you to determine which one is the global one based on the returned identifier domain. I this case the global identifier is the first one. Let me know if this helps. MSH|^~\&|MESA_PD_SUPPLIER|XYZ_HOSPITAL|MESA_PD_CONSUMER|MESA_DEPARTMENT|20110719135035-0400||RSP^K22|c0a84ab4131438551123|P|2.5 MSA|AA|11311110 QAK|QRY11320110|OK||1|1|0 QPD|IHE PDQ Query|QRY11320110|@PID.3.1^PDQ113XX05 PID|1||bf31d0e0-af12-11e0-b2cb-000c290cedb2^^^2.16.840.1.113883.4.357&2.16.840.1.113883.4.357&hl7^PI~LPDQ113XX05^^^IHELOCAL&1.3.6.1.4.1.21367.2010.1.2.310&IS^PI~PDQ113XX05^^^IHENA&1.3.6.1.4.1.21367.2010.1.2.300&ISO^PI||MOONEY^STAN||19780920|M|||100 TAYLOR^^ST LOUIS^MO^63110 LPDQ113XX05 |
odysseas
|
Posted: July 19, 2011 18:00 by odysseas
|
|
For some reason my previous message was truncated. Here is the response that you get for the query above. There are basically three different identifiers associated with this patient. The first one happens to be the global id. You can decide which one is the global id based on the identifier domain associated with the identifier. Let me know if this helps or not. MSH|^~\&|MESA_PD_SUPPLIER|XYZ_HOSPITAL|MESA_PD_CONSUMER|MESA_DEPARTMENT|20110719135035-0400||RSP^K22|c0a84ab4131438551123|P|2.5 MSA|AA|11311110 QAK|QRY11320110|OK||1|1|0 QPD|IHE PDQ Query|QRY11320110|@PID.3.1^PDQ113XX05 PID|1||bf31d0e0-af12-11e0-b2cb-000c290cedb2^^^2.16.840.1.113883.4.357&2.16.840.1.113883.4.357&hl7^PI~ LPDQ113XX05^^^IHELOCAL&1.3.6.1.4.1.21367.2010.1.2.310&IS^PI~ PDQ113XX05^^^IHENA&1.3.6.1.4.1.21367.2010.1.2.300&ISO^PI||MOONEY^STAN||19780920|M|||100 TAYLOR^^ST LOUIS^MO^63110 |
Csaba Toth
|
Posted: July 20, 2011 16:21 by Csaba Toth
|
|
Note for the readers: actually all of the information is there (in the page's HTML source) in Odysseas's previous reply also, the truncation is only visual. The HTML/CSS layout couldn't handle the long PDQ message it seems. So if anyone selects the text manually and copies it to the clipboard all of the information will be there. |
rosejose
|
Posted: August 03, 2011 13:28 by rosejose
|
|
Hi Odysseas, This is very strange then. I believe you are sending pretty much the same query I'm trying but I only get exact PID matches! My Query: MSH|^~\&|PACS_SYS|SYSTEM|MESA_PD_SUPPLIER|XYZ_HOSPITAL|20110803091754||QBP^Q22|HL7Agent030917540931|P|2.5 QPD|AName^|PQRY0803091754|@PID.3.1^113XX02||||| RCP|I|30^RD Reponse: MSH|^~\&|MESA_PD_SUPPLIER|XYZ_HOSPITAL|PACS_SYS|SYSTEM|20110803091754-0400||RSP^K22^RSP_K21|c0a805641318fcb0c3d3|P|2.5 MSA|AA|HL7Agent030917540931 QAK|PQRY0803091754|OK||1|1|0 QPD|AName|PQRY0803091754|@PID.3.1^113XX02 PID|1||113XX02^^^JEWISH&1.3.6.1.4.1.21367.2010.1.2.310&ISO^PI~113XX02^^^SACRED_HEART&1.3.6.1.4.1.21367.2010.1.2.320&ISO^PI||MOORE^CHIP||19380224|M|||10 Evergreen Terrace^^Springfield^IL^02368 Otherwise, if I issue this query: MSH|^~\&|PACS_SYS|SYSTEM|MESA_PD_SUPPLIER|XYZ_HOSPITAL|20110803100532||QBP^Q22|HL7Agent031005329847|P|2.5 QPD|AName^|PQRY0803100532|@PID.5.1.1^MOORE||||| RCP|I|30^RD I get all the associated patients, which is what I'm looking for: MSH|^~\&|MESA_PD_SUPPLIER|XYZ_HOSPITAL|PACS_SYS|SYSTEM|20110803100533-0400||RSP^K22^RSP_K21|c0a805641318ff6abc83|P|2.5 MSA|AA|HL7Agent031005329847 QAK|PQRY0803100532|OK||2|2|0 QPD|AName|PQRY0803100532|@PID.5.1.1^MOORE PID|1||113XX02^^^JEWISH&1.3.6.1.4.1.21367.2010.1.2.310&ISO^PI~113XZ01^^^CHILDREN&1.3.6.1.4.1.21367.2005.1.1&ISO^PI~5584.486.574.YM.113XZ01.113XX02^^^GTA_WEST&1.3.6.1.4.1.21367.2005.3.7&ISO^PI~113XX02^^^SACRED_HEART&1.3.6.1.4.1.21367.2010.1.2.320&ISO^PI||MOORE^CHIP||19380224|M|||10 Evergreen Terrace^^Springfield^IL^02368 |
odysseas
|
Posted: August 07, 2011 17:02 by odysseas
|
|
Rose, The difference between the versions of OpenEMPI may actually be the source of the problem. I tested what I sent you with our latest version which is 2.1.3. You may want to try using 2.1.3 to see if that fixes your problem. Since you already have OpenPIXPDQ deployed probably on a Tomcat server instance, all you should have to do is take the openempi-core-2.1.3.jar from the latest release and drop it into the WEB-INF/lib directory in place of the openempi-core-2.1.2.1.jar. Let me know if that takes care of your issue. If not, I can test your HL7v2 messages against our 2.1.2.1 release and see if I get the same results as you. Odysseas |
rosejose
|
Posted: August 08, 2011 23:32 by rosejose
|
|
After some work, I managed to get it "working" with core-2.1.3 jar. You need to add the "nhin-adapter.properties" inside the openempi-openpixpdq-adapter-2.1.2.1.jar. Then I got another error: (partial copy-paste): [2011-08-08 19:16:29,484]ERROR 27313[main] - org.openhie.openempi.context.Context.startup(Context.java:82) - Failed while setting up the context for OpenEMPI: j ava.lang.RuntimeException: Unable to start the notification broker due to: Illegal character in opaque part at index 8: xbean:C:\TEMP\DIrViewerTEST/openpixpdq-1 .2RC/openempi/conf/activemq-config.xml java.lang.RuntimeException: Unable to start the notification broker due to: Illegal character in opaque part at index 8: xbean:C:\TEMP\DIrViewerTEST/openpixpdq- 1.2RC/openempi/conf/activemq-config.xml at org.openhie.openempi.context.Context.startNotificationBroker(Context.java:171) at org.openhie.openempi.context.Context.startup(Context.java:79) at org.openhie.openempi.openpixpdqadapter.BasePixPdqAdapter.<init>(BasePixPdqAdapter.java:40) at org.openhie.openempi.openpixpdqadapter.PdqSupplierAdapter.<init>(PdqSupplierAdapter.java:38) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61) This doesn't stop the OpenPixPdq from working. I queried again for the patient ID and get the same as version 2.1.2.1. Might it be something from OpenPixPdq? I'm working on installing OpenEMPI on a JBoss server. To try the request from there. Thank you |
rosejose
|
Posted: August 09, 2011 00:25 by rosejose
|
|
Could you tell me what is your flow to register your patients? Maybe the problem is around that point. On my side: I register a patient (ADT-A04). I register the same patient in the global domain (ADT-A04 using the global ID). I suppose the matching is done well since I get only a single patient with multiple ID's when I query by last name. It really is a problem with the ID. How do you test your queries? You said you test with 2.1.3, but how? I wanted to do a bit more low level queries (without OpenPixPdq) but I'm not sure how do you achieve this. Thank you. |
odysseas
|
Posted: August 15, 2011 11:52 by odysseas
|
|
Rose, I believe I know what is going on. When I asked you to upgrade to 2.1.3 I forgot to mention that the OpenEMPI adaptor component needs to be upgraded as well. You need to copy openempi-openpixpdq-adapter-2.1.3.jar in place of the adapter from the 2.1.2.1 release. That also explains why you had to deal with the nhin-adapter.properties file which is embedded in the adapter jar file. Please try it and let me know if you get the expected results or not. The way I tested your query is by taking on of the Pdq test cases and replaced the query in the test with the one you provided me (adjusting the HL7 header elements to make it work against my configuration). I don't know if you built OpenEMPI from source but there is a test case in the pixpdq-adapter project that performs a similar request to the one you are testing. Odysseas |
rosejose
|
Posted: August 17, 2011 18:12 by rosejose
|
|
Hi Odysseas, So, I solved the problem on my side with version 2.1.2.1. My hunch was good, there was a fundamental difference which I had overlooked. In "/conf/mpi-config.xml" <global-identifier> <assign-global-identifier>true</assign-global-identifier> <namespace-identifier>TEST</namespace-identifier> <universal-identifier>1.3.6.1.4.1.21367.2005.3.7</universal-identifier> <universal-identifier-type>ISO</universal-identifier-type> </global-identifier> By default, with the OpenPixPdq distribution config is set to "false"!! So no matter how I tried it, it would never work. Now I can query as described earlier by you and have a correct result. I have no idea what this config does, but it seamed to be related. One more thing, could you use UTF-8 encoding for your database creation scripts (I converted it on my end), it would really help us Linux folks. ![]() Thank you for your support. Regards, jr |
rosejose
|
Posted: August 17, 2011 21:12 by rosejose
|
|
I got a bit over-exited, I have a bit of a problem. How do you register the patients to get a SINGLE GLOGAL ID?! What I mean is if I send a this request: [2011-08-17 16:43:45,484] INFO843016[Thread-214] - ca.uhn.log.HapiLogImpl.info(HapiLogImpl.java:78) - MSH|^~\&|X|Y|MESA_PD_SUPPLIER|XYZ RCP|I|30^RDPQRY0817044345|@PID.5.1.1^MOORE|||||34548447|P|2.5 I get this: [2011-08-17 16:43:48,109] INFO845641[Thread-214] - ca.uhn.log.HapiLogImpl.info(HapiLogImpl.java:78) - MSH|^~\&|MESA_PD_SUPPLIER|XYZ_HOSPITAL|X|SO PID|1||113XX02^^^JEWISH&1.3.6.1.4.1.21367.2010.1.2.310&ISO^PI~113XZ01^^^CHILDREN&1.3.6.1.4.1.21367.2005.1.1&ISO^PI~cabc3c10-c908-11e0-98b0-005056c00008^^^GLOBAL &1.3.6.1.4.1.21367.2005.3.7&ISO^PI~113XX02^^^SACRED_HEART&1.3.6.1.4.1.21367.2010.1.2.320&ISO^PI~cdb271a0-c908-11e0-98b0-005056c00008^^^GLOBAL&1.3.6.1.4.1.21 367.2005.3.7&ISO^PI~c80420f0-c908-11e0-98b0-005056c00008^^^GLOBAL&1.3.6.1.4.1.21367.2005.3.7&ISO^PI||MOORE^CHIP||19380224|M|||10 Evergreen Terrace^^Springfiel PID|2||d2582bf0-c908-11e0-98b0-005056c00008^^^GLOBAL&1.3.6.1.4.1.21367.2005.3.7&ISO^PI~ced2d5c0-c908-11e0-98b0-005056c00008^^^GLOBAL&1.3.6.1.4.1.21367.2005. 3.7&ISO^PI~113XX03^^^JEWISH&1.3.6.1.4.1.21367.2010.1.2.310&ISO^PI~113XX01^^^SACRED_HEART&1.3.6.1.4.1.21367.2010.1.2.320&ISO^PI||MOORE^CAROL||19740620|F|||2302 G ateway Drive^^Plainsboro^MA^02368 This means OpenEMPI is creating a GLOBAL for each patient I register (even if it is the same, matching is working)? How did you get LPDQ113XX05 and PDQ113XX05 id's registered without OpenEMPI creating 2 "GUID^^^GLOBAL&1.3.6.1.4.1.21367.2005.3.7&ISO", i.e. one for each time you register a patient. Thank you. Sorry to bother so much. |
odysseas
|
Posted: August 18, 2011 18:43 by odysseas
|
|
Rose, In releases prior to 2.1.3 there was only partial support for global identifiers. The full support was added in the most recent release. At the same time we also fixed the problem that you just encountered so in order to see those fixes you have to use the latest release. If you download and install the 2.1.3 release, it comes with a PIX/PDQ server implementation that you can quickly test against to make sure it works as you expect. Let me know if that helps or not. Regarding the configuration that you saw in the mpi-config.xml file, the section you brought up deals with the global identifier support. You can enable it or disable it using the boolean element at the top. If you do enable it, then you need to specify the three attributes that uniquely identify the identifier domain that issues the global identifiers. Odysseas |
showing 1 - 13 of 13
Replies: 12 - Last Post: August 18, 2011 18:43
by: odysseas
by: odysseas








