Thanks for calling that out.

+github contributors: What is the process for requesting a new release to
make this fix available?

On Thu, Jan 30, 2020 at 3:25 PM Ian Vowles <ian.vow...@health.qld.gov.au>
wrote:

> Would advise in favour of adding default and invalid Obx2Type settings,
> having just had a problem with messages containing bad OBX segments.
>
>
>
>
> context.getPipeParser().getParserConfiguration().setDefaultObx2Type("ST");
>
>
> context.getPipeParser().getParserConfiguration().setInvalidObx2Type("ST");
>
>
>
> Watch out for MFNs if you get them. They have similar type assigning
> fields, which the HAPI 2.2 release seems to cope with, but the HAPI 2.3
> library is strict about but lacks a configuration for correcting them. The
> code base has a fix for it, but there hasn’t been a release containing it.
> I’m not game to try to do the entire build myself, so mostly use the 2.2
> release. One of our systems leaves the field containing the type blank, be
> aware David, since we both receive messages from that sender.
>
>
>
>
>
> *Ian Vowles*
>
> *Integration Specialist, Metro North Integration Centre*
> *Metro North IT*
> Citilink Lobby 1, Level 3
>
> 153 Campbell St, Bowen Hills QLD 4006
>
> P: 07 3646 2557
> E: *ian.vow...@health.qld.gov.au <ian.vow...@health.qld.gov.au>*
> metronorth.health.qld.gov.au
>
>
> [image: Description: Description: Putting people first]
> <http://qheps.health.qld.gov.au/metronorth/html/email-signature.htm>
>
> [image: Values in Action]
>
> [image: Description: Description: Facebook]
> <http://www.facebook.com/metronorthhhs>   [image: Description:
> Description: Twitter] <http://www.twitter.com/MetroNorthHHS>   [image:
> Description: Description: LinkedIn]
> <http://www.linkedin.com/company/metro-north-hospital-and-health-service>
> follow us on social media
>
>
>
>
>
>
>
>
>
> *From:* Andrew Ring via Hl7api-devel <hl7api-devel@lists.sourceforge.net>
> *Sent:* Thursday, 30 January 2020 4:30 AM
> *To:* David Bunzli <david.bun...@health.qld.gov.au>
> *Cc:* hl7api-devel@lists.sourceforge.net
> *Subject:* Re: [HAPI-devel] Parse MSH from arbitrary message
>
>
>
> Hi David, thanks for the response here. I did end up coming to a solution,
> which looks like:
>
>
>
>     /**
>      * Parse an hl7 message and extract the header (MSH) segment.
>      *
>      * @param hl7Message The hl7 message to parse.
>      * @return The parsed MSH segment, or null on error.
>      */
>     public static MSH getHeader(final String hl7Message) {
>         if (Objects.isNull(hl7Message)) return null;
>
>         try {
>             final HapiContext context = new DefaultHapiContext();
>             // Parse the message in whatever hl7 version it is declared to
> be
>             // This will validate the message structure, throwing an
> exception if invalid
>             context.getPipeParser().parse(hl7Message);
>
>             // Convert message into most recent version format, since
> they're backwards compatible
>             final CanonicalModelClassFactory modelClassFactory = new
> CanonicalModelClassFactory(CANONICAL_VERSION);
>             context.setModelClassFactory(modelClassFactory);
>             // We disable validation because deprecated fields appear to
> cause parsing errors when
>             // up-converting messages
>             context.setValidationContext(new NoValidation());
>
>             final Message parsedMesssage =
> context.getPipeParser().parse(hl7Message);
>             final MSH msh = (MSH) parsedMesssage.get("MSH");
>             return msh;
>         } catch (ClassCastException | HL7Exception ex) {
>             LOG.warn("Unable to parse header from hl7 message:\n{}",
> forPrinting(hl7Message));
>             return null;
>         }
>     }
>
>
>
> I don't love this, since it requires turning off the validation when
> up-versioning, but it appears to work on all test inputs I've attempted.
>
>
>
> ~Andrew
>
>
>
> On Tue, Jan 28, 2020 at 6:28 PM David Bunzli <
> david.bun...@health.qld.gov.au> wrote:
>
> Hi Andrew,
>
> Is your concern about casting related to performance? Because, in general,
> solutions should be provisioned for the work they have to do. If you need
> more processing grunt, its often better to tackle that before 'optimising'
> your code.
>
> Aside from casting the whole message, you can cast the segment [eg
> (pseudo-code) MSH msh = (MSH) Terser.getSegment("MSH")] to get a proper MSH
> object. But this option is still casting.
>
> Another option is treating the message as a String eg...
>     protected static String getMsh10(String input) {
>         int startOfMsh10 = StringUtils.ordinalIndexOf(input, "|", 10);
>         int lengthOfMsh10 = StringUtils.ordinalIndexOf(input, "|", 11) -
> startOfMsh10;
>         return StringUtils.mid(
>             input
>             , startOfMsh10
>             , lengthOfMsh10
>         );
>     }
>
> But that option brings me back to the first point - 'optimising' by String
> manipulation is convoluted. It'd have been better to wear the costs of
> parsing and casting the message and enjoy the benefits of using HAPI.
>
> Hope this helps,
> David
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 23 Jan 2020 18:13:11 -0800
> From: Andrew Ring <andrew.r...@ninesai.com>
> To: hl7api-devel@lists.sourceforge.net
> Subject: [HAPI-devel] Parse MSH from arbitrary message
> Message-ID:
> <CAEw6ye59CaL9rrOF3+Xi0KkvPBrdhhPp3G5gjCNpT+E=ge3...@mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> I'm receiving HL7 messages of any type, and want to examine the MSH
> segment before having to cast the message to a particular type. I can't
> seem to find a mechanism to do this. I can get individual MSH fields using
> a Terser, but I would prefer to use well typed structures. Even getting the
> MSH segment using Terser.getSegment() does not appear to be able to be
> converted into an MSH object. Can anyone help?
>
> Thanks,
> Andrew Ring
> -------------- next part --------------
> An HTML attachment was scrubbed...
>
> ------------------------------
>
>
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> Hl7api-devel mailing list
> Hl7api-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hl7api-devel
>
>
> ------------------------------
>
> End of Hl7api-devel Digest, Vol 144, Issue 5
> ********************************************
>
>
>
>
>
> ********************************************************************************
>
> This email, including any attachments sent with it, is confidential and
> for the sole use of the intended recipient(s). This confidentiality is not
> waived or lost, if you receive it and you are not the intended
> recipient(s), or if it is transmitted/received in error.
>
> Any unauthorised use, alteration, disclosure, distribution or review of
> this email is strictly prohibited. The information contained in this email,
> including any attachment sent with it, may be subject to a statutory duty
> of confidentiality if it relates to health service matters.
>
> If you are not the intended recipient(s), or if you have received this
> email in error, you are asked to immediately notify the sender by telephone
> collect on Australia +61 1800 198 175 or by return email. You should also
> delete this email, and any copies, from your computer system network and
> destroy any hard copies produced.
>
> If not an intended recipient of this email, you must not copy, distribute
> or take any action(s) that relies on it; any form of disclosure,
> modification, distribution and/or publication of this email is also
> prohibited.
>
> Although Queensland Health takes all reasonable steps to ensure this email
> does not contain malicious software, Queensland Health does not accept
> responsibility for the consequences if any person's computer inadvertently
> suffers any disruption to services, loss of information, harm or is
> infected with a virus, other malicious computer programme or code that may
> occur as a consequence of receiving this email.
>
> Unless stated otherwise, this email represents only the views of the
> sender and not the views of the Queensland Government.
>
>
> **********************************************************************************
>
>
> _______________________________________________
> Hl7api-devel mailing list
> Hl7api-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hl7api-devel
>
>
>
>
>
>
> ********************************************************************************
>
> This email, including any attachments sent with it, is confidential and
> for the sole use of the intended recipient(s). This confidentiality is not
> waived or lost, if you receive it and you are not the intended
> recipient(s), or if it is transmitted/received in error.
>
> Any unauthorised use, alteration, disclosure, distribution or review of
> this email is strictly prohibited. The information contained in this email,
> including any attachment sent with it, may be subject to a statutory
> duty of confidentiality if it relates to health service matters.
>
> If you are not the intended recipient(s), or if you have received this
> email in error, you are asked to immediately notify the sender by telephone
> collect on Australia +61 1800 198 175 or by return email. You should also
> delete this email, and any copies, from your computer system network and
> destroy any hard copies produced.
>
> If not an intended recipient of this email, you must not copy, distribute
> or take any action(s) that relies on it; any form of disclosure,
> modification, distribution and/or publication of this email is also
> prohibited.
>
> Although Queensland Health takes all reasonable steps to ensure this email
> does not contain malicious software, Queensland Health does not accept
> responsibility for the consequences if any person's computer inadvertently
> suffers any disruption to services, loss of information, harm or is
> infected with a virus, other malicious computer programme or code that may
> occur as a consequence of receiving this email.
>
> Unless stated otherwise, this email represents only the views of the
> sender and not the views of the Queensland Government.
>
>
> **********************************************************************************
> _______________________________________________
> Hl7api-devel mailing list
> Hl7api-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hl7api-devel
>
_______________________________________________
Hl7api-devel mailing list
Hl7api-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hl7api-devel

Reply via email to