What is the intended purpose of a Template?

From HL7Wiki
Jump to navigation Jump to search

It is often necessary to further constrain an HL7 specification – to restrict the specific value sets, to define test batteries, to specify required internal document components, etc. Reasons for building templates include, but are not limited to:

    Human-to-Human Communication

  • Templates can serve as a (structured) formalism through which human beings (either singly or as part of groups or organizations) can unambiguously exchange (structured) information, e.g. . "This is what a CBC means to our group, what does it mean to yours?"

    Constraint and Validation of computer-to-computer Messages

  • Templates can be used to validate message content according to the template rules. "Verify that this message is a valid instance of a CBC template (according to my definition...)"


  • Templates can be used to guide and direct information input. A template defines which fields are required, which are optional and which cannot be entered along with the permissible value sets that may populate each field. "What information is necessary to fill in a CBC? What are the data types, values and selection lists for each of the fields?" Templates are object oriented and can be constructed with strict inheritance of constraint models.


  • Templates can be used to determine whether a message meets a specific 'predicate'. For example, templates could be constructed that describe lab tests, CBC's, abnormal CBC's, etc, and then used to drive decision support / alerting software mechanisms. "Is this an instance of an abnormal CBC?"


  • Templates may be used to convey the information that a fragment of a message meets agreed constraints, and thus is suitable for a specific processing in the receiving system (e.g. allocation of a battery to a particular device, calculating the price of a set of laboratory tests, trigger the calculation of derived variables)


  • Templates can be used to describe the relationships between data elements that can then be queried - "Where would I have to look to find all instances of a WBC?"