From: Phillip T. <ptr...@in...> - 2003-08-31 18:24:46
|
I am having some problems with Terser and am not quite sure if they're related to usage or are HAPI bugs (or a combination of both). Here is a simple class that illustrates some of the problems I am having: String msg = "MSH|^~\\&|POW|100||100|200012171800||RDE^O11|14718|P|2.4|||AL|NE|0\r" + "PID|0001|99999|2000006|000077777|Possible^Kim^||195002220000|F||1|100 E San Marcos Blvd^^San Marcos^CA^92069^USA^^^San Diego|||||M||2000006|123-45-6789|A0012345^CA||1|||||||||\r" + "ORC|NW|RX1|RX1||IP||^BID^X001^200012171800^200308200600|2045&OE^123&PH|2000 12171800|Nurse1|Nurse2|1^Order MD|||200012171800||||\r" + "RXE|^BID^X001^200012171800^200308200600|99089^DIGOXIN (LANOXIN) -- 0.25 mg|0.2500|0.2500|mg|TA|111^||||||||||||||222^||||0.0000|||||\r" + "RXR|PO||\r"; PipeParser pipeParser = new PipeParser(); Message message = pipeParser.parse(msg); Terser terser = new Terser(message); String value = terser.get("/.ORC-2"); // works value = terser.get("/RDE_O11_ORC*/RDE_O11_RXR/RXR-1"); // works value = terser.get("/*RDE_O11_ORC/RDE_O11_RXR/RXR-1"); // works value = terser.get("/*RDE_O11_ORC/RXE-1-2"); // works value = terser.get("/.RXE-1-2"); // yields HL7Exception: End of message reached -- this is a peer to ORC, which does work with same syntax value = terser.get("/.RXR-1"); // yields "null" instead of "PO" value = terser.get("/.RDE_O11_RXR/RXR-1"); // yields "null" instead of "PO" value = terser.get("/RDE_O11_ORC*/.RXR(0)-1"); // yields "null" instead of "PO" value = terser.get("/RDE_O11_ORC*/.RXR-1"); // yields "null" instead of "PO" value = terser.get("/RDE_O11_ORC*/*/RXR-1"); // yields NoSuchElementException value = terser.get("/*/RDE_O11_RXR/RXR-1"); // yields NoSuchElementException System.out.println("value = " + value); In a nutshell, as long as I use a "fully qualified" path to the target component, everything works great. When I start trying to use the searching and substring features, I run into problems. Any suggestions? Thanks. Phil |