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: James A. <ja...@ja...> - 2014-02-03 22:10:46
|
Hi Giacomo, Unfortunately this is a case of the code being behind the specification. At the previous HL7 working group meeting the ITS (implementable technology specification) group approved two changes to the spec: * HTTP 200 response code for all valid HL7 message responses (the rationale being that AE/AR/etc are application level problems and not transport level problems) * UTF-8 character set is mandatory for sending applications (rationale being that character encodings have been a huge source of issues over the years, and support for UTF-8 is basically universal these days so it makes sense to do away with schemes that can't support all characters) These two changes have been implemented but not yet released. The final HAPI 2.2 release will fix this. I'm hoping we'll have this released very shortly, the one showstopper bug in 2.2 (bug 206: a glitch in MLLP over slow networks) was fixed last week so we should be good to go. Cheers, James On Tue, Jan 28, 2014 at 3:31 PM, Giacomo Petronio < gia...@gm...> wrote: > Hi, I think that there is a mismatch between the HL7 Over HTTP > specification and the current implementation regarding the HTTP Response > Codes. > The specification says: > > When a *receiving application* produces an HL7 response payload >> containing one of these status codes (AR, AE, CR, CE), this is considered a >> successful interaction at the transport layer, and response code of >> "HTTP/1.1 200 OK" MUST be used. > > > But the implementation does not follow the specification. The class ca.uhn.hl7v2.hoh.encoder.ResponseCode > contains the following mapping: > > ourAckCodesToResponseCodes.put(AA, HTTP_200_OK); > ourAckCodesToResponseCodes.put(CA, HTTP_200_OK); > ourAckCodesToResponseCodes.put(AR, HTTP_400_BAD_REQUEST); > ourAckCodesToResponseCodes.put(CR, HTTP_400_BAD_REQUEST); > ourAckCodesToResponseCodes.put(AE, HTTP_500_INTERNAL_SERVER_ERROR); > ourAckCodesToResponseCodes.put(CE, HTTP_500_INTERNAL_SERVER_ERROR); > > Is there any reason for this particular behaviour or is this a "bug"? > Is it possible to programmatically override these values? > > > ------------------------------------------------------------------------------ > WatchGuard Dimension instantly turns raw network data into actionable > security intelligence. It gives you real-time visual feedback on key > security issues and trends. Skip the complicated setup - simply import > a virtual appliance and go from zero to informed in seconds. > > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > |
From: Jens V. <jen...@gm...> - 2014-01-30 11:25:31
|
- and using reflection on all the methods on the segments you are able to get both the name and the numbering of the segment/field/... happy reflectin' On 30 January 2014 10:14, Malith Dhanushka <mma...@gm...> wrote: > Hi James/Jens, > > Yes James that is my exact requirement. Anyway I was able to get some > progress using reflection as Jens mentioned. Thanks guys for the leads :). > > Malith > > > On Thu, Jan 30, 2014 at 1:26 AM, Jens Villadsen < > jen...@gm...> wrote: > >> Or - as one of my colleagues did - use reflection on the message >> structure files from HAPI. That works perfectly well too ;) >> >> >> On 29 January 2014 20:53, James Agnew <ja...@ja...> wrote: >> >>> Hi Malith, >>> >>> Do you mean that you want programmatic access to the message structures >>> themselves? (Ie. not the contents of an actual message instance, but the >>> names of all the segments, fields, components, etc. within a message?) >>> >>> If that's the case, the most comprehensive authority for that >>> information is the "HL7 database", which is distributed in MS Access >>> format. Unfortunately it's a commercial product and it doesn't come >>> particularly cheaply: https://www.hl7.org/store/index.cfm?ref=nav. This >>> is actually the very database that we use within HAPI to build our >>> structure libraries. >>> >>> Cheers, >>> James >>> >>> >>> >>> >>> On Wed, Jan 29, 2014 at 8:42 AM, Malith Dhanushka <mma...@gm...>wrote: >>> >>>> Hi Ratha, >>>> >>>> Thanks for the link but i was looking for programmatical way of listing >>>> all the occurrences. >>>> >>>> Malith >>>> >>>> >>>> On Tue, Jan 28, 2014 at 4:43 PM, Ratha v <vij...@gm...> wrote: >>>> >>>>> Hi; >>>>> >>>>> Check this.. >>>>> >>>>> [1]http://www.hl7.org/special/committees/vocab/v26_appendix_a.pdf >>>>> >>>>> Thanks.. >>>>> >>>>> >>>>> On 27 January 2014 19:22, Malith Dhanushka <mma...@gm...> wrote: >>>>> >>>>>> Hi Devs, >>>>>> >>>>>> I have a requirement to get the whole list of possible >>>>>> segment,composites,sub-composites and there types structure of a hl7 >>>>>> message (v2.1). This is for an indexing requirement. For example here is a >>>>>> sample list. >>>>>> >>>>>> MSH.ReceivingApplication >>>>>> GT1.SetID MSH.ReceivingFacility >>>>>> MSH.MessageControlID >>>>>> NK1.Relationship >>>>>> MSH.VersionID >>>>>> MSH.Date/TimeOfMessage.TSComponentOne >>>>>> >>>>>> It would be grateful if someone can give a lead on this. >>>>>> >>>>>> Thanks in Advance, >>>>>> Malith >>>>>> >>>>>> >>>>>> ------------------------------------------------------------------------------ >>>>>> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >>>>>> Learn Why More Businesses Are Choosing CenturyLink Cloud For >>>>>> Critical Workloads, Development Environments & Everything In Between. >>>>>> Get a Quote or Start a Free Trial Today. >>>>>> >>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >>>>>> _______________________________________________ >>>>>> Hl7api-devel mailing list >>>>>> Hl7...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/hl7api-devel >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> -Ratha >>>>> http://vvratha.blogspot.com/ >>>>> >>>> >>>> >>>> >>>> -- >>>> Undergraduate, >>>> Department of Computer Science and Engineering, >>>> University of Moratuwa, >>>> Sri Lanka. >>>> <Ema...@gm...> >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> WatchGuard Dimension instantly turns raw network data into actionable >>>> security intelligence. It gives you real-time visual feedback on key >>>> security issues and trends. Skip the complicated setup - simply import >>>> a virtual appliance and go from zero to informed in seconds. >>>> >>>> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >>>> >>>> _______________________________________________ >>>> Hl7api-devel mailing list >>>> Hl7...@li... >>>> https://lists.sourceforge.net/lists/listinfo/hl7api-devel >>>> >>>> >>> >>> >>> ------------------------------------------------------------------------------ >>> WatchGuard Dimension instantly turns raw network data into actionable >>> security intelligence. It gives you real-time visual feedback on key >>> security issues and trends. Skip the complicated setup - simply import >>> a virtual appliance and go from zero to informed in seconds. >>> >>> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> Hl7api-devel mailing list >>> Hl7...@li... >>> https://lists.sourceforge.net/lists/listinfo/hl7api-devel >>> >>> >> >> >> -- >> >> Med venlig hilsen / Kind regards >> >> *Jens Kristian Villadsen* >> cand.polyt >> >> Stålhøjen 24 >> 8240 Risskov >> Denmark >> >> Mobile +4523373806 >> jen...@gm... >> jkiddo.dyndns.org >> > > > > -- > Undergraduate, > Department of Computer Science and Engineering, > University of Moratuwa, > Sri Lanka. > <Ema...@gm...> > > -- Med venlig hilsen / Kind regards *Jens Kristian Villadsen* cand.polyt Stålhøjen 24 8240 Risskov Denmark Mobile +4523373806 jen...@gm... jkiddo.dyndns.org |
From: Malith D. <mma...@gm...> - 2014-01-30 09:14:40
|
Hi James/Jens, Yes James that is my exact requirement. Anyway I was able to get some progress using reflection as Jens mentioned. Thanks guys for the leads :). Malith On Thu, Jan 30, 2014 at 1:26 AM, Jens Villadsen < jen...@gm...> wrote: > Or - as one of my colleagues did - use reflection on the message structure > files from HAPI. That works perfectly well too ;) > > > On 29 January 2014 20:53, James Agnew <ja...@ja...> wrote: > >> Hi Malith, >> >> Do you mean that you want programmatic access to the message structures >> themselves? (Ie. not the contents of an actual message instance, but the >> names of all the segments, fields, components, etc. within a message?) >> >> If that's the case, the most comprehensive authority for that information >> is the "HL7 database", which is distributed in MS Access format. >> Unfortunately it's a commercial product and it doesn't come particularly >> cheaply: https://www.hl7.org/store/index.cfm?ref=nav. This is actually >> the very database that we use within HAPI to build our structure libraries. >> >> Cheers, >> James >> >> >> >> >> On Wed, Jan 29, 2014 at 8:42 AM, Malith Dhanushka <mma...@gm...>wrote: >> >>> Hi Ratha, >>> >>> Thanks for the link but i was looking for programmatical way of listing >>> all the occurrences. >>> >>> Malith >>> >>> >>> On Tue, Jan 28, 2014 at 4:43 PM, Ratha v <vij...@gm...> wrote: >>> >>>> Hi; >>>> >>>> Check this.. >>>> >>>> [1]http://www.hl7.org/special/committees/vocab/v26_appendix_a.pdf >>>> >>>> Thanks.. >>>> >>>> >>>> On 27 January 2014 19:22, Malith Dhanushka <mma...@gm...> wrote: >>>> >>>>> Hi Devs, >>>>> >>>>> I have a requirement to get the whole list of possible >>>>> segment,composites,sub-composites and there types structure of a hl7 >>>>> message (v2.1). This is for an indexing requirement. For example here is a >>>>> sample list. >>>>> >>>>> MSH.ReceivingApplication >>>>> GT1.SetID MSH.ReceivingFacility >>>>> MSH.MessageControlID >>>>> NK1.Relationship >>>>> MSH.VersionID >>>>> MSH.Date/TimeOfMessage.TSComponentOne >>>>> >>>>> It would be grateful if someone can give a lead on this. >>>>> >>>>> Thanks in Advance, >>>>> Malith >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >>>>> Learn Why More Businesses Are Choosing CenturyLink Cloud For >>>>> Critical Workloads, Development Environments & Everything In Between. >>>>> Get a Quote or Start a Free Trial Today. >>>>> >>>>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >>>>> _______________________________________________ >>>>> Hl7api-devel mailing list >>>>> Hl7...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/hl7api-devel >>>>> >>>>> >>>> >>>> >>>> -- >>>> -Ratha >>>> http://vvratha.blogspot.com/ >>>> >>> >>> >>> >>> -- >>> Undergraduate, >>> Department of Computer Science and Engineering, >>> University of Moratuwa, >>> Sri Lanka. >>> <Ema...@gm...> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> WatchGuard Dimension instantly turns raw network data into actionable >>> security intelligence. It gives you real-time visual feedback on key >>> security issues and trends. Skip the complicated setup - simply import >>> a virtual appliance and go from zero to informed in seconds. >>> >>> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >>> >>> _______________________________________________ >>> Hl7api-devel mailing list >>> Hl7...@li... >>> https://lists.sourceforge.net/lists/listinfo/hl7api-devel >>> >>> >> >> >> ------------------------------------------------------------------------------ >> WatchGuard Dimension instantly turns raw network data into actionable >> security intelligence. It gives you real-time visual feedback on key >> security issues and trends. Skip the complicated setup - simply import >> a virtual appliance and go from zero to informed in seconds. >> >> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >> _______________________________________________ >> Hl7api-devel mailing list >> Hl7...@li... >> https://lists.sourceforge.net/lists/listinfo/hl7api-devel >> >> > > > -- > > Med venlig hilsen / Kind regards > > *Jens Kristian Villadsen* > cand.polyt > > Stålhøjen 24 > 8240 Risskov > Denmark > > Mobile +4523373806 > jen...@gm... > jkiddo.dyndns.org > -- Undergraduate, Department of Computer Science and Engineering, University of Moratuwa, Sri Lanka. <Ema...@gm...> |
From: Jens V. <jen...@gm...> - 2014-01-29 19:56:30
|
Or - as one of my colleagues did - use reflection on the message structure files from HAPI. That works perfectly well too ;) On 29 January 2014 20:53, James Agnew <ja...@ja...> wrote: > Hi Malith, > > Do you mean that you want programmatic access to the message structures > themselves? (Ie. not the contents of an actual message instance, but the > names of all the segments, fields, components, etc. within a message?) > > If that's the case, the most comprehensive authority for that information > is the "HL7 database", which is distributed in MS Access format. > Unfortunately it's a commercial product and it doesn't come particularly > cheaply: https://www.hl7.org/store/index.cfm?ref=nav. This is actually > the very database that we use within HAPI to build our structure libraries. > > Cheers, > James > > > > > On Wed, Jan 29, 2014 at 8:42 AM, Malith Dhanushka <mma...@gm...>wrote: > >> Hi Ratha, >> >> Thanks for the link but i was looking for programmatical way of listing >> all the occurrences. >> >> Malith >> >> >> On Tue, Jan 28, 2014 at 4:43 PM, Ratha v <vij...@gm...> wrote: >> >>> Hi; >>> >>> Check this.. >>> >>> [1]http://www.hl7.org/special/committees/vocab/v26_appendix_a.pdf >>> >>> Thanks.. >>> >>> >>> On 27 January 2014 19:22, Malith Dhanushka <mma...@gm...> wrote: >>> >>>> Hi Devs, >>>> >>>> I have a requirement to get the whole list of possible >>>> segment,composites,sub-composites and there types structure of a hl7 >>>> message (v2.1). This is for an indexing requirement. For example here is a >>>> sample list. >>>> >>>> MSH.ReceivingApplication >>>> GT1.SetID MSH.ReceivingFacility >>>> MSH.MessageControlID >>>> NK1.Relationship >>>> MSH.VersionID >>>> MSH.Date/TimeOfMessage.TSComponentOne >>>> >>>> It would be grateful if someone can give a lead on this. >>>> >>>> Thanks in Advance, >>>> Malith >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >>>> Learn Why More Businesses Are Choosing CenturyLink Cloud For >>>> Critical Workloads, Development Environments & Everything In Between. >>>> Get a Quote or Start a Free Trial Today. >>>> >>>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >>>> _______________________________________________ >>>> Hl7api-devel mailing list >>>> Hl7...@li... >>>> https://lists.sourceforge.net/lists/listinfo/hl7api-devel >>>> >>>> >>> >>> >>> -- >>> -Ratha >>> http://vvratha.blogspot.com/ >>> >> >> >> >> -- >> Undergraduate, >> Department of Computer Science and Engineering, >> University of Moratuwa, >> Sri Lanka. >> <Ema...@gm...> >> >> >> >> ------------------------------------------------------------------------------ >> WatchGuard Dimension instantly turns raw network data into actionable >> security intelligence. It gives you real-time visual feedback on key >> security issues and trends. Skip the complicated setup - simply import >> a virtual appliance and go from zero to informed in seconds. >> >> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >> >> _______________________________________________ >> Hl7api-devel mailing list >> Hl7...@li... >> https://lists.sourceforge.net/lists/listinfo/hl7api-devel >> >> > > > ------------------------------------------------------------------------------ > WatchGuard Dimension instantly turns raw network data into actionable > security intelligence. It gives you real-time visual feedback on key > security issues and trends. Skip the complicated setup - simply import > a virtual appliance and go from zero to informed in seconds. > > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > -- Med venlig hilsen / Kind regards *Jens Kristian Villadsen* cand.polyt Stålhøjen 24 8240 Risskov Denmark Mobile +4523373806 jen...@gm... jkiddo.dyndns.org |
From: James A. <ja...@ja...> - 2014-01-29 19:54:02
|
Hi Malith, Do you mean that you want programmatic access to the message structures themselves? (Ie. not the contents of an actual message instance, but the names of all the segments, fields, components, etc. within a message?) If that's the case, the most comprehensive authority for that information is the "HL7 database", which is distributed in MS Access format. Unfortunately it's a commercial product and it doesn't come particularly cheaply: https://www.hl7.org/store/index.cfm?ref=nav. This is actually the very database that we use within HAPI to build our structure libraries. Cheers, James On Wed, Jan 29, 2014 at 8:42 AM, Malith Dhanushka <mma...@gm...>wrote: > Hi Ratha, > > Thanks for the link but i was looking for programmatical way of listing > all the occurrences. > > Malith > > > On Tue, Jan 28, 2014 at 4:43 PM, Ratha v <vij...@gm...> wrote: > >> Hi; >> >> Check this.. >> >> [1]http://www.hl7.org/special/committees/vocab/v26_appendix_a.pdf >> >> Thanks.. >> >> >> On 27 January 2014 19:22, Malith Dhanushka <mma...@gm...> wrote: >> >>> Hi Devs, >>> >>> I have a requirement to get the whole list of possible >>> segment,composites,sub-composites and there types structure of a hl7 >>> message (v2.1). This is for an indexing requirement. For example here is a >>> sample list. >>> >>> MSH.ReceivingApplication >>> GT1.SetID MSH.ReceivingFacility >>> MSH.MessageControlID >>> NK1.Relationship >>> MSH.VersionID >>> MSH.Date/TimeOfMessage.TSComponentOne >>> >>> It would be grateful if someone can give a lead on this. >>> >>> Thanks in Advance, >>> Malith >>> >>> >>> ------------------------------------------------------------------------------ >>> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >>> Learn Why More Businesses Are Choosing CenturyLink Cloud For >>> Critical Workloads, Development Environments & Everything In Between. >>> Get a Quote or Start a Free Trial Today. >>> >>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> Hl7api-devel mailing list >>> Hl7...@li... >>> https://lists.sourceforge.net/lists/listinfo/hl7api-devel >>> >>> >> >> >> -- >> -Ratha >> http://vvratha.blogspot.com/ >> > > > > -- > Undergraduate, > Department of Computer Science and Engineering, > University of Moratuwa, > Sri Lanka. > <Ema...@gm...> > > > > ------------------------------------------------------------------------------ > WatchGuard Dimension instantly turns raw network data into actionable > security intelligence. It gives you real-time visual feedback on key > security issues and trends. Skip the complicated setup - simply import > a virtual appliance and go from zero to informed in seconds. > > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > |
From: Malith D. <mma...@gm...> - 2014-01-29 13:42:29
|
Hi Ratha, Thanks for the link but i was looking for programmatical way of listing all the occurrences. Malith On Tue, Jan 28, 2014 at 4:43 PM, Ratha v <vij...@gm...> wrote: > Hi; > > Check this.. > > [1]http://www.hl7.org/special/committees/vocab/v26_appendix_a.pdf > > Thanks.. > > > On 27 January 2014 19:22, Malith Dhanushka <mma...@gm...> wrote: > >> Hi Devs, >> >> I have a requirement to get the whole list of possible >> segment,composites,sub-composites and there types structure of a hl7 >> message (v2.1). This is for an indexing requirement. For example here is a >> sample list. >> >> MSH.ReceivingApplication >> GT1.SetID MSH.ReceivingFacility >> MSH.MessageControlID >> NK1.Relationship >> MSH.VersionID >> MSH.Date/TimeOfMessage.TSComponentOne >> >> It would be grateful if someone can give a lead on this. >> >> Thanks in Advance, >> Malith >> >> >> ------------------------------------------------------------------------------ >> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >> Learn Why More Businesses Are Choosing CenturyLink Cloud For >> Critical Workloads, Development Environments & Everything In Between. >> Get a Quote or Start a Free Trial Today. >> >> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >> _______________________________________________ >> Hl7api-devel mailing list >> Hl7...@li... >> https://lists.sourceforge.net/lists/listinfo/hl7api-devel >> >> > > > -- > -Ratha > http://vvratha.blogspot.com/ > -- Undergraduate, Department of Computer Science and Engineering, University of Moratuwa, Sri Lanka. <Ema...@gm...> |
From: Giacomo P. <gia...@gm...> - 2014-01-28 20:32:22
|
Hi, I think that there is a mismatch between the HL7 Over HTTP specification and the current implementation regarding the HTTP Response Codes. The specification says: When a *receiving application* produces an HL7 response payload containing > one of these status codes (AR, AE, CR, CE), this is considered a successful > interaction at the transport layer, and response code of "HTTP/1.1 200 OK" > MUST be used. But the implementation does not follow the specification. The class ca.uhn.hl7v2.hoh.encoder.ResponseCode contains the following mapping: ourAckCodesToResponseCodes.put(AA, HTTP_200_OK); ourAckCodesToResponseCodes.put(CA, HTTP_200_OK); ourAckCodesToResponseCodes.put(AR, HTTP_400_BAD_REQUEST); ourAckCodesToResponseCodes.put(CR, HTTP_400_BAD_REQUEST); ourAckCodesToResponseCodes.put(AE, HTTP_500_INTERNAL_SERVER_ERROR); ourAckCodesToResponseCodes.put(CE, HTTP_500_INTERNAL_SERVER_ERROR); Is there any reason for this particular behaviour or is this a "bug"? Is it possible to programmatically override these values? |
From: Ratha v <vij...@gm...> - 2014-01-28 11:13:18
|
Hi; Check this.. [1]http://www.hl7.org/special/committees/vocab/v26_appendix_a.pdf Thanks.. On 27 January 2014 19:22, Malith Dhanushka <mma...@gm...> wrote: > Hi Devs, > > I have a requirement to get the whole list of possible > segment,composites,sub-composites and there types structure of a hl7 > message (v2.1). This is for an indexing requirement. For example here is a > sample list. > > MSH.ReceivingApplication > GT1.SetID MSH.ReceivingFacility > MSH.MessageControlID > NK1.Relationship > MSH.VersionID > MSH.Date/TimeOfMessage.TSComponentOne > > It would be grateful if someone can give a lead on this. > > Thanks in Advance, > Malith > > > ------------------------------------------------------------------------------ > CenturyLink Cloud: The Leader in Enterprise Cloud Services. > Learn Why More Businesses Are Choosing CenturyLink Cloud For > Critical Workloads, Development Environments & Everything In Between. > Get a Quote or Start a Free Trial Today. > > http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > -- -Ratha http://vvratha.blogspot.com/ |
From: Malith D. <mma...@gm...> - 2014-01-27 13:52:39
|
Hi Devs, I have a requirement to get the whole list of possible segment,composites,sub-composites and there types structure of a hl7 message (v2.1). This is for an indexing requirement. For example here is a sample list. MSH.ReceivingApplication GT1.SetID MSH.ReceivingFacility MSH.MessageControlID NK1.Relationship MSH.VersionID MSH.Date/TimeOfMessage.TSComponentOne It would be grateful if someone can give a lead on this. Thanks in Advance, Malith |
From: Jens K. V. <jk...@c3...> - 2014-01-22 10:56:50
|
On the page ‘http://hl7api.sourceforge.net/hapi-hl7overhttp/index.html’ it states that the HL7 over HTTP is using HAPI (v2.2 beta1). Is there any reason why it does not uses the same version as the HAPI library (v2.2-beta1)? And which MLLP LLP does it use pr. default? The extended or the regular? |
From: g3949 <g3...@ya...> - 2014-01-21 07:41:49
|
Hi, once again, its me. I have to parse and display UUEncoded RTF Documents. E.G OBX|1|RTF|CR Thorax||begin 664 test M>UQR=\T\8Q7\T\%N<VE<86YS:6-P9S$R-3)<9\T\5F9C!<9\T\5F;\T\%N9S$P,S-<9\T\5F M=\T\%B-S`X>UQF;VYT=\T\)L>UQF,%QF;6]D97)N7\T\9P<G$R7\T\9C:\T\%R<V5T,"!# M;W5R:65R($YE=SM]?5QP87!E<G<Q,3DP-5QP87!E<F@Q-C@S...cutted Does anyone give me a hint how to do. Especially escaping, replace non printable caracters so that i do the decoding? Thanks FP |
From: Ian V. <Ian...@he...> - 2014-01-16 22:00:51
|
Some time ago I noticed a problem with some messages we were dealing with which sent fields with single escape characters in them. HAPI consumes them during parsing, and I found the code that did it and suggested a change to allow them to be left alone. I believe the standard is unclear in it's definition of the action to perform in the case of a single escape character being present, where it doesn't form part of a valid escape sequence. A copy of the suggested change to Escape object made at the time (code may have changed slightly with the updated versions of HAPI, suggestion was made some time ago). In this object there is also reference to the hexadecimal escape not being supported, but the code does include handing of \X000d\, and could easily be extended to cover the most common hexadecimal escapes we have seen being \X0D\ and \X0A\. Hope this helps Code Follows Ian /** The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is "Escape.java". Description: "Handles "escaping" and "unescaping" of text according to the HL7 escape sequence rules defined in section 2.10 of the standard (version 2.4)" The Initial Developer of the Original Code is University Health Network. Copyright (C) 2001. All Rights Reserved. Contributor(s): Mark Lee (Skeva Technologies); Elmar Hinz Alternatively, the contents of this file may be used under the terms of the GNU General Public License (the ?GPL?), in which case the provisions of the GPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of the GPL and not to allow others to use your version of this file under the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL License. If you do not delete the provisions above, a recipient may use your version of this file under either the MPL or the GPL. */ package ca.uhn.hl7v2.parser; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; /** * Handles "escaping" and "unescaping" of text according to the HL7 escape * sequence rules defined in section 2.10 of the standard (version 2.4). * Currently, escape sequences for multiple character sets are unsupported. The * highlighting, hexademical, and locally defined escape sequences are also * unsupported. * * @author Bryan Tripp * @author Mark Lee (Skeva Technologies) * @author Elmar Hinz * @author Christian Ohr */ public class EscapeV2 { /** * limits the size of variousEncChars to 1000, can be overridden by system property. */ private static Map<EncodingCharacters, EncLookup> variousEncChars = Collections.synchronizedMap(new LinkedHashMap<EncodingCharacters, EncLookup>(5, 0.75f, true) { private static final long serialVersionUID = 1L; final int maxSize = new Integer(System.getProperty(Escape.class.getName() + ".maxSize", "1000")); @Override protected boolean removeEldestEntry(Map.Entry<EncodingCharacters, EncLookup> eldest) { return this.size() > maxSize; } }); /** Creates a new instance of Escape */ public EscapeV2() { } /** * @param text string to be escaped * @param encChars encoding characters to be used * @return the escaped string */ public static String escape(String text, EncodingCharacters encChars) { EncLookup esc = getEscapeSequences(encChars); int textLength = text.length(); StringBuilder result = new StringBuilder(textLength); for (int i = 0; i < textLength; i++) { boolean charReplaced = false; char c = text.charAt(i); FORENCCHARS: for (int j = 0; j < 6; j++) { if (text.charAt(i) == esc.characters[j]) { // Formatting escape sequences such as \.br\ should be left alone if (j == 4) { if (i+1 < textLength) { // Check for \.br\ char nextChar = text.charAt(i + 1); switch (nextChar) { case '.': case 'C': case 'M': case 'X': case 'Z': { int nextEscapeIndex = text.indexOf(esc.characters[j], i + 1); if (nextEscapeIndex > 0) { result.append(text.substring(i, nextEscapeIndex + 1)); charReplaced = true; i = nextEscapeIndex; break FORENCCHARS; } break; } case 'H': case 'N': { if (i+2 < textLength && text.charAt(i+2) == '\\') { int nextEscapeIndex = i + 2; if (nextEscapeIndex > 0) { result.append(text.substring(i, nextEscapeIndex + 1)); charReplaced = true; i = nextEscapeIndex; break FORENCCHARS; } } break; } } } } result.append(esc.encodings[j]); charReplaced = true; break; } } if (!charReplaced) { result.append(c); } } return result.toString(); } /** * @param text string to be unescaped * @param encChars encoding characters to be used * @return the unescaped string */ public static String unescape(String text, EncodingCharacters encChars) { // If the escape char isn't found, we don't need to look for escape sequences char escapeChar = encChars.getEscapeCharacter(); boolean foundEscapeChar = false; for (int i = 0; i < text.length(); i++) { if (text.charAt(i) == escapeChar) { foundEscapeChar = true; break; } } if (!foundEscapeChar) { return text; } int textLength = text.length(); StringBuilder result = new StringBuilder(textLength + 20); EncLookup esc = getEscapeSequences(encChars); char escape = esc.characters[4]; int encodingsCount = esc.characters.length; int i = 0; while (i < textLength) { char c = text.charAt(i); if (c != escape) { result.append(c); i++; } else { boolean foundEncoding = false; // Test against the standard encodings for (int j = 0; j < encodingsCount; j++) { String encoding = esc.encodings[j]; int encodingLength = encoding.length(); if ((i + encodingLength <= textLength) && text.substring(i, i + encodingLength) .equals(encoding)) { result.append(esc.characters[j]); i += encodingLength; foundEncoding = true; break; } } if (!foundEncoding) { // If we haven't found this, there is one more option. Escape sequences of /.XXXXX/ are // formatting codes. They should be left intact if (i + 1 < textLength) { char nextChar = text.charAt(i + 1); switch (nextChar) { case '.': case 'C': case 'M': case 'X': case 'Z': { int closingEscape = text.indexOf(escape, i + 1); if (closingEscape > 0) { String substring = text.substring(i, closingEscape + 1); result.append(substring); i += substring.length(); } else { i++; } break; } case 'H': case 'N': { int closingEscape = text.indexOf(escape, i + 1); if (closingEscape == i + 2) { String substring = text.substring(i, closingEscape + 1); result.append(substring); i += substring.length(); } else { i++; } break; } default: { // Preserve unescaped escape delimiter result.append(c); i++; } } } else { // Preserve unescaped escape delimiter result.append(c); i++; } } } } return result.toString(); } /** * Returns a HashTable with escape sequences as keys, and corresponding * Strings as values. */ private static EncLookup getEscapeSequences(EncodingCharacters encChars) { EncLookup escapeSequences = variousEncChars.get(encChars); if (escapeSequences == null) { // this means we haven't got the sequences for these encoding // characters yet - let's make them escapeSequences = new EncLookup(encChars); variousEncChars.put(encChars, escapeSequences); } return escapeSequences; } /** * A performance-optimized replacement for using when * mapping from HL7 special characters to their respective * encodings * * @author Christian Ohr */ private static class EncLookup { char[] characters = new char[6]; String[] encodings = new String[6]; EncLookup(EncodingCharacters ec) { characters[0] = ec.getFieldSeparator(); characters[1] = ec.getComponentSeparator(); characters[2] = ec.getSubcomponentSeparator(); characters[3] = ec.getRepetitionSeparator(); characters[4] = ec.getEscapeCharacter(); characters[5] = '\r'; char[] codes = {'F', 'S', 'T', 'R', 'E'}; for (int i = 0; i < codes.length; i++) { StringBuilder seq = new StringBuilder(); seq.append(ec.getEscapeCharacter()); seq.append(codes[i]); seq.append(ec.getEscapeCharacter()); encodings[i] = seq.toString(); } // encodings[5] = "\\X000d\\ ( file://\X000d\ )"; encodings[5] = ec.getEscapeCharacter() + "X000d" + ec.getEscapeCharacter(); } } } Test case code /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package ca.uhn.hl7v2.parser; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * * @author vowlesi */ public class SingleBackslashV2Test { private static final Logger log = LoggerFactory.getLogger(EscapeV2Test.class); private EncodingCharacters encChars = EncodingCharacters.defaultInstance(); public SingleBackslashV2Test() { } @BeforeClass public static void setUpClass() { } @AfterClass public static void tearDownClass() { } @Before public void setUp() { } @After public void tearDown() { } /** * Test of unescape method, of class Escape. */ @Test public void testUnescapeSingleBackslash() { log.debug("unescape with single backslash"); String text = "1 \\ 24 Smith \\T\\ ( file://\T\ ) Wesson Road"; String expResult = "1 \\ 24 Smith & Wesson Road"; String result = EscapeV2.unescape(text, encChars); log.debug(result); log.debug(expResult); assertEquals(expResult, result); text = "\"\\E\\''\\F\\\\H\\A\\T\\E\\R\\\\N\\<<\\S\\>>\"\\E\\''\\F\\Special test '\\XFFFFFFFFFFFFFFFFFFFF\\'"; expResult = "\"\\\\H\\A&E~\\N\\<<^>>\"\\''|Special test '\\XFFFFFFFFFFFFFFFFFFFF\\'"; result = EscapeV2.unescape(text, encChars); log.debug(result); log.debug(expResult); assertEquals(expResult, result); text = "\"\\E\\''\\F\\\\H\\A\\T\\E\\R\\\\N\\<<\\S\\>>\"\\E\\''\\F\\Special test '\\X000d\\'"; expResult = "\"\\\\H\\A&E~\\N\\<<^>>\"\\''|Special test '\r\'"; result = EscapeV2.unescape(text, encChars); log.debug(result); log.debug(expResult); assertEquals(expResult, result); text = "\\\\\\\\\\\\\\\\\\\\"; expResult = "\\\\\\\\\\\\\\\\\\\\"; result = EscapeV2.unescape(text, encChars); log.debug(result); log.debug(expResult); assertEquals(expResult, result); text = "Ken\\n\\F\\edy"; expResult = "Ken\\E\\n\\F\\edy"; result = EscapeV2.unescape(text, encChars); result = EscapeV2.escape(result, encChars); log.debug(result); log.debug(expResult); assertEquals(expResult, result); } } >>> g3949 <g3...@ya...> 16/01/14 20:03 >>> sorry....I#m wrong... The Problem seems to be in the parser. Parsing the HL7 Textfile getting the "\" lost... Coee: Parser p = context.getPipeParser(); Message msg = iter.next(); try { log.info(p.encode(msg)); } catch (HL7Exception e2) { // TODO Auto-generated catch block e2.printStackTrace(); } ZPD|1|PDF|14627^20675^begin 644 pdf1.pdfx0Dx0A\M)5!$1BTQ+C,-"B7BX\E_3#0H-"C$ Still needing help... FP On Thursday, January 16, 2014 10:02 AM, g3949 <g3...@ya...> wrote: Hi, in fact...thats the situation. In my system, I get UUEncoded and plain.PDF documents within the zpd-3.3 segment. Now I have still the problem replacing the \x0D\\x0A\ because while catching the zpd-3.3 segment useing the terser, the "\" getting lost... Reading direct from file results ->> String WITH "\" 2014-01-16 09:51:17 [INFO ] (Hl7FromFile):39 - begin 644 pdf1.pdf\x0D\\x0A\M)5!$1BTQ+C,-"B7BX\E\_ getting zpd-3.3 from terser and save the segment in String variable called zpd: --> String WITHOUT "\" 2014-01-16 09:56:46 [INFO ] (Hl7FromFile):84 - useing terser: begin 644 pdf1.pdfx0Dx0A\M)5!$1BTQ+C,-"B7BX Code: String zpd = null; Terser t = new Terser(msg); try { zpd = t.get("/.ZPD-3-3"); log.info("useing terser: "+zpd); } catch (HL7Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Why does the terser cuts out the backslahes and which workarounds are possible. Thanks a lot! FP On Monday, January 13, 2014 4:33 PM, James Agnew <ja...@ja...> wrote: Hi GGK, I've never seen anyone use UUEncoding inside an HL7 message (Base64 is the way I've generally seen people solve this problem) but it should be possible. Your problem is definitely that the first line of a UUEncoded string needs to be in the form begin <mode> <filename><newline> You have all of that in your string except the newline. That may be what the string "x0Dx" is representing.. You would need to convert that to a newline, but also be careful since that string could also appear in the UUEncoded text. James On Mon, Jan 13, 2014 at 3:14 AM, g3949 <g3...@ya...> wrote: Now I have the Problem, do decode a ZPD-3.3 Segement which is UUDecoded. Example: ZPD|1|PDF|14627^20675^begin 644 pdf1.pdfx0Dx0A\M)5!$1BTQ+C,-"B7BX\E_3#0H-"C.... end Decode the segement, I alway get the Errof: sun.misc.CEFormatException: UUDecoder: No begin line. Does anybody hab som Ideas? GGK ------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk _______________________________________________ Hl7api-devel mailing list Hl7...@li... https://lists.sourceforge.net/lists/listinfo/hl7api-devel ------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&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: Sergio A. <sal...@gm...> - 2014-01-16 15:05:54
|
Hello, I'm developing an application which interacts with Chemistry Analyzers and I need to work with the QRY^Q02 and DSR^Q03 messages. The communication schema is as follows: Analyzer Soft QRY^Q02 |----------------------->| QCK^Q02 |<-----------------------| DSR^Q03 |<-----------------------| ACK^Q03 |----------------------->| I've implemented a ReceivingApplication to handle the incoming messages and generating the responses. The problem I have is that I don't know how to send the DSR^Q03 message after responding the QCK^Q02. I mean, I don't know how to send the DSR^Q03 after responding the QCK^Q02. If anyone can help me, I'll really appreciate it. Thanks in advance. Best regards. Sergio Allegri |
From: g3949 <g3...@ya...> - 2014-01-16 10:04:06
|
sorry....I#m wrong... The Problem seems to be in the parser. Parsing the HL7 Textfile getting the "\" lost... Coee: Parser p = context.getPipeParser(); Message msg = iter.next(); try { log.info(p.encode(msg)); } catch (HL7Exception e2) { // TODO Auto-generated catch block e2.printStackTrace(); } ZPD|1|PDF|14627^20675^begin 644 pdf1.pdfx0Dx0A\M)5!$1BTQ+C,-"B7BX\E_3#0H-"C$ Still needing help... FP On Thursday, January 16, 2014 10:02 AM, g3949 <g3...@ya...> wrote: Hi, in fact...thats the situation. In my system, I get UUEncoded and plain.PDF documents within the zpd-3.3 segment. Now I have still the problem replacing the \x0D\\x0A\ because while catching the zpd-3.3 segment useing the terser, the "\" getting lost... Reading direct from file results ->> String WITH "\" 2014-01-16 09:51:17 [INFO ] (Hl7FromFile):39 - begin 644 pdf1.pdf\x0D\\x0A\M)5!$1BTQ+C,-"B7BX\E\_ getting zpd-3.3 from terser and save the segment in String variable called zpd: --> String WITHOUT "\" 2014-01-16 09:56:46 [INFO ] (Hl7FromFile):84 - useing terser: begin 644 pdf1.pdfx0Dx0A\M)5!$1BTQ+C,-"B7BX Code: String zpd = null; Terser t = new Terser(msg); try { zpd = t.get("/.ZPD-3-3"); log.info("useing terser: "+zpd); } catch (HL7Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Why does the terser cuts out the backslahes and which workarounds are possible. Thanks a lot! FP On Monday, January 13, 2014 4:33 PM, James Agnew <ja...@ja...> wrote: Hi GGK, I've never seen anyone use UUEncoding inside an HL7 message (Base64 is the way I've generally seen people solve this problem) but it should be possible. Your problem is definitely that the first line of a UUEncoded string needs to be in the form begin <mode> <filename><newline> You have all of that in your string except the newline. That may be what the string "x0Dx" is representing.. You would need to convert that to a newline, but also be careful since that string could also appear in the UUEncoded text. James On Mon, Jan 13, 2014 at 3:14 AM, g3949 <g3...@ya...> wrote: Now I have the Problem, do decode a ZPD-3.3 Segement which is UUDecoded. > > >Example: >ZPD|1|PDF|14627^20675^begin 644 pdf1.pdfx0Dx0A\M)5!$1BTQ+C,-"B7BX\E_3#0H-"C.... end > > >Decode the segement, I alway get the Errof: > > >sun.misc.CEFormatException: UUDecoder: No begin line. > > > > >Does anybody hab som Ideas? > > >GGK > >------------------------------------------------------------------------------ >CenturyLink Cloud: The Leader in Enterprise Cloud Services. >Learn Why More Businesses Are Choosing CenturyLink Cloud For >Critical Workloads, Development Environments & Everything In Between. >Get a Quote or Start a Free Trial Today. >http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >_______________________________________________ >Hl7api-devel mailing list >Hl7...@li... >https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > ------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk _______________________________________________ Hl7api-devel mailing list Hl7...@li... https://lists.sourceforge.net/lists/listinfo/hl7api-devel |
From: g3949 <g3...@ya...> - 2014-01-16 09:00:41
|
Hi, in fact...thats the situation. In my system, I get UUEncoded and plain.PDF documents within the zpd-3.3 segment. Now I have still the problem replacing the \x0D\\x0A\ because while catching the zpd-3.3 segment useing the terser, the "\" getting lost... Reading direct from file results ->> String WITH "\" 2014-01-16 09:51:17 [INFO ] (Hl7FromFile):39 - begin 644 pdf1.pdf\x0D\\x0A\M)5!$1BTQ+C,-"B7BX\E\_ getting zpd-3.3 from terser and save the segment in String variable called zpd: --> String WITHOUT "\" 2014-01-16 09:56:46 [INFO ] (Hl7FromFile):84 - useing terser: begin 644 pdf1.pdfx0Dx0A\M)5!$1BTQ+C,-"B7BX Code: String zpd = null; Terser t = new Terser(msg); try { zpd = t.get("/.ZPD-3-3"); log.info("useing terser: "+zpd); } catch (HL7Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Why does the terser cuts out the backslahes and which workarounds are possible. Thanks a lot! FP On Monday, January 13, 2014 4:33 PM, James Agnew <ja...@ja...> wrote: Hi GGK, I've never seen anyone use UUEncoding inside an HL7 message (Base64 is the way I've generally seen people solve this problem) but it should be possible. Your problem is definitely that the first line of a UUEncoded string needs to be in the form begin <mode> <filename><newline> You have all of that in your string except the newline. That may be what the string "x0Dx" is representing.. You would need to convert that to a newline, but also be careful since that string could also appear in the UUEncoded text. James On Mon, Jan 13, 2014 at 3:14 AM, g3949 <g3...@ya...> wrote: Now I have the Problem, do decode a ZPD-3.3 Segement which is UUDecoded. > > >Example: >ZPD|1|PDF|14627^20675^begin 644 pdf1.pdfx0Dx0A\M)5!$1BTQ+C,-"B7BX\E_3#0H-"C.... end > > >Decode the segement, I alway get the Errof: > > >sun.misc.CEFormatException: UUDecoder: No begin line. > > > > >Does anybody hab som Ideas? > > >GGK > >------------------------------------------------------------------------------ >CenturyLink Cloud: The Leader in Enterprise Cloud Services. >Learn Why More Businesses Are Choosing CenturyLink Cloud For >Critical Workloads, Development Environments & Everything In Between. >Get a Quote or Start a Free Trial Today. >http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >_______________________________________________ >Hl7api-devel mailing list >Hl7...@li... >https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > |
From: Ian V. <Ian...@he...> - 2014-01-15 02:29:54
|
Many thanks for this helpful information. I have posted it to our internal developer wiki, with credit to yourself, so that all may be enlightened by your good work :-) Thanks again Ian >>> Rahul Somasunderam <rs...@ce...> 15/01/14 8:56 >>> This is a write up I had distributed to my team to help them understand and convince partner systems to use UTF 8. I've used groovy for all code samples. HTH. Content Encoding is what decides how Strings which are first class citizens in most modern programming languages, get converted into byte arrays. Byte arrays are what get sent over the wire, or get written to disk. In the reverse direction, they decide how a byte array must be converted to a String. This program takes a string in 3 different languages and shows how each language is affected by different charsets.import java.nio.charset.Charset // println Charset.availableCharsets()*.key.join('\n') void reportOnText(String text) { final encodings = [ 'ASCII', 'ISO-8859-1', 'windows-1251', 'UTF-8', 'UTF-16', 'UTF-32' ] println '' println text println text.replaceAll(/./,'=') encodings.each { enc -> def theBytes = text.getBytes(Charset.forName(enc)) def reparse = new String(theBytes, enc) println "${enc.padRight(12)}: ${theBytes.encodeHex()} --> ${reparse}" }}reportOnText('Happy New Year!') reportOnText('¡Feliz Año Nuevo!') reportOnText('新年あけましておめでとうございます!') reportOnText('KYPHON® Balloon Kyphoplasty') Let's look at the output before we dig into the explanationHappy New Year! =============== ASCII : 4861707079204e6577205965617221 --> Happy New Year! ISO-8859-1 : 4861707079204e6577205965617221 --> Happy New Year! windows-1251: 4861707079204e6577205965617221 --> Happy New Year! UTF-8 : 4861707079204e6577205965617221 --> Happy New Year! UTF-16 : feff004800610070007000790020004e00650077002000590065006100720021 --> Happy New Year! UTF-32 : 0000004800000061000000700000007000000079000000200000004e0000006500000077000000200000005900000065000000610000007200000021 --> Happy New Year! ¡Feliz Año Nuevo! ================= ASCII : 3f46656c697a20413f6f204e7565766f21 --> ?Feliz A?o Nuevo! ISO-8859-1 : a146656c697a2041f16f204e7565766f21 --> ¡Feliz Año Nuevo! windows-1251: 3f46656c697a20413f6f204e7565766f21 --> ?Feliz A?o Nuevo! UTF-8 : c2a146656c697a2041c3b16f204e7565766f21 --> ¡Feliz Año Nuevo! UTF-16 : feff00a100460065006c0069007a0020004100f1006f0020004e007500650076006f0021 --> ¡Feliz Año Nuevo! UTF-32 : 000000a100000046000000650000006c000000690000007a0000002000000041000000f10000006f000000200000004e0000007500000065000000760000006f00000021 --> ¡Feliz Año Nuevo! 新年あけましておめでとうございます! ================== ASCII : 3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f --> ?????????????????? ISO-8859-1 : 3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f --> ?????????????????? windows-1251: 3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f --> ?????????????????? UTF-8 : e696b0e5b9b4e38182e38191e381bee38197e381a6e3818ae38281e381a7e381a8e38186e38194e38196e38184e381bee38199efbc81 --> 新年あけましておめでとうございます! UTF-16 : feff65b05e7430423051307e30573066304a3081306730683046305430563044307e3059ff01 --> 新年あけましておめでとうございます! UTF-32 : 000065b000005e7400003042000030510000307e00003057000030660000304a000030810000306700003068000030460000305400003056000030440000307e000030590000ff01 --> 新年あけましておめでとうございます! KYPHON® Balloon Kyphoplasty =========================== ASCII : 4b5950484f4e3f2042616c6c6f6f6e204b7970686f706c61737479 --> KYPHON? Balloon Kyphoplasty ISO-8859-1 : 4b5950484f4eae2042616c6c6f6f6e204b7970686f706c61737479 --> KYPHON® Balloon Kyphoplasty windows-1251: 4b5950484f4eae2042616c6c6f6f6e204b7970686f706c61737479 --> KYPHON® Balloon Kyphoplasty UTF-8 : 4b5950484f4ec2ae2042616c6c6f6f6e204b7970686f706c61737479 --> KYPHON® Balloon Kyphoplasty UTF-16 : feff004b005900500048004f004e00ae002000420061006c006c006f006f006e0020004b007900700068006f0070006c0061007300740079 --> KYPHON® Balloon Kyphoplasty UTF-32 : 0000004b0000005900000050000000480000004f0000004e000000ae0000002000000042000000610000006c0000006c0000006f0000006f0000006e000000200000004b0000007900000070000000680000006f000000700000006c00000061000000730000007400000079 --> KYPHON® Balloon Kyphoplasty As you can see, all the encodings we use do a great job with plain English text. That's because all encodings have support for the characters in the English alphabet. As we start making the alphabet more and more complex, we start seeing the difference between the Universal Encodings and the regional Encodings. ASCII and windows-1521 have very limited support for anything other than English. ISO-8859-1 improves support for Spanish, but Japanese is still broken. All the UTF encodings are great for all languages. Among the UTF charsets, UTF-32 takes 32 bits per character. UTF-16 takes a minimum of 16 bits. UTF-8 takes a minimum of 8 bits, but adds more bits to expand the character set.What if we change charsets after encoding? This is precisely what happens when one system encodes a message in one charset and another tries to parse it using a different charset.import java.nio.charset.Charset void testWrongEncoding(String text) { def theBytes = text.getBytes(Charset.forName('ISO-8859-1')) def reparse = new String(theBytes, 'UTF-8') println "${text}: ${theBytes.encodeHex()} --> ${reparse}"}println "Wrong Encoding" println "Wrong Encoding".replaceAll(/./,'=') testWrongEncoding('Happy New Year!') testWrongEncoding('¡Feliz Año Nuevo!') testWrongEncoding('新年あけましておめでとうございます!') testWrongEncoding('KYPHON® Balloon Kyphoplasty') This is the resultWrong Encoding ============== Happy New Year!: 4861707079204e6577205965617221 --> Happy New Year! ¡Feliz Año Nuevo!: a146656c697a2041f16f204e7565766f21 --> �Feliz A�o Nuevo! 新年あけましておめでとうございます!: 3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f --> ?????????????????? KYPHON® Balloon Kyphoplasty: 4b5950484f4eae2042616c6c6f6f6e204b7970686f706c61737479 --> KYPHON� Balloon Kyphoplasty As you can see, there will be problems in parsing the string into UTF-8. This is what happens when another system uses a different encoding and we parse it using UTF-8.Why UTF-8 You might already have guessed why we use UTF. It's because UTF can support all major characters we are likely to run into. But why UTF-8 in specific? Because UTF-8 is the most compressed for the typical inputs we receive. Other Charsets supported by the Java Runtime[Big5, Big5-HKSCS, EUC-JP, EUC-KR, GB18030, GB2312, GBK, IBM-Thai, IBM00858, IBM01140, IBM01141, IBM01142, IBM01143, IBM01144, IBM01145, IBM01146, IBM01147, IBM01148, IBM01149, IBM037, IBM1026, IBM1047, IBM273, IBM277, IBM278, IBM280, IBM284, IBM285, IBM297, IBM420, IBM424, IBM437, IBM500, IBM775, IBM850, IBM852, IBM855, IBM857, IBM860, IBM861, IBM862, IBM863, IBM864, IBM865, IBM866, IBM868, IBM869, IBM870, IBM871, IBM918, ISO-2022-CN, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-KR, ISO-8859-1, ISO-8859-13, ISO-8859-15, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, JIS_X0201, JIS_X0212-1990, KOI8-R, KOI8-U, Shift_JIS, TIS-620, US-ASCII, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF-8, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, windows-31j, x-Big5-HKSCS-2001, x-Big5-Solaris, x-COMPOUND_TEXT, x-euc-jp-linux, x-EUC-TW, x-eucJP-Open, x-IBM1006, x-IBM1025, x-IBM1046, x-IBM1097, x-IBM1098, x-IBM1112, x-IBM1122, x-IBM1123, x-IBM1124, x-IBM1364, x-IBM1381, x-IBM1383, x-IBM33722, x-IBM737, x-IBM833, x-IBM834, x-IBM856, x-IBM874, x-IBM875, x-IBM921, x-IBM922, x-IBM930, x-IBM933, x-IBM935, x-IBM937, x-IBM939, x-IBM942, x-IBM942C, x-IBM943, x-IBM943C, x-IBM948, x-IBM949, x-IBM949C, x-IBM950, x-IBM964, x-IBM970, x-ISCII91, x-ISO-2022-CN-CNS, x-ISO-2022-CN-GB, x-iso-8859-11, x-JIS0208, x-JISAutoDetect, x-Johab, x-MacArabic, x-MacCentralEurope, x-MacCroatian, x-MacCyrillic, x-MacDingbat, x-MacGreek, x-MacHebrew, x-MacIceland, x-MacRoman, x-MacRomania, x-MacSymbol, x-MacThai, x-MacTurkish, x-MacUkraine, x-MS932_0213, x-MS950-HKSCS, x-MS950-HKSCS-XP, x-mswin-936, x-PCK, x-SJIS_0213, x-UTF-16LE-BOM, X-UTF-32BE-BOM, X-UTF-32LE-BOM, x-windows-50220, x-windows-50221, x-windows-874, x-windows-949, x-windows-950, x-windows-iso2022jp] On Jan 14, 2014, at 1:40 PM, Ian Vowles <Ian...@he...> wrote: I have encountered some issues with character sets, although not to the extent Tom is dealing with. Rahul's comment about the character sets at each end is something I have encountered, and I will add that on the UNIX platforms I have dealt with, the base character set is NOT configured to UTF-8, which adds another layer at which there can be differing interpretations. My experience has made me cautious, particularly where Microsoft based systems send to a UNIX based system which transforms and sends on to another Microsoft system. Since the base character set interpretation effectively changes at each boundary, loss of 'special' characters is likely. Many a time I have seen the ?, and seldom have I been able to prevent it's appearance. Pasting reports from MS-Word is particularly fraught. During my search I found several Wiki's and sites discussing the history of character sets and the growth of UTF-xx. What a revelation that is! Thanks for the example message, and the advice about MSH-18. I will be saving that away for further use. Ian >>> Rahul Somasunderam <rs...@ce...> 15/01/14 5:53 >>> That is a sign of not having the same charset on both ends. In the MSH segment, I recall there are some restrictions that require you to stay within ASCII 7 bit. The other segments can be any charset you choose. On Jan 14, 2014, at 11:27 AM, Tom Wilson <tw...@su...> wrote: After some research, I have answered my own question. If no character set is defined in MSH-18, then the default is single byte printable ASCII (decimal 32-127). If anyone is interested, I am attaching a test ORU file which includes a full set of UTF-8 characters, above and beyond what is supported. You can trim it to use this in your tests, or test a more extensive UTF-8 support if you like. -tom From: Tom Wilson [mailto:tw...@su...] Sent: Tuesday, January 14, 2014 10:27 AM To: hl7...@li... Subject: [HAPI-devel] UTF-8 support, how to define and test? Hi. I'm in the final testing phase of a HAPI-based application, and I want to define precisely what character encoding it can support. I know the HL7v2 spec defines UTF-8 as the supported character set. However, it looks like it is only supporting a subset of UTF-8. I am testing by ingesting an HL7v2 message in a unit test and serializing to XML. For example, it looks like Simplified Chinese, Vietnamese, Cyrillic, are not supported. Sending this in an NTE segment: 我能吞下玻璃而不伤身体 Produces this on the other end: ??????????? So, exactly what UTF-8 characters can I expect to work? I also want to create a unit test with a full range of the supported characters. It might be nice to support other languages, but I don't know if I can expect to receive them from EMR systems. Thanks in advance, -tom <complete-utf8-set.oru>------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&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. ********************************************************************************** ------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk_______________________________________________ Hl7api-devel mailing list Hl7...@li... https://lists.sourceforge.net/lists/listinfo/hl7api-devel |
From: Rahul S. <rs...@ce...> - 2014-01-14 22:57:10
|
This is a write up I had distributed to my team to help them understand and convince partner systems to use UTF 8. I've used groovy for all code samples. HTH. Content Encoding is what decides how Strings which are first class citizens in most modern programming languages, get converted into byte arrays. Byte arrays are what get sent over the wire, or get written to disk. In the reverse direction, they decide how a byte array must be converted to a String. This program takes a string in 3 different languages and shows how each language is affected by different charsets. import java.nio.charset.Charset // println Charset.availableCharsets()*.key.join('\n') void reportOnText(String text) { final encodings = [ 'ASCII', 'ISO-8859-1', 'windows-1251', 'UTF-8', 'UTF-16', 'UTF-32' ] println '' println text println text.replaceAll(/./,'=') encodings.each { enc -> def theBytes = text.getBytes(Charset.forName(enc)) def reparse = new String(theBytes, enc) println "${enc.padRight(12)}: ${theBytes.encodeHex()} --> ${reparse}" } } reportOnText('Happy New Year!') reportOnText('¡Feliz Año Nuevo!') reportOnText('新年あけましておめでとうございます!') reportOnText('KYPHON® Balloon Kyphoplasty') Let's look at the output before we dig into the explanation Happy New Year! =============== ASCII : 4861707079204e6577205965617221 --> Happy New Year! ISO-8859-1 : 4861707079204e6577205965617221 --> Happy New Year! windows-1251: 4861707079204e6577205965617221 --> Happy New Year! UTF-8 : 4861707079204e6577205965617221 --> Happy New Year! UTF-16 : feff004800610070007000790020004e00650077002000590065006100720021 --> Happy New Year! UTF-32 : 0000004800000061000000700000007000000079000000200000004e0000006500000077000000200000005900000065000000610000007200000021 --> Happy New Year! ¡Feliz Año Nuevo! ================= ASCII : 3f46656c697a20413f6f204e7565766f21 --> ?Feliz A?o Nuevo! ISO-8859-1 : a146656c697a2041f16f204e7565766f21 --> ¡Feliz Año Nuevo! windows-1251: 3f46656c697a20413f6f204e7565766f21 --> ?Feliz A?o Nuevo! UTF-8 : c2a146656c697a2041c3b16f204e7565766f21 --> ¡Feliz Año Nuevo! UTF-16 : feff00a100460065006c0069007a0020004100f1006f0020004e007500650076006f0021 --> ¡Feliz Año Nuevo! UTF-32 : 000000a100000046000000650000006c000000690000007a0000002000000041000000f10000006f000000200000004e0000007500000065000000760000006f00000021 --> ¡Feliz Año Nuevo! 新年あけましておめでとうございます! ================== ASCII : 3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f --> ?????????????????? ISO-8859-1 : 3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f --> ?????????????????? windows-1251: 3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f --> ?????????????????? UTF-8 : e696b0e5b9b4e38182e38191e381bee38197e381a6e3818ae38281e381a7e381a8e38186e38194e38196e38184e381bee38199efbc81 --> 新年あけましておめでとうございます! UTF-16 : feff65b05e7430423051307e30573066304a3081306730683046305430563044307e3059ff01 --> 新年あけましておめでとうございます! UTF-32 : 000065b000005e7400003042000030510000307e00003057000030660000304a000030810000306700003068000030460000305400003056000030440000307e000030590000ff01 --> 新年あけましておめでとうございます! KYPHON® Balloon Kyphoplasty =========================== ASCII : 4b5950484f4e3f2042616c6c6f6f6e204b7970686f706c61737479 --> KYPHON? Balloon Kyphoplasty ISO-8859-1 : 4b5950484f4eae2042616c6c6f6f6e204b7970686f706c61737479 --> KYPHON® Balloon Kyphoplasty windows-1251: 4b5950484f4eae2042616c6c6f6f6e204b7970686f706c61737479 --> KYPHON® Balloon Kyphoplasty UTF-8 : 4b5950484f4ec2ae2042616c6c6f6f6e204b7970686f706c61737479 --> KYPHON® Balloon Kyphoplasty UTF-16 : feff004b005900500048004f004e00ae002000420061006c006c006f006f006e0020004b007900700068006f0070006c0061007300740079 --> KYPHON® Balloon Kyphoplasty UTF-32 : 0000004b0000005900000050000000480000004f0000004e000000ae0000002000000042000000610000006c0000006c0000006f0000006f0000006e000000200000004b0000007900000070000000680000006f000000700000006c00000061000000730000007400000079 --> KYPHON® Balloon Kyphoplasty As you can see, all the encodings we use do a great job with plain English text. That's because all encodings have support for the characters in the English alphabet. As we start making the alphabet more and more complex, we start seeing the difference between the Universal Encodings and the regional Encodings. ASCII and windows-1521 have very limited support for anything other than English. ISO-8859-1 improves support for Spanish, but Japanese is still broken. All the UTF encodings are great for all languages. Among the UTF charsets, UTF-32 takes 32 bits per character. UTF-16 takes a minimum of 16 bits. UTF-8 takes a minimum of 8 bits, but adds more bits to expand the character set. What if we change charsets after encoding? This is precisely what happens when one system encodes a message in one charset and another tries to parse it using a different charset. import java.nio.charset.Charset void testWrongEncoding(String text) { def theBytes = text.getBytes(Charset.forName('ISO-8859-1')) def reparse = new String(theBytes, 'UTF-8') println "${text}: ${theBytes.encodeHex()} --> ${reparse}" } println "Wrong Encoding" println "Wrong Encoding".replaceAll(/./,'=') testWrongEncoding('Happy New Year!') testWrongEncoding('¡Feliz Año Nuevo!') testWrongEncoding('新年あけましておめでとうございます!') testWrongEncoding('KYPHON® Balloon Kyphoplasty') This is the result Wrong Encoding ============== Happy New Year!: 4861707079204e6577205965617221 --> Happy New Year! ¡Feliz Año Nuevo!: a146656c697a2041f16f204e7565766f21 --> �Feliz A�o Nuevo! 新年あけましておめでとうございます!: 3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f --> ?????????????????? KYPHON® Balloon Kyphoplasty: 4b5950484f4eae2042616c6c6f6f6e204b7970686f706c61737479 --> KYPHON� Balloon Kyphoplasty As you can see, there will be problems in parsing the string into UTF-8. This is what happens when another system uses a different encoding and we parse it using UTF-8. Why UTF-8 You might already have guessed why we use UTF. It's because UTF can support all major characters we are likely to run into. But why UTF-8 in specific? Because UTF-8 is the most compressed for the typical inputs we receive. Other Charsets supported by the Java Runtime [Big5, Big5-HKSCS, EUC-JP, EUC-KR, GB18030, GB2312, GBK, IBM-Thai, IBM00858, IBM01140, IBM01141, IBM01142, IBM01143, IBM01144, IBM01145, IBM01146, IBM01147, IBM01148, IBM01149, IBM037, IBM1026, IBM1047, IBM273, IBM277, IBM278, IBM280, IBM284, IBM285, IBM297, IBM420, IBM424, IBM437, IBM500, IBM775, IBM850, IBM852, IBM855, IBM857, IBM860, IBM861, IBM862, IBM863, IBM864, IBM865, IBM866, IBM868, IBM869, IBM870, IBM871, IBM918, ISO-2022-CN, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-KR, ISO-8859-1, ISO-8859-13, ISO-8859-15, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, JIS_X0201, JIS_X0212-1990, KOI8-R, KOI8-U, Shift_JIS, TIS-620, US-ASCII, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF-8, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, windows-31j, x-Big5-HKSCS-2001, x-Big5-Solaris, x-COMPOUND_TEXT, x-euc-jp-linux, x-EUC-TW, x-eucJP-Open, x-IBM1006, x-IBM1025, x-IBM1046, x-IBM1097, x-IBM1098, x-IBM1112, x-IBM1122, x-IBM1123, x-IBM1124, x-IBM1364, x-IBM1381, x-IBM1383, x-IBM33722, x-IBM737, x-IBM833, x-IBM834, x-IBM856, x-IBM874, x-IBM875, x-IBM921, x-IBM922, x-IBM930, x-IBM933, x-IBM935, x-IBM937, x-IBM939, x-IBM942, x-IBM942C, x-IBM943, x-IBM943C, x-IBM948, x-IBM949, x-IBM949C, x-IBM950, x-IBM964, x-IBM970, x-ISCII91, x-ISO-2022-CN-CNS, x-ISO-2022-CN-GB, x-iso-8859-11, x-JIS0208, x-JISAutoDetect, x-Johab, x-MacArabic, x-MacCentralEurope, x-MacCroatian, x-MacCyrillic, x-MacDingbat, x-MacGreek, x-MacHebrew, x-MacIceland, x-MacRoman, x-MacRomania, x-MacSymbol, x-MacThai, x-MacTurkish, x-MacUkraine, x-MS932_0213, x-MS950-HKSCS, x-MS950-HKSCS-XP, x-mswin-936, x-PCK, x-SJIS_0213, x-UTF-16LE-BOM, X-UTF-32BE-BOM, X-UTF-32LE-BOM, x-windows-50220, x-windows-50221, x-windows-874, x-windows-949, x-windows-950, x-windows-iso2022jp] On Jan 14, 2014, at 1:40 PM, Ian Vowles <Ian...@he...> wrote: > I have encountered some issues with character sets, although not to the extent Tom is dealing with. > > Rahul's comment about the character sets at each end is something I have encountered, and I will add that on the UNIX platforms I have dealt with, the base character set is NOT configured to UTF-8, which adds another layer at which there can be differing interpretations. > > My experience has made me cautious, particularly where Microsoft based systems send to a UNIX based system which transforms and sends on to another Microsoft system. Since the base character set interpretation effectively changes at each boundary, loss of 'special' characters is likely. Many a time I have seen the ?, and seldom have I been able to prevent it's appearance. Pasting reports from MS-Word is particularly fraught. > > During my search I found several Wiki's and sites discussing the history of character sets and the growth of UTF-xx. What a revelation that is! > > Thanks for the example message, and the advice about MSH-18. I will be saving that away for further use. > > Ian > > >>> Rahul Somasunderam <rs...@ce...> 15/01/14 5:53 >>> > That is a sign of not having the same charset on both ends. > In the MSH segment, I recall there are some restrictions that require you to stay within ASCII 7 bit. The other segments can be any charset you choose. > > > On Jan 14, 2014, at 11:27 AM, Tom Wilson <tw...@su...> wrote: > >> After some research, I have answered my own question. If no character set is defined in MSH-18, then the default is single byte printable ASCII (decimal 32-127). >> >> If anyone is interested, I am attaching a test ORU file which includes a full set of UTF-8 characters, above and beyond what is supported. You can trim it to use this in your tests, or test a more extensive UTF-8 support if you like. >> >> -tom >> >> >> From: Tom Wilson [mailto:tw...@su...] >> Sent: Tuesday, January 14, 2014 10:27 AM >> To: hl7...@li... >> Subject: [HAPI-devel] UTF-8 support, how to define and test? >> Hi. >> I'm in the final testing phase of a HAPI-based application, and I want to define precisely what character encoding it can support. I know the HL7v2 spec defines UTF-8 as the supported character set. However, it looks like it is only supporting a subset of UTF-8. I am testing by ingesting an HL7v2 message in a unit test and serializing to XML. For example, it looks like Simplified Chinese, Vietnamese, Cyrillic, are not supported. >> Sending this in an NTE segment: >> 我能吞下玻璃而不伤身体 >> Produces this on the other end: >> ??????????? >> So, exactly what UTF-8 characters can I expect to work? I also want to create a unit test with a full range of the supported characters. >> It might be nice to support other languages, but I don't know if I can expect to receive them from EMR systems. >> Thanks in advance, >> -tom >> <complete-utf8-set.oru>------------------------------------------------------------------------------ >> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >> Learn Why More Businesses Are Choosing CenturyLink Cloud For >> Critical Workloads, Development Environments & Everything In Between. >> Get a Quote or Start a Free Trial Today. >> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&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. > > ********************************************************************************** > > ------------------------------------------------------------------------------ > CenturyLink Cloud: The Leader in Enterprise Cloud Services. > Learn Why More Businesses Are Choosing CenturyLink Cloud For > Critical Workloads, Development Environments & Everything In Between. > Get a Quote or Start a Free Trial Today. > http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk_______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel |
From: Ian V. <Ian...@he...> - 2014-01-14 21:56:54
|
I have encountered some issues with character sets, although not to the extent Tom is dealing with. Rahul's comment about the character sets at each end is something I have encountered, and I will add that on the UNIX platforms I have dealt with, the base character set is NOT configured to UTF-8, which adds another layer at which there can be differing interpretations. My experience has made me cautious, particularly where Microsoft based systems send to a UNIX based system which transforms and sends on to another Microsoft system. Since the base character set interpretation effectively changes at each boundary, loss of 'special' characters is likely. Many a time I have seen the ?, and seldom have I been able to prevent it's appearance. Pasting reports from MS-Word is particularly fraught. During my search I found several Wiki's and sites discussing the history of character sets and the growth of UTF-xx. What a revelation that is! Thanks for the example message, and the advice about MSH-18. I will be saving that away for further use. Ian >>> Rahul Somasunderam <rs...@ce...> 15/01/14 5:53 >>> That is a sign of not having the same charset on both ends. In the MSH segment, I recall there are some restrictions that require you to stay within ASCII 7 bit. The other segments can be any charset you choose. On Jan 14, 2014, at 11:27 AM, Tom Wilson <tw...@su...> wrote: After some research, I have answered my own question. If no character set is defined in MSH-18, then the default is single byte printable ASCII (decimal 32-127). If anyone is interested, I am attaching a test ORU file which includes a full set of UTF-8 characters, above and beyond what is supported. You can trim it to use this in your tests, or test a more extensive UTF-8 support if you like. -tom From: Tom Wilson [mailto:tw...@su...] Sent: Tuesday, January 14, 2014 10:27 AM To: hl7...@li... Subject: [HAPI-devel] UTF-8 support, how to define and test? Hi. I’m in the final testing phase of a HAPI-based application, and I want to define precisely what character encoding it can support. I know the HL7v2 spec defines UTF-8 as the supported character set. However, it looks like it is only supporting a subset of UTF-8. I am testing by ingesting an HL7v2 message in a unit test and serializing to XML. For example, it looks like Simplified Chinese, Vietnamese, Cyrillic, are not supported. Sending this in an NTE segment: 我能吞下玻璃而不伤身体 Produces this on the other end: ??????????? So, exactly what UTF-8 characters can I expect to work? I also want to create a unit test with a full range of the supported characters. It might be nice to support other languages, but I don’t know if I can expect to receive them from EMR systems. Thanks in advance, -tom <complete-utf8-set.oru>------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&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: Rahul S. <rs...@ce...> - 2014-01-14 20:08:25
|
That is a sign of not having the same charset on both ends. In the MSH segment, I recall there are some restrictions that require you to stay within ASCII 7 bit. The other segments can be any charset you choose. On Jan 14, 2014, at 11:27 AM, Tom Wilson <tw...@su...> wrote: > After some research, I have answered my own question. If no character set is defined in MSH-18, then the default is single byte printable ASCII (decimal 32-127). > > If anyone is interested, I am attaching a test ORU file which includes a full set of UTF-8 characters, above and beyond what is supported. You can trim it to use this in your tests, or test a more extensive UTF-8 support if you like. > > -tom > > > From: Tom Wilson [mailto:tw...@su...] > Sent: Tuesday, January 14, 2014 10:27 AM > To: hl7...@li... > Subject: [HAPI-devel] UTF-8 support, how to define and test? > > Hi. > > I’m in the final testing phase of a HAPI-based application, and I want to define precisely what character encoding it can support. I know the HL7v2 spec defines UTF-8 as the supported character set. However, it looks like it is only supporting a subset of UTF-8. I am testing by ingesting an HL7v2 message in a unit test and serializing to XML. For example, it looks like Simplified Chinese, Vietnamese, Cyrillic, are not supported. > > Sending this in an NTE segment: > 我能吞下玻璃而不伤身体 > > Produces this on the other end: > ??????????? > > So, exactly what UTF-8 characters can I expect to work? I also want to create a unit test with a full range of the supported characters. > > It might be nice to support other languages, but I don’t know if I can expect to receive them from EMR systems. > > Thanks in advance, > > -tom > > <complete-utf8-set.oru>------------------------------------------------------------------------------ > CenturyLink Cloud: The Leader in Enterprise Cloud Services. > Learn Why More Businesses Are Choosing CenturyLink Cloud For > Critical Workloads, Development Environments & Everything In Between. > Get a Quote or Start a Free Trial Today. > http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk_______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel |
From: James A. <ja...@ja...> - 2014-01-14 19:49:47
|
Hi Tom, HAPI uses Java's underlying support for UTF-8 (and any other charsets) and I've never heard any reports that it was missing any support for specific subsets of that encoding. Is there any way that you could package your unit test up into something that could be shared? Cheers, James On Tue, Jan 14, 2014 at 1:26 PM, Tom Wilson <tw...@su...> wrote: > Hi. > > > > I’m in the final testing phase of a HAPI-based application, and I want to > define precisely what character encoding it can support. I know the HL7v2 > spec defines UTF-8 as the supported character set. However, it looks like > it is only supporting a subset of UTF-8. I am testing by ingesting an HL7v2 > message in a unit test and serializing to XML. For example, it looks like > Simplified Chinese, Vietnamese, Cyrillic, are not supported. > > > > Sending this in an NTE segment: > > 我能吞下玻璃而不伤身体 > > > > Produces this on the other end: > > ??????????? > > > > So, exactly what UTF-8 characters can I expect to work? I also want to > create a unit test with a full range of the supported characters. > > > > It might be nice to support other languages, but I don’t know if I can > expect to receive them from EMR systems. > > > > Thanks in advance, > > > > -tom > > > > > ------------------------------------------------------------------------------ > CenturyLink Cloud: The Leader in Enterprise Cloud Services. > Learn Why More Businesses Are Choosing CenturyLink Cloud For > Critical Workloads, Development Environments & Everything In Between. > Get a Quote or Start a Free Trial Today. > > http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > |
From: Tom W. <tw...@su...> - 2014-01-14 18:26:38
|
Hi. I’m in the final testing phase of a HAPI-based application, and I want to define precisely what character encoding it can support. I know the HL7v2 spec defines UTF-8 as the supported character set. However, it looks like it is only supporting a subset of UTF-8. I am testing by ingesting an HL7v2 message in a unit test and serializing to XML. For example, it looks like Simplified Chinese, Vietnamese, Cyrillic, are not supported. Sending this in an NTE segment: 我能吞下玻璃而不伤身体 Produces this on the other end: ??????????? So, exactly what UTF-8 characters can I expect to work? I also want to create a unit test with a full range of the supported characters. It might be nice to support other languages, but I don’t know if I can expect to receive them from EMR systems. Thanks in advance, -tom |
From: James A. <ja...@ja...> - 2014-01-13 18:15:05
|
Hi Tom, Is your client application holding onto the same connection? That error suggests that the client at least has a connection (since you'd get an IOException if it was trying but failing to connect to the server), which suggests that it's trying to use a connection it already has but failing for some reason. One possibility would be that something on your network (e.g. a firewall) is closing the connection but not notifying your client. I've seen that particular issue before.. When this happens, are you able to send a message to the server using a different application? (i.e. HAPI TestPanel, or 7Edit) Cheers, James On Mon, Jan 13, 2014 at 11:39 AM, Tom Wilson <tw...@su...> wrote: > It looks like the server is simply not accepting new connections, like > it is no longer listening on the port. > > > > Like I said, it works fine for most of the day, the problem is when I > leave it overnight and try to establish a new connection in the morning. > Nothing is written to the server logs, the client connection times out. > > > > I bumped up the log level to DEBUG, but there isn’t anything in the logs > about failed connections or any error related to message processing. > > > > I can’t deliver this software if it won’t run more than a few hours, and > I’m baffled as to where to look next. > > > > -tom > > > > *From:* Sreenath Gadipally [mailto:Sre...@ma...] > *Sent:* Thursday, January 09, 2014 8:42 AM > *To:* Christian Ohr; Tom Wilson > *Cc:* hl7...@li... > *Subject:* RE: [HAPI-devel] My HAPI server stops accepting connections > > > > Why we get timeout issues in hapi everytime when we access the appl > > > > Thanks & Regards > > Sreenath > > > > *From:* Christian Ohr [mailto:chr...@gm...<chr...@gm...>] > > *Sent:* 09 January 2014 22:07 > *To:* Tom Wilson > *Cc:* hl7...@li... > *Subject:* Re: [HAPI-devel] My HAPI server stops accepting connections > > > > The error your client is producing simply says that it did not get a > response that matches the control ID of the message sent away. > > I can only guess about the reasons... Was the physical connection still > present? Did the server side (i.e. ORU_R01_ReceivingApplication) respond > within the timeout time frame (like 30s)? And if not, why? Did it receive > the request at all? Maybe setting the log level to DEBUG can help, too.... > > regards > Christian > > > > 2014/1/7 Tom Wilson <tw...@su...> > > Help! > > > > I implemented a HAPI server according to the example: > > > > server = > DirectHapiContext.getHapiContext().newServer(LISTENER_PORT, > > USE_TLS); > > ORU_R01_ReceivingApplication handler = *new*ORU_R01_ReceivingApplication(); > > handler.setHl7Queue(hl7Queue ); > > server.registerApplication("ORU", "R01", handler); > > server.registerConnectionListener(*new*ORU_R01_ConnectionListener()); > > server.setExceptionHandler(*new*ORU_R01_ExceptionHandler()); > > > > *try* { > > server.startAndWait(); > > } *catch* (InterruptedException e) { > > LOG.error("Startup interrupted!", e); > > } > > > > > > It works great, but after leaving it running overnight, when I come back > in the morning it will not accept connections. The client produces this > error: > > > > *ca.uhn.hl7v2.HL7Exception*: Timeout waiting for response to message with > control ID 20131216123844000002 > > > > I don’t see anything in the logs that would indicate where the problem is. > How do I troubleshoot this? > > > > -tom > > > > ------------------------------------------------------------------------------ > Rapidly troubleshoot problems before they affect your business. Most IT > organizations don't have a clear picture of how application performance > affects their revenue. With AppDynamics, you get 100% visibility into your > Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics > Pro! > http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > > > > > MASTEK LTD. > In the US, we're called MAJESCOMASTEK > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Opinions expressed in this e-mail are those of the individual and not that > of Mastek Limited, unless specifically indicated to that effect. Mastek > Limited does not accept any responsibility or liability for it. This e-mail > and attachments (if any) transmitted with it are confidential and/or > privileged and solely for the use of the intended person or entity to which > it is addressed. Any review, re-transmission, dissemination or other use of > or taking of any action in reliance upon this information by persons or > entities other than the intended recipient is prohibited. This e-mail and > its attachments have been scanned for the presence of computer viruses. It > is the responsibility of the recipient to run the virus check on e-mails > and attachments before opening them. If you have received this e-mail in > error, kindly delete this e-mail from desktop and server. > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > ------------------------------------------------------------------------------ > CenturyLink Cloud: The Leader in Enterprise Cloud Services. > Learn Why More Businesses Are Choosing CenturyLink Cloud For > Critical Workloads, Development Environments & Everything In Between. > Get a Quote or Start a Free Trial Today. > > http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > |
From: Tom W. <tw...@su...> - 2014-01-13 16:39:26
|
It looks like the server is simply not accepting new connections, like it is no longer listening on the port. Like I said, it works fine for most of the day, the problem is when I leave it overnight and try to establish a new connection in the morning. Nothing is written to the server logs, the client connection times out. I bumped up the log level to DEBUG, but there isn't anything in the logs about failed connections or any error related to message processing. I can't deliver this software if it won't run more than a few hours, and I'm baffled as to where to look next. -tom From: Sreenath Gadipally [mailto:Sre...@ma...] Sent: Thursday, January 09, 2014 8:42 AM To: Christian Ohr; Tom Wilson Cc: hl7...@li... Subject: RE: [HAPI-devel] My HAPI server stops accepting connections Why we get timeout issues in hapi everytime when we access the appl Thanks & Regards Sreenath From: Christian Ohr [mailto:chr...@gm...] Sent: 09 January 2014 22:07 To: Tom Wilson Cc: hl7...@li...<mailto:hl7...@li...> Subject: Re: [HAPI-devel] My HAPI server stops accepting connections The error your client is producing simply says that it did not get a response that matches the control ID of the message sent away. I can only guess about the reasons... Was the physical connection still present? Did the server side (i.e. ORU_R01_ReceivingApplication) respond within the timeout time frame (like 30s)? And if not, why? Did it receive the request at all? Maybe setting the log level to DEBUG can help, too.... regards Christian 2014/1/7 Tom Wilson <tw...@su...<mailto:tw...@su...>> Help! I implemented a HAPI server according to the example: server = DirectHapiContext.getHapiContext().newServer(LISTENER_PORT, USE_TLS); ORU_R01_ReceivingApplication handler = new ORU_R01_ReceivingApplication(); handler.setHl7Queue(hl7Queue ); server.registerApplication("ORU", "R01", handler); server.registerConnectionListener(new ORU_R01_ConnectionListener()); server.setExceptionHandler(new ORU_R01_ExceptionHandler()); try { server.startAndWait(); } catch (InterruptedException e) { LOG.error("Startup interrupted!", e); } It works great, but after leaving it running overnight, when I come back in the morning it will not accept connections. The client produces this error: ca.uhn.hl7v2.HL7Exception: Timeout waiting for response to message with control ID 20131216123844000002 I don't see anything in the logs that would indicate where the problem is. How do I troubleshoot this? -tom ------------------------------------------------------------------------------ Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk _______________________________________________ Hl7api-devel mailing list Hl7...@li...<mailto:Hl7...@li...> https://lists.sourceforge.net/lists/listinfo/hl7api-devel MASTEK LTD. In the US, we're called MAJESCOMASTEK ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Opinions expressed in this e-mail are those of the individual and not that of Mastek Limited, unless specifically indicated to that effect. Mastek Limited does not accept any responsibility or liability for it. This e-mail and attachments (if any) transmitted with it are confidential and/or privileged and solely for the use of the intended person or entity to which it is addressed. Any review, re-transmission, dissemination or other use of or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. This e-mail and its attachments have been scanned for the presence of computer viruses. It is the responsibility of the recipient to run the virus check on e-mails and attachments before opening them. If you have received this e-mail in error, kindly delete this e-mail from desktop and server. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
From: Sreenath G. <Sre...@ma...> - 2014-01-13 15:37:09
|
Thanks & Regards Sreenath From: James Agnew [mailto:ja...@ja...] Sent: 13 January 2014 21:03 To: g3949 Cc: hl7...@li... Subject: Re: [HAPI-devel] Decode ZPD-3.3 UUencode Hi GGK, I've never seen anyone use UUEncoding inside an HL7 message (Base64 is the way I've generally seen people solve this problem) but it should be possible. Your problem is definitely that the first line of a UUEncoded string needs to be in the form begin <mode> <filename><newline> You have all of that in your string except the newline. That may be what the string "x0Dx" is representing.. You would need to convert that to a newline, but also be careful since that string could also appear in the UUEncoded text. James On Mon, Jan 13, 2014 at 3:14 AM, g3949 <g3...@ya...<mailto:g3...@ya...>> wrote: Now I have the Problem, do decode a ZPD-3.3 Segement which is UUDecoded. Example: ZPD|1|PDF|14627^20675^begin 644 pdf1.pdfx0Dx0A\M)5!$1BTQ+C,-"B7BX\E_3#0H-"C.... end Decode the segement, I alway get the Errof: sun.misc.CEFormatException: UUDecoder: No begin line. Does anybody hab som Ideas? GGK ------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk _______________________________________________ Hl7api-devel mailing list Hl7...@li...<mailto:Hl7...@li...> https://lists.sourceforge.net/lists/listinfo/hl7api-devel MASTEK LTD. In the US, we're called MAJESCOMASTEK ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Opinions expressed in this e-mail are those of the individual and not that of Mastek Limited, unless specifically indicated to that effect. Mastek Limited does not accept any responsibility or liability for it. This e-mail and attachments (if any) transmitted with it are confidential and/or privileged and solely for the use of the intended person or entity to which it is addressed. Any review, re-transmission, dissemination or other use of or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. This e-mail and its attachments have been scanned for the presence of computer viruses. It is the responsibility of the recipient to run the virus check on e-mails and attachments before opening them. If you have received this e-mail in error, kindly delete this e-mail from desktop and server. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
From: James A. <ja...@ja...> - 2014-01-13 15:33:48
|
Hi GGK, I've never seen anyone use UUEncoding inside an HL7 message (Base64 is the way I've generally seen people solve this problem) but it should be possible. Your problem is definitely that the first line of a UUEncoded string needs to be in the form begin <mode> <filename><newline> You have all of that in your string except the newline. That may be what the string "x0Dx" is representing.. You would need to convert that to a newline, but also be careful since that string could also appear in the UUEncoded text. James On Mon, Jan 13, 2014 at 3:14 AM, g3949 <g3...@ya...> wrote: > Now I have the Problem, do decode a ZPD-3.3 Segement which is UUDecoded. > > Example: > ZPD|1|PDF|14627^20675^begin 644 > pdf1.pdfx0Dx0A\M)5!$1BTQ+C,-"B7BX\E_3#0H-"C.... end > > Decode the segement, I alway get the Errof: > > sun.misc.CEFormatException: UUDecoder: No begin line. > > > Does anybody hab som Ideas? > > GGK > > > ------------------------------------------------------------------------------ > CenturyLink Cloud: The Leader in Enterprise Cloud Services. > Learn Why More Businesses Are Choosing CenturyLink Cloud For > Critical Workloads, Development Environments & Everything In Between. > Get a Quote or Start a Free Trial Today. > > http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > |