Hi,

regarding the two examples mentioned:

1. ADT_A17 in fact is a message structure which contains a duplicated
sequence of segments. The specified abstract message syntax is:

MSH
[  {  SFT  }  ]  
EVN
PID
[  PD1  ]  
PV1
[  PV2  ]  
[  {  DB1  }  ]  
[  {  OBX  }  ]  
PID
[  PD1  ]  
PV1
[  PV2  ]  
[  {  DB1  }  ]  
[  {  OBX  }  ]  

The first segment sequence references patient 1, the second sequence
references patient 2.
For a lib like HAPI it's hard to distinguish these segments except for in
fact renaming the segment. IMHO the specification is broken here (same e.g.
with ADT_A24) - there should be two groups (or a repeatable group)
containing the segment sequence so one could properly navigate to the
desired segment.

2. Speaking of groups: as of HL7v2.3.1, message groups are used to solve
problems like the one described above. A group contains substructures
(segments or nested groups), and has its own cardinality (i.e. a group can
be optional or repeating). Mostly for compatibility reasons, you cannot
"see" a group directly in a HL7 text message, but once you parse it, the
created HAPI object graph reflects the specified structure of the message.
So if you want a textual comparison of messages, you need to compare the
text messages (without HAPI). If you want to verify the message against a
custom specification, HL7 conformance profiles might be an option. Maybe you
can be more concrete here for better advise.

cheers
Christian


Ian Vowles wrote:
> 
> First, please understand I am far from a HAPI expert.  I am learning
> myself, and watch the list for questions that may help me improve my
> understanding.
>  
> I suspect that some of what you are seeing is the need to get a java
> language construct to reflect the standard as well as it possibly can,
> but it's hard to be perfect. Some decisions may be made for the
> convenience of people using the tool.  Your first point, the use of PID
> and PID2 is possibly an example of naming for convenience of using the
> structure, such that the two PIDs can be easily distinguished.
>  
> With regard to you second point, my memory of the structures is
> notoriously bad, so I went to a copy of the 2.3.1 vs I have on hand, and
> the group structure you mention is shown in the standard. So it is
> possible to have repeating PID, PD1, MRG and PV1 group in this message. 
> Never seen that happen, but it's permitted.
>  
> I'm sorry that this is not really helpful in assisting you sort out the
> validation. Hopefully once you have identified what the HAPI
> implementation is doing with some of the tricky ones, it will be
> possible to identify in the code where this happens, and allow for the
> HAPI implementation differences.
>  
> Ian
> 
> 
>>>> <melissa.ra...@thomsonreuters.com> 26/09/11 23:06 >>>
> 
> We are trying to validate the structure of an HL7 message at runtime by
> comparing the Segment names and their respective order with the
> structure implicit the messages corresponding structure.  We do this by
> comparing an ordered List of segments derived from a deep call to
> getNames() method of the Message with HAPI*s ReadOnlyMessageIterator
> that collects the actual segments from the message.  What we have found
> is that with Merge events the structure names are different than the
> actual segments used in the message.
>  
> 2 Examples:  
> 1.       a HAPI ADT_A17 names it*s 2nd PID as *PID2* while the HL7 spec
> simply has 2 PIDs in the message
> 2.       For merge events certain segments are derived from a group,
> such as an A39 which gets the PID from the PATIENT group. The actual HL7
> for an A39 however does not reflect this group structure.
>  
> Are there any recommendations for getting around this?  Thanks.
>  
> ----------------------
> Melissa Rabin | Senior Software Engineer | Healthcare & Science |
> Thomson Reuters| W 215 463 4461 | M 267 271 2227 
>  
> 
> ********************************************************************************
> 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.
> **********************************************************************************
> 
> 
> ------------------------------------------------------------------------------
> All the data continuously generated in your IT infrastructure contains a
> definitive record of customers, application performance, security
> threats, fraudulent activity and more. Splunk takes this data and makes
> sense of it. Business sense. IT sense. Common sense.
> http://p.sf.net/sfu/splunk-d2dcopy1
> _______________________________________________
> Hl7api-devel mailing list
> Hl7api-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hl7api-devel
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Structural-comparison-of-HL7-Messages-tp32540286p32548306.html
Sent from the hl7api-devel mailing list archive at Nabble.com.


------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
Hl7api-devel mailing list
Hl7api-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hl7api-devel

Reply via email to