From: James A. <ja...@ja...> - 2014-10-14 21:55:10
|
Hi Tim, Strangely I'm not seeing the same behaviour when I created a unit test to try this out. Do you see the same results with the following? @Test public void testEncodeDoesntChangeStructure() throws HL7Exception { String message = "MSH|^~\\&|SYSTEM|XXX|CLOVERLEAF|XXX|20141001170652|RISTECH|ORM^O01|1262|T|2.4|||||||||\r" + "PID|1||1234567^^^XXX^PI~100000000^^^NLMINBIZA^NNNLD||TEST&&TEST^T^^^^^L||19761201|M|TEST^^^||STREET 10&STREET&10^^CITY^^1234^NLD^M||^PRN^PH^^31|^WPN^PH^^31||||14205|188780348|||||||||||||\r" + "PD1||||||||||||||||||\r" + "PV1||||||||1106199999^GENERAL^SPECIALIST^^^^^^VEKTIS^^^^NPI|||||||||||14205|||||||||||||||||||||||||20141001152757|||||||V\r" + "ORC|NW|66955^EPC|743||Arrived||^^^20141001130500^^R||20141001170652|RISTECH^RADIOLOGY^TECHNOLOGIST.^^||1106199999^GENERAL^SPECIALIST^^^^^^VEKTIS^^^^NPI|101001103^^^101001^^^^^NUCLEAR MEDICINE||||||||||||||||I|\r" + "OBR|1|66955^EPC|743|^^^1052000729^DMSA UPTAKESCAN^L|R|20141001152757||||||||||1106199999^GENERAL^SPECIALIST^^^^^^VEKTIS^^^^NPI||743|743|E32||||NM|Arrived||^^^20141001130500^^R||||^test|||||20141001130500||||||||^^^1052000729^DMSA UPTAKE SCAN^L|\r" + "ORC|NW|66955^EPC|743||Planned||^^^20141001110500^^R||20141001170652|RISTECH^RADIOLOGY^TECHNOLOGIST.^^||1106199999^GENERAL^SPECIALIST^^^^^^VEKTIS^^^^NPI|101001103^^^101001^^^^^NUCLEAR MEDICINE||||||||||||||||I|\r" + "OBR|1|66955^EPC|743|^^^1052000728^INJECTION DMSA^L|R|20141001152757||||||||||1106199999^GENERAL^SPECIALIST^^^^^^VEKTIS^^^^NPI||743|743|E33||||NM|Planned||^^^20141001110500^^R||||^test|||||20141001110500||||||||^^^1052000728^INJECTION DMSA^L|\r" + "OBX|1|ST|WEIGHT^Weight patient (kg):||70|KG\r" + "OBX|2|ST|LENGTH^Length patient (cm):||180|CM\r"; ca.uhn.hl7v2.model.v24.message.ORM_O01 orm = new ca.uhn.hl7v2.model.v24.message.ORM_O01(); orm.parse(message); message.toString(); ourLog.info(orm.printStructure()); int orderCount = orm.getORDERReps(); for (int i = 0; i < orderCount; i++) { ourLog.info("order("+i+") #OBX : " + orm.getORDER(i).getORDER_DETAIL().getOBSERVATIONReps()); if (i == 0) { assertEquals(0, orm.getORDER(i).getORDER_DETAIL().getOBSERVATIONReps()); } if (i == 1) { assertEquals(2, orm.getORDER(i).getORDER_DETAIL().getOBSERVATIONReps()); } } } On Tue, Oct 14, 2014 at 4:45 AM, Tim de Wit <t.c...@gm...> wrote: > hi all, > > i'm busy developing an ORM-interface using Hapi v2.2 and encountered some > very strange behaviour when reading out OBX segments from the following > multiple-order ORM_O01 message: > > > MSH|^~\&|SYSTEM|XXX|CLOVERLEAF|XXX|20141001170652|RISTECH|ORM^O01|1262|T|2.4 > ||||||||| > > PID|1||1234567^^^XXX^PI~100000000^^^NLMINBIZA^NNNLD||TEST&&TEST^T^^^^^L||197 > 61201|M|TEST^^^||STREET > > 10&STREET&10^^CITY^^1234^NLD^M||^PRN^PH^^31|^WPN^PH^^31||||14205|188780348|| > ||||||||||| > PD1|||||||||||||||||| > > PV1||||||||1106199999^GENERAL^SPECIALIST^^^^^^VEKTIS^^^^NPI|||||||||||14205| > ||||||||||||||||||||||||20141001152757|||||||V > > ORC|NW|66955^EPC|743||Arrived||^^^20141001130500^^R||20141001170652|RISTECH^ > > RADIOLOGY^TECHNOLOGIST.^^||1106199999^GENERAL^SPECIALIST^^^^^^VEKTIS^^^^NPI| > 101001103^^^101001^^^^^NUCLEAR MEDICINE||||||||||||||||I| > OBR|1|66955^EPC|743|^^^1052000729^DMSA UPTAKE > > SCAN^L|R|20141001152757||||||||||1106199999^GENERAL^SPECIALIST^^^^^^VEKTIS^^ > > ^^NPI||743|743|E32||||NM|Arrived||^^^20141001130500^^R||||^test|||||20141001 > 130500||||||||^^^1052000729^DMSA UPTAKE SCAN^L| > > ORC|NW|66955^EPC|743||Planned||^^^20141001110500^^R||20141001170652|RISTECH^ > > RADIOLOGY^TECHNOLOGIST.^^||1106199999^GENERAL^SPECIALIST^^^^^^VEKTIS^^^^NPI| > 101001103^^^101001^^^^^NUCLEAR MEDICINE||||||||||||||||I| > OBR|1|66955^EPC|743|^^^1052000728^INJECTION > > DMSA^L|R|20141001152757||||||||||1106199999^GENERAL^SPECIALIST^^^^^^VEKTIS^^ > > ^^NPI||743|743|E33||||NM|Planned||^^^20141001110500^^R||||^test|||||20141001 > 110500||||||||^^^1052000728^INJECTION DMSA^L| > OBX|1|ST|WEIGHT^Weight patient (kg):||70|KG > OBX|2|ST|LENGTH^Length patient (cm):||180|CM > > This message contains two orders (2x ORC+OBR), with the first order having > no OBX and the second having two OBX segments. The following code: > > ORM_O01 orm = (ORM_O01) message; > //System.out.println(orm.toString()); > int orderCount = orm.getORDERReps(); > for (int i = 0; i < orderCount; i++) { > System.out.println("order("+i+") #OBX : " + > orm.getORDER(i).getORDER_DETAIL().getOBSERVATIONReps()); > } > > gives the expected output: > order(0) #OBX : 0 > order(1) #OBX : 2 > > However... if i uncomment the .toString() line, i get the following wrong > output: > order(0) #OBX : 1 > order(1) #OBX : 2 > The same thing also happens if i use > "System.out.println(message.toString())" instead. > > Any ideas what i'm doing wrong? > > kind regards, > > Tim de Wit > > > > ------------------------------------------------------------------------------ > Comprehensive Server Monitoring with Site24x7. > Monitor 10 servers for $9/Month. > Get alerted through email, SMS, voice calls or mobile push notifications. > Take corrective actions from your mobile device. > http://p.sf.net/sfu/Zoho > _______________________________________________ > Hl7api-devel mailing list > Hl7...@li... > https://lists.sourceforge.net/lists/listinfo/hl7api-devel > |