This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Template Functional Requirements

From HL7Wiki
Revision as of 16:41, 12 April 2005 by Rhamm (talk | contribs)
Jump to navigation Jump to search

This section defines requirements for the normative representation of an HL7 V3 Template.

Template Assertions

Static assertions

  • A template can constrain the cardinality of a clone’s association.
  • A template can constrain the cardinality of a clone’s attribute.
  • A template can constrain the allowable date/time values in a date/time field.
  • A template can constrain any attribute value to be a subset of those values legally permissible in the specification being constrained.
  • A template can constrain the range of allowable date/time values for attributes valued by date/time data types.
  • A template can constrain the range of allowable code values for attributes valued by terminology concepts.
  • A template can constrain the range of allowable numbers for attributes valued by numbers.
  • A template can express a regular expression constraint on attributes valued by strings.
  • A template can constrain any data type component, including recursively-nested components.
  • A template can constrain the range of allowable values of a clone’s attribute.
  • All additional constraints that can be expressed in a normative specification (including all the columns in an HMD) can be further constrained in a template or archetype.

Co-occurrence Assertions

  • The value of one field can be constrained based on the value of another field. Example: If fieldOne is “X”, then fieldTwo’s value must be “A”.
  • Chronological assertions can constrain the date/time value of one field based on the date/time of another field. Example: The start time for fieldOne is (earlier | later | equal to) the start time of fieldTwo.
  • Numeric comparison assertions can constrain the numeric value of one field based on the value of another field. Example: The value of fieldOne is (equal to | less than | greater than) the value of fieldTwo.
  • Numeric operation assertions can constrain the numeric value of one field based on a numeric operator applied to the value of another field or constant. Example: The value of fieldOne is (equal to | less than | greater than) the value of fieldTwo (plus 7 | divided by 27).
  • String comparison assertions can constrain the string value of one field based on the value of another field. Example: The string value of fieldOne is contained in the value of fieldTwo.
  • Any constraint a template and constituent archetypes can make can be made dependent on the value expressed in one or more other fields. For instance, in addition to constraining the cardinality of an association, a template and constituent archetypes can constrain the cardinality based on the value in a particular field. Example: If ((fieldOne is “X” or “Y”) OR (fieldTwo is “ABC”)) then ((a nested act relationship under Observation is required) AND (fieldThree in the nested act has a value of “A” or “B” or “C”) AND (fieldThree in the nested act cannot be NULL)).


Containment Assertions

Logic Assertions