SOA: Minimal Functional Requirements
Attempting to enumerate minimal set of template functional items to be addressed for use as "Semantic Signifiers" withing the SOA (Services Oriented Architecture) SIG "Resource Locator and Update Service" specficiation.
Removed a lot of the authorship and custodianship metadata that is not directly supporting structural and semantic definition. Would like to bring in more requirements only as deemed necessary.
Contents
- 1 SOA: Semantic Signifiers - HL7 Profile Functional Specification
- 1.1 Introduction
- 1.2 Identification/Discovery
- 1.3 Constraint
- 1.3.1 Identifier
- 1.3.2 Reference Model Derivation
- 1.3.3 Explicit Attribute Constraints
- 1.3.4 Attribute Multiplicity
- 1.3.5 Collection Type
- 1.3.6 Explicit Association Constraints
- 1.3.7 Association Multiplicity
- 1.3.8 Instantiation Conditions
- 1.3.9 Referenced
- 1.3.10 Choice
- 1.3.11 Instantiation Criteria
- 1.3.12 Data Value Constraints
SOA: Semantic Signifiers - HL7 Profile Functional Specification
Introduction
This document describes the functional requirements of HL7 templates to support service oriented architecture specification usage. This enables definitions of constraints to content within a HL7 operating profile for a service.
HL7 V3 can represent a template in the form of a LIM - Localized Information Model. It is strictly a serializable message model that is a valid constraint on a CIM - Constrained Information Model. CIMs define message structure and semantics that may be sent over the wire using the XML implementation technology specification, this includes the naming of the XML tags. LIMs are implented as constraints on this wire protocol and can define further restrictions on content allowed.
MIF is the "Model Interchange Format" it is a HL7 artifact formalism for describing all modelling performed in HL7 v3. It is implemented as a set of XML schemas. "mifStaticModelSerialized.xsd" - specfically supports serializable LIM definition. The support for the stated general templating requirements by the MIF is examined here.
The default namespace for this mif schema is "urn:hl7-org:v3/mif" this is assumed in the XPath expressions shown.
Identification/Discovery
This section describes functional requirement items that support identification of the template instance explicitly or by discovery of for desired semantics
Identifier
An identifier must be bound to templates. This allows reference to a given template from other templates.
MIF Implementation
/serializedStaticModels/serializedStaticModel/@name
Name
This may be defined to provide an indication of semantics.
MIF Implementation
/serializedStaticModels/serializedStaticModel/@title
Semantics Description
This is a description of the semantics that may be inferred when this template is invoked. It will aid in determining whether the semantics are suitable for use in a desired context.
MIF Implementation
/serializedStaticModels/serializedStaticModel/annotations/description
Version
This is an indication of the current revision of the template. Versions of a template require that there are no semantic differences to be considered the same template.
MIF Implementation
/serializedStaticModels/serializedStaticModel/history/@id
Classification
Terminology concept terms or free text terms may be bound to the template. This may provide an indication of the content of the constraint statement.
MIF Implementation
/serializedStaticModels/serializedStaticModel/header/@subject
Constraint
This section describes functional requirement items that support constraining a reference model definition. This allows the statement of instatiation constraints that are to be applied when conforming to a template defintion.
Identifier
An identifier may be bound to constraint statements within the template. This allows reference to any part of the constraint hierarchy that can be identified.
MIF Implementation
//class/@name
Within the scope of a given template each class is uniquely named and can thus be identified.
Reference Model Derivation
The reference model class that is being constrained must be identified.
MIF Implementation
It is assumed the base reference model is the RIM. By definition a LIM is a constraint of a CIM, and a CIM a constraint of a DIM, and a DIM a constraint on the RIM. The entire constraint hierarchy can be found. With each class in the CIM/DIM/RIM hierarchy named the:
//class/derivationSupplier/@name
Dependencies are ordered by:
//class/derivationSupplier/@staticModelDerivationId
This defines which base class in the reference model is being constrained by the class defintion in the template.
Explicit Attribute Constraints
Constraint statements can be made on attributes of a reference model. This allows the definition of which attributes are allowed to exist in instantiations based on the template.
MIF Implementation
Defintions of attributes that are allowed to exist in instantiations of the parent class based on the template:
//class/attribute
Name of the attribute:
//class/attribute/@name
Source of attribute in the reference model, complete derivation hierarchy:
//class/attribute/derivationSupplier
Each class that is allowed to be instantiated defines which attributes it contains. Since the HL7 methodology requires derived models to be restrictions of the RIM any attributes that do not appear in the defintions (as defiend in the RIM base class) are thus constrained to be not allowed to be instantiated.
Attribute Multiplicity
HL7 v3 attributes are explicitly constraints on the available RIM attributes. The allowed multipliciy range of instances allowed of a specified attribute, this may be:
- 0..1 - optional
- 1..1 - required exactly one instance
- 0..* - unbound collection
- 1..* - unbound collection, required instance
- 0..N - fixed maximum size collection
- 1..N - fixed maximum size collection, required instance
This must be equal to or within the multiplicity of the reference model being constrained.
MIF Implementation
The minimum number of allowed instatiations of the attribute:
//class/attribute/@minimumMultiplicity
The maximum number of allowed instatiations of the attribute:
//class/attribute/@maximumMultiplicity
Collection Type
Defines the type of collection that may be instansiated sorted list, unsorted list, set. This applies to attributes that have a multiplicity that is greater than one.
MIF Implementation
Definition of a collection type:
//class/attribute/type/@name = SET | BAG | LIST
Definition of collection contents type:
//class/attribute/type/supplierBindingArgumentDatatype/@name e.g. CD, ST
Explicit Association Constraints
Constraint statements can be made on associations between classes in the reference model. This allows the definition of which associations are allowed to exist in instantiations based on the template.
MIF Implementation
Defintion of an association between classes, the RIM defines the RIM classes that may be connected with an association, template association definitions determine which associations are allowed to be instantiated when conforming to the template.
//class/association
Association Multiplicity
The HL7 v3 associations are explicitly constraints on the available HL7 RIM associations.
he allowed multipliciy range of instances allowed of a specified association, this may be:
- 0..1 - optional
- 1..1 - required exactly one instance
- 0..* - optional, unbound number of instances
- 1..* - require at least one instance
- 0..N - fixed maximum size
- 1..N - fixed maximum size collection, required instance
This must be equal to or within the multiplicity of the reference model being constrained.
MIF Implementation
The minimum number of allowed instatiations of an association:
//class/association/targetConnection/@minimumMultiplicity
The maximum number of allowed instatiations of an association:
//class/association/targetConnection/@maximumMultiplicity
Instantiation Conditions
Conditional statement defining the inclusion conditions of explicitly defined constraints or referenced templates. This may include reference to environmental variables and to instance values that are within the context of a given template.
Referenced
Reference to identified template to include specified constraints defined in another template.
Choice
Statement of choice of a number of possible distinct explicitly defined constraints or referenced templates.
Instantiation Criteria
Statement of criteria of allowed or exclusion properties of referenced templates not identified directly.
Data Value Constraints
Data value constraints are specific constraints that support common ways of constraining specific data value types. In the HL7 profile this includes all HL7 datatypes.
Range
Numeric range specification, supporting inclusive and exclusive ranges also single and double sided ranges. This includes numeric types and physical quantities.
Measurement Units
This constrains measurement units to a value set that is allowed. This applies to physical quantities.
Code System
This constrains the code system to an allowed set of code system identifiers. This applies to the coded value types.
Value Set
Includes assumed (default) values, fixed values and enumerations for string and coded value types.
Regular Expression
Defines allowed string patterns and applied to string types.
Identifier Root
This constrains the root of an identifier to an allowed set of identifier root values. This applies to identifier types.
Assertions
Stated assertions defining allowed instantiation constraints of values. This may depend on environment variables or other instantiated values within the context of the given template.