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...> - 2024-10-23 14:39:32
|
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">I am late to the party on this, and may be missing something, but if you have access to the json itself, you can use the various json utilities to extract the fields you are looking for.<div><br></div><div><br id="lineBreakAtBeginningOfSignature"><div dir="ltr">Sent from my iPhone</div><div dir="ltr"><br><blockquote type="cite">On Oct 23, 2024, at 10:32 AM, Shreeja J <mai...@gm...> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><div dir="auto"><div>Hi James,</div><div dir="auto"><br></div><div dir="auto">Any thoughts on this?</div><div dir="auto"><br></div><div dir="auto">Appreciate any guidance you can provide.</div><div dir="auto"><br></div><div dir="auto">Thanks </div><div dir="auto">Shreeja<br><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Sun, 20 Oct, 2024, 12:13 pm Shreeja J, <<a href="mailto:mai...@gm...">mai...@gm...</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello Team,<div>I am currently working with the HAPI HL7v2 and HAPI FHIR libraries, and I am seeking guidance on utility methods or documentation that would help me retrieve the <code>system</code>, <code>code</code>, and <code>display</code> values for HL7 terminologies. <br></div><div><p> For example, if I pass a code like "MR", I would expect the method to return: <br></p><p>{<br></p><p> "type": {<br> "coding": [{<br> "system": "<a href="http://terminology.hl7.org/CodeSystem/v2-0203" target="_blank" rel="noreferrer">http://terminology.hl7.org/CodeSystem/v2-0203</a>",<br> "code": "MR"<br> }]<br> }<br>}<br></p><p> Similarly, if the code "2028-9" is passed, the expected output would be: </p>{<br> "system": "urn:oid:2.16.840.1.113883.6.238",<br> "code": "2028-9",<br> "display": "Asian"<br>}<br><p> For the code "confirmed", the output should be: </p>{<br> "coding": [{<br> "system": "<a href="http://terminology.hl7.org/CodeSystem/condition-ver-status" target="_blank" rel="noreferrer">http://terminology.hl7.org/CodeSystem/condition-ver-status</a>",<br> "code": "confirmed",<br> "display": "Confirmed"<br> }]<br>}</div><div> If there are any generic utility methods available that I can leverage to retrieve these details, or if there is any relevant documentation you could guide me to, I would greatly appreciate your assistance.</div><div><br></div><div>Thanks,</div><div>Shreeja</div></div> </blockquote></div></div></div> <span>_______________________________________________</span><br><span>Hl7api-devel mailing list</span><br><span>Hl7...@li...</span><br><span>https://lists.sourceforge.net/lists/listinfo/hl7api-devel</span><br></div></blockquote></div></body></html> |
From: Shreeja J <mai...@gm...> - 2024-10-23 14:31:57
|
Hi James, Any thoughts on this? Appreciate any guidance you can provide. Thanks Shreeja On Sun, 20 Oct, 2024, 12:13 pm Shreeja J, <mai...@gm...> wrote: > Hello Team, > I am currently working with the HAPI HL7v2 and HAPI FHIR libraries, and I > am seeking guidance on utility methods or documentation that would help me > retrieve the system, code, and display values for HL7 terminologies. > > For example, if I pass a code like "MR", I would expect the method to > return: > > { > > "type": { > "coding": [{ > "system": "http://terminology.hl7.org/CodeSystem/v2-0203", > "code": "MR" > }] > } > } > > Similarly, if the code "2028-9" is passed, the expected output would be: > { > "system": "urn:oid:2.16.840.1.113883.6.238", > "code": "2028-9", > "display": "Asian" > } > > For the code "confirmed", the output should be: > { > "coding": [{ > "system": "http://terminology.hl7.org/CodeSystem/condition-ver-status > ", > "code": "confirmed", > "display": "Confirmed" > }] > } > If there are any generic utility methods available that I can leverage to > retrieve these details, or if there is any relevant documentation you could > guide me to, I would greatly appreciate your assistance. > > Thanks, > Shreeja > |
From: Saravanan S. <man...@ou...> - 2024-10-20 22:03:47
|
I think there is a bi-directional open source HL7 V2 to FHIR converter from Microsoft which I believe is used in Azure Health Services Engine but it may be .NET based. Not sure about Java side of things. Thx, Saravanan Subramanian ________________________________ From: James Agnew <jam...@gm...> Sent: Sunday, October 20, 2024 5:36 AM To: Shreeja J <mai...@gm...> Cc: hl7...@li... <hl7...@li...> Subject: Re: [HAPI-devel] HL7 v2 (2.7 and later versions) to FHIR conversion through HAPI Hi Shreeja, Unfortunately no conversions between v2 and FHIR are provided by the open source library. We make a converter module available as a part of our commercial offering<https://smilecdr.com/docs/hl7_v2x_support/> but it is unfortunately not open source. On Sun, Oct 20, 2024 at 1:26 AM Shreeja J <mai...@gm...<mailto:mai...@gm...>> wrote: Hello Team, I am currently utilizing HAPI FHIR version 7.4.0 for FHIR validations through the NPM package. The comprehensive documentation has significantly aided my implementation of the validation process. My next objective is to convert incoming HL7 v2 messages (versions 2.7 and later) into FHIR JSON format, followed by validation using the HAPI FHIR Validator. Could you please confirm if HAPI provides any built-in converters for this purpose? Any additional guidance or resources you could share regarding this conversion process would be greatly appreciated. Thank you for your assistance. Thanks, Shreeja _______________________________________________ Hl7api-devel mailing list Hl7...@li...<mailto:Hl7...@li...> https://lists.sourceforge.net/lists/listinfo/hl7api-devel |
From: James A. <jam...@gm...> - 2024-10-20 11:35:53
|
Hi Shreeja, Unfortunately no conversions between v2 and FHIR are provided by the open source library. We make a converter module available as a part of our commercial offering <https://smilecdr.com/docs/hl7_v2x_support/> but it is unfortunately not open source. On Sun, Oct 20, 2024 at 1:26 AM Shreeja J <mai...@gm...> wrote: > Hello Team, > > I am currently utilizing HAPI FHIR version 7.4.0 for FHIR validations > through the NPM package. The comprehensive documentation has significantly > aided my implementation of the validation process. > > My next objective is to convert incoming HL7 v2 messages (versions 2.7 and > later) into FHIR JSON format, followed by validation using the HAPI FHIR > Validator. > > Could you please confirm if HAPI provides any built-in converters for this > purpose? Any additional guidance or resources you could share regarding > this conversion process would be greatly appreciated. > > Thank you for your assistance. > > Thanks, > Shreeja > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > |
From: Shreeja J <mai...@gm...> - 2024-10-20 06:44:07
|
Hello Team, I am currently working with the HAPI HL7v2 and HAPI FHIR libraries, and I am seeking guidance on utility methods or documentation that would help me retrieve the system, code, and display values for HL7 terminologies. For example, if I pass a code like "MR", I would expect the method to return: { "type": { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/v2-0203", "code": "MR" }] } } Similarly, if the code "2028-9" is passed, the expected output would be: { "system": "urn:oid:2.16.840.1.113883.6.238", "code": "2028-9", "display": "Asian" } For the code "confirmed", the output should be: { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/condition-ver-status", "code": "confirmed", "display": "Confirmed" }] } If there are any generic utility methods available that I can leverage to retrieve these details, or if there is any relevant documentation you could guide me to, I would greatly appreciate your assistance. Thanks, Shreeja |
From: Shreeja J <mai...@gm...> - 2024-10-20 05:25:09
|
Hello Team, I am currently utilizing HAPI FHIR version 7.4.0 for FHIR validations through the NPM package. The comprehensive documentation has significantly aided my implementation of the validation process. My next objective is to convert incoming HL7 v2 messages (versions 2.7 and later) into FHIR JSON format, followed by validation using the HAPI FHIR Validator. Could you please confirm if HAPI provides any built-in converters for this purpose? Any additional guidance or resources you could share regarding this conversion process would be greatly appreciated. Thank you for your assistance. Thanks, Shreeja |
From: Stewart A. <ste...@se...> - 2024-02-08 18:27:54
|
You are welcome. Hope it was useful. You don't really have much choice but to parse the message or you can't do any work on it in HAPI. That's how IEs do it anyway. Stewart |
From: Stewart A. <ste...@se...> - 2024-02-08 17:04:28
|
If I recall correctly a singleton is a class that is available across the entire jvm, so if you intend it to handle all messages from lots of queues, I'd think it might quickly become a bottleneck for messaging. No expert in this but, from an integration perspective it would be more scalable and better from the perspective of different services stopping and starting for various reasons to be individually controllable like you can in most IE platforms. Don't know what your platform is or anything though. S Stewart Anderson Integration Consultant P: +44 20 3982 6826 M: +44 77 7999 6873 W: servita.com<https://www.servita.com> [cid:image001.png@01DA5A9B.5A32F290]<https://www.linkedin.com/company/servita/> [cid:image002.png@01DA5A9B.5A32F290] The Smiths Building, 179 Great Portland Street, London, W1W 5PL From: Thomas, Patrick R via Hl7api-devel <hl7...@li...> Sent: Thursday, February 8, 2024 1:54 PM To: hl7...@li... Subject: Re: [HAPI-devel] Thread Safe Queue for HL7 messages CAUTION: This email originated from outside of the organisation. Do not click links or open attachments unless you recognise the sender and know the content is safe. I have a follow-up question. The documentation says that HapiContext is not intended to be a singleton. Should it be fine to create one HapiContext in the singleton that I create to handle the incoming messages from my queue? It seems very inefficient to recreate the objects I need to send each message. Thank you. ______________________________________________________________________ The contents of this message, together with any attachments, are intended only for the use of the person(s) to which they are addressed and may contain confidential and/or privileged information. Further, any medical information herein is confidential and protected by law. It is unlawful for unauthorized persons to use, review, copy, disclose, or disseminate confidential medical information. If you are not the intended recipient, immediately advise the sender and delete this message and any attachments. Any distribution, or copying of this message, or any attachment, is prohibited. |
From: Thomas, P. R <Pat...@qu...> - 2024-02-08 16:16:09
|
This singleton will be for listening to the single JMS queue. It will be a Spring bean, which is a singleton by default anyway. The fewer objects I have to recreate for each message, the more efficient it should be. Singletons are usually designed to be accessible by multiple threads, but in this case, it will only be the JMS listener that will access it. The service that will create the HL7 messages to send to the JMS will create HAPI objects each time and will need to be thread safe since multiple users can send messages to the JMS queue simultaneously. Each user can send multiple messages in a block, and the messages have to stay in order. It does seem a little inefficient to create HAPI objects, convert them to a string message, send it through JMS, parse the string back to HAPI objects, then send the HL7 message through LLP. But I think the JMS built-in capabilities to handle multiple messages and fail overs is better than anything I could design myself to send the messages more directly. Thank you, Patrick R. Thomas From: Stewart Anderson <ste...@se...> Sent: Thursday, February 8, 2024 9:31 AM To: Thomas, Patrick R <Pat...@qu...>; hl7...@li... Subject: RE: Thread Safe Queue for HL7 messages CAUTION! This email originated outside of Quest Diagnostics. DO NOT click links or open attachments unless you recognize the sender and know the content is safe. Please report suspicious emails to: ph...@qu...<mailto:ph...@qu...> If I recall correctly a singleton is a class that is available across the entire jvm, so if you intend it to handle all messages from lots of queues, I'd think it might quickly become a bottleneck for messaging. No expert in this but, from an integration perspective it would be more scalable and better from the perspective of different services stopping and starting for various reasons to be individually controllable like you can in most IE platforms. Don't know what your platform is or anything though. S Stewart Anderson Integration Consultant P: +44 20 3982 6826 M: +44 77 7999 6873 W: servita.com<https://www.servita.com/> [cid:image001.png@01DA5A77.A909F0E0]<https://www.linkedin.com/company/servita/> [cid:image002.png@01DA5A77.A909F0E0] The Smiths Building, 179 Great Portland Street, London, W1W 5PL From: Thomas, Patrick R via Hl7api-devel <hl7...@li...<mailto:hl7...@li...>> Sent: Thursday, February 8, 2024 1:54 PM To: hl7...@li...<mailto:hl7...@li...> Subject: Re: [HAPI-devel] Thread Safe Queue for HL7 messages CAUTION: This email originated from outside of the organisation. Do not click links or open attachments unless you recognise the sender and know the content is safe. I have a follow-up question. The documentation says that HapiContext is not intended to be a singleton. Should it be fine to create one HapiContext in the singleton that I create to handle the incoming messages from my queue? It seems very inefficient to recreate the objects I need to send each message. Thank you. ______________________________________________________________________ The contents of this message, together with any attachments, are intended only for the use of the person(s) to which they are addressed and may contain confidential and/or privileged information. Further, any medical information herein is confidential and protected by law. It is unlawful for unauthorized persons to use, review, copy, disclose, or disseminate confidential medical information. If you are not the intended recipient, immediately advise the sender and delete this message and any attachments. Any distribution, or copying of this message, or any attachment, is prohibited. ______________________________________________________________________ The contents of this message, together with any attachments, are intended only for the use of the person(s) to which they are addressed and may contain confidential and/or privileged information. Further, any medical information herein is confidential and protected by law. It is unlawful for unauthorized persons to use, review, copy, disclose, or disseminate confidential medical information. If you are not the intended recipient, immediately advise the sender and delete this message and any attachments. Any distribution, or copying of this message, or any attachment, is prohibited. |
From: Thomas, P. R <Pat...@qu...> - 2024-02-08 13:54:26
|
I have a follow-up question. The documentation says that HapiContext is not intended to be a singleton. Should it be fine to create one HapiContext in the singleton that I create to handle the incoming messages from my queue? It seems very inefficient to recreate the objects I need to send each message. Thank you. ______________________________________________________________________ The contents of this message, together with any attachments, are intended only for the use of the person(s) to which they are addressed and may contain confidential and/or privileged information. Further, any medical information herein is confidential and protected by law. It is unlawful for unauthorized persons to use, review, copy, disclose, or disseminate confidential medical information. If you are not the intended recipient, immediately advise the sender and delete this message and any attachments. Any distribution, or copying of this message, or any attachment, is prohibited. |
From: Thomas, P. R <Pat...@qu...> - 2024-02-07 13:08:44
|
Thanks for the feedback, Mike and Stewart. I use JMS message queues in other parts of the application. I had thought of that as a possible design. I wanted to check that I wasn't overlooking an existing solution and reinventing the wheel. Thank you, Patrick R. Thomas ______________________________________________________________________ The contents of this message, together with any attachments, are intended only for the use of the person(s) to which they are addressed and may contain confidential and/or privileged information. Further, any medical information herein is confidential and protected by law. It is unlawful for unauthorized persons to use, review, copy, disclose, or disseminate confidential medical information. If you are not the intended recipient, immediately advise the sender and delete this message and any attachments. Any distribution, or copying of this message, or any attachment, is prohibited. |
From: Stewart A. <ste...@se...> - 2024-02-07 11:47:02
|
Haven't used HAPI in the raw for a while now, but I think it is focused on the serialisation of HL7, there is an MLLP Sender/receiver, but if you want to write then to a queue, after or before receipt/send, you'd need to handle the queue yourself. JMS or ActiveMQ/Rabbit etc. There are tons of examples and libraries for all the major queue APIs. |
From: Thomas, P. R <Pat...@qu...> - 2024-02-06 19:44:15
|
My Java application uses HAPI to create HL7 messages. The messages are initiated by users, and multiple users can send messages at the same time. The current implementation creates text files. Simultaneous file creation is no problem. I need to change the design to send the HL7 message through LLP instead. I need a queue to hold all the messages that need to be sent. Before I go down this path, does HAPI have anything that already handles something like this? Thank you, Patrick R. Thomas ______________________________________________________________________ The contents of this message, together with any attachments, are intended only for the use of the person(s) to which they are addressed and may contain confidential and/or privileged information. Further, any medical information herein is confidential and protected by law. It is unlawful for unauthorized persons to use, review, copy, disclose, or disseminate confidential medical information. If you are not the intended recipient, immediately advise the sender and delete this message and any attachments. Any distribution, or copying of this message, or any attachment, is prohibited. |
From: Russell B. <ru...@wi...> - 2023-06-14 16:14:16
|
Yeah, sorry. It's been a very long time since I posted a question on HAPI FHIR and I couldn't find the forum. Then, there's the fact that I discovered that I had put totally bogus values into those fields which HAPI FHIR didn't catch in its parse, but refused to give them back when I asked for them. So, I fixed that and I'm working. Again, sorry for the multiple screw-ups. On 6/13/23 15:49, McClendon, Craig wrote: > > If I’m not mistaken, this is the mailing list for the HAPI HL7v2 library. > > This code below looks to be using HAPI FHIR – different library. > > See the get help section here for more info: https://hapifhir.io/ > > Incidentally, you are creating a new (empty) Patient object, then > trying to fetch the name. It doesn’t have one because you haven’t set > one. > > *From:* Russell Bateman <ru...@wi...> > *Sent:* Tuesday, June 13, 2023 1:54 PM > *To:* hl7...@li... > *Subject:* [External] [HAPI-devel] Unable to inspect gender and > birthdate in Patient > > This message is from an EXTERNAL SENDER - be CAUTIOUS, particularly > with links and attachments. > > ------------------------------------------------------------------------ > > In the code below, I have an incoming Patient which has all the fields > that interest me filled in (see debugger image, but if it doesn't come > through, it shows that patient is filled out for name, gender, > birthdate and address). > > However, when I attempt to inspect *gender* and *birthdate*, these are > *null* despite the API telling me they exist (which, of course, they > do--see attached image). Note that I create a new Patient, named > worthy, and experimentation demonstrates that my code below copies the > name and the address successfully to worthy. It's just trying to copy > gender and birthdate that result in null. If I stop at the lines with > *******, patient.getGender() and patient.getBirthDate() return null. > > There must be some very fundamental bit of understanding of which I'm > completely ignorant. > > { > worthy = new Patient(); > > // name > if( !patient.hasName() ) > patientTooThin( "name" ); > HumanName humanName = patient.getNameFirstRep(); > List< StringType > givens = humanName.getGiven(); > String family = humanName.getFamily(); > String first = null, middle = null; > for( StringType given : givens ) > { > if( isNull( first ) ) > first = given.toString(); > else if( isNull( middle ) ) > middle = given.toString(); > else > break; > } > > if( isNull( family ) || isNull( first ) ) > patientTooThin( "first or last name" ); > > worthy.setName( Collections.singletonList( humanName ) ); > > // gender ************* > if( !patient.hasGender() ) > patientTooThin( "gender" ); > > worthy.setGender( patient.getGender() ); // *************** > > // birthDate > if( !patient.hasBirthDate() ) > patientTooThin( "birth date" ); > > worthy.setBirthDate( patient.getBirthDate() ); // *************** > > // address > if( !patient.hasAddress() ) > patientTooThin( "address" ); > > worthy.setAddress( Collections.singletonList( > patient.getAddressFirstRep() ) ); > } > > > > ------------------------------------------------------------------------ > > This message is for the designated recipient only and may contain > privileged, proprietary, or otherwise confidential information. If you > have received it in error, please notify the sender immediately and > delete the original. Any other use of the e-mail by you is prohibited. > Where allowed by local law, electronic communications with Accenture > and its affiliates, including e-mail and instant messaging (including > content), may be scanned by our systems for the purposes of > information security, AI-powered support capabilities, and assessment > of internal compliance with Accenture policy. Your privacy is > important to us. Accenture uses your personal data only in compliance > with data protection laws. For further information on how Accenture > processes your personal data, please see our privacy statement at > https://www.accenture.com/us-en/privacy-policy. > ______________________________________________________________________________________ > > www.accenture.com |
From: McClendon, C. <cra...@ac...> - 2023-06-14 04:25:20
|
If I’m not mistaken, this is the mailing list for the HAPI HL7v2 library. This code below looks to be using HAPI FHIR – different library. See the get help section here for more info: https://hapifhir.io/ Incidentally, you are creating a new (empty) Patient object, then trying to fetch the name. It doesn’t have one because you haven’t set one. From: Russell Bateman <ru...@wi...> Sent: Tuesday, June 13, 2023 1:54 PM To: hl7...@li... Subject: [External] [HAPI-devel] Unable to inspect gender and birthdate in Patient This message is from an EXTERNAL SENDER - be CAUTIOUS, particularly with links and attachments. ________________________________ In the code below, I have an incoming Patient which has all the fields that interest me filled in (see debugger image, but if it doesn't come through, it shows that patient is filled out for name, gender, birthdate and address). However, when I attempt to inspect gender and birthdate, these are null despite the API telling me they exist (which, of course, they do--see attached image). Note that I create a new Patient, named worthy, and experimentation demonstrates that my code below copies the name and the address successfully to worthy. It's just trying to copy gender and birthdate that result in null. If I stop at the lines with *******, patient.getGender() and patient.getBirthDate() return null. There must be some very fundamental bit of understanding of which I'm completely ignorant. { worthy = new Patient(); // name if( !patient.hasName() ) patientTooThin( "name" ); HumanName humanName = patient.getNameFirstRep(); List< StringType > givens = humanName.getGiven(); String family = humanName.getFamily(); String first = null, middle = null; for( StringType given : givens ) { if( isNull( first ) ) first = given.toString(); else if( isNull( middle ) ) middle = given.toString(); else break; } if( isNull( family ) || isNull( first ) ) patientTooThin( "first or last name" ); worthy.setName( Collections.singletonList( humanName ) ); // gender ************* if( !patient.hasGender() ) patientTooThin( "gender" ); worthy.setGender( patient.getGender() ); // *************** // birthDate if( !patient.hasBirthDate() ) patientTooThin( "birth date" ); worthy.setBirthDate( patient.getBirthDate() ); // *************** // address if( !patient.hasAddress() ) patientTooThin( "address" ); worthy.setAddress( Collections.singletonList( patient.getAddressFirstRep() ) ); } ________________________________ This message is for the designated recipient only and may contain privileged, proprietary, or otherwise confidential information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the e-mail by you is prohibited. Where allowed by local law, electronic communications with Accenture and its affiliates, including e-mail and instant messaging (including content), may be scanned by our systems for the purposes of information security, AI-powered support capabilities, and assessment of internal compliance with Accenture policy. Your privacy is important to us. Accenture uses your personal data only in compliance with data protection laws. For further information on how Accenture processes your personal data, please see our privacy statement at https://www.accenture.com/us-en/privacy-policy. ______________________________________________________________________________________ www.accenture.com |
From: Martin F. <mar...@po...> - 2023-06-13 21:29:41
|
Hi Russell, You pasted some code, but I don't see a direct relationship with HAPI. What class is 'patient'? If it isn't ca.uhn.... something, then i don't think anyone here can help you. Wbr Martin On 13-06-2023 20:53, Russell Bateman wrote: > This email originated from outside of CGM. Please do not click links > or open attachments unless you know the sender and know the content is > safe. > In the code below, I have an incoming Patient which has all the fields > that interest me filled in (see debugger image, but if it doesn't come > through, it shows that patient is filled out for name, gender, > birthdate and address). > > However, when I attempt to inspect *gender* and *birthdate*, these are > *null* despite the API telling me they exist (which, of course, they > do--see attached image). Note that I create a new Patient, named > worthy, and experimentation demonstrates that my code below copies the > name and the address successfully to worthy. It's just trying to copy > gender and birthdate that result in null. If I stop at the lines with > *******, patient.getGender() and patient.getBirthDate() return null. > > There must be some very fundamental bit of understanding of which I'm > completely ignorant. > > { > worthy = new Patient(); > > // name > if( !patient.hasName() ) > patientTooThin( "name" ); > HumanName humanName = patient.getNameFirstRep(); > List< StringType > givens = humanName.getGiven(); > String family = humanName.getFamily(); > String first = null, middle = null; > for( StringType given : givens ) > { > if( isNull( first ) ) > first = given.toString(); > else if( isNull( middle ) ) > middle = given.toString(); > else > break; > } > > if( isNull( family ) || isNull( first ) ) > patientTooThin( "first or last name" ); > > worthy.setName( Collections.singletonList( humanName ) ); > > // gender ************* > if( !patient.hasGender() ) > patientTooThin( "gender" ); > > worthy.setGender( patient.getGender() ); // *************** > > // birthDate > if( !patient.hasBirthDate() ) > patientTooThin( "birth date" ); > > worthy.setBirthDate( patient.getBirthDate() ); // *************** > > // address > if( !patient.hasAddress() ) > patientTooThin( "address" ); > > worthy.setAddress( Collections.singletonList( > patient.getAddressFirstRep() ) ); > } > > > > > > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel |
From: Russell B. <ru...@wi...> - 2023-06-13 20:44:22
|
In the code below, I have an incoming Patient which has all the fields that interest me filled in (see debugger image, but if it doesn't come through, it shows that patient is filled out for name, gender, birthdate and address). However, when I attempt to inspect *gender* and *birthdate*, these are *null* despite the API telling me they exist (which, of course, they do--see attached image). Note that I create a new Patient, named worthy, and experimentation demonstrates that my code below copies the name and the address successfully to worthy. It's just trying to copy gender and birthdate that result in null. If I stop at the lines with *******, patient.getGender() and patient.getBirthDate() return null. There must be some very fundamental bit of understanding of which I'm completely ignorant. { worthy = new Patient(); // name if( !patient.hasName() ) patientTooThin( "name" ); HumanName humanName = patient.getNameFirstRep(); List< StringType > givens = humanName.getGiven(); String family = humanName.getFamily(); String first = null, middle = null; for( StringType given : givens ) { if( isNull( first ) ) first = given.toString(); else if( isNull( middle ) ) middle = given.toString(); else break; } if( isNull( family ) || isNull( first ) ) patientTooThin( "first or last name" ); worthy.setName( Collections.singletonList( humanName ) ); // gender ************* if( !patient.hasGender() ) patientTooThin( "gender" ); worthy.setGender( patient.getGender() ); // *************** // birthDate if( !patient.hasBirthDate() ) patientTooThin( "birth date" ); worthy.setBirthDate( patient.getBirthDate() ); // *************** // address if( !patient.hasAddress() ) patientTooThin( "address" ); worthy.setAddress( Collections.singletonList( patient.getAddressFirstRep() ) ); } |
From: Ian V. <ian...@gm...> - 2023-05-30 23:44:18
|
The short answer to your question is yes, through the use of terser. Terser is very useful, and works well. Parse the message with a pipeparser, create a terser on the message, use the get method. Your messages may introduce challenges, that terser can overcome, but it can still end up being a complex implementation which is potentially fragile if a change occurs in format of the message. If you are going to use terser, remember that printstructure is your friend. If you have message structures which insert Z segments within groups, and/or standard segments in non standard locations you may find, as I have, that building custom message structures using hapi is worth the effort. See the lengthy example below. Hope this helps Ian Example Message (yes, this is based upon reality) MSH|^~\&|CM^DIETARY|SITE|EIP|SITE|20230118115154||ORM^O01|UniqueID|P|2.3||||||8859/1 PID|1|Lots of fields PV1|1|Lots of fields AL1|1|FA|734881000^Tomato^Allergy|MO ZAL|SNAPSHOT|20230118114955|19937481|19937481|ALLERGY|ACTIVE|||||20230118114953|More fields NTE|1||Comments added AL1|2|FA|255620007^Other - Food Allergy^Allergy ZAL|SNAPSHOT|20230118115043|19937487|19937487|ALLERGY|ACTIVE|||||20230118115042|More fields NTE|1||added allergy ORC|NW|Lots of fields OBR|1|Lots of fields OBX|1|IS|MODTEX^SSH Type of Diet||STD This test case: @Test void showZsegmentUsageWithoutCustomMessage() throws HL7Exception { ModelClassFactory MCF = new DefaultModelClassFactory(); PipeParser parser = new PipeParser(); parser.getParserConfiguration().setValidating(false); Message message = parser.parse(REAL_FORMAT_OF_NON_STANDARD_MESSAGE); LOGGER.info(message.printStructure()); Terser terser = new Terser(message); LOGGER.info("Terse for ZAL-4 will find the first ZAL and show field 4? " + terser.get("ZAL-4")); LOGGER.info("No, it shows the value from the second ZAL, because the first is in a group."); LOGGER.info("Terse for /PATIENT/ZAL-4 will find the first ZAL and show field 4? " + terser.get("/PATIENT/ZAL-4")); LOGGER.info("Yes, it shows the value from the first ZAL, because we specified the group"); LOGGER.info("Terse for /NTE2 will find the segment shown as NTE2 in the printstructure " + terser.get("/NTE2-3")); LOGGER.info("Terse for /NTE3 will find the segment shown as NTE3 in the printstructure " + terser.get("/NTE3-3")); } Produces this output: ORM_O01 (start) MSH - MSH|^~\&|CM^DIETARY|SITE|EIP|SITE|20230118115154||ORM^O01|UniqueID|P|2.3||||||8859/1 [ { NTE } ] - Not populated PATIENT (start) [ PID - PID|1|Lots of fields [ PD1 ] - Not populated [ { NTE } ] - Not populated PATIENT_VISIT (start) [ PV1 - PV1|1|Lots of fields [ PV2 ] - Not populated ] PATIENT_VISIT (end) INSURANCE (start) [{ IN1 - Not populated [ IN2 ] - Not populated [ IN3 ] - Not populated }] INSURANCE (end) [ GT1 ] - Not populated [ { AL1 } ] - AL1|1|FA|734881000^Tomato^Allergy|MO [ { ZAL } ] (non-standard) - ZAL|SNAPSHOT|20230118114955|19937481|19937481|ALLERGY|ACTIVE|||||20230118114953|More fields ] PATIENT (end) ORDER (start) { ORC - Not populated ORDER_DETAIL (start) [ < OBR - Not populated | RQD - Not populated | RQ1 - Not populated | RXO - Not populated | ODS - Not populated | ODT - Not populated > [ { NTE } ] - Not populated [ { DG1 } ] - Not populated OBSERVATION (start) [{ OBX - Not populated [ { NTE } ] - Not populated }] OBSERVATION (end) ] ORDER_DETAIL (end) [ CTI ] - Not populated [ BLG ] - Not populated } ORDER (end) [ { NTE2 } ] (non-standard) - NTE|1||Comments added [ { AL1 } ] (non-standard) - AL1|2|FA|255620007^Other - Food Allergy^Allergy [ { ZAL } ] (non-standard) - ZAL|SNAPSHOT|20230118115043|19937487|19937487|ALLERGY|ACTIVE|||||20230118115042|More fields [ { NTE3 } ] (non-standard) - NTE|1||added allergy [ { ORC } ] (non-standard) - ORC|NW|Lots of fields [ { OBR } ] (non-standard) - OBR|1|Lots of fields [ { OBX } ] (non-standard) - OBX|1|IS|MODTEX^SSH Type of Diet||STD ORM_O01 (end) Terse for ZAL-4 will find the first ZAL and show field 4? = 19937487 No, it shows the value from the second ZAL, because the first is in a group. Terse for /PATIENT/ZAL-4 will find the first ZAL and show field 4 = ?19937481 Yes, it shows the value from the first ZAL, because we specified the group Terse for /NTE2 will find the segment shown as NTE2 in the printstructure = Comments added Terse for /NTE3 will find the segment shown as NTE3 in the printstructure = added allergy Note how the non-standard segments (extra NTE segment and ZAL) push the ORC, OBR and OBX segments out of the normal structure. As a result, it will be almost impossible to deal with these messages without creating a custom structure to accommodate the non standard segments in a repeating group. On Wed, 31 May 2023 at 04:26, Michael Godinez via Hl7api-devel < hl7...@li...> wrote: > Hi, > > > > I am trying to determine if Hapi supports any Z segment type without > needing to code anything new within Hapi? > > Also I am trying to find the latest source code and version for download. > > > > Thanks so much, > > Mike > > > > *Mike Godinez* > Sr. Software Engineer > > Email: mic...@he... > > > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > |
From: Michael G. <mic...@he...> - 2023-05-30 18:25:05
|
Hi, I am trying to determine if Hapi supports any Z segment type without needing to code anything new within Hapi? Also I am trying to find the latest source code and version for download. Thanks so much, Mike Mike Godinez Sr. Software Engineer [cid:image001.png@01D992FE.A744C230] Email: mic...@he...<mailto:mic...@he...> |
From: Stewart A. <ste...@se...> - 2023-03-15 13:37:32
|
Does HAPI test panel require spefically the 1.6.1 java version or should it run on corretto xx/java 1.8? I have tries it with a 1.8 and coretto 17 but its still complaining that is wants 1.6? Tried the usual things like path to java and JAVA_HOME. Ta Stu |
From: Stewart A. <ste...@se...> - 2023-03-15 11:33:34
|
OK. I installed a 1.6 and it fires up. Question answered I guess 😊 From: Stewart Anderson Sent: Wednesday, March 15, 2023 11:05 AM To: hl7...@li... Subject: HAPI Test Panel - Java Version Does HAPI test panel require spefically the 1.6.1 java version or should it run on corretto xx/java 1.8? I have tries it with a 1.8 and coretto 17 but its still complaining that is wants 1.6? Tried the usual things like path to java and JAVA_HOME. Ta Stu |
From: Michael D. <mdi...@ca...> - 2023-03-07 19:34:34
|
Hello, I need to create an ORU^R01 with a custom ZDS segment. Basically: MSH + PID + ZDS + OBR + OBX. Is there (an easy) way to create an ORU^R01 message with a custom segment? I've seen the example for reading a custom segment here. https://hapifhir.github.io/hapi-hl7v2/xref/ca/uhn/hl7v2/examples/CustomModelClasses.html Thanks, Mike |
From: Anadi K. <ana...@31...> - 2022-12-30 09:00:22
|
Hi everyone, I was using the latest HAPI HL7V2 Parser and it doesn’t seem to throw any errors if I don’t add EVN or leave EVN.2 empty for example in an ADT_A01 message. Is this expected behaviour or a bug? This is confusing, so can anyone give me an idea of what kind of rules for required fields/segments etc is enforced by HAPI HL7? Thank you, Anadi Kashyap |
From: Ian V. <ian...@gm...> - 2022-08-24 22:03:10
|
I'm attempting to build an HL7 Client using the Hapi Library. Fortunately there are examples that show clearly what to do. See the SendLotsOfMessages Example here: https://hapifhir.github.io/hapi-hl7v2/xref/ca/uhn/hl7v2/examples/SendLotsOfMessages.html Unfortunately when I run the code, a null pointer exception occurs: java.lang.NullPointerException at ca.uhn.hl7v2.app.Responder.processMessage(Responder.java:91) at ca.uhn.hl7v2.app.Receiver$Grunt.run(Receiver.java:127) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Curiously this does not occur when the code provided in SendAndReceiveAMessage example is used, where a server is set up and a client sends. Debugging through the code the problem line is where an ApplicationRouter is addressed. When just a client is used, this is not instantiated with setApplicationRouter but this setter is used when the client is created in the SendAndReceiveAMessage example. How can a client be made to function without a server? Thanks Ian |
From: James A. <jam...@gm...> - 2022-06-16 13:49:28
|
Hi Greg, Unfortunately I think you probably have the wrong list. This mailing list is for HAPI HL7v2, which is a Java (not JavaScript) library. Cheers, James On Wed, Jun 15, 2022 at 11:55 AM White, Gregory (GE Healthcare) < Gre...@me...> wrote: > Greetings all, > > > > I am somewhat new to Javascript and very new to HAPI so please forgive the > naiveté of my question… > > > > I am trying to develop Javascript code for use in a Rhapsody engine that > will handle (loop through) multiple OBR/OBX groupings in an ORU_R01 message > (HL7 v2.6). My goal is to add an OBX segment to each group if/when an OBX > exists where OBX-3 = 2907 within the group. My code only seems to work on > the first OBR/OBX group. In my troubleshooting I have found that using > hapiMessageIn.numberOfSegmentRepeats only seems to work if the segment > identified comes consecutively. For example with a message like… > > > > MSH… > > PID… > > PV1… > > OBR|1|… > > OBX|1|… > > OBX|2|… > > OBX|3|ST|2907|… > > OBR|2|… > > OBX|1|… > > OBX|2|… > > OBX|3|… > > OBX|4|ST|2907|… > > > > …the countobr value from the following code block is 1, and the countobx > value is 3. > > > > … > > var obr_exist = hapiMessageIn.segmentExists("OBR", 0); > > if (obr_exist == true) { > > var countobr = hapiMessageIn.numberOfSegmentRepeats("OBR"); > > // Loop through each OBR > > for (var r = 0; r < hapiMessageIn.numberOfSegmentRepeats("OBR"); > r++) { > > > > // Get the OBX segment count > > var obx_exist = hapiMessageIn.segmentExists("OBX", 0); > > if (obx_exist == true) { > > var countobx = > hapiMessageIn.numberOfSegmentRepeats("OBX"); > > // Loop through each OBX and look for OBX-3.1 = 2907 > > for (var x = 0; x < > hapiMessageIn.numberOfSegmentRepeats("OBX"); x++) { > > …. > > } > > } > > } > > … > > > > With the countobr only being equal to 1 it never loops through/processes > the second OBR/OBX grouping and therefore the output message will have the > added OBX segment only in the first OBR/OBX group, like… > > > > MSH… > > PID… > > PV1… > > OBR|1|… > > OBX|1|… > > OBX|2|… > > OBX|3|ST|2907|… > > OBX|4|… (added OBX segment) > > OBR|2|… > > OBX|1|… > > OBX|2|… > > OBX|3|… > > OBX|4|ST|2907|… > > (no added OBX segment) > > > > Is there an issue with my syntax/use of the numberOfSegmentRepeats that > may be causing this? Is there a better method you can propose to handle > this scenario? > > > > Thanks in advance for your review and any suggestions you may have to > resolve this issue. > > > > *Upcoming OOO dates: June 27- July 15 (PTO)* > > * July 25 - 28 (Training) * > > * Aug 4 - 8 (PTO)* > > > > *Gregory A. White* > Interface Integration Engineer, Mural > > GE Healthcare > > T. +1 561 889 5673 > > > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > |