decode converts a message into a DOM type tree integrated with the
dictionary.

If VersionOverride is provided, a version of HL7 different to that
claimed by the message will be used - a way to handle exceptions to
the standard.

If a segmentlimit is provided, only the first few segments will be
decoded up to the specified limit. This is to support high-throughput
applications only interested in the MSH (and perhaps the EVN). Note
that PID's can be scattered through the message so it is dangerous
to examine the PID segment if a segment limit has been set

You can also nominate the Format. The library will choose
the right class for all messages currently observed, so this
is not usually necessary. Valid Values are XML or ER7

You can also set ASuppressErrors. If this is true the library will do it's
best to suppress errors encountered reading messages. You need to be very
careful if you set this to true as the library will do it's level best to
ignore errors when reading messages in this case. This is mostly used with
XML messages to deal with cases where the library needs to deal with XML
messages that do not use the right data types.