From: Archie C. <ar...@de...> - 2004-08-24 17:30:27
|
Hi, I've just upgraded to 0.4.2 and am encountering some problems. I've also just switched to a new HL7 feed so some of these problems may be related to that switch as well. #1: Infinite loops I'm receiving some ADT^A24 messages that seem to contain no PID segments (which is wrong I think). In any case, they send the HL7 server into an infinite loop when it tries to parse them! See log trace below. Oddly, when I cut & paste the same message into the Message Tester Swing app, it seems to parse it fine. #2: GenericMessage -> XML? Some HL7 messages that aren't fully recognized (?) by HAPI will parse into "ca.uhn.hl7v2.model.GenericMessage$V22" objects. When converting to XML, I get this: org.w3c.dom.DOMException: INVALID_CHARACTER_ERR: An invalid or illegal XML character is specified ... ca.uhn.hl7v2.parser.DefaultXMLParser.encodeDocument(DefaultXMLParser.java:61) ... because it's trying to create an XML tag with the name "GenericMessage$V22" which is illegal because of the "$" character. So is the bug that we just need to use a different name, or is it wrong for me to be trying to XML encode a "GenericMessage$V22" in the first place? In the latter case, should HAPI not even bother trying, and instead preemtively throw some other more informative exception when DefaultXMLParser.encodeDocument() is called with such a message? Any insights greatly appreciated. -Archie __________________________________________________________________________ Archie Cobbs * CTO, Awarix * http://www.awarix.com ... [java] [Thread-6] DEBUG - Parsing segment PID [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PV13(0) for PID? false [java] [Thread-6] INFO - MessageIterator creating new segment: PID [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PID [java] [Thread-6] DEBUG - Loaded: ca.uhn.hl7v2.model.v22.segment.PID class: class ca.uhn.hl7v2.model.v22.segment.PID [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 1 repetition 0 [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 3 repetition 0 [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 5 repetition 0 [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 7 repetition 0 [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 8 repetition 0 [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 10 repetition 0 [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 11 repetition 0 [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 13 repetition 0 [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 14 repetition 0 [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 15 repetition 0 [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 16 repetition 0 [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 17 repetition 0 [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 19 repetition 0 [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 24 repetition 0 [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 27 repetition 0 [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 30 repetition 0 [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 31 repetition 0 [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 0reps delimited by: ~ [java] [Thread-6] DEBUG - 1reps delimited by: ~ [java] [Thread-6] DEBUG - Parsing field 50 repetition 0 [java] [Thread-6] DEBUG - Parsing segment PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PID3(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD12(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD13(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD14(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD15(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD16(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD17(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD18(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD19(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD110(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD111(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD112(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD113(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD114(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD115(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD116(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD117(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD118(0) for PD1? false [java] [Thread-6] INFO - MessageIterator creating new segment: PD1 [java] [Thread-6] DEBUG - Trying to load: ca.uhn.hl7v2.model.v22.segment.PD1 [java] [Thread-6] DEBUG - Match exists after position ADT_A24:PD119(0) for PD1? false ... ad infinitum ... |