You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
(6) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(2) |
Feb
(1) |
Mar
|
Apr
(4) |
May
(5) |
Jun
(6) |
Jul
(3) |
Aug
(13) |
Sep
(28) |
Oct
(33) |
Nov
(8) |
Dec
(1) |
2003 |
Jan
(6) |
Feb
(2) |
Mar
|
Apr
(25) |
May
(21) |
Jun
(13) |
Jul
(12) |
Aug
(14) |
Sep
(6) |
Oct
(6) |
Nov
(16) |
Dec
(6) |
2004 |
Jan
(5) |
Feb
(7) |
Mar
(13) |
Apr
(17) |
May
(24) |
Jun
(14) |
Jul
(14) |
Aug
(8) |
Sep
(3) |
Oct
(8) |
Nov
(14) |
Dec
(26) |
2005 |
Jan
(18) |
Feb
(12) |
Mar
(29) |
Apr
(9) |
May
(4) |
Jun
(12) |
Jul
(17) |
Aug
(9) |
Sep
(12) |
Oct
|
Nov
(12) |
Dec
|
2006 |
Jan
(46) |
Feb
(18) |
Mar
(11) |
Apr
(13) |
May
(12) |
Jun
(27) |
Jul
(34) |
Aug
(45) |
Sep
(27) |
Oct
(13) |
Nov
(26) |
Dec
(22) |
2007 |
Jan
(21) |
Feb
(29) |
Mar
(32) |
Apr
(6) |
May
(11) |
Jun
(13) |
Jul
(14) |
Aug
(11) |
Sep
(15) |
Oct
(7) |
Nov
(30) |
Dec
(16) |
2008 |
Jan
(11) |
Feb
(14) |
Mar
(5) |
Apr
(18) |
May
(12) |
Jun
(11) |
Jul
(5) |
Aug
(12) |
Sep
(3) |
Oct
(2) |
Nov
(15) |
Dec
(2) |
2009 |
Jan
(18) |
Feb
(6) |
Mar
(9) |
Apr
(10) |
May
(29) |
Jun
(16) |
Jul
(44) |
Aug
(49) |
Sep
(14) |
Oct
(21) |
Nov
(11) |
Dec
(22) |
2010 |
Jan
(12) |
Feb
(13) |
Mar
(5) |
Apr
(6) |
May
(15) |
Jun
(15) |
Jul
(14) |
Aug
(20) |
Sep
(17) |
Oct
(36) |
Nov
(19) |
Dec
(7) |
2011 |
Jan
(8) |
Feb
(14) |
Mar
(21) |
Apr
(12) |
May
(6) |
Jun
(12) |
Jul
(17) |
Aug
(6) |
Sep
(13) |
Oct
(15) |
Nov
(26) |
Dec
(9) |
2012 |
Jan
(25) |
Feb
(13) |
Mar
(31) |
Apr
(10) |
May
(16) |
Jun
(21) |
Jul
(61) |
Aug
(38) |
Sep
(16) |
Oct
(13) |
Nov
(37) |
Dec
(26) |
2013 |
Jan
(20) |
Feb
(26) |
Mar
(34) |
Apr
(32) |
May
(27) |
Jun
(56) |
Jul
(16) |
Aug
(38) |
Sep
(35) |
Oct
(17) |
Nov
(11) |
Dec
(7) |
2014 |
Jan
(36) |
Feb
(13) |
Mar
(25) |
Apr
|
May
(27) |
Jun
(33) |
Jul
(34) |
Aug
|
Sep
(4) |
Oct
(11) |
Nov
(42) |
Dec
(2) |
2015 |
Jan
(5) |
Feb
(6) |
Mar
(11) |
Apr
(3) |
May
|
Jun
(1) |
Jul
(2) |
Aug
(5) |
Sep
(5) |
Oct
(5) |
Nov
(8) |
Dec
(19) |
2016 |
Jan
(8) |
Feb
(12) |
Mar
(6) |
Apr
(5) |
May
(5) |
Jun
(3) |
Jul
(1) |
Aug
|
Sep
(9) |
Oct
(1) |
Nov
(2) |
Dec
(5) |
2017 |
Jan
(2) |
Feb
|
Mar
(3) |
Apr
(6) |
May
(8) |
Jun
(7) |
Jul
(14) |
Aug
(10) |
Sep
(6) |
Oct
(2) |
Nov
|
Dec
|
2018 |
Jan
|
Feb
(9) |
Mar
(2) |
Apr
(3) |
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
(8) |
Sep
(4) |
Oct
(3) |
Nov
(1) |
Dec
(1) |
2019 |
Jan
(10) |
Feb
(2) |
Mar
(6) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(5) |
Aug
|
Sep
(1) |
Oct
(1) |
Nov
|
Dec
|
2020 |
Jan
(9) |
Feb
|
Mar
|
Apr
(6) |
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
(9) |
Oct
(1) |
Nov
(11) |
Dec
|
2021 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(7) |
Nov
|
Dec
|
2022 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
2023 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
(2) |
Jun
(4) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2024 |
Jan
|
Feb
(7) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(6) |
Nov
|
Dec
|
From: Walter K. <wa...@co...> - 2020-09-25 12:16:59
|
Hi David; I have not dug into the bowels of the HAPI Server implementation, so I could be off base, but I’ll throw this our there nonetheless. I believe you have several options, one of which you mention….using the firewall. Other options 1) Programmatic: implement your own “baby application firewall” a: allow the connection b: before doing anything else, grab the connection socket c: compare to a list of IPs that you’ll “accept” (assuming you know what they are) d: if sourceIP Is not on your list, close the socket. If IP is allowed, then proceed as normal 2: Programmatic: a: the server socket accept() can be overridden (if using Java) b: perhaps the IP list can be checked there before establishing an actual connection Some type of middleware: 2) add a load balancer. There are open source load balancers out (HAProxy, NGINX). It can do the Ip Address filtering for you. If you are worried about some type of DOS attack, you’ll certainly want to be auditing traffic to see where its coming from. Good Luck Walter > On Sep 25, 2020, at 6:32 AM, david.mblackburn--- via Hl7api-devel <hl7...@li...> wrote: > > Hi All, > > I have been using HL7 HAPI for a while now but have been recently asked if we could restrict the server listener so that only designated ip addresses can connect, when invoking the server there doesn’t appear to be a way to do this unless I use an external firewall on the server machine, any thoughts? > > Rgds > DavidB. > > <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> Virus-free. www.avg.com <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> <x-msg://34/#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>_______________________________________________ > Hl7api-devel mailing list > Hl7...@li... <mailto:Hl7...@li...> > https://lists.sourceforge.net/lists/listinfo/hl7api-devel <https://lists.sourceforge.net/lists/listinfo/hl7api-devel> |
From: <dav...@bt...> - 2020-09-25 10:32:34
|
Hi All, I have been using HL7 HAPI for a while now but have been recently asked if we could restrict the server listener so that only designated ip addresses can connect, when invoking the server there doesn't appear to be a way to do this unless I use an external firewall on the server machine, any thoughts? Rgds DavidB. -- This email has been checked for viruses by AVG. https://www.avg.com |
From: Thea S. <the...@ho...> - 2020-09-13 10:40:00
|
Hi Martin! Thanks a lot! This was the crucial note: (note: <version> is the hapi version, not the message version. so for e.g. 2.5 messages, you need: Now is works! wbr Thea ________________________________ Von: Martin Fleurke <mar...@po...> Gesendet: Freitag, 11. September 2020 12:08 An: hl7...@li... <hl7...@li...> Betreff: Re: [HAPI-devel] WG: Problem with ORM O01, Terser, ORDER Hi Thea, I can reproduce the problem for v2.3 messages :) But I found out why: I don't have the v2.3 code! HAPI has a base jar, and for each message version an additional jar file. You need to include them in your project. For maven, e.g.: <dependency> <groupId>ca.uhn.hapi</groupId> <artifactId>hapi-structures-v23</artifactId> <version>2.3</version> </dependency> (note: <version> is the hapi version, not the message version. so for e.g. 2.5 messages, you need: <dependency> <groupId>ca.uhn.hapi</groupId> <artifactId>hapi-structures-v25</artifactId> <version>2.3</version> </dependency> ) On 10/09/2020 12:28, Thea Schmidt wrote: Hi Martin, thanks for your response. It is definitly no problem with the endings, charset etc. I can read the message, parse it and access other fields via terser. Tests like the following work: assertEquals("3247", terser.get("PID-3-1-1")); assertEquals("jmWo4", terser.get("ORC3-2-1-1")); assertEquals("jmWo2", terser.get("ORC-2-1-1")); assertEquals("jmWo4", terser.get("OBR3-2-1-1")); assertEquals("jmWo2", terser.get("OBR-2-1-1")); I can show you a snapshot from Eclipse. You can see there how the terser (or the finder) handels the segments. [cid:par...@po...] Its not a problem of the V2 Version. With 2.5 oder 2.7 it is the same. Wbr Thea ________________________________ Wbr Martin Fleurke |
From: Martin F. <mar...@po...> - 2020-09-11 10:09:08
|
Hi Thea, I can reproduce the problem for v2.3 messages :) But I found out why: I don't have the v2.3 code! HAPI has a base jar, and for each message version an additional jar file. You need to include them in your project. For maven, e.g.: <dependency> <groupId>ca.uhn.hapi</groupId> <artifactId>hapi-structures-v23</artifactId> <version>2.3</version> </dependency> (note: <version> is the hapi version, not the message version. so for e.g. 2.5 messages, you need: <dependency> <groupId>ca.uhn.hapi</groupId> <artifactId>hapi-structures-v25</artifactId> <version>2.3</version> </dependency> ) On 10/09/2020 12:28, Thea Schmidt wrote: > Hi Martin, > > thanks for your response. It is definitly no problem with the endings, > charset etc. I can read the message, parse it and access other fields > via terser. > > Tests like the following work: > > assertEquals("3247", terser.get("PID-3-1-1")); > assertEquals("jmWo4", terser.get("ORC3-2-1-1")); > assertEquals("jmWo2", terser.get("ORC-2-1-1")); > assertEquals("jmWo4", terser.get("OBR3-2-1-1")); > assertEquals("jmWo2", terser.get("OBR-2-1-1")); > > I can show you a snapshot from Eclipse. You can see there how the > terser (or the finder) handels the segments. > > Its not a problem of the V2 Version. With 2.5 oder 2.7 it is the same. > > Wbr > > Thea > > ------------------------------------------------------------------------ Wbr Martin Fleurke |
From: Thea S. <the...@ho...> - 2020-09-10 10:43:52
|
Hi Martin, thanks for your response. It is definitly no problem with the endings, charset etc. I can read the message, parse it and access other fields via terser. Tests like the following work: assertEquals("3247", terser.get("PID-3-1-1")); assertEquals("jmWo4", terser.get("ORC3-2-1-1")); assertEquals("jmWo2", terser.get("ORC-2-1-1")); assertEquals("jmWo4", terser.get("OBR3-2-1-1")); assertEquals("jmWo2", terser.get("OBR-2-1-1")); I can show you a snapshot from Eclipse. You can see there how the terser (or the finder) handels the segments. [cid:0c2429df-2a06-43c5-8327-e82ec34ca084] Its not a problem of the V2 Version. With 2.5 oder 2.7 it is the same. Wbr Thea ________________________________ Von: Martin Fleurke <mar...@po...> Gesendet: Mittwoch, 9. September 2020 09:46 An: hl7...@li... <hl7...@li...> Betreff: Re: [HAPI-devel] Problem with ORM O01, Terser, ORDER Hi Thea, Your code looks good to me (TestPanel app shows the same terser path), but you didn't post the "messageText = ... " part. HL7 messages have carriage return line endings. Did you use that as well? e.g. String messageText = "MSH|........\r" + "PID|....\r" + ... On 08/09/2020 10:48, Thea Schmidt wrote: Hello! This is my sample message. It ist valid HL7 V2.3 MSH|^~\&|DPS|0|OPL|REHA|20200625075418||ORM^O01|0067164|P|2.3|||AL|NE PID|1|3247|3247|92000333|Meyer^Jens^^^^^L|Meyer|19780312|M|||Rosenweg 1^^Bergdorf^^24612^DE||||DE||||||||||||||| PV1|1|I|S2^Bett6^^PSY^K_KAP||||||^^^^^^^^^L||||||||||3247A1F1|||||||||||||||||||||||||201912031014|202002231430|||||| ORC|NW|jmWo2 OBR|1|jmWo2||FAN1^Fango^Heilmittelkatalog|||||||||||||||||||||||6^^^^^^^^^C&2x pro Woch. ORC|NW|jmWo1 OBR|2|jmWo1||KG1^KG^Heilmittelkatalog|||||||||||||||||||||||6^^^^^^^^^C&2x pro Woch. ORC|NW|jmWo4 OBR|3|jmWo4||Unbekannt^Warmluft^Heilmittelkatalog|||||||||||||||||||||||4^^^^^^^^^C&2x pro Woch. ORC|NW|jmWo5 OBR|4|jmWo5||Ergo1^Ergo 1^Heilmittelkatalog|||||||||||||||||||||||2^^^^^^^^^C&1x pro Woche This ist my code String messageText = ..... PipeParser pipeParser = new PipeParser(); this.message = pipeParser.parse(messageText); this.terser = new Terser(message); . . . . assertEquals("3", terser.get("/ORDER(3)/ORDER_DETAIL/OBR-1")); I only get an error: Can't find ORDER as a direct child Does anybody know what the problem ist here? Thanks for your help, Thea _______________________________________________ Hl7api-devel mailing list Hl7...@li...<mailto:Hl7...@li...> https://lists.sourceforge.net/lists/listinfo/hl7api-devel Wbr Martin Fleurke |
From: Martin F. <mar...@po...> - 2020-09-09 07:47:14
|
Hi Thea, Your code looks good to me (TestPanel app shows the same terser path), but you didn't post the "messageText = ... " part. HL7 messages have carriage return line endings. Did you use that as well? e.g. String messageText = "MSH|........\r" + "PID|....\r" + ... On 08/09/2020 10:48, Thea Schmidt wrote: > Hello! > > This is my sample message. It ist valid HL7 V2.3 > > MSH|^~\&|DPS|0|OPL|REHA|20200625075418||ORM^O01|0067164|P|2.3|||AL|NE > PID|1|3247|3247|92000333|Meyer^Jens^^^^^L|Meyer|19780312|M|||Rosenweg > 1^^Bergdorf^^24612^DE||||DE||||||||||||||| > PV1|1|I|S2^Bett6^^PSY^K_KAP||||||^^^^^^^^^L||||||||||3247A1F1|||||||||||||||||||||||||201912031014|202002231430|||||| > ORC|NW|jmWo2 > OBR|1|jmWo2||FAN1^Fango^Heilmittelkatalog|||||||||||||||||||||||6^^^^^^^^^C&2x > pro Woch. > ORC|NW|jmWo1 > OBR|2|jmWo1||KG1^KG^Heilmittelkatalog|||||||||||||||||||||||6^^^^^^^^^C&2x > pro Woch. > ORC|NW|jmWo4 > OBR|3|jmWo4||Unbekannt^Warmluft^Heilmittelkatalog|||||||||||||||||||||||4^^^^^^^^^C&2x > pro Woch. > ORC|NW|jmWo5 > OBR|4|jmWo5||Ergo1^Ergo > 1^Heilmittelkatalog|||||||||||||||||||||||2^^^^^^^^^C&1x pro Woche > > This ist my code > > String messageText = ..... > PipeParser pipeParser = new PipeParser(); > this.message = pipeParser.parse(messageText); > this.terser = new Terser(message); > . > . > . > . > > assertEquals("3", terser.get("/ORDER(3)/ORDER_DETAIL/OBR-1")); > > I only get an error: Can't find ORDER as a direct child > > Does anybody know what the problem ist here? > > Thanks for your help, > > Thea > > > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel Wbr Martin Fleurke |
From: Thea S. <the...@ho...> - 2020-09-08 09:21:30
|
Hello! This is my sample message. It ist valid HL7 V2.3 MSH|^~\&|DPS|0|OPL|REHA|20200625075418||ORM^O01|0067164|P|2.3|||AL|NE PID|1|3247|3247|92000333|Meyer^Jens^^^^^L|Meyer|19780312|M|||Rosenweg 1^^Bergdorf^^24612^DE||||DE||||||||||||||| PV1|1|I|S2^Bett6^^PSY^K_KAP||||||^^^^^^^^^L||||||||||3247A1F1|||||||||||||||||||||||||201912031014|202002231430|||||| ORC|NW|jmWo2 OBR|1|jmWo2||FAN1^Fango^Heilmittelkatalog|||||||||||||||||||||||6^^^^^^^^^C&2x pro Woch. ORC|NW|jmWo1 OBR|2|jmWo1||KG1^KG^Heilmittelkatalog|||||||||||||||||||||||6^^^^^^^^^C&2x pro Woch. ORC|NW|jmWo4 OBR|3|jmWo4||Unbekannt^Warmluft^Heilmittelkatalog|||||||||||||||||||||||4^^^^^^^^^C&2x pro Woch. ORC|NW|jmWo5 OBR|4|jmWo5||Ergo1^Ergo 1^Heilmittelkatalog|||||||||||||||||||||||2^^^^^^^^^C&1x pro Woche This ist my code String messageText = ..... PipeParser pipeParser = new PipeParser(); this.message = pipeParser.parse(messageText); this.terser = new Terser(message); . . . . assertEquals("3", terser.get("/ORDER(3)/ORDER_DETAIL/OBR-1")); I only get an error: Can't find ORDER as a direct child Does anybody know what the problem ist here? Thanks for your help, Thea |
From: Thea S. <the...@ho...> - 2020-09-08 09:16:41
|
Hello! This ist my Message: |
From: Nathaniel G. <nat...@ve...> - 2020-07-14 21:48:30
|
Hello, I am on a team that validates HL7 Messages. We have recently started using Hapi Testpanel and have a couple question regarding the tool. Current version we are using: 2.3 1. Tools->HL7 File Diff is not working. It used to show the difference in two HL7 files but now it says "comparison failed unexpectedly, this is probably a bug: Failed to parse message" 2. What is the use of Conformance->Profiles and Tables option? can it be used to store z-Segments and validated messages against the stored z segment messages? If yes, then how? 3. In HAPI Test Panel 2.3, Under Add Message, when you select version 2.3.1 , it does not show any of the standaradt ADT messages. the type panel lists CRM^C02* messages Any help on any or all these questions would be greatly appreciated. Thank you so much, Nathaniel Gurian Software Developer VetsEZ (845) 238-9707 Office Hours: 8:30AM - 5:00PM EST nat...@ve...<mailto:nat...@ve...> | nat...@va...<mailto:nat...@va...> http://vetsez.com |
From: srikanth c. <sri...@gm...> - 2020-06-04 17:40:11
|
Hi Saravanan, Thanks, I will consider purchasing a normative Database for one of the HL7 versions :), if there is no alternative way on how the code is generated. I didn't understand, the meaning of the HL7 Local chapter? Thank you, Srikanth. On Sun, Apr 26, 2020 at 5:17 PM Saravanan Subramanian < man...@ou...> wrote: > Hi Srikanth, > > I could be totally wrong on this but I vaguely recall that this being a > MIcrosoft Access database that was sold by the HL7 group and so, may not > freely available. > > You may want to check the HL7 store or your HL7 local chapter for more > details on getting access to this. > > Regards > > Saravanan > ------------------------------ > *From:* srikanth chadalavada <sri...@gm...> > *Sent:* Sunday, April 26, 2020 4:03:44 PM > *To:* hl7...@li... < > hl7...@li...> > *Subject:* [HAPI-devel] Hl7 DataBases > > I am trying to set up the Hapi project in my mac and I need to find the > database that was used to generate the source code. I've tried searching in > the hl7.org > <https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Fhl7.org%2F&data=02%7C01%7C%7Cf17e9f8847794a06d56908d7ea2dce11%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637235354754704413&sdata=WIVVN9FrRGUMtpOWXtv7iqrfYDpfxI4uD4vQJtgWLAo%3D&reserved=0> and > I didn't find any. Could anyone provide me with the links to the databases? > > > Thank you, > > Srikanth. > |
From: Saravanan S. <man...@ou...> - 2020-04-26 22:17:56
|
Hi Srikanth, I could be totally wrong on this but I vaguely recall that this being a MIcrosoft Access database that was sold by the HL7 group and so, may not freely available. You may want to check the HL7 store or your HL7 local chapter for more details on getting access to this. Regards Saravanan ________________________________ From: srikanth chadalavada <sri...@gm...> Sent: Sunday, April 26, 2020 4:03:44 PM To: hl7...@li... <hl7...@li...> Subject: [HAPI-devel] Hl7 DataBases I am trying to set up the Hapi project in my mac and I need to find the database that was used to generate the source code. I've tried searching in the hl7.org<https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Fhl7.org%2F&data=02%7C01%7C%7Cf17e9f8847794a06d56908d7ea2dce11%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637235354754704413&sdata=WIVVN9FrRGUMtpOWXtv7iqrfYDpfxI4uD4vQJtgWLAo%3D&reserved=0> and I didn't find any. Could anyone provide me with the links to the databases? Thank you, Srikanth. |
From: srikanth c. <sri...@gm...> - 2020-04-26 22:04:03
|
I am trying to set up the Hapi project in my mac and I need to find the database that was used to generate the source code. I've tried searching in the hl7.org and I didn't find any. Could anyone provide me with the links to the databases? Thank you, Srikanth. |
From: Gurian, N. J. (VetsEZ) <Nat...@va...> - 2020-04-09 16:29:49
|
Hello, I am new to HAPI and HL7 messaging in general. I am the developer on a contract for the VA and we are starting to transition to HAPI test panel for HL7 messaging. I have a few questions that my team has brought to me. I have not been able to find anything specific other than potentially writing custom functions. Any help or direction would be greatly appreciated. 1. Building z segment libraries/profiles in HAPI Test Panel 2. How can we get better error message from HAPI? 3. How to build/create a profile from scratch? Thank you so much for your time, Nathaniel Gurian Contractor Nat...@va...<mailto:Nat...@va...> 845-238-9707 |
From: Russell B. <ru...@wi...> - 2020-04-06 21:44:08
|
Oops, sorry James, I though I had that list. I will correct that for next time. Many thanks! On 4/6/20 12:38 PM, James Agnew wrote: > Hi Russell, > > FYI this is the HAPI-HL7v2 mailing list, it's probably better to ask > this question on the HAPI FHIR list at : > https://groups.google.com/forum/#!forum/hapi-fhir > > That said, there isn't a built-in way of applying XPath, but you might > look at FhirContext#newFluentPath() (renamed to newFhrPath on HAPI > FHIR 5.0.0-SNAPSHOT). This allows you to apply FHIRPath expressions to > FHIR resources. These are not exactly like xpath, but are just as > expressive. > > Cheers, > James > > On Mon, Apr 6, 2020 at 2:10 PM Russell Bateman <ru...@wi... > <mailto:ru...@wi...>> wrote: > > I wonder if there's a way to get an XPath within the source > document for any, given piece of information I'm able to get out > of the API. (Note that there is a way to do this using MDHT for > HL7 v3 work; this is why I ask.) I need to annotate data I extract > with the location where I found it in the original source document. > > For example, let's assume the following code: > > FhirContext context = FhirContext.forDstu3(); > IParser parser = context.newXmlParser(); > Patient patient = parser.parseResource( Patient.class, > getFhirRecord() ); > > List< HumanName > names = patient.getName(); > for( HumanName name : names ) > { > String family = name.getFamily(); > List< StringType > givenNames = name.getGiven(); > > for( StringType given : givenNames ) > { > String name = given.toString(); > String xpath = ?; // x marks the spot > } > } > > Neither by inspecting data structures in the debugger nor by > examining the Javadoc for /org.hl7.fhir.dstu3.model.Patient/ am I > able to find way to get back something like > > /Patient/contained[1]/Patient/name/given[1]/ > > for a given name at [x marks the spot above] . > > How are others solving this? Does anyone else need to solve this? > > Thanks > > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > <mailto:Hl7...@li...> > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > |
From: James A. <jam...@gm...> - 2020-04-06 18:38:59
|
Hi Russell, FYI this is the HAPI-HL7v2 mailing list, it's probably better to ask this question on the HAPI FHIR list at : https://groups.google.com/forum/#!forum/hapi-fhir That said, there isn't a built-in way of applying XPath, but you might look at FhirContext#newFluentPath() (renamed to newFhrPath on HAPI FHIR 5.0.0-SNAPSHOT). This allows you to apply FHIRPath expressions to FHIR resources. These are not exactly like xpath, but are just as expressive. Cheers, James On Mon, Apr 6, 2020 at 2:10 PM Russell Bateman <ru...@wi...> wrote: > I wonder if there's a way to get an XPath within the source document for > any, given piece of information I'm able to get out of the API. (Note that > there is a way to do this using MDHT for HL7 v3 work; this is why I ask.) I > need to annotate data I extract with the location where I found it in the > original source document. > > For example, let's assume the following code: > > FhirContext context = FhirContext.forDstu3(); > IParser parser = context.newXmlParser(); > Patient patient = parser.parseResource( Patient.class, getFhirRecord() > ); > > List< HumanName > names = patient.getName(); > for( HumanName name : names ) > { > String family = name.getFamily(); > List< StringType > givenNames = name.getGiven(); > > for( StringType given : givenNames ) > { > String name = given.toString(); > String xpath = ?; // x marks the spot > } > } > > Neither by inspecting data structures in the debugger nor by examining the > Javadoc for *org.hl7.fhir.dstu3.model.Patient* am I able to find way to > get back something like > > *Patient/contained[1]/Patient/name/given[1]* > > for a given name at [x marks the spot above] . > > How are others solving this? Does anyone else need to solve this? > > Thanks > > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > |
From: Russell B. <ru...@wi...> - 2020-04-06 18:10:10
|
I wonder if there's a way to get an XPath within the source document for any, given piece of information I'm able to get out of the API. (Note that there is a way to do this using MDHT for HL7 v3 work; this is why I ask.) I need to annotate data I extract with the location where I found it in the original source document. For example, let's assume the following code: FhirContext context = FhirContext.forDstu3(); IParser parser = context.newXmlParser(); Patient patient = parser.parseResource( Patient.class, getFhirRecord() ); List< HumanName > names = patient.getName(); for( HumanName name : names ) { String family = name.getFamily(); List< StringType > givenNames = name.getGiven(); for( StringType given : givenNames ) { String name = given.toString(); String xpath = ?; // x marks the spot } } Neither by inspecting data structures in the debugger nor by examining the Javadoc for /org.hl7.fhir.dstu3.model.Patient/ am I able to find way to get back something like /Patient/contained[1]/Patient/name/given[1]/ for a given name at [x marks the spot above] . How are others solving this? Does anyone else need to solve this? Thanks |
From: Andrew R. <and...@ni...> - 2020-01-31 18:36:47
|
Thanks for calling that out. +github contributors: What is the process for requesting a new release to make this fix available? On Thu, Jan 30, 2020 at 3:25 PM Ian Vowles <Ian...@he...> wrote: > Would advise in favour of adding default and invalid Obx2Type settings, > having just had a problem with messages containing bad OBX segments. > > > > > context.getPipeParser().getParserConfiguration().setDefaultObx2Type("ST"); > > > context.getPipeParser().getParserConfiguration().setInvalidObx2Type("ST"); > > > > Watch out for MFNs if you get them. They have similar type assigning > fields, which the HAPI 2.2 release seems to cope with, but the HAPI 2.3 > library is strict about but lacks a configuration for correcting them. The > code base has a fix for it, but there hasn’t been a release containing it. > I’m not game to try to do the entire build myself, so mostly use the 2.2 > release. One of our systems leaves the field containing the type blank, be > aware David, since we both receive messages from that sender. > > > > > > *Ian Vowles* > > *Integration Specialist, Metro North Integration Centre* > *Metro North IT* > Citilink Lobby 1, Level 3 > > 153 Campbell St, Bowen Hills QLD 4006 > > P: 07 3646 2557 > E: *Ian...@he... <Ian...@he...>* > metronorth.health.qld.gov.au > > > [image: Description: Description: Putting people first] > <http://qheps.health.qld.gov.au/metronorth/html/email-signature.htm> > > [image: Values in Action] > > [image: Description: Description: Facebook] > <http://www.facebook.com/metronorthhhs> [image: Description: > Description: Twitter] <http://www.twitter.com/MetroNorthHHS> [image: > Description: Description: LinkedIn] > <http://www.linkedin.com/company/metro-north-hospital-and-health-service> > follow us on social media > > > > > > > > > > *From:* Andrew Ring via Hl7api-devel <hl7...@li...> > *Sent:* Thursday, 30 January 2020 4:30 AM > *To:* David Bunzli <Dav...@he...> > *Cc:* hl7...@li... > *Subject:* Re: [HAPI-devel] Parse MSH from arbitrary message > > > > Hi David, thanks for the response here. I did end up coming to a solution, > which looks like: > > > > /** > * Parse an hl7 message and extract the header (MSH) segment. > * > * @param hl7Message The hl7 message to parse. > * @return The parsed MSH segment, or null on error. > */ > public static MSH getHeader(final String hl7Message) { > if (Objects.isNull(hl7Message)) return null; > > try { > final HapiContext context = new DefaultHapiContext(); > // Parse the message in whatever hl7 version it is declared to > be > // This will validate the message structure, throwing an > exception if invalid > context.getPipeParser().parse(hl7Message); > > // Convert message into most recent version format, since > they're backwards compatible > final CanonicalModelClassFactory modelClassFactory = new > CanonicalModelClassFactory(CANONICAL_VERSION); > context.setModelClassFactory(modelClassFactory); > // We disable validation because deprecated fields appear to > cause parsing errors when > // up-converting messages > context.setValidationContext(new NoValidation()); > > final Message parsedMesssage = > context.getPipeParser().parse(hl7Message); > final MSH msh = (MSH) parsedMesssage.get("MSH"); > return msh; > } catch (ClassCastException | HL7Exception ex) { > LOG.warn("Unable to parse header from hl7 message:\n{}", > forPrinting(hl7Message)); > return null; > } > } > > > > I don't love this, since it requires turning off the validation when > up-versioning, but it appears to work on all test inputs I've attempted. > > > > ~Andrew > > > > On Tue, Jan 28, 2020 at 6:28 PM David Bunzli < > Dav...@he...> wrote: > > Hi Andrew, > > Is your concern about casting related to performance? Because, in general, > solutions should be provisioned for the work they have to do. If you need > more processing grunt, its often better to tackle that before 'optimising' > your code. > > Aside from casting the whole message, you can cast the segment [eg > (pseudo-code) MSH msh = (MSH) Terser.getSegment("MSH")] to get a proper MSH > object. But this option is still casting. > > Another option is treating the message as a String eg... > protected static String getMsh10(String input) { > int startOfMsh10 = StringUtils.ordinalIndexOf(input, "|", 10); > int lengthOfMsh10 = StringUtils.ordinalIndexOf(input, "|", 11) - > startOfMsh10; > return StringUtils.mid( > input > , startOfMsh10 > , lengthOfMsh10 > ); > } > > But that option brings me back to the first point - 'optimising' by String > manipulation is convoluted. It'd have been better to wear the costs of > parsing and casting the message and enjoy the benefits of using HAPI. > > Hope this helps, > David > > ---------------------------------------------------------------------- > > Message: 1 > Date: Thu, 23 Jan 2020 18:13:11 -0800 > From: Andrew Ring <and...@ni...> > To: hl7...@li... > Subject: [HAPI-devel] Parse MSH from arbitrary message > Message-ID: > <CAEw6ye59CaL9rrOF3+Xi0KkvPBrdhhPp3G5gjCNpT+E=Ge...@ma...> > Content-Type: text/plain; charset="utf-8" > > I'm receiving HL7 messages of any type, and want to examine the MSH > segment before having to cast the message to a particular type. I can't > seem to find a mechanism to do this. I can get individual MSH fields using > a Terser, but I would prefer to use well typed structures. Even getting the > MSH segment using Terser.getSegment() does not appear to be able to be > converted into an MSH object. Can anyone help? > > Thanks, > Andrew Ring > -------------- next part -------------- > An HTML attachment was scrubbed... > > ------------------------------ > > > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > > ------------------------------ > > End of Hl7api-devel Digest, Vol 144, Issue 5 > ******************************************** > > > > > > ******************************************************************************** > > This email, including any attachments sent with it, is confidential and > for the sole use of the intended recipient(s). This confidentiality is not > waived or lost, if you receive it and you are not the intended > recipient(s), or if it is transmitted/received in error. > > Any unauthorised use, alteration, disclosure, distribution or review of > this email is strictly prohibited. The information contained in this email, > including any attachment sent with it, may be subject to a statutory duty > of confidentiality if it relates to health service matters. > > If you are not the intended recipient(s), or if you have received this > email in error, you are asked to immediately notify the sender by telephone > collect on Australia +61 1800 198 175 or by return email. You should also > delete this email, and any copies, from your computer system network and > destroy any hard copies produced. > > If not an intended recipient of this email, you must not copy, distribute > or take any action(s) that relies on it; any form of disclosure, > modification, distribution and/or publication of this email is also > prohibited. > > Although Queensland Health takes all reasonable steps to ensure this email > does not contain malicious software, Queensland Health does not accept > responsibility for the consequences if any person's computer inadvertently > suffers any disruption to services, loss of information, harm or is > infected with a virus, other malicious computer programme or code that may > occur as a consequence of receiving this email. > > Unless stated otherwise, this email represents only the views of the > sender and not the views of the Queensland Government. > > > ********************************************************************************** > > > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > > > > > > ******************************************************************************** > > This email, including any attachments sent with it, is confidential and > for the sole use of the intended recipient(s). This confidentiality is not > waived or lost, if you receive it and you are not the intended > recipient(s), or if it is transmitted/received in error. > > Any unauthorised use, alteration, disclosure, distribution or review of > this email is strictly prohibited. The information contained in this email, > including any attachment sent with it, may be subject to a statutory > duty of confidentiality if it relates to health service matters. > > If you are not the intended recipient(s), or if you have received this > email in error, you are asked to immediately notify the sender by telephone > collect on Australia +61 1800 198 175 or by return email. You should also > delete this email, and any copies, from your computer system network and > destroy any hard copies produced. > > If not an intended recipient of this email, you must not copy, distribute > or take any action(s) that relies on it; any form of disclosure, > modification, distribution and/or publication of this email is also > prohibited. > > Although Queensland Health takes all reasonable steps to ensure this email > does not contain malicious software, Queensland Health does not accept > responsibility for the consequences if any person's computer inadvertently > suffers any disruption to services, loss of information, harm or is > infected with a virus, other malicious computer programme or code that may > occur as a consequence of receiving this email. > > Unless stated otherwise, this email represents only the views of the > sender and not the views of the Queensland Government. > > > ********************************************************************************** > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > |
From: Ian V. <Ian...@he...> - 2020-01-30 23:24:52
|
Would advise in favour of adding default and invalid Obx2Type settings, having just had a problem with messages containing bad OBX segments. context.getPipeParser().getParserConfiguration().setDefaultObx2Type("ST"); context.getPipeParser().getParserConfiguration().setInvalidObx2Type("ST"); Watch out for MFNs if you get them. They have similar type assigning fields, which the HAPI 2.2 release seems to cope with, but the HAPI 2.3 library is strict about but lacks a configuration for correcting them. The code base has a fix for it, but there hasn’t been a release containing it. I’m not game to try to do the entire build myself, so mostly use the 2.2 release. One of our systems leaves the field containing the type blank, be aware David, since we both receive messages from that sender. Ian Vowles Integration Specialist, Metro North Integration Centre Metro North IT Citilink Lobby 1, Level 3 153 Campbell St, Bowen Hills QLD 4006 P: 07 3646 2557 E: Ian...@he...<mailto:Ian...@he...> metronorth.health.qld.gov.au<https://metronorth.health.qld.gov.au/> [Description: Description: Putting people first]<http://qheps.health.qld.gov.au/metronorth/html/email-signature.htm> [Values in Action] [Description: Description: Facebook]<http://www.facebook.com/metronorthhhs> [Description: Description: Twitter] <http://www.twitter.com/MetroNorthHHS> [Description: Description: LinkedIn] <http://www.linkedin.com/company/metro-north-hospital-and-health-service> follow us on social media From: Andrew Ring via Hl7api-devel <hl7...@li...> Sent: Thursday, 30 January 2020 4:30 AM To: David Bunzli <Dav...@he...> Cc: hl7...@li... Subject: Re: [HAPI-devel] Parse MSH from arbitrary message Hi David, thanks for the response here. I did end up coming to a solution, which looks like: /** * Parse an hl7 message and extract the header (MSH) segment. * * @param hl7Message The hl7 message to parse. * @return The parsed MSH segment, or null on error. */ public static MSH getHeader(final String hl7Message) { if (Objects.isNull(hl7Message)) return null; try { final HapiContext context = new DefaultHapiContext(); // Parse the message in whatever hl7 version it is declared to be // This will validate the message structure, throwing an exception if invalid context.getPipeParser().parse(hl7Message); // Convert message into most recent version format, since they're backwards compatible final CanonicalModelClassFactory modelClassFactory = new CanonicalModelClassFactory(CANONICAL_VERSION); context.setModelClassFactory(modelClassFactory); // We disable validation because deprecated fields appear to cause parsing errors when // up-converting messages context.setValidationContext(new NoValidation()); final Message parsedMesssage = context.getPipeParser().parse(hl7Message); final MSH msh = (MSH) parsedMesssage.get("MSH"); return msh; } catch (ClassCastException | HL7Exception ex) { LOG.warn("Unable to parse header from hl7 message:\n{}", forPrinting(hl7Message)); return null; } } I don't love this, since it requires turning off the validation when up-versioning, but it appears to work on all test inputs I've attempted. ~Andrew On Tue, Jan 28, 2020 at 6:28 PM David Bunzli <Dav...@he...<mailto:Dav...@he...>> wrote: Hi Andrew, Is your concern about casting related to performance? Because, in general, solutions should be provisioned for the work they have to do. If you need more processing grunt, its often better to tackle that before 'optimising' your code. Aside from casting the whole message, you can cast the segment [eg (pseudo-code) MSH msh = (MSH) Terser.getSegment("MSH")] to get a proper MSH object. But this option is still casting. Another option is treating the message as a String eg... protected static String getMsh10(String input) { int startOfMsh10 = StringUtils.ordinalIndexOf(input, "|", 10); int lengthOfMsh10 = StringUtils.ordinalIndexOf(input, "|", 11) - startOfMsh10; return StringUtils.mid( input , startOfMsh10 , lengthOfMsh10 ); } But that option brings me back to the first point - 'optimising' by String manipulation is convoluted. It'd have been better to wear the costs of parsing and casting the message and enjoy the benefits of using HAPI. Hope this helps, David ---------------------------------------------------------------------- Message: 1 Date: Thu, 23 Jan 2020 18:13:11 -0800 From: Andrew Ring <and...@ni...<mailto:and...@ni...>> To: hl7...@li...<mailto:hl7...@li...> Subject: [HAPI-devel] Parse MSH from arbitrary message Message-ID: <CAEw6ye59CaL9rrOF3+Xi0KkvPBrdhhPp3G5gjCNpT+E=Ge...@ma...<mailto:Ge...@ma...>> Content-Type: text/plain; charset="utf-8" I'm receiving HL7 messages of any type, and want to examine the MSH segment before having to cast the message to a particular type. I can't seem to find a mechanism to do this. I can get individual MSH fields using a Terser, but I would prefer to use well typed structures. Even getting the MSH segment using Terser.getSegment() does not appear to be able to be converted into an MSH object. Can anyone help? Thanks, Andrew Ring -------------- next part -------------- An HTML attachment was scrubbed... ------------------------------ ------------------------------ Subject: Digest Footer _______________________________________________ Hl7api-devel mailing list Hl7...@li...<mailto:Hl7...@li...> https://lists.sourceforge.net/lists/listinfo/hl7api-devel ------------------------------ End of Hl7api-devel Digest, Vol 144, Issue 5 ******************************************** ******************************************************************************** This email, including any attachments sent with it, is confidential and for the sole use of the intended recipient(s). This confidentiality is not waived or lost, if you receive it and you are not the intended recipient(s), or if it is transmitted/received in error. Any unauthorised use, alteration, disclosure, distribution or review of this email is strictly prohibited. The information contained in this email, including any attachment sent with it, may be subject to a statutory duty of confidentiality if it relates to health service matters. If you are not the intended recipient(s), or if you have received this email in error, you are asked to immediately notify the sender by telephone collect on Australia +61 1800 198 175 or by return email. You should also delete this email, and any copies, from your computer system network and destroy any hard copies produced. If not an intended recipient of this email, you must not copy, distribute or take any action(s) that relies on it; any form of disclosure, modification, distribution and/or publication of this email is also prohibited. Although Queensland Health takes all reasonable steps to ensure this email does not contain malicious software, Queensland Health does not accept responsibility for the consequences if any person's computer inadvertently suffers any disruption to services, loss of information, harm or is infected with a virus, other malicious computer programme or code that may occur as a consequence of receiving this email. Unless stated otherwise, this email represents only the views of the sender and not the views of the Queensland Government. ********************************************************************************** _______________________________________________ Hl7api-devel mailing list Hl7...@li...<mailto:Hl7...@li...> https://lists.sourceforge.net/lists/listinfo/hl7api-devel ******************************************************************************** This email, including any attachments sent with it, is confidential and for the sole use of the intended recipient(s). This confidentiality is not waived or lost, if you receive it and you are not the intended recipient(s), or if it is transmitted/received in error. Any unauthorised use, alteration, disclosure, distribution or review of this email is strictly prohibited. The information contained in this email, including any attachment sent with it, may be subject to a statutory duty of confidentiality if it relates to health service matters. If you are not the intended recipient(s), or if you have received this email in error, you are asked to immediately notify the sender by telephone collect on Australia +61 1800 198 175 or by return email. You should also delete this email, and any copies, from your computer system network and destroy any hard copies produced. If not an intended recipient of this email, you must not copy, distribute or take any action(s) that relies on it; any form of disclosure, modification, distribution and/or publication of this email is also prohibited. Although Queensland Health takes all reasonable steps to ensure this email does not contain malicious software, Queensland Health does not accept responsibility for the consequences if any person's computer inadvertently suffers any disruption to services, loss of information, harm or is infected with a virus, other malicious computer programme or code that may occur as a consequence of receiving this email. Unless stated otherwise, this email represents only the views of the sender and not the views of the Queensland Government. ********************************************************************************** |
From: Andrew R. <and...@ni...> - 2020-01-29 18:30:46
|
Hi David, thanks for the response here. I did end up coming to a solution, which looks like: /** * Parse an hl7 message and extract the header (MSH) segment. * * @param hl7Message The hl7 message to parse. * @return The parsed MSH segment, or null on error. */ public static MSH getHeader(final String hl7Message) { if (Objects.isNull(hl7Message)) return null; try { final HapiContext context = new DefaultHapiContext(); // Parse the message in whatever hl7 version it is declared to be // This will validate the message structure, throwing an exception if invalid context.getPipeParser().parse(hl7Message); // Convert message into most recent version format, since they're backwards compatible final CanonicalModelClassFactory modelClassFactory = new CanonicalModelClassFactory(CANONICAL_VERSION); context.setModelClassFactory(modelClassFactory); // We disable validation because deprecated fields appear to cause parsing errors when // up-converting messages context.setValidationContext(new NoValidation()); final Message parsedMesssage = context.getPipeParser().parse(hl7Message); final MSH msh = (MSH) parsedMesssage.get("MSH"); return msh; } catch (ClassCastException | HL7Exception ex) { LOG.warn("Unable to parse header from hl7 message:\n{}", forPrinting(hl7Message)); return null; } } I don't love this, since it requires turning off the validation when up-versioning, but it appears to work on all test inputs I've attempted. ~Andrew On Tue, Jan 28, 2020 at 6:28 PM David Bunzli <Dav...@he...> wrote: > Hi Andrew, > > Is your concern about casting related to performance? Because, in general, > solutions should be provisioned for the work they have to do. If you need > more processing grunt, its often better to tackle that before 'optimising' > your code. > > Aside from casting the whole message, you can cast the segment [eg > (pseudo-code) MSH msh = (MSH) Terser.getSegment("MSH")] to get a proper MSH > object. But this option is still casting. > > Another option is treating the message as a String eg... > protected static String getMsh10(String input) { > int startOfMsh10 = StringUtils.ordinalIndexOf(input, "|", 10); > int lengthOfMsh10 = StringUtils.ordinalIndexOf(input, "|", 11) - > startOfMsh10; > return StringUtils.mid( > input > , startOfMsh10 > , lengthOfMsh10 > ); > } > > But that option brings me back to the first point - 'optimising' by String > manipulation is convoluted. It'd have been better to wear the costs of > parsing and casting the message and enjoy the benefits of using HAPI. > > Hope this helps, > David > > ---------------------------------------------------------------------- > > Message: 1 > Date: Thu, 23 Jan 2020 18:13:11 -0800 > From: Andrew Ring <and...@ni...> > To: hl7...@li... > Subject: [HAPI-devel] Parse MSH from arbitrary message > Message-ID: > <CAEw6ye59CaL9rrOF3+Xi0KkvPBrdhhPp3G5gjCNpT+E=Ge...@ma...> > Content-Type: text/plain; charset="utf-8" > > I'm receiving HL7 messages of any type, and want to examine the MSH > segment before having to cast the message to a particular type. I can't > seem to find a mechanism to do this. I can get individual MSH fields using > a Terser, but I would prefer to use well typed structures. Even getting the > MSH segment using Terser.getSegment() does not appear to be able to be > converted into an MSH object. Can anyone help? > > Thanks, > Andrew Ring > -------------- next part -------------- > An HTML attachment was scrubbed... > > ------------------------------ > > > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > > ------------------------------ > > End of Hl7api-devel Digest, Vol 144, Issue 5 > ******************************************** > > > > > > ******************************************************************************** > > This email, including any attachments sent with it, is confidential and > for the sole use of the intended recipient(s). This confidentiality is not > waived or lost, if you receive it and you are not the intended > recipient(s), or if it is transmitted/received in error. > > Any unauthorised use, alteration, disclosure, distribution or review of > this email is strictly prohibited. The information contained in this email, > including any attachment sent with it, may be subject to a statutory duty > of confidentiality if it relates to health service matters. > > If you are not the intended recipient(s), or if you have received this > email in error, you are asked to immediately notify the sender by telephone > collect on Australia +61 1800 198 175 or by return email. You should also > delete this email, and any copies, from your computer system network and > destroy any hard copies produced. > > If not an intended recipient of this email, you must not copy, distribute > or take any action(s) that relies on it; any form of disclosure, > modification, distribution and/or publication of this email is also > prohibited. > > Although Queensland Health takes all reasonable steps to ensure this email > does not contain malicious software, Queensland Health does not accept > responsibility for the consequences if any person's computer inadvertently > suffers any disruption to services, loss of information, harm or is > infected with a virus, other malicious computer programme or code that may > occur as a consequence of receiving this email. > > Unless stated otherwise, this email represents only the views of the > sender and not the views of the Queensland Government. > > > ********************************************************************************** > > > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > |
From: David B. <Dav...@he...> - 2020-01-29 02:28:16
|
Hi Andrew, Is your concern about casting related to performance? Because, in general, solutions should be provisioned for the work they have to do. If you need more processing grunt, its often better to tackle that before 'optimising' your code. Aside from casting the whole message, you can cast the segment [eg (pseudo-code) MSH msh = (MSH) Terser.getSegment("MSH")] to get a proper MSH object. But this option is still casting. Another option is treating the message as a String eg... protected static String getMsh10(String input) { int startOfMsh10 = StringUtils.ordinalIndexOf(input, "|", 10); int lengthOfMsh10 = StringUtils.ordinalIndexOf(input, "|", 11) - startOfMsh10; return StringUtils.mid( input , startOfMsh10 , lengthOfMsh10 ); } But that option brings me back to the first point - 'optimising' by String manipulation is convoluted. It'd have been better to wear the costs of parsing and casting the message and enjoy the benefits of using HAPI. Hope this helps, David ---------------------------------------------------------------------- Message: 1 Date: Thu, 23 Jan 2020 18:13:11 -0800 From: Andrew Ring <and...@ni...> To: hl7...@li... Subject: [HAPI-devel] Parse MSH from arbitrary message Message-ID: <CAEw6ye59CaL9rrOF3+Xi0KkvPBrdhhPp3G5gjCNpT+E=Ge...@ma...> Content-Type: text/plain; charset="utf-8" I'm receiving HL7 messages of any type, and want to examine the MSH segment before having to cast the message to a particular type. I can't seem to find a mechanism to do this. I can get individual MSH fields using a Terser, but I would prefer to use well typed structures. Even getting the MSH segment using Terser.getSegment() does not appear to be able to be converted into an MSH object. Can anyone help? Thanks, Andrew Ring -------------- next part -------------- An HTML attachment was scrubbed... ------------------------------ ------------------------------ Subject: Digest Footer _______________________________________________ Hl7api-devel mailing list Hl7...@li... https://lists.sourceforge.net/lists/listinfo/hl7api-devel ------------------------------ End of Hl7api-devel Digest, Vol 144, Issue 5 ******************************************** ******************************************************************************** This email, including any attachments sent with it, is confidential and for the sole use of the intended recipient(s). This confidentiality is not waived or lost, if you receive it and you are not the intended recipient(s), or if it is transmitted/received in error. Any unauthorised use, alteration, disclosure, distribution or review of this email is strictly prohibited. The information contained in this email, including any attachment sent with it, may be subject to a statutory duty of confidentiality if it relates to health service matters. If you are not the intended recipient(s), or if you have received this email in error, you are asked to immediately notify the sender by telephone collect on Australia +61 1800 198 175 or by return email. You should also delete this email, and any copies, from your computer system network and destroy any hard copies produced. If not an intended recipient of this email, you must not copy, distribute or take any action(s) that relies on it; any form of disclosure, modification, distribution and/or publication of this email is also prohibited. Although Queensland Health takes all reasonable steps to ensure this email does not contain malicious software, Queensland Health does not accept responsibility for the consequences if any person's computer inadvertently suffers any disruption to services, loss of information, harm or is infected with a virus, other malicious computer programme or code that may occur as a consequence of receiving this email. Unless stated otherwise, this email represents only the views of the sender and not the views of the Queensland Government. ********************************************************************************** |
From: Andrew R. <and...@ni...> - 2020-01-24 02:14:04
|
I'm receiving HL7 messages of any type, and want to examine the MSH segment before having to cast the message to a particular type. I can't seem to find a mechanism to do this. I can get individual MSH fields using a Terser, but I would prefer to use well typed structures. Even getting the MSH segment using Terser.getSegment() does not appear to be able to be converted into an MSH object. Can anyone help? Thanks, Andrew Ring |
From: Andrew R. <and...@ni...> - 2020-01-16 16:04:42
|
I did some further testing, and parsing ACK messages generated by HAPI, dcm4che, and 7Edit all works correctly. I haven't dug into standards enough to determine if the HL7 Soup ACK is well formed within the standard, or not, as yet. On Wed, Jan 15, 2020, 9:01 PM Ian Vowles <Ian...@he...> wrote: > I think having the 3rd component in MSH-9 makes the parse create the > message type specified there. > > > > Is it possible to omit the MDM_T01 in MSH-9? > > > > > > *Ian Vowles* > > *Integration Specialist, Metro North Integration Centre* > *Metro North IT* > Citilink Lobby 1, Level 3 > > 153 Campbell St, Bowen Hills QLD 4006 > > P: 07 3646 2557 > E: *Ian...@he... <Ian...@he...>* > metronorth.health.qld.gov.au > > > [image: Description: Description: Putting people first] > <http://qheps.health.qld.gov.au/metronorth/html/email-signature.htm> > > [image: Values in Action] > > [image: Description: Description: Facebook] > <http://www.facebook.com/metronorthhhs> [image: Description: > Description: Twitter] <http://www.twitter.com/MetroNorthHHS> [image: > Description: Description: LinkedIn] > <http://www.linkedin.com/company/metro-north-hospital-and-health-service> > follow us on social media > > > > > > > > > > *From:* Andrew Ring via Hl7api-devel <hl7...@li...> > *Sent:* Wednesday, 15 January 2020 3:28 PM > *To:* hl7...@li... > *Subject:* [HAPI-devel] Error parsing ACK message > > > > I'm new to hapi, and am trying to check the ACK response from having sent > a message. The message is received properly, and the response appears well > formed, however when I attempt to parse the ACK message, it's being > interpreted as the type of the original message. (NB: The original message, > as well as the response, are generated by HL7 Soup) > > > > final Message response = initiator.sendAndReceive(message); > > > > // Convert message into most recent version format, since they're backwards > > // compatible > > final HapiContext versionedContext = new DefaultHapiContext(); > > final CanonicalModelClassFactory modelClassFactory = new > CanonicalModelClassFactory("2.8.1"); > > versionedContext.setModelClassFactory(modelClassFactory); > > final Message versionedResponse = > versionedContext.getPipeParser().parse(response.toString()); > > if (!(versionedResponse instanceof ACK)) { > > final String errorMessage = String.format("Response invalid message > type;\n expected %s\n found %s:\n%s", > > ACK.class.getName(), > versionedResponse.getClass().getName(), HL7Utils.forPrinting(versionedResponse)); > > recordSendAttempt(hl7DestinationInfo, false, errorMessage); > > } > > > > results in > > > > Error sending hl7 message with id '8': Response invalid message type; > > expected ca.uhn.hl7v2.model.v281.message.ACK > > found ca.uhn.hl7v2.model.v281.message.MDM_T01: > > > MSH|^~\&|HL7Soup|Instance2|HL7Soup|Instance1|200911021022||ACK^T01^MDM_T01|64322|P|2.5.1 > > MSA|AA|64322 > > > > Can anyone point out what I'm doing wrong? > > > > Thanks, > > Andrew > > > > > > > ******************************************************************************** > > This email, including any attachments sent with it, is confidential and > for the sole use of the intended recipient(s). This confidentiality is not > waived or lost, if you receive it and you are not the intended > recipient(s), or if it is transmitted/received in error. > > Any unauthorised use, alteration, disclosure, distribution or review of > this email is strictly prohibited. The information contained in this email, > including any attachment sent with it, may be subject to a statutory > duty of confidentiality if it relates to health service matters. > > If you are not the intended recipient(s), or if you have received this > email in error, you are asked to immediately notify the sender by telephone > collect on Australia +61 1800 198 175 or by return email. You should also > delete this email, and any copies, from your computer system network and > destroy any hard copies produced. > > If not an intended recipient of this email, you must not copy, distribute > or take any action(s) that relies on it; any form of disclosure, > modification, distribution and/or publication of this email is also > prohibited. > > Although Queensland Health takes all reasonable steps to ensure this email > does not contain malicious software, Queensland Health does not accept > responsibility for the consequences if any person's computer inadvertently > suffers any disruption to services, loss of information, harm or is > infected with a virus, other malicious computer programme or code that may > occur as a consequence of receiving this email. > > Unless stated otherwise, this email represents only the views of the > sender and not the views of the Queensland Government. > > > ********************************************************************************** > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > |
From: Ian V. <Ian...@he...> - 2020-01-16 05:01:18
|
I think having the 3rd component in MSH-9 makes the parse create the message type specified there. Is it possible to omit the MDM_T01 in MSH-9? Ian Vowles Integration Specialist, Metro North Integration Centre Metro North IT Citilink Lobby 1, Level 3 153 Campbell St, Bowen Hills QLD 4006 P: 07 3646 2557 E: Ian...@he...<mailto:Ian...@he...> metronorth.health.qld.gov.au<https://metronorth.health.qld.gov.au/> [Description: Description: Putting people first]<http://qheps.health.qld.gov.au/metronorth/html/email-signature.htm> [Values in Action] [Description: Description: Facebook]<http://www.facebook.com/metronorthhhs> [Description: Description: Twitter] <http://www.twitter.com/MetroNorthHHS> [Description: Description: LinkedIn] <http://www.linkedin.com/company/metro-north-hospital-and-health-service> follow us on social media From: Andrew Ring via Hl7api-devel <hl7...@li...> Sent: Wednesday, 15 January 2020 3:28 PM To: hl7...@li... Subject: [HAPI-devel] Error parsing ACK message I'm new to hapi, and am trying to check the ACK response from having sent a message. The message is received properly, and the response appears well formed, however when I attempt to parse the ACK message, it's being interpreted as the type of the original message. (NB: The original message, as well as the response, are generated by HL7 Soup) final Message response = initiator.sendAndReceive(message); // Convert message into most recent version format, since they're backwards // compatible final HapiContext versionedContext = new DefaultHapiContext(); final CanonicalModelClassFactory modelClassFactory = new CanonicalModelClassFactory("2.8.1"); versionedContext.setModelClassFactory(modelClassFactory); final Message versionedResponse = versionedContext.getPipeParser().parse(response.toString()); if (!(versionedResponse instanceof ACK)) { final String errorMessage = String.format("Response invalid message type;\n expected %s\n found %s:\n%s", ACK.class.getName(), versionedResponse.getClass().getName(), HL7Utils.forPrinting(versionedResponse)); recordSendAttempt(hl7DestinationInfo, false, errorMessage); } results in Error sending hl7 message with id '8': Response invalid message type; expected ca.uhn.hl7v2.model.v281.message.ACK found ca.uhn.hl7v2.model.v281.message.MDM_T01: MSH|^~\&|HL7Soup|Instance2|HL7Soup|Instance1|200911021022||ACK^T01^MDM_T01|64322|P|2.5.1 MSA|AA|64322 Can anyone point out what I'm doing wrong? Thanks, Andrew ******************************************************************************** This email, including any attachments sent with it, is confidential and for the sole use of the intended recipient(s). This confidentiality is not waived or lost, if you receive it and you are not the intended recipient(s), or if it is transmitted/received in error. Any unauthorised use, alteration, disclosure, distribution or review of this email is strictly prohibited. The information contained in this email, including any attachment sent with it, may be subject to a statutory duty of confidentiality if it relates to health service matters. If you are not the intended recipient(s), or if you have received this email in error, you are asked to immediately notify the sender by telephone collect on Australia +61 1800 198 175 or by return email. You should also delete this email, and any copies, from your computer system network and destroy any hard copies produced. If not an intended recipient of this email, you must not copy, distribute or take any action(s) that relies on it; any form of disclosure, modification, distribution and/or publication of this email is also prohibited. Although Queensland Health takes all reasonable steps to ensure this email does not contain malicious software, Queensland Health does not accept responsibility for the consequences if any person's computer inadvertently suffers any disruption to services, loss of information, harm or is infected with a virus, other malicious computer programme or code that may occur as a consequence of receiving this email. Unless stated otherwise, this email represents only the views of the sender and not the views of the Queensland Government. ********************************************************************************** |
From: Andrew R. <and...@ni...> - 2020-01-15 05:57:14
|
I'm new to hapi, and am trying to check the ACK response from having sent a message. The message is received properly, and the response appears well formed, however when I attempt to parse the ACK message, it's being interpreted as the type of the original message. (NB: The original message, as well as the response, are generated by HL7 Soup) final Message response = initiator.sendAndReceive(message); // Convert message into most recent version format, since they're backwards // compatible final HapiContext versionedContext = new DefaultHapiContext(); final CanonicalModelClassFactory modelClassFactory = new CanonicalModelClassFactory("2.8.1"); versionedContext.setModelClassFactory(modelClassFactory); final Message versionedResponse = versionedContext.getPipeParser().parse(response.toString()); if (!(versionedResponse instanceof ACK)) { final String errorMessage = String.format("Response invalid message type;\n expected %s\n found %s:\n%s", ACK.class.getName(), versionedResponse.getClass().getName(), HL7Utils.forPrinting(versionedResponse)); recordSendAttempt(hl7DestinationInfo, false, errorMessage); } results in Error sending hl7 message with id '8': Response invalid message type; expected ca.uhn.hl7v2.model.v281.message.ACK found ca.uhn.hl7v2.model.v281.message.MDM_T01: MSH|^~\&|HL7Soup|Instance2|HL7Soup|Instance1|200911021022||ACK^T01^MDM_T01|64322|P|2.5.1 MSA|AA|64322 Can anyone point out what I'm doing wrong? Thanks, Andrew > |
From: Mirco G. (ICONSULTING) <m.g...@ic...> - 2020-01-13 17:17:49
|
Hello everyone, I am writing to enquire about batch protocol, is it supported? If yes, how can I create a message with it? Kind regards, Mirco [Iconsulting Logo]<https://www.iconsulting.biz/mktg/signature/redirect-logo> Mirco Gurioli Business Analytics Specialist Mobile +39 342 1199 977 m.g...@ic... | www.iconsulting.biz<http://www.iconsulting.biz> Iconsulting S.p.A., Via Bazzanese 32/7 - 40033, Casalecchio di Reno (BO) C.F. e P. IVA n. 02175721204, capitale sociale (interamente versato) € 500.000,00 Le informazioni contenute in questa comunicazione sono riservate e destinate esclusivamente alla/e persona/e o alla società/ente sopra indicati, è pertanto vietato a soggetti diversi dai destinatari qualsiasi uso, copia, diffusione di quanto in esso contenuto. Se questa comunicazione Vi è pervenuta per errore, Vi preghiamo di rispondere a questa mail e successivamente cancellarla dal Vostro sistema. Si segnala inoltre che il presente messaggio e le risposte allo stesso potranno essere conosciute dall’organizzazione lavorativa di appartenenza del mittente secondo le modalità previste dal regolamento aziendale. Sono state assunte le dovute precauzioni per ridurre al minimo il rischio di trasmissione di virus, non si assume tuttavia alcuna responsabilità per eventuali danni o perdite derivanti dalla presenza di virus. |