From: James A. <jam...@gm...> - 2015-12-07 13:13:28
|
Hi Ian, I turned this into a unit test, and it seems to give me the expected results: String msg = "MSH|^~\\&|HNAM|CL|CL_RADNET|CL|20110628095233||ORU^R01|Q2301030099T1904270849|P|2.4\r" + "PID|1||10011682^^^CL_MRN Pool^^CD:237968946|60683166^^^DONOTSEND^^CD:237968946|CLABTEST^ONE||19500101120000|F||C|34605 W 12 MILE RD^^FARM MILLS^MN^48331-3263^CD:309221^CD:756^^CD:637908|CD:637908|(248)489-6000^CD:170||CD:151|M|CD:3391461|606831661088^^^DONOTSEND^FIN NBR^CD:237968946||||CD:654655774|||0|||CD:654897458\r" + "PV1|1|Inpatient|MS^0414^1^CL^^^MMCCN|3|||5332^Rahiman^Abdul|||MED|MS|||1|||5332^Rahiman^Doctor|A||60|||||||||||||||||||CL||Active|||20110329113000\r" + "ORC|NW|3415770735^HNAM_ORDERID|||RL||||20110628095142|71573^Doctor^Janet^D^^^^^DONOTSEND^^^^COMMUNITY DR NBR~70988^Doctor^Janet^D^^^^^DONOTSEND^^^^Personnel Primary Identifier~FHJDB2293^Doctor^Janet^D^^^^^DONOTSEND^^^^External Identifier~T^Doctor^Janet^D^^^^^DONOTSEND^^^^CD:296695676|||||20110628095231|||CD:2562^Written|71573^Doctor^Janet^D^^^^^DONOTSEND^^^^COMMUNITY DR NBR~70988^Doctor^Janet^D^^^^^DONOTSEND^^^^Personnel Primary Identifier~FHJDB2293^Doctor^Janet^D^^^^^DONOTSEND^^^^External Identifier~T^Doctor^Janet^D^^^^^DONOTSEND^^^^CD:296695676\r" + "OBR|1|3415770735^HNAM_ORDERID||CL987^MRA Head w and w/o Contrast|||||||||||Rad Type&Rad Type|||||00000MR20110001703^HNA_ACCN~8546871^HNA_ACCNID~7515376^HNA_PACSID|CD:232990825|20110628095231||Magnetic Resonance Imaging|||1^^0^20110628095100^^RT||||^Dizziness\r" + "OBX|1|TX|20725^ROUTINE HEMATOLOGY|H7800-4|This~Is~A~Report~~~~~||||||I|||200704021122\r" + "NTE|1|P|Special Instructions-\r"; Parser p = new GenericParser(); Message hapiMsg; // The parse method performs the actual parsing hapiMsg = p.parse(msg); ORU_R01_OBSERVATION obx = ((ORU_R01) hapiMsg).getPATIENT_RESULT(0).getORDER_OBSERVATION(0).getOBSERVATION(0); assertEquals("This", obx.getOBX().getObx5_ObservationValue()[0].encode()); assertEquals("Is", obx.getOBX().getObx5_ObservationValue()[1].encode()); assertEquals("A", obx.getOBX().getObx5_ObservationValue()[2].encode()); assertEquals("Report", obx.getOBX().getObx5_ObservationValue()[3].encode()); assertEquals("", obx.getOBX().getObx5_ObservationValue()[4].encode()); assertEquals("", obx.getOBX().getObx5_ObservationValue()[5].encode()); assertEquals("", obx.getOBX().getObx5_ObservationValue()[6].encode()); assertEquals("", obx.getOBX().getObx5_ObservationValue()[7].encode()); Cheers, James On Mon, Nov 30, 2015 at 10:59 PM, Ian Vowles <Ian...@he...> wrote: > We have been having some trouble with textual OBX-5’s which have repeats > used to indicate each line of a report when some empty repeats exist to > denote empty lines for formatting. > > Is there a way to overcome this? > > The following example demonstrates the problem > > > > Thanks > > Ian > > > > package hapiexamples; > > > > import ca.uhn.hl7v2.HL7Exception; > > import ca.uhn.hl7v2.app.ApplicationException; > > import ca.uhn.hl7v2.model.Message; > > import ca.uhn.hl7v2.model.v24.message.ORU_R01; > > import ca.uhn.hl7v2.parser.GenericParser; > > import ca.uhn.hl7v2.parser.Parser; > > import java.io.IOException; > > > > /** > > * > > * @author VowlesI > > */ > > public class OruR01RepeatsInObx5 { > > > > public static void main(String[] args) throws HL7Exception, > ApplicationException, IOException { > > String msg = > "MSH|^~\\&|HNAM|CL|CL_RADNET|CL|20110628095233||ORU^R01|Q2301030099T1904270849|P|2.4\r" > > + "PID|1||10011682^^^CL_MRN > Pool^^CD:237968946|60683166^^^DONOTSEND^^CD:237968946|CLABTEST^ONE||19500101120000|F||C|34605 > W 12 MILE RD^^FARM > MILLS^MN^48331-3263^CD:309221^CD:756^^CD:637908|CD:637908|(248)489-6000^CD:170||CD:151|M|CD:3391461|606831661088^^^DONOTSEND^FIN > NBR^CD:237968946||||CD:654655774|||0|||CD:654897458\r" > > + > "PV1|1|Inpatient|MS^0414^1^CL^^^MMCCN|3|||5332^Rahiman^Abdul|||MED|MS|||1|||5332^Rahiman^Doctor|A||60|||||||||||||||||||CL||Active|||20110329113000\r" > > + > "ORC|NW|3415770735^HNAM_ORDERID|||RL||||20110628095142|71573^Doctor^Janet^D^^^^^DONOTSEND^^^^COMMUNITY > DR NBR~70988^Doctor^Janet^D^^^^^DONOTSEND^^^^Personnel Primary > Identifier~FHJDB2293^Doctor^Janet^D^^^^^DONOTSEND^^^^External > Identifier~T^Doctor^Janet^D^^^^^DONOTSEND^^^^CD:296695676|||||20110628095231|||CD:2562^Written|71573^Doctor^Janet^D^^^^^DONOTSEND^^^^COMMUNITY > DR NBR~70988^Doctor^Janet^D^^^^^DONOTSEND^^^^Personnel Primary > Identifier~FHJDB2293^Doctor^Janet^D^^^^^DONOTSEND^^^^External > Identifier~T^Doctor^Janet^D^^^^^DONOTSEND^^^^CD:296695676\r" > > + "OBR|1|3415770735^HNAM_ORDERID||CL987^MRA Head w and w/o > Contrast|||||||||||Rad Type&Rad > Type|||||00000MR20110001703^HNA_ACCN~8546871^HNA_ACCNID~7515376^HNA_PACSID|CD:232990825|20110628095231||Magnetic > Resonance Imaging|||1^^0^20110628095100^^RT||||^Dizziness\r" > > + "OBX|1|TX|20725^ROUTINE > HEMATOLOGY|H7800-4|This~Is~A~Report~~~~~||||||I|||200704021122\r" > > + "NTE|1|P|Special Instructions-\r"; > > > > Parser p = new GenericParser(); > > > > Message hapiMsg; > > // The parse method performs the actual parsing > > hapiMsg = p.parse(msg); > > System.out.println("OBX-5 has " + ((ORU_R01) > hapiMsg).getPATIENT_RESULT(0).getORDER_OBSERVATION(0).getOBSERVATION(0).getOBX().getObx5_ObservationValueReps()); > > hapiMsg.parse(hapiMsg.encode()); > > System.out.println("OBX-5 has " + ((ORU_R01) > hapiMsg).getPATIENT_RESULT(0).getORDER_OBSERVATION(0).getOBSERVATION(0).getOBX().getObx5_ObservationValueReps()); > > hapiMsg.parse(hapiMsg.encode()); > > System.out.println("OBX-5 has " + ((ORU_R01) > hapiMsg).getPATIENT_RESULT(0).getORDER_OBSERVATION(0).getOBSERVATION(0).getOBX().getObx5_ObservationValueReps()); > > hapiMsg.parse(hapiMsg.encode()); > > System.out.println("OBX-5 has " + ((ORU_R01) > hapiMsg).getPATIENT_RESULT(0).getORDER_OBSERVATION(0).getOBSERVATION(0).getOBX().getObx5_ObservationValueReps()); > > hapiMsg.parse(hapiMsg.encode()); > > System.out.println("OBX-5 has " + ((ORU_R01) > hapiMsg).getPATIENT_RESULT(0).getORDER_OBSERVATION(0).getOBSERVATION(0).getOBX().getObx5_ObservationValueReps()); > > hapiMsg.parse(hapiMsg.encode()); > > System.out.println("OBX-5 has " + ((ORU_R01) > hapiMsg).getPATIENT_RESULT(0).getORDER_OBSERVATION(0).getOBSERVATION(0).getOBX().getObx5_ObservationValueReps()); > > hapiMsg.parse(hapiMsg.encode()); > > System.out.println("OBX-5 has " + ((ORU_R01) > hapiMsg).getPATIENT_RESULT(0).getORDER_OBSERVATION(0).getOBSERVATION(0).getOBX().getObx5_ObservationValueReps()); > > } > > } > > > ******************************************************************************** > > 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. > > > ********************************************************************************** > > > ------------------------------------------------------------------------------ > Go from Idea to Many App Stores Faster with Intel(R) XDK > Give your users amazing mobile app experiences with Intel(R) XDK. > Use one codebase in this all-in-one HTML5 development environment. > Design, debug & build mobile apps & 2D/3D high-impact games for multiple > OSs. > http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140 > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > > |