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: Ian V. <Ian...@he...> - 2013-11-01 01:33:01
|
As the use of HAPI extends deeper into our work practices, building test cases has encouraged us to use example message files. Saving them with the package, and bringing them in as resource streams is the manner we have adopted. Today I stumbled across the Hl7InputStreamMessageIterator, which looks to be made for just this scenario, so I have been having a go at using it. The code below shows my attempt: // Hl7InputStreamMessageIterator messageIterator = Hl7InputStreamMessageIterator.getForClasspathResource("/au/gov/qld/health/sit/cdr2/CdnPacsCbhInEscaped.dat"); Hl7InputStreamMessageIterator messageIterator = new Hl7InputStreamMessageIterator(getClass().getResourceAsStream("/au/gov/qld/health/sit/cdr2/CdnPacsCbhInEscaped.dat")); messageIterator.setIgnoreComments(true); // messageIterator.setMessageType(ca.uhn.hl7v2.model.v24.message.ORU_R01.class); As is I get a good result, and can step through the messages in my resource file and assert things for my test case. However, the commented out lines, the first being how I thought I might be able to bring in the resource, the second fixing the message to a particular version which I expect won't build. They return: Compiling 1 source file to D:\JavaDevelopment\RisToCdr2\build\test\classes D:\JavaDevelopment\RisToCdr2\test\au\gov\qld\health\sit\cdr2\CdnPacsCbhTxCdr2Test.java:52: error: cannot find symbol Hl7InputStreamMessageIterator messageIterator = Hl7InputStreamMessageIterator.getForClasspathResource("/au/gov/qld/health/sit/cdr2/CdnPacsCbhInEscaped.dat"); symbol: method getForClasspathResource(String) location: class Hl7InputStreamMessageIterator HAPI library in use is v2.1 Any thoughts on where I have gone wrong? Thanks Ian ******************************************************************************** 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: Dayu H. <da...@st...> - 2013-10-31 18:41:56
|
Hi All In particular, how do I generate a content like @PID.3^1234567&ABC, which element should I set a value on. It's not clear to me how to populate QPD.3 segment, for example: qpd.getQpd3_UserParametersInsuccessivefields() returns a Varies type. How do I use this Varies to populate the content ? Thanks Dayu On 2013-10-31, at 7:51 AM, Christian Ohr wrote: > What kind of trouble? > How does your code look like? > What do you get compared to what you expect? > > cheers > Christian > > > 2013/10/30 Dayu Han <da...@st...> > Hello > > I have trouble generating QPD.3 with content like @PID.3^1234567&ABC. Any help is greatly appreciated. > > Thanks > Dayu > > -- > Dayu Han > Software Developer > Strata Health Solutions > Phone: +1 403 261 0855 ext 2102 > www.stratahealth.com > > > > > > > > > > > > ------------------------------------------------------------------------------ > Android is increasing in popularity, but the open development platform that > developers love is also attractive to malware creators. Download this white > paper to learn more about secure code signing practices that can help keep > Android apps secure. > http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > -- Dayu Han Software Developer Strata Health Solutions Phone: +1 403 261 0855 ext 2102 www.stratahealth.com |
From: John R. <joh...@gm...> - 2013-10-31 18:24:16
|
James, I downloaded the source to take a look. I imported the test panel project into Eclipse but the dependencies/class path points to JARs and projects that are not in the repository. I set M2_REPO to the root of the source tree but that didn't work. Where can I find the required JARs? Below are some if the Eclipse project errors. BTW: I am on a Mac. Description Resource Path Location Type Project 'hapi-testpanel' is missing required library: '/Users/jr/Workspaces/HAPI/hapi-mvn/com/apple/applejavaextensions/1.5.4/applejavaextensions-1.5.4.jar' hapi-testpanel Build path Build Path Problem Project 'hapi-testpanel' is missing required Java project: 'hapi-hl7overhttp' hapi-testpanel Build path Build Path Problem Project 'hapi-testpanel' is missing required source folder: 'target/generated-sources/jflex' hapi-testpanel Build path Build Path Problem ... Project 'hapi-testpanel' is missing required library: '/Users/jr/Workspaces/HAPI/hapi-mvn/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar' hapi-testpanel Build path Build Path Problem Project 'hapi-testpanel' is missing required library: '/Users/jr/Workspaces/HAPI/hapi-mvn/xerces/xercesImpl/2.4.0/xercesImpl-2.4.0.jar' hapi-testpanel Build path Build Path Problem JR |
From: Justin <cal...@gm...> - 2013-10-31 16:45:12
|
Hi all, Is there an equivalent page to: http://hl7api.sourceforge.net/devbyexample.html but which illustrates the examples using hapi-base-2.0. More specifically, I am trying to to make unit tests while setting up a server in the test. However, I have to use hapi-base-2.0 and the following cannot be used: HapiContext ctx1 = new DefaultHapiContext(); (so I cannot follow along with: http://hl7api.sourceforge.net/xref/ca/uhn/hl7v2/examples/TheHapiContext.html). I will be taking a look at the source of 2.0 but in the meantime, if anyone with more experience with hapi could point me in the right direction, it would be much appreciated. Thanks Justin |
From: Christian O. <chr...@gm...> - 2013-10-31 14:03:21
|
hi, do you rely on working on an untyped message (i.e. AbstractMessage)? In this case, adding a segment (repetition) can be ambiguous as it is not clear where in the message the segment should actually be added. Messages of different types and versions usually have a dedicated structure definition, which can change even for the same message type in different versions. My experience is that when you create or modify a message using the HAPI API, you should work on typed messages (like ca.uhn.hl7v2.model.v25.message.ADT_A01). And here the API provides you with methods like insertNK1(int rep):NK1. cheers Christian 2013/10/31 Andrew Bowden <And...@rc...> > Hi all,**** > > ** ** > > What is the best way to insert a new segment into an existing message. I > need to add a repeating NK1 to transform an existing message for > compliance, however whenever I try to insert a new NK1 segment using a > terser, the code throws an exception. I can avoid this by setting the > first NK1 again, however this doesn’t feel like the best way to approach > the problem. I would be interested in any thoughts as to the best way to > approach the problem.**** > > ** ** > > <code>**** > > private AbstractMessage msg;**** > > public constructor(rawMsg){**** > > msg = (AbstractMessage)parser.parse(rawMsg);**** > > Terser t = new Terser(msg);**** > > **** > > hapiTerser.set("/.NK1(2)-1-1", "2");**** > > // throws HL7 Exception - ca.uhn.hl7v2.HL7Exception: Can't > return repetition #2 of NK1 - there are currently only 1 repetitions so > rep# must be between 0 and 1**** > > }**** > > </code>**** > > ** ** > > I have found that if I: hapiTerser.set(“/.NK1-1-1”, “1”);, the problem > appears to go away, so I can either iterate over each item or deepcopy to > get them across, however this feels like a hack to get this working.**** > > ** ** > > I appreciate you taking the time to look at this problem and welcome any > suggestion.**** > > ** ** > > Andrew**** > > > ------------------------------------------------------------------------------ > Android is increasing in popularity, but the open development platform that > developers love is also attractive to malware creators. Download this white > paper to learn more about secure code signing practices that can help keep > Android apps secure. > http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > |
From: Christian O. <chr...@gm...> - 2013-10-31 13:51:11
|
What kind of trouble? How does your code look like? What do you get compared to what you expect? cheers Christian 2013/10/30 Dayu Han <da...@st...> > Hello > > I have trouble generating QPD.3 with content like @PID.3^1234567&ABC. Any > help is greatly appreciated. > > Thanks > Dayu > > -- > Dayu Han > Software Developer > Strata Health Solutions > Phone: +1 403 261 0855 ext 2102 > www.stratahealth.com > > > > > > > > > > > > > ------------------------------------------------------------------------------ > Android is increasing in popularity, but the open development platform that > developers love is also attractive to malware creators. Download this white > paper to learn more about secure code signing practices that can help keep > Android apps secure. > http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > |
From: Andrew B. <And...@rc...> - 2013-10-31 04:52:50
|
Hi all, What is the best way to insert a new segment into an existing message. I need to add a repeating NK1 to transform an existing message for compliance, however whenever I try to insert a new NK1 segment using a terser, the code throws an exception. I can avoid this by setting the first NK1 again, however this doesn't feel like the best way to approach the problem. I would be interested in any thoughts as to the best way to approach the problem. <code> private AbstractMessage msg; public constructor(rawMsg){ msg = (AbstractMessage)parser.parse(rawMsg); Terser t = new Terser(msg); hapiTerser.set("/.NK1(2)-1-1", "2"); // throws HL7 Exception - ca.uhn.hl7v2.HL7Exception: Can't return repetition #2 of NK1 - there are currently only 1 repetitions so rep# must be between 0 and 1 } </code> I have found that if I: hapiTerser.set("/.NK1-1-1", "1");, the problem appears to go away, so I can either iterate over each item or deepcopy to get them across, however this feels like a hack to get this working. I appreciate you taking the time to look at this problem and welcome any suggestion. Andrew |
From: Dayu H. <da...@st...> - 2013-10-30 23:24:03
|
Hello I have trouble generating QPD.3 with content like @PID.3^1234567&ABC. Any help is greatly appreciated. Thanks Dayu -- Dayu Han Software Developer Strata Health Solutions Phone: +1 403 261 0855 ext 2102 www.stratahealth.com |
From: James A. <ja...@ja...> - 2013-10-30 14:54:27
|
Hi John, My apologies on the slow response. The test panel doesn't have a source bundle available, but the source is available as a subproject in our main source tree here: https://sourceforge.net/p/hl7api/code/HEAD/tree/trunk/hapi-mvn/hapi-testpanel That said, I am betting this issue is actually with the main HAPI library, specifically in Receiver#processMessage()<https://sourceforge.net/p/hl7api/code/HEAD/tree/trunk/hapi-mvn/hapi-base/src/main/java/ca/uhn/hl7v2/app/Receiver.java>. HAPI's HL7 server ignores unsolicited incoming messages if they contain an MSA segment since it assumes that they are ACKs we aren't waiting on a response for. Fundamentally the issue I guess is that the same Receiver class is used for the client and the server. For a client, it makes sense to ignore unexpected ACKs but for a server presumably you want to handle anything that arrives. If you wanted to take a crack at this, great. If you wanted to file a bug, also great. James On Thu, Oct 24, 2013 at 11:08 AM, John Ruggentaler < joh...@gm...> wrote: > > I have not received any replies to my question so I would like to look at > the HAPI TestPanel source code. I could not find the source code in the > HAPI distribution. Is the HAPI TestPanel source code available? > > JR > > > On Fri, Oct 11, 2013 at 9:34 AM, John Ruggentaler < > joh...@gm...> wrote: > >> I started a receiving connection on the HAPITestPanel and sent a HL7 >> EHC^24 message to it. >> >> MSH|^~\&|||||||EHC^E24|2346044|D|2.6|||AL >> MSA|AA|12345 >> IVC|35687338^^12345|||||L||||||||||||||1024 >> >> PSL|||1|||D|85025^^CPT(R)|~~||20130529|20130529|1||||35|POS~TOS|11~5|||||||10241000 >> >> The HAPITestPanel shows the connection open and the connection being >> closed. I copied the above message and removed the MSA segment and sent the >> new message to the HAPITestPannel and the connection open, message >> received, ack send and connection close all occurred as expected. Why did >> HAPITestPanel reject (did not show the message or send a ACK) the first >> message with the MSA segment but accepts the second message without the MSA >> segment? >> >> >> >> JR >> > > > > ------------------------------------------------------------------------------ > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most > from > the latest Intel processors and coprocessors. See abstracts and register > > http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > |
From: Christian O. <chr...@gm...> - 2013-10-24 19:46:38
|
Here's how to: mdm.getTXA().getSetIDTXA().setValue("1"); mdm.getTXA().getDocumentType().setValue("DI"); mdm.getTXA().getDocumentContentPresentation().setValue("AP"); XCN xcn = mdm.getTXA().insertPrimaryActivityProviderCodeName(0); xcn.getIDNumber().setValue("1111111"); xcn.getFamilyName().getSurname().setValue("Doe"); xcn.getGivenName().setValue("John"); cheers Christian 2013/10/24 Rafael Warnault <rw...@op...> > Dear HAPI team, > > I'm facing with a coding problem with HAPI Java Library I can't find the > solution. > > I'm building a MDM message from scratch and this message must contain the > following segments: MSH, PID, TXA and OBX. Overall, the API and > documentation is rather clear about most of methods and objects I need in > order to achieve this. Unfortunately I have an issue with the TXA segment > and particularly with the "Primary Activity Provider Code Name" (XCN) > field. Here is my code: > > mdm.getTXA().getSetIDTXA().setValue("1"); > > mdm.getTXA().getDocumentType().setValue("DI"); > > mdm.getTXA().getDocumentContentPresentation().setValue("AP"); > > > mdm.getTXA().getPrimaryActivityProviderCodeName()[0].getIDNumber().setValue( > "1111111"); > > > mdm.getTXA().getPrimaryActivityProviderCodeName()[0].getFamilyName().getSurname().setValue( > "Doe"); > > > mdm.getTXA().getPrimaryActivityProviderCodeName()[0].getGivenName().setValue( > "John"); > > mdm.getTXA().getActivityDateTime().setValue(today); > > mdm.getTXA().getOriginationDateTime().setValue(today); > > mdm.getTXA().getTranscriptionDateTime().setValue(today); > > mdm.getTXA().getUniqueDocumentNumber().getNamespaceID().setValue( > "345841142141"); > > mdm.getTXA().getDocumentCompletionStatus().setValue("AU"); > > > The "TXA.getPrimaryActivityProviderCodeName()" method seems to return an > empty array of XCB objects, so my approach can't work. I searched several > way to set or fill this empty array, without success. I'm very interested > in a solution to properly set the Primary Activity Provider Code Name field. > > > Thank you for your time and your work, it is much appreciated. > > > Rafaël Warnault > > rw...@op... > > > > > ------------------------------------------------------------------------------ > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most > from > the latest Intel processors and coprocessors. See abstracts and register > > http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > |
From: Rafael W. <rw...@op...> - 2013-10-24 17:08:28
|
Dear HAPI team, I'm facing with a coding problem with HAPI Java Library I can't find the solution. I'm building a MDM message from scratch and this message must contain the following segments: MSH, PID, TXA and OBX. Overall, the API and documentation is rather clear about most of methods and objects I need in order to achieve this. Unfortunately I have an issue with the TXA segment and particularly with the "Primary Activity Provider Code Name" (XCN) field. Here is my code: mdm.getTXA().getSetIDTXA().setValue("1"); mdm.getTXA().getDocumentType().setValue("DI"); mdm.getTXA().getDocumentContentPresentation().setValue("AP"); mdm.getTXA().getPrimaryActivityProviderCodeName()[0].getIDNumber().setValue("1111111"); mdm.getTXA().getPrimaryActivityProviderCodeName()[0].getFamilyName().getSurname().setValue("Doe"); mdm.getTXA().getPrimaryActivityProviderCodeName()[0].getGivenName().setValue("John"); mdm.getTXA().getActivityDateTime().setValue(today); mdm.getTXA().getOriginationDateTime().setValue(today); mdm.getTXA().getTranscriptionDateTime().setValue(today); mdm.getTXA().getUniqueDocumentNumber().getNamespaceID().setValue("345841142141"); mdm.getTXA().getDocumentCompletionStatus().setValue("AU"); The "TXA.getPrimaryActivityProviderCodeName()" method seems to return an empty array of XCB objects, so my approach can't work. I searched several way to set or fill this empty array, without success. I'm very interested in a solution to properly set the Primary Activity Provider Code Name field. Thank you for your time and your work, it is much appreciated. Rafaël Warnault rw...@op... |
From: John R. <joh...@gm...> - 2013-10-24 15:08:10
|
I have not received any replies to my question so I would like to look at the HAPI TestPanel source code. I could not find the source code in the HAPI distribution. Is the HAPI TestPanel source code available? JR On Fri, Oct 11, 2013 at 9:34 AM, John Ruggentaler < joh...@gm...> wrote: > I started a receiving connection on the HAPITestPanel and sent a HL7 > EHC^24 message to it. > > MSH|^~\&|||||||EHC^E24|2346044|D|2.6|||AL > MSA|AA|12345 > IVC|35687338^^12345|||||L||||||||||||||1024 > > PSL|||1|||D|85025^^CPT(R)|~~||20130529|20130529|1||||35|POS~TOS|11~5|||||||10241000 > > The HAPITestPanel shows the connection open and the connection being > closed. I copied the above message and removed the MSA segment and sent the > new message to the HAPITestPannel and the connection open, message > received, ack send and connection close all occurred as expected. Why did > HAPITestPanel reject (did not show the message or send a ACK) the first > message with the MSA segment but accepts the second message without the MSA > segment? > > > > JR > |
From: Christian O. <chr...@gm...> - 2013-10-19 18:49:51
|
Check your linebreaks (must be \r to be valid segment separators. And try Parser p = new PipeParser(); ADT_A39 m = (ADT_A39)p.parse(message); String id = m.getPATIENT().getMRG().getPriorPatientIdentifierList()[0].getID().getValue(); cheers Christian 2013/10/19 Jhonson P <jho...@gm...> > Hi, > > I have been trying to get MRG data from ADT A40 message which is parsed by > HAPI. When i parse the ADT A40(v2.4) Message using HAPI Version 2.1, It is > binding to ADT A39 class. > > I am getting 'null' value if i try to get MRG' > priorPpatientIdentificationList from this ADT A39 class. > > Please help me on how to get the priorPpatientIdentificationList data from > the parsed ADT A39 message. > > Sample: > MSH|^~\&|ADM||||201307031749||ADT^A40|686627|D|2.4|||AL|NE| > EVN||201307031749|||MTVANJOH00^Rensburg^JJ^van|201307031747| > PID|1||FP00000610^^^^MR^FPH~132144587^^^^SS^FPH~T1-20130703174055869^^^^PI^FPH~T00000549^^^^HUB^FPH||Joe^Jose^^^^^L||19520101|M||OT|16 > ^^^^||(919)909-8888^^^te...@wh...|||||FA00000807|132144587| > > PV1|1|O|DIET||||^^^^^^^^^^^^XX|||||||||||CLI||U|||||||||||||||||||FPH||REG|||201307031747|201309031747 > PV2|||||||||||1|||||||||||||||||||||||||N| > ROL|1|AD|AT|^^^^^^^^^^^^XX| > DRG|31| > MRG|FP00000611^^^^MR| > > Thanks > John > > > ------------------------------------------------------------------------------ > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most > from > the latest Intel processors and coprocessors. See abstracts and register > > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > |
From: Jhonson P <jho...@gm...> - 2013-10-19 10:02:23
|
Hi, I have been trying to get MRG data from ADT A40 message which is parsed by HAPI. When i parse the ADT A40(v2.4) Message using HAPI Version 2.1, It is binding to ADT A39 class. I am getting 'null' value if i try to get MRG' priorPpatientIdentificationList from this ADT A39 class. Please help me on how to get the priorPpatientIdentificationList data from the parsed ADT A39 message. Sample: MSH|^~\&|ADM||||201307031749||ADT^A40|686627|D|2.4|||AL|NE| EVN||201307031749|||MTVANJOH00^Rensburg^JJ^van|201307031747| PID|1||FP00000610^^^^MR^FPH~132144587^^^^SS^FPH~T1-20130703174055869^^^^PI^FPH~T00000549^^^^HUB^FPH||Joe^Jose^^^^^L||19520101|M||OT|16 ^^^^||(919)909-8888^^^te...@wh...|||||FA00000807|132144587| PV1|1|O|DIET||||^^^^^^^^^^^^XX|||||||||||CLI||U|||||||||||||||||||FPH||REG|||201307031747|201309031747 PV2|||||||||||1|||||||||||||||||||||||||N| ROL|1|AD|AT|^^^^^^^^^^^^XX| DRG|31| MRG|FP00000611^^^^MR| Thanks John |
From: Rahul S. <rs...@ce...> - 2013-10-17 16:35:19
|
This is not an OS line ending issue. This is the HL7 Spec that dictates \r being used. However it is common for some systems to send \n, so it is ok to replace \n with \r. I think HAPI has a switch that does this. R, rahul On Oct 17, 2013, at 7:27 AM, Eugene Berman <eug...@mu...> wrote: > OK, so digging deeper into the issue, I found that the segment delimiter is hardcoded to "\r", but standard Unix file endings are "\n", so obviously parses would fail. So my question is, what is the standard best practice here? Should the application convert all \n to \r prior to parsing, or should if reject the message? Is this a bug in HAPI or is it an expected behavior? > > -- > Eugene Berman > Sr. Enterprise Solutions Architect > ---- > MuleSoft Inc. > 77 Geary Street, Ste. 400 > San Francisco, CA 94108 > Office: 415 229 2063 > Website: http://www.mulesoft.com <http://www.mulesoft.com/> > --- > Entia non sunt multiplicanda praeter necessitatem! > > > > On Oct 17, 2013, at 7:01 AM, Eugene Berman <eug...@mu...> wrote: > >> Folks, I'm running into a very strange issue. Some of my messages are not parsed correctly and resulting in the following exception: >> >> Root Exception stack trace: >> ca.uhn.hl7v2.HL7Exception: Can't process message of version '2.3 >> EVN' - version not recognized >> at ca.uhn.hl7v2.parser.Parser.parse(Parser.java:189) >> >> I created a test message in the HAPI test panel and saved it three times - with HL7 line endings, UNIX line endings and Windows line endings. HL7 and Windows versions are parsed correctly, but the UNIX one throws that exception. Wondering if there's a known issue in HAPI 2.0 or am I missing any settings? >> >> Thank you, >> >> E. >> >> -- >> Eugene Berman >> Sr. Enterprise Solutions Architect >> ---- >> MuleSoft Inc. >> 77 Geary Street, Ste. 400 >> San Francisco, CA 94108 >> Office: 415 229 2063 >> Website: http://www.mulesoft.com <http://www.mulesoft.com/> >> --- >> Entia non sunt multiplicanda praeter necessitatem! >> >> >> > > > ------------------------------------------------------------------------------ > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from > the latest Intel processors and coprocessors. See abstracts and register > > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel |
From: Eugene B. <eug...@mu...> - 2013-10-17 15:07:29
|
Folks, I'm running into a very strange issue. Some of my messages are not parsed correctly and resulting in the following exception: Root Exception stack trace: ca.uhn.hl7v2.HL7Exception: Can't process message of version '2.3 EVN' - version not recognized at ca.uhn.hl7v2.parser.Parser.parse(Parser.java:189) I created a test message in the HAPI test panel and saved it three times - with HL7 line endings, UNIX line endings and Windows line endings. HL7 and Windows versions are parsed correctly, but the UNIX one throws that exception. Wondering if there's a known issue in HAPI 2.0 or am I missing any settings? Thank you, E. -- Eugene Berman Sr. Enterprise Solutions Architect ---- MuleSoft Inc. 77 Geary Street, Ste. 400 San Francisco, CA 94108 Office: 415 229 2063 Website: http://www.mulesoft.com <http://www.mulesoft.com/> --- Entia non sunt multiplicanda praeter necessitatem! |
From: Eugene B. <eug...@mu...> - 2013-10-17 14:50:31
|
OK, so digging deeper into the issue, I found that the segment delimiter is hardcoded to "\r", but standard Unix file endings are "\n", so obviously parses would fail. So my question is, what is the standard best practice here? Should the application convert all \n to \r prior to parsing, or should if reject the message? Is this a bug in HAPI or is it an expected behavior? -- Eugene Berman Sr. Enterprise Solutions Architect ---- MuleSoft Inc. 77 Geary Street, Ste. 400 San Francisco, CA 94108 Office: 415 229 2063 Website: http://www.mulesoft.com <http://www.mulesoft.com/> --- Entia non sunt multiplicanda praeter necessitatem! On Oct 17, 2013, at 7:01 AM, Eugene Berman <eug...@mu...> wrote: > Folks, I'm running into a very strange issue. Some of my messages are not parsed correctly and resulting in the following exception: > > Root Exception stack trace: > ca.uhn.hl7v2.HL7Exception: Can't process message of version '2.3 > EVN' - version not recognized > at ca.uhn.hl7v2.parser.Parser.parse(Parser.java:189) > > I created a test message in the HAPI test panel and saved it three times - with HL7 line endings, UNIX line endings and Windows line endings. HL7 and Windows versions are parsed correctly, but the UNIX one throws that exception. Wondering if there's a known issue in HAPI 2.0 or am I missing any settings? > > Thank you, > > E. > > -- > Eugene Berman > Sr. Enterprise Solutions Architect > ---- > MuleSoft Inc. > 77 Geary Street, Ste. 400 > San Francisco, CA 94108 > Office: 415 229 2063 > Website: http://www.mulesoft.com <http://www.mulesoft.com/> > --- > Entia non sunt multiplicanda praeter necessitatem! > > > |
From: John R. <joh...@gm...> - 2013-10-11 14:34:30
|
I started a receiving connection on the HAPITestPanel and sent a HL7 EHC^24 message to it. MSH|^~\&|||||||EHC^E24|2346044|D|2.6|||AL MSA|AA|12345 IVC|35687338^^12345|||||L||||||||||||||1024 PSL|||1|||D|85025^^CPT(R)|~~||20130529|20130529|1||||35|POS~TOS|11~5|||||||10241000 The HAPITestPanel shows the connection open and the connection being closed. I copied the above message and removed the MSA segment and sent the new message to the HAPITestPannel and the connection open, message received, ack send and connection close all occurred as expected. Why did HAPITestPanel reject (did not show the message or send a ACK) the first message with the MSA segment but accepts the second message without the MSA segment? JR |
From: Ian V. <Ian...@he...> - 2013-09-30 23:11:33
|
I agree that active null is not empty, special action often needs to be taken when it is present. I added the various cases to make sure I knew what was happening. Thanks for looking into it. Ian >>> Christian Ohr <chr...@gm...> 30/09/13 17:41 >>> Yes, isEmpty() has some issues. I think some of them were fixed, unfortunately after the 2.1 release; but some corner cases like existing but empty extra components were not considered. I'll look deeper into it as soon as time permits. Would you think, active nulls ("") should be considered an "empty" value? Personally I don't think so.... Christian 2013/9/30 Ian Vowles <Ian...@he...> Checking for nulls, empty strings, empty data types and active nulls makes for a lot of code in message transforms. The presence of .isEmpty() looks like a godsend, but how is it intended to work? The following code produces the results shown below. Is this the way it's supposed to work? Thanks Ian /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package hapiexamples; import ca.uhn.hl7v2.HL7Exception; import ca.uhn.hl7v2.model.v231.message.ADT_A08; /** * * @author vowlesi */ public class CheckIsemptyFeatures { private static final String ACTIVE_NULL = "\"\""; private static ADT_A08 hl7In; public static void main(String[] args) throws HL7Exception { hl7In = new ADT_A08(); hl7In.getMSH().getMsh1_FieldSeparator().setValue("|"); hl7In.getMSH().getMsh2_EncodingCharacters().setValue("^~\\&"); System.out.println("After construction with new() .isEmpty() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); hl7In.getPID().getPid19_SSNNumberPatient().parse(""); System.out.println("After parsing '' (empty string) .isEmpty() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); hl7In.getPID().getPid19_SSNNumberPatient().parse("^^^^^"); System.out.println("After parsing '^^^^^' unexpected components .isEmpty() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); hl7In.getPID().getPid19_SSNNumberPatient().parse(ACTIVE_NULL); System.out.println("After parsing '\"\"' (active null) .isEmpty() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); hl7In.getPID().getPid19_SSNNumberPatient().parse(ACTIVE_NULL + "^^^^"); System.out.println("After parsing '\"\"^^^^' (active null and unexpected components) .isEmpty() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); String inputHl7 = "MSH|^~\\&|HOMER|fake|DGATE-FAKE^prjHbcisRawIn|99999|20130923023038||ADT^A08|2013092302303834022003|P|2.3|||AL|AL|AUS|ASCII|ENG\r" + "EVN|A08|20130923023038|\r" + "PID|1|\"\"|708010^^^MRN^MR|PENSION NO^^^DSS^PE|SURNAME^GIVEN^^^MRS^^L||19381216|F||14|UNIT A/1 FAKE ST^\"\"^BRISBANE^^4000^\"\"^P||12345678^PRN^^^^^12345678||86^ENGLISH ONLY|W|2233|708010-4|4072469157||||1101||||||20130923|Y\r"; hl7In.parse(inputHl7); System.out.println("After parsing message with medicare(SSN) .isEmpty() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); System.out.println("After parsing message with medicare(SSN) .getValue() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().getValue() + "'"); System.out.println("After parsing message with language .isEmpty() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().isEmpty() + "'"); System.out.println("After parsing message with language .getCe1_Identifier().getValue() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().getCe1_Identifier().getValue() + "'"); inputHl7 = "MSH|^~\\&|HOMER|fake|DGATE-FAKE^prjHbcisRawIn|99999|20130923023038||ADT^A08|2013092302303834022003|P|2.3|||AL|AL|AUS|ASCII|ENG\r" + "EVN|A08|20130923023038|\r" + "PID|1|\"\"|708010^^^MRN^MR|PENSION NO^^^DSS^PE|SURNAME^GIVEN^^^MRS^^L||19381216|F||14|UNIT A/1 FAKE ST^\"\"^BRISBANE^^4000^\"\"^P||12345678^PRN^^^^^12345678||^^^^^|W|2233|708010-4|||||1101||||||20130923|Y\r"; hl7In.parse(inputHl7); System.out.println("After parsing message without medicare(SSN) .isEmpty() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); System.out.println("After parsing message without medicare(SSN) .getValue() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().getValue() + "'"); System.out.println("After parsing message without language .isEmpty() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().isEmpty() + "'"); System.out.println("After parsing message without language .getCe1_Identifier().getValue() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().getCe1_Identifier().getValue() + "'"); System.out.println("After parsing message without language .getCe2_Text().getValue() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().getCe2_Text().getValue() + "'"); System.out.println("After parsing message without language .getCe3_NameOfCodingSystem().getValue() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().getCe3_NameOfCodingSystem().getValue() + "'"); System.out.println("After parsing message without language .getCe4_AlternateIdentifier().getValue() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().getCe4_AlternateIdentifier().getValue() + "'"); System.out.println("After parsing message without language .getCe5_AlternateText().getValue() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().getCe5_AlternateText().getValue() + "'"); System.out.println("After parsing message without language .getCe6_NameOfAlternateCodingSystem().getValue() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().getCe6_NameOfAlternateCodingSystem().getValue() + "'"); } } After construction with new() .isEmpty() returns 'false' After parsing '' (empty string) .isEmpty() returns 'false' After parsing '^^^^^' unexpected components .isEmpty() returns 'true' After parsing '""' (active null) .isEmpty() returns 'false' After parsing '""^^^^' (active null and unexpected components) .isEmpty() returns 'false' After parsing message with medicare(SSN) .isEmpty() returns 'false' After parsing message with medicare(SSN) .getValue() returns '4072469157 ( tel:4072469157 )' After parsing message with language .isEmpty() returns 'false' After parsing message with language .getCe1_Identifier().getValue() returns '86' After parsing message without medicare(SSN) .isEmpty() returns 'false' After parsing message without medicare(SSN) .getValue() returns 'null' After parsing message without language .isEmpty() returns 'false' After parsing message without language .getCe1_Identifier().getValue() returns 'null' After parsing message without language .getCe2_Text().getValue() returns 'null' After parsing message without language .getCe3_NameOfCodingSystem().getValue() returns 'null' After parsing message without language .getCe4_AlternateIdentifier().getValue() returns 'null' After parsing message without language .getCe5_AlternateText().getValue() returns 'null' After parsing message without language .getCe6_NameOfAlternateCodingSystem().getValue() returns 'null' ******************************************************************************** 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 ( tel:%2B61%201800%20198%20175 ) 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. ********************************************************************************** ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk _______________________________________________ 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. ********************************************************************************** |
From: Quintessence A. <qa...@fs...> - 2013-09-30 18:17:29
|
Good afternoon all, I'm new to HL7/HAPI and been working on a solution to use it with Pentaho Data Integration (Kettle). There is an HL7 input step for Pentaho in the current version; unfortunately, it doesn't do what we need so I'm working on something custom. Since this application isn't particularly common for Pentaho (and thus rarely discussed on their user forums, outside of members of our team) I wanted to send an initial message to this group to see if anyone has successfully integrated HAPI with Pentaho and, if so, they have any guidance to offer? Thank you for your time, Quintessence Anx Database Operations Specialist Frontier Science and Technology Research Foundation 4033 Maple Rd | Amherst, NY 14226 Phone # 716-898-7249 | Fax # 716-833-0655 |
From: Christian O. <chr...@gm...> - 2013-09-30 07:41:31
|
Yes, isEmpty() has some issues. I think some of them were fixed, unfortunately after the 2.1 release; but some corner cases like existing but empty extra components were not considered. I'll look deeper into it as soon as time permits. Would you think, active nulls ("") should be considered an "empty" value? Personally I don't think so.... Christian 2013/9/30 Ian Vowles <Ian...@he...> > Checking for nulls, empty strings, empty data types and active nulls > makes for a lot of code in message transforms. > > The presence of .isEmpty() looks like a godsend, but how is it intended to > work? > > The following code produces the results shown below. Is this the way it's > supposed to work? > > Thanks > Ian > > /* > * To change this template, choose Tools | Templates > * and open the template in the editor. > */ > package hapiexamples; > > import ca.uhn.hl7v2.HL7Exception; > import ca.uhn.hl7v2.model.v231.message.ADT_A08; > > /** > * > * @author vowlesi > */ > public class CheckIsemptyFeatures { > > private static final String ACTIVE_NULL = "\"\""; > private static ADT_A08 hl7In; > > public static void main(String[] args) throws HL7Exception { > hl7In = new ADT_A08(); > hl7In.getMSH().getMsh1_FieldSeparator().setValue("|"); > hl7In.getMSH().getMsh2_EncodingCharacters().setValue("^~\\&"); > System.out.println("After construction with new() .isEmpty() > returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); > hl7In.getPID().getPid19_SSNNumberPatient().parse(""); > System.out.println("After parsing '' (empty string) .isEmpty() > returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); > hl7In.getPID().getPid19_SSNNumberPatient().parse("^^^^^"); > System.out.println("After parsing '^^^^^' unexpected components > .isEmpty() returns '" + > hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); > hl7In.getPID().getPid19_SSNNumberPatient().parse(ACTIVE_NULL); > System.out.println("After parsing '\"\"' (active null) .isEmpty() > returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); > hl7In.getPID().getPid19_SSNNumberPatient().parse(ACTIVE_NULL + > "^^^^"); > System.out.println("After parsing '\"\"^^^^' (active null and > unexpected components) .isEmpty() returns '" + > hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); > String inputHl7 = > "MSH|^~\\&|HOMER|fake|DGATE-FAKE^prjHbcisRawIn|99999|20130923023038||ADT^A08|2013092302303834022003|P|2.3|||AL|AL|AUS|ASCII|ENG\r" > + "EVN|A08|20130923023038|\r" > + "PID|1|\"\"|708010^^^MRN^MR|PENSION > NO^^^DSS^PE|SURNAME^GIVEN^^^MRS^^L||19381216|F||14|UNIT A/1 FAKE > ST^\"\"^BRISBANE^^4000^\"\"^P||12345678^PRN^^^^^12345678||86^ENGLISH > ONLY|W|2233|708010-4|4072469157||||1101||||||20130923|Y\r"; > hl7In.parse(inputHl7); > System.out.println("After parsing message with medicare(SSN) > .isEmpty() returns '" + > hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); > System.out.println("After parsing message with medicare(SSN) > .getValue() returns '" + > hl7In.getPID().getPid19_SSNNumberPatient().getValue() + "'"); > System.out.println("After parsing message with language .isEmpty() > returns '" + hl7In.getPID().getPid15_PrimaryLanguage().isEmpty() + "'"); > System.out.println("After parsing message with language > .getCe1_Identifier().getValue() returns '" + > hl7In.getPID().getPid15_PrimaryLanguage().getCe1_Identifier().getValue() + > "'"); > inputHl7 = > "MSH|^~\\&|HOMER|fake|DGATE-FAKE^prjHbcisRawIn|99999|20130923023038||ADT^A08|2013092302303834022003|P|2.3|||AL|AL|AUS|ASCII|ENG\r" > + "EVN|A08|20130923023038|\r" > + "PID|1|\"\"|708010^^^MRN^MR|PENSION > NO^^^DSS^PE|SURNAME^GIVEN^^^MRS^^L||19381216|F||14|UNIT A/1 FAKE > ST^\"\"^BRISBANE^^4000^\"\"^P||12345678^PRN^^^^^12345678||^^^^^|W|2233|708010-4|||||1101||||||20130923|Y\r"; > hl7In.parse(inputHl7); > System.out.println("After parsing message without medicare(SSN) > .isEmpty() returns '" + > hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); > System.out.println("After parsing message without medicare(SSN) > .getValue() returns '" + > hl7In.getPID().getPid19_SSNNumberPatient().getValue() + "'"); > System.out.println("After parsing message without language > .isEmpty() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().isEmpty() > + "'"); > System.out.println("After parsing message without language > .getCe1_Identifier().getValue() returns '" + > hl7In.getPID().getPid15_PrimaryLanguage().getCe1_Identifier().getValue() + > "'"); > System.out.println("After parsing message without language > .getCe2_Text().getValue() returns '" + > hl7In.getPID().getPid15_PrimaryLanguage().getCe2_Text().getValue() + "'"); > System.out.println("After parsing message without language > .getCe3_NameOfCodingSystem().getValue() returns '" + > hl7In.getPID().getPid15_PrimaryLanguage().getCe3_NameOfCodingSystem().getValue() > + "'"); > System.out.println("After parsing message without language > .getCe4_AlternateIdentifier().getValue() returns '" + > hl7In.getPID().getPid15_PrimaryLanguage().getCe4_AlternateIdentifier().getValue() > + "'"); > System.out.println("After parsing message without language > .getCe5_AlternateText().getValue() returns '" + > hl7In.getPID().getPid15_PrimaryLanguage().getCe5_AlternateText().getValue() > + "'"); > System.out.println("After parsing message without language > .getCe6_NameOfAlternateCodingSystem().getValue() returns '" + > hl7In.getPID().getPid15_PrimaryLanguage().getCe6_NameOfAlternateCodingSystem().getValue() > + "'"); > } > } > > > After construction with new() .isEmpty() returns 'false' > After parsing '' (empty string) .isEmpty() returns 'false' > After parsing '^^^^^' unexpected components .isEmpty() returns 'true' > After parsing '""' (active null) .isEmpty() returns 'false' > After parsing '""^^^^' (active null and unexpected components) .isEmpty() > returns 'false' > After parsing message with medicare(SSN) .isEmpty() returns 'false' > After parsing message with medicare(SSN) .getValue() returns '4072469157' > After parsing message with language .isEmpty() returns 'false' > After parsing message with language .getCe1_Identifier().getValue() > returns '86' > After parsing message without medicare(SSN) .isEmpty() returns 'false' > After parsing message without medicare(SSN) .getValue() returns 'null' > After parsing message without language .isEmpty() returns 'false' > After parsing message without language .getCe1_Identifier().getValue() > returns 'null' > After parsing message without language .getCe2_Text().getValue() > returns 'null' > After parsing message without language > .getCe3_NameOfCodingSystem().getValue() returns 'null' > After parsing message without language > .getCe4_AlternateIdentifier().getValue() returns 'null' > After parsing message without language .getCe5_AlternateText().getValue() > returns 'null' > After parsing message without language > .getCe6_NameOfAlternateCodingSystem().getValue() returns 'null' > > > ******************************************************************************** > > 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. > > > ********************************************************************************** > > > > > ------------------------------------------------------------------------------ > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most > from > the latest Intel processors and coprocessors. See abstracts and register > > http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > |
From: Ian V. <Ian...@he...> - 2013-09-30 00:43:21
|
Checking for nulls, empty strings, empty data types and active nulls makes for a lot of code in message transforms. The presence of .isEmpty() looks like a godsend, but how is it intended to work? The following code produces the results shown below. Is this the way it's supposed to work? Thanks Ian /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package hapiexamples; import ca.uhn.hl7v2.HL7Exception; import ca.uhn.hl7v2.model.v231.message.ADT_A08; /** * * @author vowlesi */ public class CheckIsemptyFeatures { private static final String ACTIVE_NULL = "\"\""; private static ADT_A08 hl7In; public static void main(String[] args) throws HL7Exception { hl7In = new ADT_A08(); hl7In.getMSH().getMsh1_FieldSeparator().setValue("|"); hl7In.getMSH().getMsh2_EncodingCharacters().setValue("^~\\&"); System.out.println("After construction with new() .isEmpty() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); hl7In.getPID().getPid19_SSNNumberPatient().parse(""); System.out.println("After parsing '' (empty string) .isEmpty() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); hl7In.getPID().getPid19_SSNNumberPatient().parse("^^^^^"); System.out.println("After parsing '^^^^^' unexpected components .isEmpty() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); hl7In.getPID().getPid19_SSNNumberPatient().parse(ACTIVE_NULL); System.out.println("After parsing '\"\"' (active null) .isEmpty() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); hl7In.getPID().getPid19_SSNNumberPatient().parse(ACTIVE_NULL + "^^^^"); System.out.println("After parsing '\"\"^^^^' (active null and unexpected components) .isEmpty() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); String inputHl7 = "MSH|^~\\&|HOMER|fake|DGATE-FAKE^prjHbcisRawIn|99999|20130923023038||ADT^A08|2013092302303834022003|P|2.3|||AL|AL|AUS|ASCII|ENG\r" + "EVN|A08|20130923023038|\r" + "PID|1|\"\"|708010^^^MRN^MR|PENSION NO^^^DSS^PE|SURNAME^GIVEN^^^MRS^^L||19381216|F||14|UNIT A/1 FAKE ST^\"\"^BRISBANE^^4000^\"\"^P||12345678^PRN^^^^^12345678||86^ENGLISH ONLY|W|2233|708010-4|4072469157||||1101||||||20130923|Y\r"; hl7In.parse(inputHl7); System.out.println("After parsing message with medicare(SSN) .isEmpty() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); System.out.println("After parsing message with medicare(SSN) .getValue() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().getValue() + "'"); System.out.println("After parsing message with language .isEmpty() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().isEmpty() + "'"); System.out.println("After parsing message with language .getCe1_Identifier().getValue() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().getCe1_Identifier().getValue() + "'"); inputHl7 = "MSH|^~\\&|HOMER|fake|DGATE-FAKE^prjHbcisRawIn|99999|20130923023038||ADT^A08|2013092302303834022003|P|2.3|||AL|AL|AUS|ASCII|ENG\r" + "EVN|A08|20130923023038|\r" + "PID|1|\"\"|708010^^^MRN^MR|PENSION NO^^^DSS^PE|SURNAME^GIVEN^^^MRS^^L||19381216|F||14|UNIT A/1 FAKE ST^\"\"^BRISBANE^^4000^\"\"^P||12345678^PRN^^^^^12345678||^^^^^|W|2233|708010-4|||||1101||||||20130923|Y\r"; hl7In.parse(inputHl7); System.out.println("After parsing message without medicare(SSN) .isEmpty() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().isEmpty() + "'"); System.out.println("After parsing message without medicare(SSN) .getValue() returns '" + hl7In.getPID().getPid19_SSNNumberPatient().getValue() + "'"); System.out.println("After parsing message without language .isEmpty() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().isEmpty() + "'"); System.out.println("After parsing message without language .getCe1_Identifier().getValue() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().getCe1_Identifier().getValue() + "'"); System.out.println("After parsing message without language .getCe2_Text().getValue() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().getCe2_Text().getValue() + "'"); System.out.println("After parsing message without language .getCe3_NameOfCodingSystem().getValue() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().getCe3_NameOfCodingSystem().getValue() + "'"); System.out.println("After parsing message without language .getCe4_AlternateIdentifier().getValue() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().getCe4_AlternateIdentifier().getValue() + "'"); System.out.println("After parsing message without language .getCe5_AlternateText().getValue() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().getCe5_AlternateText().getValue() + "'"); System.out.println("After parsing message without language .getCe6_NameOfAlternateCodingSystem().getValue() returns '" + hl7In.getPID().getPid15_PrimaryLanguage().getCe6_NameOfAlternateCodingSystem().getValue() + "'"); } } After construction with new() .isEmpty() returns 'false' After parsing '' (empty string) .isEmpty() returns 'false' After parsing '^^^^^' unexpected components .isEmpty() returns 'true' After parsing '""' (active null) .isEmpty() returns 'false' After parsing '""^^^^' (active null and unexpected components) .isEmpty() returns 'false' After parsing message with medicare(SSN) .isEmpty() returns 'false' After parsing message with medicare(SSN) .getValue() returns '4072469157' After parsing message with language .isEmpty() returns 'false' After parsing message with language .getCe1_Identifier().getValue() returns '86' After parsing message without medicare(SSN) .isEmpty() returns 'false' After parsing message without medicare(SSN) .getValue() returns 'null' After parsing message without language .isEmpty() returns 'false' After parsing message without language .getCe1_Identifier().getValue() returns 'null' After parsing message without language .getCe2_Text().getValue() returns 'null' After parsing message without language .getCe3_NameOfCodingSystem().getValue() returns 'null' After parsing message without language .getCe4_AlternateIdentifier().getValue() returns 'null' After parsing message without language .getCe5_AlternateText().getValue() returns 'null' After parsing message without language .getCe6_NameOfAlternateCodingSystem().getValue() returns 'null' ******************************************************************************** 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 B. <And...@rc...> - 2013-09-25 23:15:43
|
Thanks Christian, That explanation gels with the way that I'm coming to think of this. Many thanks for all of your help. Andrew From: Christian Ohr [mailto:chr...@gm...] Sent: Thursday, 26 September 2013 4:26 AM To: Andrew Bowden Cc: hl7...@li... Subject: Re: [HAPI-devel] HAPI 2.1 and overriding validation No, validation rules are additive. Particularly, message rules (e.g. with a terser expression) do not override primitive rules, they further restrict the content of a specific field within the bounds of the rules of its (primitive) type! I would be reluctant to change the default primitive rules, though, as they are part of the core HL7 standard... Anyway, if you need a different set of primitive validation rules, just take a look at the sources of DefaultValidationBuilderWithoutTN as starting point and define your own builder. btw MSH-6 is not a TN field - message date is MSH-7 Christian 2013/9/25 Andrew Bowden <And...@rc...<mailto:And...@rc...>> Thanks Christian, That solved my problem but I'm still curious about overriding the default validation, is it possible to override the predicate that is set in the DefaultValidationWithoutTNBuilder? For example, for a specific segment, if I am interested in allowing a space in the TN field using the predicate matches(String), I find that the compiler continues to complain at the calling of the super. Eg. <code> public class newValidation extends DefaultValidationWithoutTNBuilder{ @Override protected void configure(){ super.configure(); forAllVersions().message("ADT","A01").terser("MSH-6",matches(".*")); }} </code> I get a compile time error about failing a primitive for date-time. Is there an easy way to override the default primitive? Many thanks for your help. Andrew From: Christian Ohr [mailto:chr...@gm...<mailto:chr...@gm...>] Sent: Monday, 23 September 2013 5:22 PM To: Andrew Bowden Cc: hl7...@li...<mailto:hl7...@li...> Subject: Re: [HAPI-devel] HAPI 2.1 and overriding validation Hi Andrew, note that there is only a (primitive) validation for TN, not for XTN, in DefaultValidationBuilder. And, there is the DefaultValidationWithoutTNBuilder for exactly the reason you mentioned. So subclass this builder instead. Hope this helps Christian 2013/9/23 Andrew Bowden <And...@rc...<mailto:And...@rc...>> Hi there, I have recently started using HAPI and am impressed by the amount of function in the toolkit. I have been struggling for about a week with the correct way to override the validation and am hoping that someone on this list can help me. I have a segment that fails validation for an XTN type (as I am out of the US), I would like to keep validation on but change the validation for this segment. I realize that I can turn off validation for the message but am curious as to the best way to approach this problem. I have tried the HAPI by example method of extending the DefaultValidationBuilder and overriding the configure method, however the first call to super overrides the rule that I have provided to the method. I have also seen an example of extending the ValidationContextImpl (http://osdir.com/ml/medical.hl7/2008-07/msg00003.html), but this appears to be an older approach to the problem. I would appreciate any help that can be provided to point me in the right direction. Andrew ------------------------------------------------------------------------------ LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk _______________________________________________ Hl7api-devel mailing list Hl7...@li...<mailto:Hl7...@li...> https://lists.sourceforge.net/lists/listinfo/hl7api-devel |
From: Christian O. <chr...@gm...> - 2013-09-25 18:26:13
|
No, validation rules are additive. Particularly, message rules (e.g. with a terser expression) do not override primitive rules, they further restrict the content of a specific field within the bounds of the rules of its (primitive) type! I would be reluctant to change the default primitive rules, though, as they are part of the core HL7 standard... Anyway, if you need a different set of primitive validation rules, just take a look at the sources of DefaultValidationBuilderWithoutTN as starting point and define your own builder. btw MSH-6 is not a TN field - message date is MSH-7 Christian 2013/9/25 Andrew Bowden <And...@rc...> > Thanks Christian,**** > > ** ** > > That solved my problem but I’m still curious about overriding the default > validation, is it possible to override the predicate that is set in the > DefaultValidationWithoutTNBuilder? For example, for a specific segment, if > I am interested in allowing a space in the TN field using the predicate > matches(String), I find that the compiler continues to complain at the > calling of the super. Eg. **** > > ** ** > > <code> **** > > public class newValidation extends DefaultValidationWithoutTNBuilder{**** > > @Override **** > > protected void configure(){**** > > super.configure();**** > > > forAllVersions().message("ADT","A01").terser("MSH-6",matches(“.*”));**** > > }}**** > > </code>**** > > ** ** > > I get a compile time error about failing a primitive for date-time.**** > > ** ** > > Is there an easy way to override the default primitive? > > Many thanks for your help.**** > > ** ** > > Andrew**** > > ** ** > > *From:* Christian Ohr [mailto:chr...@gm...] > *Sent:* Monday, 23 September 2013 5:22 PM > *To:* Andrew Bowden > *Cc:* hl7...@li... > *Subject:* Re: [HAPI-devel] HAPI 2.1 and overriding validation**** > > ** ** > > Hi Andrew,**** > > note that there is only a (primitive) validation for TN, not for XTN, in > DefaultValidationBuilder.**** > > And, there is the DefaultValidationWithoutTNBuilder for exactly the reason > you mentioned. So subclass this builder instead.**** > > Hope this helps > Christian**** > > ** ** > > 2013/9/23 Andrew Bowden <And...@rc...>**** > > Hi there,**** > > **** > > I have recently started using HAPI and am impressed by the amount of > function in the toolkit. I have been struggling for about a week with the > correct way to override the validation and am hoping that someone on this > list can help me.**** > > **** > > I have a segment that fails validation for an XTN type (as I am out of the > US), I would like to keep validation on but change the validation for this > segment. I realize that I can turn off validation for the message but am > curious as to the best way to approach this problem. **** > > **** > > I have tried the HAPI by example method of extending the > DefaultValidationBuilder and overriding the configure method, however the > first call to super overrides the rule that I have provided to the method. > I have also seen an example of extending the ValidationContextImpl ( > http://osdir.com/ml/medical.hl7/2008-07/msg00003.html), but this appears > to be an older approach to the problem.**** > > **** > > I would appreciate any help that can be provided to point me in the right > direction.**** > > **** > > Andrew**** > > > > ------------------------------------------------------------------------------ > LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! > 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, > SharePoint > 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack > includes > Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. > http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel**** > > ** ** > |
From: vijayaratha v. <vij...@gm...> - 2013-09-25 16:47:46
|
Hi James.. Any update? would like to know the conclusion.. Thanks & regards On 17 September 2013 22:11, vijayaratha vijayasingam <vij...@gm...>wrote: > Hi James, > Any update on this MSH9 filed from InM team? > > Thanks > -Ratha > > > > On 14 June 2013 20:47, vijayaratha vijayasingam <vij...@gm...>wrote: > >> Thanks Eugene, same solution also provided by James.. >> Would like to know about the decision for the first point of James's, >> That is , it is a bug or not, in that case, what would be the trigger event >> for this type of messages.. >> >> Regards; >> -Ratha >> >> >> On 14 June 2013 18:31, Eugene Berman <eug...@mu...> wrote: >> >>> Folks, just FYI, I had a similar issue while working on some projects; >>> however, Mule ESB provides a simple solution for this; you can intercept >>> the ACK message before it is returned to the caller, and replace the MSH-9 >>> with any value that client would expect, by using one of several available >>> transformers that accept HL7 messages. Ratha, perhaps you can do the same >>> thing in your solution, e.g. you could use HAPI Terser, e.g. >>> terser.set("/MSH-9", "ACK"); etc. >>> >>> Regards, >>> >>> Eugene >>> >>> -- >>> Eugene Berman >>> Sr. Enterprise Solutions Architect >>> ---- >>> MuleSoft Inc. >>> 77 Geary Street, Ste. 400 >>> San Francisco, CA 94108 >>> Office: 415 229 2063 >>> Website: http://www.mulesoft.com <http://www.mulesoft.com/> >>> --- >>> Entia non sunt multiplicanda praeter necessitatem! >>> >>> >>> >>> On Jun 14, 2013, at 4:45 AM, James Agnew <ja...@ja...> wrote: >>> >>> > Hi Ratha, >>> > >>> > To be completely honest, I have no idea what the right answer is to >>> this. Certainly you are right, the standard seems to indicate that the R22 >>> trigger is not allowable in an ACK message, but the standard also doesn't >>> seem to provide any indication on what would be an appropriate trigger for >>> an ACK to an OUL^R22 message. >>> > >>> > I think there are a few courses of action here: >>> > >>> > 1. It might make sense to take the question of "what belongs as a >>> trigger event on an ACK to an OUL^R22 message" over to the HL7 >>> Infrastructure and Messaging (InM) mailing list for broader consideration. >>> I'm curious now too, so if you didn't want to handle this I would be >>> willing to do so. >>> > >>> > 2. If you wanted to file a bug report for HAPI, we could probably code >>> in the ability for HAPI to not use a trigger event for ACKs to messages >>> that shouldn't get one according to Table 0003. I'll be honest though, this >>> will be somewhat painful to implement so it probably won't happen overnight >>> (unless you or someone else wanted to give it a shot?) >>> > >>> > 3. As a fairly simple workaround, you could add custom logic to your >>> application to clear MSH-9-2 as needed after you generate your ACK message. >>> > >>> > Cheers, >>> > James >>> > >>> > >>> > >>> > >>> > On Fri, Jun 14, 2013 at 3:18 AM, vijayaratha vijayasingam < >>> vij...@gm...> wrote: >>> > Hi James/all; >>> > >>> > Do you believe this as a BUG in Hapi or acceptable behavior? >>> > >>> > Thanks >>> > >>> > >>> > >>> > On 13 June 2013 14:45, vijayaratha vijayasingam <vij...@gm...> >>> wrote: >>> > Hi James; >>> > Thanks for considering this. >>> > Please find the following HL7 Data definition tables [1] .In table >>> 0003 (page A-25) . The trigger event R22 can be associated only with the >>> OUL event type (but NOT with an ACK event type) whereas the trigger event >>> A01 can be associated with both ADT and ACK event type.[2,3] >>> > >>> > [1]http://www.hl7.org/special/committees/vocab/v26_appendix_a.pdf >>> > >>> > [1]0003 A01 ADT/ACK - Admit/visit notification >>> > [2]0003 R22 OUL - Unsolicited Specimen Oriented Observation Message >>> > >>> > Does this help you? >>> > >>> > Thanks >>> > -Ratha >>> > >>> > >>> > On 13 June 2013 01:40, James Agnew <ja...@ja...> wrote: >>> > Hi Ratha, >>> > >>> > While the HL7 standard doesn't seem to specifically mention whether or >>> not the response for an OUL^R22 should have the R22 trigger event in it's >>> ACK, the general pattern in processing HL7 v2 is that the trigger event >>> will always be the same as the message being acknowledged. A quick scan of >>> the standard for words to that effect has come up blank (but maybe I'm not >>> looking in the right place- I checked Chapter 2 of the 2.6 standard at >>> least) but this is definitely how basically every system I work with >>> regularly behaves. >>> > >>> > What leads you to believe this is not desirable behaviour? Are you >>> interfacing with a system that specifically rejects ACK messages with the >>> R22 trigger? >>> > >>> > Cheers, >>> > James >>> > >>> > >>> > On Wed, Jun 12, 2013 at 11:34 AM, vijayaratha vijayasingam < >>> vij...@gm...> wrote: >>> > Oh..hapi generates this ack message, when i send OUL^R22 message.. >>> > Others any clue?.. >>> > Is this valid or bug? >>> > >>> > >>> > On 12 June 2013 20:22, VIOT Yves <yve...@cs...> wrote: >>> > Sorry, i never had to handle such triggers, but if i had to, i will >>> produce an ACK - unless the sender doesn't need them. >>> > In specs, there is no ACK^R22 following de OUL^R22 definition but i >>> can't say it's a mistake or not. >>> > >>> > Le 12/06/2013 16:46, vijayaratha vijayasingam a écrit : >>> >> Hi Viot; >>> >> Sorry i sent different initial sample message ;Please check my later >>> replies; >>> >> Im getting following[1] ACK in MSH-9 filde fro my OUL^R22 message. >>> Is that valid? >>> >> ACK^R22^ACK| >>> >> >>> >> Thanks >>> >> >>> >> >>> >> On 12 June 2013 17:11, VIOT Yves <yve...@cs...> wrote: >>> >> Hi, >>> >> This is valid >>> >> Here is what you can find in the HL7 2.5 documentation, following the >>> ADT^A01^ADT_A01 messages structure definition. >>> >> ACK^A01^ACK >>> >> To get rid of it just get the MSH-9-1 with the terser. >>> >> >>> >> Yves >>> >> >>> >> Le 12/06/2013 13:25, vijayaratha vijayasingam a écrit : >>> >>> Hi all; >>> >>> Anyone have clue..?:( >>> >>> I badly need this to sort out.. >>> >>> thanks >>> >>> >>> >>> >>> >>> On 12 June 2013 15:31, vijayaratha vijayasingam < >>> vij...@gm...> wrote: >>> >>> Hi all; >>> >>> Im using Hapi 2.1 version release an dit works perfect. But i have >>> an issue with an error response which i get from Hapi. >>> >>> My request is; >>> >>> MSH|^~\&|||||20130612143324.392+0530||ADT^A01^ADT_A01|2601|T|2.5 >>> >>> >>> >>> And My response is; >>> >>> MSH|^~\&|||||20130612152510.448+0530||ACK^A01^ACK|1623|T|2.5 >>> >>> MSA|AE|2601 >>> >>> ERR|||207^Application internal error^HL70357^^^^^^OOPS|E >>> >>> >>> >>> >>> >>> In the above response , if you check the MSH-9 filed , it is; >>> >>> >>> >>> ACK^A01^ACK >>> >>> >>> >>> Shouldn't that be "|ACK". because it is additionaly adding "AO1" >>> message to that filed, which is not valid. And i suspect that , it picks >>> from that from original request. >>> >>> >>> >>> Can anybody help me on this? Ho w can i avoid that invalid segment? >>> >>> Why Hapi additionally adds that filed in the MSH-9 filed? >>> >>> >>> >>> Thanks >>> >>> -ratha >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> >>> This SF.net email is sponsored by Windows: >>> >>> >>> >>> Build for Windows Store. >>> >>> >>> >>> >>> >>> http://p.sf.net/sfu/windows-dev2dev >>> >>> >>> >>> >>> >>> _______________________________________________ >>> >>> Hl7api-devel mailing list >>> >>> >>> >>> Hl7...@li... >>> >>> https://lists.sourceforge.net/lists/listinfo/hl7api-devel >>> >> >>> >> >>> >> >>> ------------------------------------------------------------------------------ >>> >> This SF.net email is sponsored by Windows: >>> >> >>> >> Build for Windows Store. >>> >> >>> >> http://p.sf.net/sfu/windows-dev2dev >>> >> _______________________________________________ >>> >> Hl7api-devel mailing list >>> >> Hl7...@li... >>> >> https://lists.sourceforge.net/lists/listinfo/hl7api-devel >>> >> >>> >> >>> > >>> > >>> > >>> ------------------------------------------------------------------------------ >>> > This SF.net email is sponsored by Windows: >>> > >>> > Build for Windows Store. >>> > >>> > http://p.sf.net/sfu/windows-dev2dev >>> > _______________________________________________ >>> > Hl7api-devel mailing list >>> > Hl7...@li... >>> > https://lists.sourceforge.net/lists/listinfo/hl7api-devel >>> > >>> > >>> > >>> > >>> ------------------------------------------------------------------------------ >>> > This SF.net email is sponsored by Windows: >>> > >>> > Build for Windows Store. >>> > >>> > http://p.sf.net/sfu/windows-dev2dev >>> > _______________________________________________ >>> > Hl7api-devel mailing list >>> > Hl7...@li... >>> > https://lists.sourceforge.net/lists/listinfo/hl7api-devel >>> > >>> > >>> > >>> > >>> > >>> > >>> ------------------------------------------------------------------------------ >>> > This SF.net email is sponsored by Windows: >>> > >>> > Build for Windows Store. >>> > >>> > >>> http://p.sf.net/sfu/windows-dev2dev_______________________________________________ >>> > Hl7api-devel mailing list >>> > Hl7...@li... >>> > https://lists.sourceforge.net/lists/listinfo/hl7api-devel >>> >>> >> >> >> -- >> -Ratha >> http://vvratha.blogspot.com/ >> > > > > -- > -Ratha > http://vvratha.blogspot.com/ > -- -Ratha http://vvratha.blogspot.com/ |