Elizabeth Harding · Jun 27, 2016

HealthShare HL7 Annotations - Explicit vs Implicit usage

In the HL7 Annotations available in the Management Portal,  at the message type and message structure levels, there are columns for 'Explicit Usage' and 'Implicit Usage'.  In nearly all cases, the values in these two columns match, but at least for message types RAS and RGR, they don't.

What's the meaning of explicit and implicit in the annotations?




0 423
Discussion (1)2
Log in or sign up to continue

The explicit usage is set by InterSystems developers to show which HL7 messages we support, but since it's set manually it can get out of date or become inconsistent.  The implicit usage is automatically calculated and takes into account the usage of the parent.

From EnsLib.HL7.Annotation.Data:

/// <li>"U" - annotated usage indicator: X not supported, S supported, P planned support
/// Except for LoadMG, the load methods also return a "UC" node indicating the actual computed usage,
/// which is calculated by walking the HL7 tree structure. It would never be higher than the annotated usage,
/// but gets determined by the best possible parent annotated usage path.

So if the parent is set to “Not Used”, the child can still have an explicit usage of “Today” since it’s set manually, but the implicit usage will be “Not Used” because it inherits from the parent.  Or more precisely it’s something like min(explicit usage, parent’s implicit usage).  Even though the explicit usage is turned on for RAS_O17 and many of its segments, since we don’t actually support any RAS messages according to the top-level Message Groups page, the implicit usage is set to “Not Used”.