In order to set up appropriate segment grammars for HL7 messages, you must realize how non-standard
the standard is. Since no two vendors implement HL7 the same way, HL7 is often referred to as the "non-standard standard."
Setting up an HL7 interface is not a matter of
selecting the standard HL7
messages from the libraries as shipped, but involves looking
at the data you find and designing your grammars accordingly.
2. Work with the real data you acquired
In practice it doesn't matter whether a vendor claims
to have implemented 2.3.1, 2.1 or the 2.4 version of HL7.
The only thing that matters is what they actually implemented.
The specification most vendors provide for their
HL7 interfaces is typically not accurate. If you really
want to see what was implemented you'll need to start working
with the real data you acquired.