|
Hello everybody, i have a problem when parsing OMG_O19 messages containing more than 1 order. I receive this message: MSH|^~\&|SGP-CHMARTIN|SGPUSER|^SOFTO|^SOFTO|20100528095538||OMG^O19^OMG_O19|SGP000000000330385|P|2.5||||||8859/1 PID|1||AAAAAAA^^^^XXXX~XXXXXXXXXXXXXXXX^^^^CF~""^^^^STP~604235050^^^^CS~""^^^^TEAM||PROVA^PROVA^^^^^L||19210102|M|||^^123456^^^^N~&VIA PROVA 7^^123456^^37131^^L~&VIA PROVA 7 B^^023091^^37131^^H||^PRN^PH^^^^^^^^^123-123456|^ORN^PH||||||||||||100 "PV1||O|CUP PV2|||||||||||||||||||||||||5 ORC|NW|201000226094^SGP^CRD^L||201000074242|SC||||20100608115538|CHMARTIN^Martinelli^Chiara|||||20100427000000||CUP||||||||A TQ1|1||||||20100608115500\r" OBR||201000226094^SGP^CRD^L||RTP.255^MANO D.^ESENTEP||||||||||||||019||050090570973173||||||||||D ORC|NW|201000226094^SGP^CRD^L||201000074242|SC||||20100608115538|CHMARTIN^Prova^Prova|||||20100427000000||CUP||||||||A TQ1|1||||||20100608125500 OBR||201000226094^SGP^CRD^L||ECO.324^ADDOME SUP. E INF.^ESENTEP||||||||||||||019||050090570973173||||||||||D I parse this message in the following way, using the API's From HAPI (http://hl7api.sourceforge.net): Message hapiMsg = null; Document hapidoc = null; PipeParser hapiPipeParser = new PipeParser(); DefaultXMLParser xmlparse = new DefaultXMLParser(); try { hapiMsg = hapiPipeParser.parse(omg); hapidoc = xmlparse.encodeDocument(hapiMsg); } catch (EncodingNotSupportedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (HL7Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(toString(hapidoc)); In XML i get the result which is printed at the end of this mail. You can notice that the first ORC segment is a child of the <OMG_O19.ORDER>, while the second ORC has been put in the <OMG_O19.ORDER_PRIOR> group. In Brief, this is what i get. <OMG_O19.ORDER> <ORC> <ORC.1>NW</ORC.1> <ORC.2> <EI.1>201000226094</EI.1> <EI.2>SGP</EI.2> <EI.3>CRD</EI.3> <EI.4>L</EI.4> </ORC.2> </ORC> <OMG_O19.ORDER_PRIOR> <ORC> <ORC.1>NW</ORC.1> <ORC.2> <EI.1>201000226094</EI.1> <EI.2>SGP</EI.2> I think this is actually correct., because the parser cannot know where exactly he has to put those segments. But now the question is: how should i write the RAILTRACK message if i want to obtain the following XML Structure? I do not need the <OMG_O19.PRIOR_RESULT> groups, but i need to send more orders in the same message. Here an example of what i want: <OMG_O19> <OMG_O19.ORDER> <ORC> <ORC.1>NW</ORC.1> <ORC.2> <EI.1>201000226094</EI.1> <EI.2>SGP</EI.2> <EI.3>CRD</EI.3> <EI.4>L</EI.4> </ORC.2> </OMG_O19.ORDER> <OMG_O19.ORDER> <ORC> <ORC.1>NW</ORC.1> <ORC.2> <EI.1>201000226094</EI.1> <EI.2>SGP</EI.2> <EI.3>CRD</EI.3> <EI.4>L</EI.4> </ORC.2> </OMG_O19.ORDER> <OMG_O19> Is there a way to write the message so that i can obtain this result?? Greetings, Fabio Daprile Here the full result i get actually: <OMG_O19> <MSH> <MSH.1>|</MSH.1> <MSH.2>^~\&</MSH.2> <MSH.3> <HD.1>SGP-CHMARTIN</HD.1> </MSH.3> <MSH.4> <HD.1>SGPUSER</HD.1> </MSH.4> <MSH.5> <HD.2>SOFTO</HD.2> </MSH.5> <MSH.6> <HD.2>SOFTO</HD.2> </MSH.6> <MSH.7> <TS.1>20100528095538</TS.1> </MSH.7> <MSH.9> <MSG.1>OMG</MSG.1> <MSG.2>O19</MSG.2> <MSG.3>OMG_O19</MSG.3> </MSH.9> <MSH.10>SGP000000000330385</MSH.10> <MSH.11> <PT.1>P</PT.1> </MSH.11> <MSH.12> <VID.1>2.5</VID.1> </MSH.12> <MSH.18>8859/1</MSH.18> </MSH> <SFT/> <NTE/> <OMG_O19.PATIENT> <PID> <PID.1>1</PID.1> <PID.3> <CX.1>AAAAAAAAA</CX.1> <CX.5>XXXX</CX.5> </PID.3> <PID.3> <CX.1>XXXXXXXXXXXXXXXX</CX.1> <CX.5>CF</CX.5> </PID.3> <PID.3> <CX.1>""</CX.1> <CX.5>STP</CX.5> </PID.3> <PID.3> <CX.1>123456789</CX.1> <CX.5>CS</CX.5> </PID.3> <PID.3> <CX.1>""</CX.1> <CX.5>TEAM</CX.5> </PID.3> <PID.5> <XPN.1> <FN.1>PROVA</FN.1> </XPN.1> <XPN.2>PROVA</XPN.2> <XPN.7>L</XPN.7> </PID.5> <PID.7> <TS.1>19210102</TS.1> </PID.7> <PID.8>M</PID.8> <PID.11> <XAD.3>123456</XAD.3> <XAD.7>N</XAD.7> </PID.11> <PID.11> <XAD.1> <SAD.2>VIA PROVA 7</SAD.2> </XAD.1> <XAD.3>123456</XAD.3> <XAD.5>12345</XAD.5> <XAD.7>L</XAD.7> </PID.11> <PID.11> <XAD.1> <SAD.2>VIA PROVA 7 B</SAD.2> </XAD.1> <XAD.3>123456</XAD.3> <XAD.5>12345</XAD.5> <XAD.7>H</XAD.7> </PID.11> <PID.13> <XTN.2>PRN</XTN.2> <XTN.3>PH</XTN.3> <XTN.12>123 -123456</XTN.12> </PID.13> <PID.14> <XTN.2>ORN</XTN.2> <XTN.3>PH</XTN.3> </PID.14> <PID.26> <CE.1>100</CE.1> </PID.26> </PID> <PD1/> <NTE/> <NK1/> <OMG_O19.PATIENT_VISIT> <PV1> <PV1.2>O</PV1.2> <PV1.3> <PL.1>CUP</PL.1> </PV1.3> </PV1> <PV2> <PV2.25>5</PV2.25> </PV2> </OMG_O19.PATIENT_VISIT> <OMG_O19.INSURANCE> <IN1/> <IN2/> <IN3/> </OMG_O19.INSURANCE> <GT1/> <AL1/> </OMG_O19.PATIENT> <OMG_O19.ORDER> <ORC> <ORC.1>NW</ORC.1> <ORC.2> <EI.1>201000226094</EI.1> <EI.2>SGP</EI.2> <EI.3>CRD</EI.3> <EI.4>L</EI.4> </ORC.2> <ORC.4> <EI.1>201000074242</EI.1> </ORC.4> <ORC.5>SC</ORC.5> <ORC.9> <TS.1>20100608115538</TS.1> </ORC.9> <ORC.10> <XCN.1>CHMARTIN</XCN.1> <XCN.2> <FN.1>Prova</FN.1> </XCN.2> <XCN.3>Prova</XCN.3> </ORC.10> <ORC.15> <TS.1>20100427000000</TS.1> </ORC.15> <ORC.17> <CE.1>CUP</CE.1> </ORC.17> <ORC.25> <CWE.1>A</CWE.1> </ORC.25> </ORC> <OMG_O19.TIMING> <TQ1> <TQ1.1>1</TQ1.1> <TQ1.7> <TS.1>20100608115500</TS.1> </TQ1.7> </TQ1> <TQ2/> </OMG_O19.TIMING> <OBR> <OBR.2> <EI.1>201000226094</EI.1> <EI.2>SGP</EI.2> <EI.3>CRD</EI.3> <EI.4>L</EI.4> </OBR.2> <OBR.4> <CE.1>RTP.255</CE.1> <CE.2>MANO D.</CE.2> <CE.3>ESENTEP</CE.3> </OBR.4> <OBR.18>019</OBR.18> <OBR.20>050090570973173</OBR.20> <OBR.30>D</OBR.30> </OBR> <NTE/> <CTD/> <DG1/> <OMG_O19.OBSERVATION> <OBX/> <NTE/> </OMG_O19.OBSERVATION> <OMG_O19.SPECIMEN> <SPM/> <OBX/> <OMG_O19.CONTAINER> <SAC/> <OBX/> </OMG_O19.CONTAINER> </OMG_O19.SPECIMEN> <OMG_O19.PRIOR_RESULT> <OMG_O19.PATIENT_PRIOR> <PID/> <PD1/> </OMG_O19.PATIENT_PRIOR> <OMG_O19.PATIENT_VISIT_PRIOR> <PV1/> <PV2/> </OMG_O19.PATIENT_VISIT_PRIOR> <AL1/> <OMG_O19.ORDER_PRIOR> <ORC> <ORC.1>NW</ORC.1> <ORC.2> <EI.1>201000226094</EI.1> <EI.2>SGP</EI.2> <EI.3>CRD</EI.3> <EI.4>L</EI.4> </ORC.2> <ORC.4> <EI.1>201000074242</EI.1> </ORC.4> <ORC.5>SC</ORC.5> <ORC.9> <TS.1>20100608115538</TS.1> </ORC.9> <ORC.10> <XCN.1>CHMARTIN</XCN.1> <XCN.2> <FN.1>Prova</FN.1> </XCN.2> <XCN.3>Prova</XCN.3> </ORC.10> <ORC.15> <TS.1>20100427000000</TS.1> </ORC.15> <ORC.17> <CE.1>CUP</CE.1> </ORC.17> <ORC.25> <CWE.1>A</CWE.1> </ORC.25> </ORC> <OBR/> <OMG_O19.TIMING_PRIOR> <TQ1> <TQ1.1>1</TQ1.1> <TQ1.7> <TS.1>20100608125500</TS.1> </TQ1.7> </TQ1> <TQ2/> </OMG_O19.TIMING_PRIOR> <NTE/> <CTD/> <OMG_O19.OBSERVATION_PRIOR> <OBX/> <NTE/> </OMG_O19.OBSERVATION_PRIOR> </OMG_O19.ORDER_PRIOR> <OMG_O19.ORDER_PRIOR> <ORC/> <OBR> <OBR.2> <EI.1>201000226094</EI.1> <EI.2>SGP</EI.2> <EI.3>CRD</EI.3> <EI.4>L</EI.4> </OBR.2> <OBR.4> <CE.1>ECO.324</CE.1> <CE.2>ADDOME SUP. E INF.</CE.2> <CE.3>ESENTEP</CE.3> </OBR.4> <OBR.18>019</OBR.18> <OBR.20>050090570973173</OBR.20> <OBR.30>D</OBR.30> </OBR> </OMG_O19.ORDER_PRIOR> </OMG_O19.PRIOR_RESULT> </OMG_O19.ORDER> </OMG_O19> --
via
Galilei, 2 |
------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________ Hl7api-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/hl7api-devel

