View Revision Marks Hide Revision Marks

# HL7 Reference Information Model

ANSI/HL7 V3 RIM, R1-2003 12/17/2003

Version: V 02-13 (2/10/2006)
ModelID: RIM_0213

Modeling & Methodology Co-Chair | George Beeler, Jr., PhD. Beeler Consulting LLC
Editor | James Case, DVM, PhD. University of California, Davis
Modeling & Methodology Co-Chair | Jane Curry Sierra Systems & CIHI - HL7 Canada
Modeling & Methodology Co-Chair | Ann Hueber Pathology Associates Medical Laboratories
Editor | Lloyd Mckenzie IBM Canada & CIHI - HL7 Canada & Alberta Wellnet
Editor | Gunther Schadow, M.D., PhD. Regenstrief Institute for Health Care
Modeling & Methodology Co-Chair | Abdul-Malik Shakir Shakir Consulting LLC

Last Published: 03/27/2006 3:35 AM

HL7® Version 3 Standard, © 2005 Health Level Seven®, Inc. All Rights Reserved.

HL7 and Health Level Seven are registered trademarks of Health Level Seven, Inc. Reg. U.S. Pat & TM Off

## Table of Contents

1 Introduction
1.1 Background
1.2 Implications of Balloting the RIM
1.3 Understanding the RIM
1.4 The RIM specification and diagrams
1.5 Release notes
2 Subject areas
2.1 FoundationClasses
2.1.1 Acts
2.1.2 Entities
2.1.3 Roles
2.2 CommunicationInfrastructure
2.2.1 CoreInfrastructure
2.2.2 MessageCommunicationsControl
2.2.3 StructuredDocuments
2.3 ModelStatus
2.3.1 COI_C036_PAFM
2.3.2 COI_C047_Orders_Observations
2.3.3 COI_C09_Medical_records
2.3.4 COI_C12_Patient_care
2.3.5 COI_C20_XML
2.3.6 RIM_unassigned
2.3.7 STW_C02_Control_Query
2.3.8 STW_C03_Pt_admin_Finance
2.3.9 STW_C04_Orders_observations
2.3.10 STW_C09_Medical_records
2.3.11 STW_C10_Inter_enterprise
2.3.12 STW_C12_Patient_care
3 Classes
3.1 Classes in subject area Acts
3.2 Classes in subject area Entities
3.3 Classes in subject area Roles
3.4 Classes in subject area CoreInfrastructure
3.5 Classes in subject area MessageControl
3.6 Classes in subject area QueryControl
3.7 Classes in subject area StructuredDocuments
4 Associations
4.1 (1..1)Acknowledgement :: acknowledgementDetail :: (0..*)AcknowledgementDetail :: acknowledgement
4.2 (0..*)Acknowledgement :: acknowledges :: (1..1)Transmission :: acknowledgedBy
4.3 (0..*)Acknowledgement :: conveyingTransmission :: (1..1)Transmission :: conveyedAcknowledgement
4.4 (0..*)ActRelationship :: source :: (1..1)Act :: outboundRelationship
4.5 (0..*)ActRelationship :: target :: (1..1)Act :: inboundRelationship
4.6 (0..*)Attachment :: transmission :: (0..1)Transmission :: attachment
4.7 (0..*)AttentionLine :: transmission :: (1..1)Transmission :: attentionLine
4.8 (0..1)Batch :: transmission :: (0..*)Transmission :: batch
4.9 (0..*)ControlAct :: payload :: (0..1)Message :: controlAct
4.10 (1..*)Entity :: communicationFunction :: (0..*)CommunicationFunction :: entity
4.11 (1..1)Entity :: languageCommunication :: (0..*)LanguageCommunication :: entity
4.12 (0..*)Parameter :: queryByParameter :: (0..1)QueryByParameter :: parameter
4.13 (0..1)ParameterList :: parameter :: (0..*)Parameter :: parameterList
4.14 (0..*)Participation :: act :: (1..1)Act :: participation
4.15 (0..*)Participation :: role :: (1..1)Role :: participation
4.16 (0..1)QueryEvent :: controlAct :: (1..1)ControlAct :: queryEvent
4.17 (0..*)Role :: player :: (0..1)Entity :: playedRole
4.18 (0..*)Role :: scoper :: (0..1)Entity :: scopedRole
4.19 (0..*)RoleLink :: source :: (1..1)Role :: outboundLink
4.20 (0..*)RoleLink :: target :: (1..1)Role :: inboundLink
4.21 (0..*)SelectionExpression :: leftSide :: (0..1)LogicalExpression :: userAsLeft
4.22 (0..*)SelectionExpression :: queryBySelection :: (1..1)QueryBySelection :: selectionExpression
4.23 (0..*)SelectionExpression :: rightSide :: (0..1)LogicalExpression :: userAsRight
4.24 (0..*)SortControl :: querySpec :: (1..1)QuerySpec :: sortControl
4.25 (1..*)Transmission :: communicationFunction :: (0..*)CommunicationFunction :: transmission

### Appendices

A Appendix - Overview of the RIM
A.1 Purpose
A.2 Overview
A.3 The Rationale Behind the RIM's Design
A.4 Linking Acts Together: The Semantics of ActRelationship
A.5 Definitions of the Six Core Rim Classes
A.6 Data Type and Vocabulary Specifications
A.7 HL7 Version 3 Methodology and the RIM
B Appendix - Summary of Version 3 Data Types
B.1 Overview of Data Types

1 Introduction
1.1 Background

The Health Level Seven (HL7) Reference Information Model (RIM) is a static model of health and health care information as viewed within the scope of HL7 standards development activities. It is the combined consensus view of information from the perspective of the HL7 working group and the HL7 international affiliates. The RIM is the ultimate source from which all HL7 version 3.0 protocol specification standards draw their information-related content.

1.1.1 History of the RIM

Development of the HL7 RIM began in April 1996. The first release of the RIM was adopted by the HL7 Technical Steering Committee at the January 1997 working group meeting. This release was known as the HL7 draft RIM version 0.80.

The next two working group meetings focused on gaining familiarity with the draft RIM and implementing a process for obtaining and reconciling proposed enhancements to the model. The RIM maintenance process became known as "RIM harmonization." Between 1998 and 2000, there were nine harmonization meetings to consider proposed enhancements to the draft RIM. The meetings culminated in version 1.0 of the HL7 RIM, unveiled at the HL7 working group meeting held in January 2001. The harmonization meetings focused on five major themes:

- Ensure coverage of HL7 version 2.x. This set of change proposals introduced content to the draft model to ensure that it included all the information content of HL7 version 2.x.
- Remove unsubstantiated content from the model. This set of change proposals focused on removing content from the draft model that the steward technical committee did not originate and could find no rationale for retaining.
- Unified service action model. This set of change proposals introduced a concise, well-defined set of structures and vocabularies that address the information needs of a wide variety of clinical scenarios. This collection of proposals, know as USAM, involved the combined effort of multiple technical committees.
- Ensure quality. This set of change proposals addressed inconsistencies in the draft model and conflicts between the model and the modeling style guide. It began the practice of recording and tracking open issues in the model.
- Address the "left hand side" of the model. This set of change proposals introduced powerful structures and vocabularies for the non-clinical portions of the model (patient administration, finance, scheduling). Like the unified service action model, this proposal involved the combined effort of multiple technical committees.

The harmonization process and themes have produced an HL7 reference information model that is credible, clear, comprehensive, concise, and consistent. Its structure is both flexible and extensible, and its contents can be readily mapped to the HL7 2.x message standard and other widely used healthcare dataset specifications.

This ballot is release 1.22 of the HL7 RIM. It is a model that continues to be fine tuned as technical committees use it for an ever widening scope of work as part of developing a family of HL7 model-driven standards, HL7 version 3.0. The RIM is now remarkably stable and at the same time the harmonization process ensures it will always be relevant and reflective of the information needs of the HL7 standards.

1.1.2 Use of the RIM by HL7

The HL7 RIM is a critical component of the V3 development process. It is the root of all information models and structures developed as part of the V3 development process.

The HL7 V3 standard development process is a model-driven methodology in which a network of inter-related models are developed that depict the static and behavioral aspects of the requirements and design of HL7 standards, as well as the underlying semantics and business rules that govern them.

The RIM provides a static view of the information needs of HL7 V3 standards. It includes class and state-machine diagrams and is accompanied by use case models, interaction models, data type models, terminology models, and other types of models to provide a complete view of the requirements and design of HL7 standards. The classes, attributes, state-machines, and relationships in the RIM are used to derive domain-specific information models that are then transformed through a series of constraining refinement processes to eventually yield a static model of the information content of an HL7 standard.

The HL7 V3 standard development process defines the rules governing the derivation of domain information models from the RIM and the refinement of those models into HL7 standard specifications. The rules require that all information structures in derived models be traceable back to the RIM and that their semantic and related business rules not conflict with those specified in the RIM. The RIM therefore is the ultimate source for all information content in HL7 V3 standards.

The RIM is used by HL7 international affiliates to extend HL7 V3 standards to meet local needs. Through a process known as localization, V3 standard specifications are extended using the RIM as the source for new information content. This new information is derived from the RIM and refined in the same manner used to create the original specification.

1.1.3 Uses of the RIM Outside of HL7

The RIM is primarily for use by HL7 and its international affiliates. However, others outside of HL7 have also found the RIM useful. Early adopters of the V3 standards development process have used the RIM to develop HL7-like message specifications in their own environments. These early adopters include vendors, large integrated delivery networks, and government agencies within the United States and internationally. These same early adopters are extremely active in HL7 and provide practical input to the RIM and other aspects of V3 the development process.

Some HL7 member organizations have reported using the RIM as a source of input to their enterprise information architectures or as a starting place for systems analysis and design. The RIM may indeed be useful for such purposes; however, HL7 provides no assurance that the RIM is useful for anything other than as a reference model for HL7 standards development.

The RIM is only one model of healthcare information needs. The abstract style of the RIM and the ability to extend the RIM through vocabulary specifications make the RIM applicable to any conceivable healthcare system information interchange scenario. In fact, it is conceptually applicable to any information domain involving entities playing roles and participating in acts.

The universal applicability of the RIM makes it particularly useful for an organization like HL7 that has to consider the needs of a large and diverse membership. The style of the RIM makes it extremely stable, which is another important characteristic for HL7. The HL7 standards development process calls for the creation of domain specific models derived from the RIM and the incremental refinement of those models into design models that are specific to the problem area. These problem area specific design models narrow the abstractness of the RIM and include constraints on attribute values and class relationships that are use case specific. External organizations considering using the HL7 RIM are advised to adopt a similar process of deriving design models as a transformation of the RIM.

1.2 Implications of Balloting the RIM

Balloting the RIM establishes it as more than just an internal HL7 artifact. As a balloted standard the RIM will be advanced as an American National Standards Institute (ANSI) standard and perhaps as an ISO standard. Other ANSI or ISO accredited standards organizations such as X12 and CEN-TC251 (European Standardization of Health Informatics) have expressed interest in using or referencing the RIM in their own standards development work. Establishing the RIM as a standard makes its use by other standards development organizations (SDO) much easier. The potential for tremendous benefits exists by having a common reference information model used across multiple healthcare SDOs.

A balloted RIM is also important to meet the local standards needs of HL7 International Affiliates. In order for the affiliates to apply localized extensions to HL7 standards according to the HL7 V3 standard development process, the RIM itself must be a standard. This is often mandated by local geopolitical jurisdictions, e.g., to ensure that local standards are extensions of already approved general standards.

Federal, state, and local governmental agencies in the United States are encouraged to consider accredited national standards when conducting initiatives in which the standards are applicable. As a standard for information content of HL7 interoperability standards, U.S. governmental agencies will need to consider the applicability of the RIM when establishing health care systems interoperability solutions.

1.2.1 Normative Portions of the RIM

The RIM consists of classes assigned to one or more subject area packages. Attributes, Relationships, and State Machines are associated with classes. Only the classes included in the NormativeContent subject area and their associated attributes, relationships, and state machines are normative. Relationships between normative and non-normative classes are non-normative.

The RIM is expressed using the Unified Modeling Language (UML) with HL7 specific tags as extensions to the UML model element metadata. All standard UML model element metadata values are normative but only the following HL7 extensions are also normative:

- Class.stateAttribute
- Class.classCode
- Attribute.mandatoryInclusion
- Attribute.cardinality
- Attribute.vocabDomain
- Attribute.vocabStrength

The remaining HL7 extensions are for administrative use only and are not part of the normative RIM specification.

1.2.2 Normative References

The V3 Data type specifications (Data Types Abstract Specification and V3 Data Types Implementable Technology Specification for XML) are related normative standards that are balloted independent of the RIM. The HL7 Vocabulary Domain specification is an informative reference that includes a variety of tables and terminology references that are cited as domains by various RIM attributes. The vocabulary specifications for what are termed "structural attributes" are part of the normative RIM ballot because they are fundamental to the proper representation of health information using the RIM. A list of these normative tables and hyperlinks to them are provided at the end of this introduction.

1.2.3 Meaning of Normative

The normative portions of the RIM are the only portions subject to ballot and are the only portions for which conformance rules are defined. Substantive changes to normative RIM model elements require a re-ballot of the RIM. When re-balloting the RIM only the substantive changes are subject to ballot. The following changes to the RIM are not considered substantive:

- Changes to descriptive text for model elements that does not materially alter the semantics of the model element;
- Changes to class package assignments other than additions or deletions from the NormativeContent subject area;
- Changes in package hierarchies or names;
- Changes to class diagram layouts;
- Changes to model elements outside the NormativeContent subject area package.

1.3 Understanding the RIM

The RIM uses a very abstract modeling style. The back-bone classes of the RIM and their structural attributes are its core. An understanding of these classes and attributes are essential to understanding the RIM.

1.3.1 RIM as an abstract model

The RIM is comprised of six "back-bone" classes:

- Act which represents the actions that are executed and must be documented as health care is managed and provided;
- Participation which expresses the context for an act in terms such as who performed it, for whom it was done, where it was done, etc.;
- Entity which represents the physical things and beings that are of interest to, and take part in health care;
- Role which establishes the roles that entities play as they participate in health care acts;
- ActRelationship which represents the binding of one act to another, such as the relationship between an order for an observation and the observation event as it occurs; and
- RoleLink which represents relationships between individual roles.

Three of these classes -- Act, Entity and Role -- are further represented by a set of specialized classes, or sub-types. In the HL7 representation, a sub-type is only added to the RIM if it requires one or more attributes or associations that are not inherited from its parents. Classes that represent distinct concepts, but which need no further attributes or associations are represented solely as a unique code in the controlling vocabulary. Therefore, these three classes include the following coded attributes, which serve to further define the concept being modeled:

- classCode (in Act, Entity and Role) represents the exact class or concept intended, whether or not that class is represented as a class in the RIM hierarchy;
- moodCode (in Act) and determinerCode (in Entity) an attribute that distinguishes whether the class represents an instance or a kind of Act or Entity. If the class is a specialization of Act then moodCode further delineates the instance as an occurrence or an intent;
- code (in Act, Entity and Role) provides for further classification within a particular classCode value, such as a particular type of observation within the Observation class.

The other three RIM back-bone classes -- Participation, ActRelationship and RoleLink -- are not represented by generalization-specialization hierarchies. Nevertheless, these classes represent a variety of concepts, such as different forms of participation or different kinds of relationships between acts. These distinctions are represented by a typeCode attribute that is asserted for each of these classes.

1.3.2 Representation of RIM class structure

As noted previously, the RIM is modeled using a subset of the semantics embodied in UML. The RIM is a set of UML classes, each containing one or more attributes, which are assigned a data type based on an independent specification of Version 3 data types. The classes are linked either by a set of association relationships, identified by unique role names, or by generalization relationships.

Each of these elements includes a textual definition. The appearance of attributes and associations is controlled by cardinality and related constraints applied to the attributes and to the roles that link the associations to the classes.

1.3.3 Representation of controlling vocabulary

Several of the attributes in the RIM are coded with the CS data type, which means that the value set to be used for those attributes must be drawn from the set of codes that have been defined by HL7. The classCode and typeCode attributes mentioned above are examples of attributes with a CS data type.

All of the code sets for these attributes are included as part of this ballot and are subject to the same voting principles as the classes in the RIM. Each code set is represented as a vocabulary domain -- the set of all concepts that can be taken as valid values in an instance of a coded field or attribute. It is important to note that a vocabulary domain consists of a set of concepts, not a set of words or codes.

1.3.4 Related specifications

As noted above, each attribute in the RIM is assigned a data type. The formal specification for these data types is embodied in the normative specification "HL7 V3 Data Types Implementable Technology Specification for XML" and the informative document "Data Types Abstract Specification", both of which are currently being balloted by HL7. A table that abstracts the definition of the data types used in the RIM is included in this ballot as Appendix B.

1.4 The RIM specification and diagrams
1.4.1 RIM Subject Areas and Classes

The specification of the subject areas and classes of the RIM are the content of the following sections of this document. Individual subject areas and classes are "tagged" with an icon that indicates which elements are normative, and which are reference material. (Interpretations of these icons can be found in the backbone documents.)

- Link to RIM subject areas and classes.

1.4.2 Normative structural vocabulary for the RIM

The HL7 vocabulary domains are detailed in a separate document. A selected sub-set of these tables is part of the normative RIM specification. These are the tables for the structural attributes (those with data type of "CS") in the normative classes. A hyper-link to each of these tables is provided in the RIM specification at the point where the table is cited. In addition, direct linkage to these tables is provided below:

ActClass | ActStatus | ParticipationType
ActMood | ContextControl | RelationshipConjunction
ActRelationshipCheckpoint | EntityClass | RoleClass
ActRelationshipJoin | EntityDeterminer | RoleLinkType
ActRelationshipSplit | EntityStatus | RoleStatus
ActRelationshipType | ManagedParticipationStatus |

1.4.3 Overall Diagrams for the RIM

The representations available for the RIM include a diagram for most of the subject areas, state-machine diagrams for classes and a reference to the full RIM "billboard" in a PDF file where 'zooming' is more readily supported. The diagrams for the subject areas and state machines are grouped below.

- The RIM Billboard as a PDF file can be reached from here.

1.4.4 Graphic Diagrams of the RIM normative content

The classes in the Normative content of the RIM are represented in the following diagrams:

1.4.4.1 FoundationClasses Subject Area
1.4.4.2 Acts Subject Area
1.4.4.3 Entities Subject Area
1.4.4.4 Roles Subject Area
1.4.4.5 State-machine diagram for Act class.
1.4.4.6 State-machine diagram for Entity class.
1.4.4.7 State-machine diagram for ManagedParticipation class.
1.4.4.8 State-machine diagram for Role class.
1.4.5 Graphic Diagrams of the RIM Infrastructure classes

The classes in the Communication Infrastructure subject areas are represented in the following diagrams:

1.4.5.1 StructuredDocuments Subject Area
1.4.5.2 MessageCommunicationsControl Subject Area
1.4.5.3 MessageControl Subject Area
1.4.5.4 QueryControl Subject Area
1.4.5.5 CommunicationInfrastructure Subject Area
1.4.5.6 State-machine diagram for QueryEvent class.
1.5 Release notes

This version of the RIM reflects changes approved in harmonization through November 18, 2005, plus technical corrections thereto. This version is the thirteenth of the RIMs that contain content that will be part of Release 2 of the normative RIM.

Questions should be addressed to the co-chairs of the Methodology and Modeling Committee and/or sent to the M&M e-mail list at mnm@lists.hl7.org

2 Subject areas in HL7 Reference Information Model

FoundationClasses | CommunicationInfrastructure | ModelStatus

2.1 FoundationClasses (in base model)

This collection of classes and their associations represent the "normative" content of the HL7 RIM. The content of this subject area has been balloted within HL7 as a normative document.

Link to a class diagram of this subject area.

- FoundationClasses contains subject areas:

Acts | Entities | Roles

2.1.1 Acts (in FoundationClasses)

A collection of classes including the Act class and its specializations. These relate to the actions and events that constitute health care services.

Link to a class diagram of this subject area.

- Acts contains classes:

Account
Act
ActRelationship
ControlAct
DeviceTask
DiagnosticImage
Diet
| FinancialContract
FinancialTransaction
InvoiceElement
ManagedParticipation
Observation
Participation
PatientEncounter
| Procedure
PublicHealthCase
SubstanceAdministration
Supply
WorkingList

2.1.2 Entities (in FoundationClasses)

A collection of classes related to the Entity class, its specializations and related qualifying classes. The classes represent health care stakeholders and other things of interest to health care.

Link to a class diagram of this subject area.

- Entities contains classes:

Container
Device
Entity
LanguageCommunication
| LivingSubject
ManufacturedMaterial
Material
NonPersonLivingSubject
| Organization
Person
Place

2.1.3 Roles (in FoundationClasses)

A collection of classes related to the Role class and its specializations. These classes focus on the roles participants may play in health care.

Link to a class diagram of this subject area.

- Roles contains classes:

Access
Employee
LicensedEntity
| Patient
QualifiedEntity
Role
| RoleLink

2.2 CommunicationInfrastructure (in base model)

A collection of subject areas that define the technical infrastructure of HL7, including messaging, structured documents and components.

- CommunicationInfrastructure contains subject areas:

CoreInfrastructure | MessageCommunicationsControl | StructuredDocuments

2.2.1 CoreInfrastructure (in CommunicationInfrastructure)

This subject area contains those classes that provide foundation elements for the HL7 communications infrastructure.

Link to a class diagram of this subject area.

- CoreInfrastructure contains classes:

ActHeir
EntityHeir
| InfrastructureRoot
RoleHeir

2.2.2 MessageCommunicationsControl (in CommunicationInfrastructure)

A collection of classes related to the technical definition and control of message-based communication in HL7.

Link to a class diagram of this subject area.

- MessageCommunicationsControl contains subject areas:

MessageControl | QueryControl |

2.2.2.1 MessageControl (in MessageCommunicationsControl)

This subject area contains those RIM elements involved in the control, communication and acknowledgement of messages.

Link to a class diagram of this subject area.

- MessageControl contains classes:

Acknowledgement
AcknowledgementDetail
Attachment
| AttentionLine
Batch
CommunicationFunction
| Message
Transmission

2.2.2.2 QueryControl (in MessageCommunicationsControl)

This subject area contains those classes necessary to formulate, communicate and respond to query messages.

Link to a class diagram of this subject area.

- QueryControl contains classes:

LogicalExpression
Parameter
ParameterItem
ParameterList
QueryAck
| QueryByParameter
QueryBySelection
QueryContinuation
QueryEvent
QuerySpec
| RelationalExpression
SelectionExpression
SortControl

2.2.3 StructuredDocuments (in CommunicationInfrastructure)

A collection of classes related to the definition of document-based communication in HL7, as represented by the Clinical Document Architecture standards.

Link to a class diagram of this subject area.

- StructuredDocuments contains classes:

ContextStructure
| Document

2.3 ModelStatus (in base model)

This subject area and its subordinate subject areas have been created to track and manage the status of various elements of the RIM, including stewardship responsibility and classes-of-interest for various HL7 committees.

Link to a class diagram of this subject area.

- ModelStatus contains subject areas:

COI_C036_PAFM COI_C047_Orders_Observations COI_C09_Medical_records COI_C12_Patient_care | COI_C20_XML RIM_unassigned STW_C02_Control_Query STW_C03_Pt_admin_Finance | STW_C04_Orders_observations STW_C09_Medical_records STW_C10_Inter_enterprise STW_C12_Patient_care

2.3.1 COI_C036_PAFM (in ModelStatus)

Classes of interest to the Patient Administration/Financial Management Committee.

Link to a class diagram of this subject area.

- COI_C036_PAFM contains classes:

LivingSubject

2.3.2 COI_C047_Orders_Observations (in ModelStatus)

Link to a class diagram of this subject area.

- COI_C047_Orders_Observations contains classes:

PatientEncounter
| Person

2.3.3 COI_C09_Medical_records (in ModelStatus)

Classes of interest to Medical Records Committee.

Link to a class diagram of this subject area.

- COI_C09_Medical_records contains no classes

2.3.4 COI_C12_Patient_care (in ModelStatus)

Link to a class diagram of this subject area.

- COI_C12_Patient_care contains classes:

Material
| Observation
| PatientEncounter

2.3.5 COI_C20_XML (in ModelStatus)

Link to a class diagram of this subject area.

- COI_C20_XML contains classes:

ContextStructure
| Document

2.3.6 RIM_unassigned (in ModelStatus)

Link to a class diagram of this subject area.

- RIM_unassigned contains no classes

2.3.7 STW_C02_Control_Query (in ModelStatus)

Link to a class diagram of this subject area.

- STW_C02_Control_Query contains classes:

Acknowledgement
AttentionLine
CommunicationFunction
ControlAct
| Message
QueryAck
QueryByParameter
QueryBySelection
| QueryContinuation
QueryEvent
QuerySpec
Transmission

2.3.8 STW_C03_Pt_admin_Finance (in ModelStatus)

Link to a class diagram of this subject area.

- STW_C03_Pt_admin_Finance contains classes:

Account
Employee
LanguageCommunication
LicensedEntity
| ManagedParticipation
Organization
Patient
PatientEncounter
| Person
Place
Role

2.3.9 STW_C04_Orders_observations (in ModelStatus)

Link to a class diagram of this subject area.

- STW_C04_Orders_observations contains classes:

Access
Act
ActRelationship
Container
DiagnosticImage
| Diet
LivingSubject
Material
Observation
Participation
| Procedure
PublicHealthCase
SubstanceAdministration
Supply

2.3.10 STW_C09_Medical_records (in ModelStatus)

Link to a class diagram of this subject area.

- STW_C09_Medical_records contains classes:

Document

2.3.11 STW_C10_Inter_enterprise (in ModelStatus)

Link to a class diagram of this subject area.

- STW_C10_Inter_enterprise contains classes:

Device

2.3.12 STW_C12_Patient_care (in ModelStatus)

Link to a class diagram of this subject area.

- STW_C12_Patient_care contains classes:

Access
Act
ActRelationship
Container
| Diet
Participation
Procedure
SubstanceAdministration
| Supply
WorkingList

3 Classes in HL7 Reference Information Model

Each of the classes is listed below. The sort order is based on the following three criteria:

1. Normative Content first

2. Primary subject area name, alphabetically

3. Class name, alphabetically

3.1 Classes in subject area Acts
3.1.1 Class: Act (in Acts)

#### Attributes of Act:

- Attributes of Act:

classCode:: CS
moodCode:: CS
id:: SET<II>
code:: CD
negationInd:: BL
derivationExpr:: ST
title:: ED
| text:: ED
statusCode:: CS
effectiveTime:: GTS
activityTime:: GTS
availabilityTime:: TS
priorityCode:: SET<CE>
confidentialityCode:: SET<CE>
| repeatNumber:: IVL<INT>
interruptibleInd:: BL
levelCode:: CE
independentInd:: BL
uncertaintyCode:: CE
reasonCode:: SET<CE>
languageCode:: CE

- Associations of Act:
- outboundRelationship::(0..*)ActRelationship::source::(1..1)
- inboundRelationship::(0..*)ActRelationship::target::(1..1)
- participation::(0..*)Participation::act::(1..1)

- Act generalizes:

Account
ActHeir
ContextStructure
ControlAct
DeviceTask
| FinancialContract
FinancialTransaction
InvoiceElement
Observation
PatientEncounter
| Procedure
SubstanceAdministration
Supply
WorkingList

- Act is a specialization of: InfrastructureRoot

#### Definition of Act:

A record of something that is being done, has been done, can be done, or is intended or requested to be done.

Examples: The kinds of acts that are common in health care are (1) a clinical observation, (2) an assessment of health condition (such as problems and diagnoses), (3) healthcare goals, (4) treatment services (such as medication, surgery, physical and psychological therapy), (5) assisting, monitoring or attending, (6) training and education services to patients and their next of kin, (7) and notary services (such as advanced directives or living will), (8) editing and maintaining documents, and many others.

Discussion and Rationale: Acts are the pivot of the RIM; all domain information and processes are represented primarily in Acts. Any profession or business, including healthcare, is primarily constituted of intentional actions, performed and recorded by responsible actors. An Act-instance is a record of such an intentional action. Intentional actions are distinguished from something that happens by forces of nature (natural events). Such natural events are not Acts by themselves, but may be recorded as observed (Observation).

Acts connect to Entities in their Roles through Participations and connect to other Acts through ActRelationships. Participations are the authors, performers and other responsible parties as well as subjects and beneficiaries (which includes tools and material used in the performance of the act, which are also subjects). The moodCode distinguishes between Acts that are meant as factual records, vs. records of intended or ordered services, and the other modalities in which act can appear.

One of the Participations that all acts have (at least implicitly) is a primary author, who is responsible of the Act and who "owns" the act. Responsibility for the act means responsibility for what is being stated in the Act and as what it is stated. Ownership of the act is assumed in the sense of who may operationally modify the same act. Ownership and responsibility of the Act is not the same as ownership or responsibility of what the Act-object refers to in the real world. The same real world activity can be described by two people, each being the author of their Act, describing the same real world activity. Yet one can be a witness while the other can be a principal performer. The performer has responsibilities for the physical actions; the witness only has responsibility for making a true statement to the best of his or her ability. The two Act-instances may even disagree, but because each is properly attributed to its author, such disagreements can exist side by side and left to arbitration by a recipient of these Act-instances.

In this sense, an Act-instance represents a "statement" according to Rector and Nowlan (1991) [Foundations for an electronic medical record. Methods Inf Med. 30.] Rector and Nowlan have emphasized the importance of understanding the medical record not as a collection of facts, but "a faithful record of what clinicians have heard, seen, thought, and done." Rector and Nowlan go on saying that "the other requirements for a medical record, e.g., that it be attributable and permanent, follow naturally from this view." Indeed the Act class is this attributable statement, and the rules of updating acts (discussed in the state-transition model, see Act.statusCode) versus generating new Act-instances are designed according to this principle of permanent attributable statements.

Rector and Nolan focus on the electronic medical record as a collection of statements, while attributed statements, these are still mostly factual statements. However, the Act class goes beyond this limitation to attributed factual statements, representing what is known as "speech-acts" in linguistics and philosophy. The notion of speech-act includes that there is pragmatic meaning in language utterances, aside from just factual statements; and that these utterances interact with the real world to change the state of affairs, even directly cause physical activities to happen. For example, an order is a speech act that (provided it is issued adequately) will cause the ordered action to be physically performed. The speech act theory has culminated in the seminal work by Austin (1962) [How to do things with words. Oxford University Press].

An activity in the real world may progress from defined, through planned and ordered to executed, which is represented as the mood of the Act. Even though one might think of a single activity as progressing from planned to executed, this progression is reflected by multiple Act-instances, each having one and only one mood that will not change along the Act-instance's life cycle. This is because the attribution and content of speech acts along this progression of an activity may be different, and it is often critical that a permanent and faithful record be maintained of this progression. The specification of orders or promises or plans must not be overwritten by the specification of what was actually done, so as to allow comparing actions with their earlier specifications. Act-instances that describe this progression of the same real world activity are linked through the ActRelationships (of the relationship category "sequel").

Act as statements or speech-acts are the only representation of real world facts or processes in the HL7 RIM. The truth about the real world is constructed through a combination (and arbitration) of such attributed statements only, and there is no class in the RIM whose objects represent "objective state of affairs" or "real processes" independent from attributed statements. As such, there is no distinction between an activity and its documentation. Every Act includes both to varying degrees. For example, a factual statement made about recent (but past) activities, authored (and signed) by the performer of such activities, is commonly known as a procedure report or original documentations (e.g., surgical procedure report, clinic note etc.). Conversely, a status update on an activity that is presently in progress, authored by the performer (or a close observer) is considered to capture that activity (and is later superceded by a full procedure report). However, both status update and procedure report are acts of the same kind, only distinguished by mood and state (see statusCode) and completeness of the information.

#### Attributes of Act:

3.1.1.1 Act.classCode:: CS (1..1) Mandatory
Vocabulary domain: ActClass (CNE)
Definition:A code specifying the major type of Act that this Act-instance represents.

Constraints: The classCode domain is a tightly controlled vocabulary, not an external or user-defined vocabulary.

Every Act-instance must have a classCode. If the act class is not further specified, the most general Act.classCode (ACT) is used.

The Act.classCode must be a generalization of the specific Act concept (e.g., as expressed in Act.code), in other words, the Act concepts conveyed in an Act must be specializations of the Act.classCode. Especially, the classCode is not a "modifier" or the Act.code that can alter the meaning of a class code. (See Act.code for contrast.)

Version 2.x reference:

| PV1^2^00132^Patient Class |

| FT1^6^00360^Transaction Type |

| FT1^7^00361^Transaction Code |

| FT1^9^00363^Transaction Description - Alt |

3.1.1.2 Act.moodCode:: CS (1..1) Mandatory
Vocabulary domain: ActMood (CNE)
Definition:A code distinguishing whether an Act is conceived of as a factual statement or in some other manner as a command, possibility, goal, etc.

Constraints: An Act-instance must have one and only one moodCode value.

The moodCode of a single Act-instance never changes. Mood is not state.

To describe the progression of a business activity from defined to planned to executed, etc. one must instantiate different Act-instances in the different moods and link them using ActRelationship of general type "sequel". (See ActRelationship.typeCode.)

Discussion: The Act.moodCode includes the following notions: (1) event, i.e., factual description of an actions that occurred; (2) definition of possible actions and action plans (the master file layer); (3) intent, i.e., an action plan instantiated for a patient as a care plan or order; (4) goal, i.e., an desired outcome attached to patient problems and plans; and (5) criterion, i.e., a predicate used to evaluate a logical expression.

The Act.moodCode modifies the meaning of the Act class in a controlled way, just as in natural language, grammatical form of a verb modify the meaning of a sentence in defined ways. For example, if the mood is factual (event), then the entire act object represents a known fact. If the mood expresses a plan (intent), the entire act object represents the expectation of what should be done. The mood does not change the meaning of individual act properties in peculiar ways.

Since the mood code is a determining factor for the meaning of an entire Act object, the mood must always be known. This means, whenever an act object is instantiated, the mood attribute must be assigned to a valid code, and the mood assignment cannot change throughout the lifetime of an act object.

As the meaning of an act object is factored in the mood code, the mood code affects the interpretation of the entire Act object and with it every property (attributes and associations). Note that the mood code affects the interpretation of the act object, and the meaning of the act object in turn determines the meaning of the attributes. However, the mood code does not arbitrarily change the meaning of individual attributes.

Inert vs. descriptive properties of Acts: Acts have two kinds of act properties, inert and descriptive properties. Inert properties are not affected by the mood, descriptive properties follow the mood of the object. For example, there is an identifier attribute Act.id, which gives a unique identification to an act object. Being a unique identifier for the object is in no way dependent on the mood of the act object. Therefore, the "interpretation" of the Act.id attribute is inert with respect to the act object's mood.

By contrast, most of the Act class' attributes are descriptive for what the Act statement expresses. Descriptive properties of the Act class give answer to the questions who, whom, where, with what, how and when the action is done. The questions who, whom, with what, and where are answered by Participations, while how and when are answered by descriptive attributes and ActRelationships. The interpretation of a descriptive attribute is aligned to the interpretation of the entire act object, and controlled by the mood.

Examples: To illustrate the effect of mood code, consider a "blood glucose" observation:

The DEFINITION mood specifies the Act of "obtaining blood glucose". Participations describe in general the characteristics of the people who must be involved in the act, and the required objects, e.g., specimen, facility, equipment, etc. involved. The Observation.value specifies the absolute domain (range) of the observation (e.g., 15-500 mg/dl).

In INTENT mood the author of the intent expresses the intent that he or someone else "should obtain blood glucose". The participations are the people actually or supposedly involved in the intended act, especially the author of the intent or any individual assignments for group intents, and the objects actually or supposedly involved in the act (e.g., specimen sent, equipment requirements, etc.). The Observation.value is usually not specified, since the intent is to measure blood glucose, not to measure blood glucose in a specific range. (But compare with GOAL below).

In REQUEST mood, a kind of intent, the author requests to "please obtain blood glucose". The Participations are the people actually and supposedly involved in the act, especially the placer and the designated filler, and the objects actually or supposedly involved in the act (e.g., specimen sent, equipment requirements, etc.). The Observation.value is usually not specified, since the order is not to measure blood glucose in a specific range.

In EVENT mood, the author states that "blood glucose was obtained". Participations are the people actually involved in the act, and the objects actually involved (e.g., specimen, facilities, equipment). The Observation.value is the value actually obtained (e.g., 80 mg/dL, or <15 mg/dL).

In event-CRITERION mood, an author considers a certain class of "obtaining blood glucose" possibly with a certain value (range) as outcome. The Participations constrain the criterion, for instance, to a particular patient. The Observation.value is the range in which the criterion would hold (e.g. > 180 mg/dL or 200-300 mg/dL).

In GOAL mood (a kind of criterion), the author states that "our goal is to be able to obtain blood glucose with the given value (range)". The Participations are similar to intents, especially the author of the goal and the patient for whom the goal is made. The Observation.value is the range which defined when the goal is met (e.g. 80-120 mg/dl).

Rationale: The notion of "mood" is borrowed from natural language grammar, the mood of a verb (lat. modus verbi).

The notion of mood also resembles the various extensions of the logic of facts in modal logic and logic with modalities, where the moodCode specifies the modality (fact, possibility, intention, goal, etc.) under which the Act-statement is judged as appropriate or defective.

3.1.1.3 Act.id:: SET<II> (0..*)
Definition:A unique identifier for the Act.
Version 2.x reference:

| PID^18^00121^Patient Account Number |

| MRG^3^00213^Prior Patient Account Number |

| BLG^3^00236^Account ID |

| FT1^2^00356^Transaction ID |

| FT1^14^00368^Insurance Plan ID |

| IN1^2^00368^Insurance Plan ID |

| DG1^8^00382^Diagnostic Related Group |

| DRG^1^00382^Diagnostic Related Group |

| IN1^14^00439^Authorization Information |

| IN1^35^00460^Company Plan Code |

| IN1^46^00471^Prior Insurance Plan ID |

| IN3^2^00503^Certification Number |

| UB2^12^00564^Document Control Number |

3.1.1.4 Act.code:: CD (0..1)
Vocabulary domain: ActCode (CWE)
Definition:A code specifying the particular kind of Act that the Act-instance represents within its class.

Constraints: The kind of Act (e.g. physical examination, serum potassium, inpatient encounter, charge financial transaction, etc.) is specified with a code from one of several, typically external, coding systems. The coding system will depend on the class of Act, such as LOINC for observations, etc.

Conceptually, the Act.code must be a specialization of the Act.classCode. This is why the structure of ActClass domain should be reflected in the superstructure of the ActCode domain and then individual codes or externally referenced vocabularies subordinated under these domains that reflect the ActClass structure.

Act.classCode and Act.code are not modifiers of each other but the Act.code concept should really imply the Act.classCode concept. For a negative example, it is not appropriate to use an Act.code "potassium" together with and Act.classCode for "laboratory observation" to somehow mean "potassium laboratory observation" and then use the same Act.code for "potassium" together with Act.classCode for "medication" to mean "substitution of potassium". This mutually modifying use of Act.code and Act.classCode is not permitted.

Discussion: Act.code is not a required attribute of Act. Rather than naming the kind of Act using an Act.code, one can specify the Act using only the class code and other attributes and properties of the Act. In general and more commonly, the kind of Act is readily specified by an ActRelationship specifying that this Act instantiates another Act in definition mood. Or, even without reference to an act definition, the act may be readily described by other attributes, ActRelationships and Participations. For example, the kind of SubstanceAdministration may be readily described by referring to the specific drug, as the Participation of an Entity representing that drug.

Version 2.x reference:

| FT1^18^00148^Patient Type |

| PV1^18^00148^Patient Type |

| IN1^15^00440^Plan Type |

| IN1^31^00456^Type of Agreement Code |

| IN2^21^00492^Blood Deductible |

| IN2^28^00499^Room Coverage Type/Amount |

| IN2^29^00500^Policy Type/Amount |

| IN2^30^00501^Daily Deductible |

| IN3^12^00513^Non-Concur Code/Description |

| DRG^8^00770^DRG Payor |

| IN1^47^01227^Coverage Type |

| LRL^4^01227^Coverage Type |

3.1.1.5 Act.negationInd:: BL (0..1)
Definition:An indicator specifying that the Act statement is a negation of the Act as described by the descriptive attributes.

Examples: Used with an Observation event, it allows one to say "patient has NO chest pain". With an Observation criterion it negates the criterion analogously, e.g., "if patient has NO chest pain for 3 days ...", or "if systolic blood pressure is not within 90-100 mm Hg ..."

Discussion: The negationInd works as a negative existence quantifier. This is best explained on Acts in criterion mood, and then translates into all other moods. In criterion mood without negation, one usually only specifies a few critical attributes and relationships (features) of an Act, i.e., only those that are needed to test the criterion. The more features one specifies, the more constrained (specific) is the criterion. For example, to test for "systolic blood pressure of 90-100 mm Hg", one would use only the descriptive attributes Act.code (for systolic blood pressure) and Observation.value (for 90-100 mm Hg). If one would also specify an effectiveTime, i.e., for "yesterday", the criterion would be more constrained. If the negationInd is true for the above criterion, then the meaning of the test is whether a systolic blood pressure of 90-100 mm Hg yesterday does not exist (independent of whether any blood pressure was measured).

The negationInd negates the Act as described by the descriptive properties (including Act.code, Act.effectiveTime, Observation.value, Act.doseQty, etc.) and any of its components. The inert properties such as Act.id, Act.moodCode, Act.confidentialityCode, and particularly the Author-Participation are not negated. These inert properties always have the same meaning: i.e., the author remains to be the author of the negative observation. Also, most ActRelationships (except for components) are not included in the negation.

For example, a highly confidential order written by Dr. Jones, to explicitly not give "succinyl choline" for the "reason" (ActRelationship) of a history of malignant hyperthermia (Observation) negates the descriptive properties "give succinyl choline" (Act.code), but it is still positively an order and written by Dr. Jones and for patient John Smith, and the reason for this order is the patient's history of malignant hyperthermia.

However, additional detail in descriptive attributes will be part of the negation which then limits the effectiveness of the negated statement. For example, had the order not to give a substance included a doseQuantity, it would mean that the substance should not be given at that particular dose (but any other dose might still be O.K.).

An act statement with negationInd is still a statement about the specific fact described by the Act. For instance, a negated "finding of wheezing on July 1" means that the author positively denies that there was wheezing on July 1, and that he takes the same responsibility for such statement and the same requirement to have evidence for such statement than if he had not used negation. Conversely, negation indicator does not just negate that the fact was affirmed or that the statement had been made. This holds for all moods in the same way, e.g., a negated order is an order not to do the described act, not just the lapidary statement that there is no such order.

3.1.1.6 Act.derivationExpr:: ST (0..1)
Definition:A character string containing a formal language expression that specifies how the Act's attributes are (should be or have been) derived from input parameters associated with derivation relationships.

Discussion: Derived observations can be defined through association with other observations using ActRelationships of type "derivation". For example, to define a derived observation for Mean Corpuscular Hemoglobin (MCH) one will associate the MCH observation with a Hemoglobin (HGB) observation and a Red Blood cell Count (RBC) observation. And the derivation expression encodes the formula: MCH = HGB / RBC.

The derivation expression is represented as a character string.

[Note: The syntax of that expression is yet to be fully specified. There would be a single standard expression language rather than an optional choice between many expression languages. The syntax would be based on a de-facto standard for many object-oriented languages, such as C++, Java, OCL etc. A concrete specification of this expression language is being worked on now and drafts can be expected within the year 2003.]

3.1.1.7 Act.title:: ED (0..1)
Definition:A word or phrase by which a specific Act may be known among people.

Example: name of a research study (e.g. "Scandinavian Simvastatin Study"), name of a court case (e.g. "Brown v. Board of Education"), name of another kind of work project or operation. For acts representing documents, this is the title of the document.

CONSTRAINT: Previous to release 2.05 of the RIM, this attribute bore the datatype ST. From release 2.05 onwards, the datatype was extended to a constrained restriction of the ED datatype. The constraints to be imposed are identical to those for the ST datatype, except that the mediaType shall be "text/x-hl7-title+xml" or "text/plain". The intent is to allow sufficient mark-up to convey the semantics of scientific phrases, such as chemical compounds. This markup must not be used to convey simple display preferences. The default mediaType should be "text/plain".

Discussion: This is not a formal identifier but rather a human-recognizable common name. However it is similar to the id attribute in that it refers to a specific Act rather than a 'kind' of act. (For definition mood, the title refers to that specific definition, rather than to a broad category that might be conveyed with Act.code.)

Note: This attribute was not in the normative content balloted and approved for the first release of HL7's Reference Information Model Standard. The attribute will be considered when the RIM is prepared for balloting the second release. The attribute is being used in current HL7 Version 3 designs.

3.1.1.8 Act.text:: ED (0..1)
Definition:A textual or multimedia description (or reference to a description) of the Act.

Examples: For act definitions, the Act.text can contain textbook-like information about that act. For act orders, the description will contain particular instructions pertaining only to that order.

Constraints: No restriction on length or content is imposed on the Act.text attribute.

The content of the description is not considered part of the functional information communicated between computer systems. For Acts that involve human readers and performers, however, computer systems must show the Act.text field to a human user, who has responsibility for the activity; or at least must indicate the existence of the Act.text information and allow the user to see that information.

Free text descriptions are used to help an individual interpret the content and context of the act, but all information relevant for automated functions must be communicated using the proper attributes and associated objects.

Version 2.x reference:

| FT1^8^00362^Transaction Description |

3.1.1.9 Act.statusCode:: CS (0..1)
Vocabulary domain: ActStatus (CNE)
Definition:A code specifying the state of the Act.

Design Advisory: This attribute was defined in the original RIM as repeating, owing to the presence of nested states in the state machines. In actual practice, however, there is never a need to communicate more than a single status value. therefore, committees are advised to constrain this attribute to a maximum cardinality of 1 in all message designs.

Version 2.x reference:

| IN1^32^00457^Billing Status |

| IN2^16^00487^Champus Status |

| IN3^23^00524^Second Opinion Status |

| IN3^24^00525^Second Opinion Documentation Received |

| PV2^16^00717^Purge Status Code |

| PV2^24^00725^Patient Status Code |

3.1.1.10 Act.effectiveTime:: GTS (0..1)
Definition:A time expression specifying the focal or operative time of the Act, the primary time for which the Act holds, the time of interest from the perspective of the Act's intention.

Examples: For clinical Observations, the effectiveTime is the time at which the observation holds (is effective) for the patient.

For contracts, the effectiveTime is the time for which the contract is in effect.

For consents, the effectiveTime is the time for which the consent is valid.

For substance administrations, the effective time is the time over which the substance is to be administered, including the frequency of administration (e.g. TID for 10 days)

For a surgical procedure (operation), the effectiveTime is the time relevant for the patient, i.e., between incision and last suture.

For transportation acts, the effective time is the time the transported payload is en route.

For patient encounters, this is the "administrative" time, i.e., the encounter start and end date required to be chosen by business rules, as opposed to the actual time the healthcare encounter related work is performed.

Discussion: The effectiveTime is also known as the "primary" time (Arden Syntax) or the "biologically relevant time" (HL7 v2.x). This attribute is distinguished from activityTime.

For observations, the time of the observation activity may be much later than the time of the observed feature. For instance, in a Blood Gas Analysis (BGA), a result will always come up several minutes after the specimen was taken, meanwhile the patient's physiological state may have changed significantly.

For essentially physical activities (surgical procedures, transportations, etc.), the effective time is the time of interest for the Act's intention, i.e., since the intention of a transportation is to deliver a payload from location A to B, the effectiveTime is the time this payload is underway from A to B. However, the Act usually also includes accidental work which is necessary to perform the intention of the Act, but is not relevant for the Act's purpose.

For example, the time a driver needs to go to the pick-up location A and then return from drop-off location B to some home base, is included in the physical activity, but does not matter from the perspective of the payload's transportation. Another example is: a person's work hours (effectiveTime) may be from 8 AM to 5 PM, no matter whether that person needs 10 minutes for the commute or 2 hours. The commute is necessary to be at work, but it is not essential for the work hours.

Version 2.x reference:

| PV1^25^00155^Contract Effective Date |

| PV1^30^00160^Transfer to Bad Debt Date |

| PV1^35^00165^Delete Account Date |

| PV1^41^00171^Account Status |

| PV1^44^00174^Admit Date/Time |

| PV1^45^00175^Discharge Date/Time |

| FT1^5^00359^Transaction Posting Date |

| GT1^13^00417^Guarantor Date - Begin |

| IN3^6^00507^Certification Date/Time |

| IN3^9^00510^Certification Begin Date |

| IN3^13^00514^Non-Concur Effective Date/Time |

| IN3^22^00523^Second Opinion Date |

| PV2^17^00718^Purge Status Date |

3.1.1.11 Act.activityTime:: GTS (0..1)
Definition:A time expression specifying when an Observation, Procedure, or other Act occurs, or, depending on the mood, is supposed to occur, scheduled to occur, etc. It tells you when the labor was done for an Act. The activityTime includes the times of component actions (such as preparation and clean-up)For Procedures and SubstanceAdministrations, the activityTime can provide a needed administrative / scheduling function by providing a more complete time that needs to be anticipated for particular acts.

Discussion: The activityTime is more of administrative rather than clinical use. The clinically relevant time is the effectiveTime. When an observation of a prior symptom is made, the activityTime describes the time the observation is made, as opposed to effectiveTime which is the time the symptom occurred. Thus the activityTime may be entirely different than the effectiveTime of the same Act. But even apart from clinical use cases, designers should first consider effectiveTime as the primary relevant time for an Act.

The activityTime is a descriptive attribute, i.e., like effectiveTime, it always describes the Act event as it does or would occur, even when working with different moods. For example, when a procedure is requested, the activityTime describes the requested total time of the procedure. By contrast, the author Participation.time is inert, i.e., author participation time on an order specifies when the order was written and has nothing to do with when the event might actually occur.

ActivityTime indicates when an Act occurs, not when an Act is recorded. Many applications track the time an observation is recorded rather than the precise time during which an observation is made, in which case Participation.time (e.g. of the Author) should be used. These recorded observations can take place during an encounter, and the time of the encounter often provides enough information so that activityTime isn't clinically relevant.

Version 2.x reference:

| FT1^4^00358^Transaction Date |

| IN1^29^00454^Verification Date/Time |

| IN3^7^00508^Certification Modify Date/Time |

| DRG^2^00769^DRG Assigned Date/Time |

3.1.1.12 Act.availabilityTime:: TS (0..1)
Definition:The point in time at which information about Act-instance (regardless of mood) first became available to a system reproducing this Act.

Examples: An Act might record that a patient had a right-ventricular myocardial infarction effective three hours ago (see Act.effectiveTime), but we may only know about this unusual condition a few minutes ago (Act.availabilityTime). Thus, any interventions from three hours ago until a few minutes ago may have assumed the more common left-ventricular infarction, which can explain why these interventions (e.g., nitrate administration) may not have been appropriate in light of the more recent knowledge.

Discussion: The availabilityTime is a subjective secondary piece of information added (or changed) by a system that reproduces this Act, and is not attributed to the author of the act statement (it would not be included in the material the author would attest to with a signature). The system reproducing the Act is often not the same as the system originating the Act, but a system that received this Act from somewhere else, and, upon receipt of the Act, values the availabilityTime to convey the time since the users of that particular system could have known about this Act-instance.

When communicating availabilityTime to another system, the availabilityTime of an Act A is attributed to the author of another Act B, that refers to or includes A. For example, if a medical record extract is compiled for reporting adverse events, availabilityTimes are attributed to the author who compiles that report.

3.1.1.13 Act.priorityCode:: SET<CE> (0..*)
Vocabulary domain: ActPriority (CWE)
Definition:A code or set of codes (e.g., for routine, emergency), specifying the urgency under which the Act happened, can happen, is happening, is intended to happen, or is requested/demanded to happen.

Discussion: This attribute is used in orders to indicate the ordered priority, and in event documentation it indicates the actual priority used to perform the act. In definition mood it indicates the available priorities.

Version 2.x reference:

| PV1^4^00134^Admission Type |

| PV2^25^00726^Visit Priority Code |

3.1.1.14 Act.confidentialityCode:: SET<CE> (0..*)
Vocabulary domain: Confidentiality (CWE)
Definition:A code that controls the disclosure of information about this Act, regardless of mood.

Discussion: It is important to note that the necessary confidentiality of the medical record cannot be achieved solely through confidentiality codes to mask individual record items from certain types of users. There are two important problems with per-item confidentiality: one is inference and the other is the danger of holding back information that may be critical in a certain care situation. Inference means that filtered sensitive information can still be assumed given the other information that was not filtered. The simplest form of inference is that even the existence of a test order for an HIV Western Blot test or a T4/T8 lymphocyte count is a strong indication for an existing HIV infection, even if the results are not known. Very often, diagnoses can be inferred from medication, such as Zidovudin for treatment of HIV infections. The problem of hiding individual items becomes especially difficult with current medications, since the continuing administration of the medication must be assured.

To mitigate some of the inference-risk, aggregations of data should assume the confidentiality level of the most confidential action in the aggregation.

Version 2.x reference:

| IN1^27^00452^Release Information Code |

| PV2^21^00722^Visit Publicity Code |

3.1.1.15 Act.repeatNumber:: IVL<INT> (0..1)
Definition:An interval of integer numbers stating the minimal and maximal number of repetitions of the Act.

Examples: An oral surgeon's advice to a patient after tooth extraction might be: "replace the gauze every hour for 1 to 3 times until bleeding has stopped completely." This translates to repeatNumber with low boundary 1 and high boundary 3.

Discussion: This attribute is a member of the workflow control suite of attributes.

The number of repeats is additionally constrained by time. The act will repeat at least the minimal number of times and at most, the maximal number of times. Repetitions will also terminate when the time exceeds the maximal Act.effectiveTime, whichever comes first.

Usage: On an Act in Event mood, the repeatNumber is usally 1. If greater than 1, the Act is representing a summary of several event occurrences occurring over the time interval described by effectiveTime

To distinguish occurrences of acts within a sequence of repetitions, use ActRelationship.sequenceNumber

3.1.1.16 Act.interruptibleInd:: BL (0..1)
Definition:An indicator specifying whether Act is interruptible by asynchronous events.

Discussion: This attribute is part of the suite of workflow control attributes. Act events that are currently active can be interrupted in various ways. Interrupting events include: (1) when an explicit abort request is received against the Act (2) when the time allotted to this Act expires (timeout); (3) a "through condition" ceases to hold true for this Act (see ActRelationship.checkpointCode); (4) the Act is a component with the joinCode "kill" and all other components in that same group have terminated (see Act.joinCode); and (5) when a containing Act is being interrupted.

If an Act receives an interrupt and the Act itself is interruptible, but it has currently active component-Acts that are non-interruptible, the Act will be interrupted when all of its currently active non-interruptible component-acts have terminated.

3.1.1.17 Act.levelCode:: CE (0..1)
Vocabulary domain: ActContextLevel (CWE)
Definition:Code specifying the level within a hierarchical Act composition structure and the kind of contextual information attached to composite Acts ("containers") and propagated to component Acts within those containers. The levelCode signifies the position within such a containment hierarchy and the applicable constraints.

Discussion: Readers should be aware that this attribute may be declared "obsolescent" in the next normative release of the HL7 RIM. An alternate representation of this concept using a specified hierarchy of Act classCode values is being considered. If the change is adopted, HL7's RIM maintenance procedures state that the levelCode would be declared "obsolescent" in the next RIM release, and then become "obsolete" in the release following that. Users are advised to check with the latest HL7 internal definitions of the RIM, before using this attribute.

The levelCode concepts have been defined to meet specific health record transfer requirements. While these concepts are known to be applicable to some other types of transactions, they are not intended to be a complete closed list. Options exist for other sets of orthogonal levels where required to meet a business purpose (e.g. a multiple patient communication may be subdivided by a super-ordinate level of subject areas).

Examples: The "extract level" and the "folder level" must contain data about a single individual, whereas the "multiple subject level" may contain data about multiple individuals. While "extract" can originate from multiple sources, a "folder" should originate from a single source. The "composition" level usually has a single author.

Constraints: The constraints applicable to a particular level may include differing requirements for participations (e.g. patient, source organization, author or other signatory), relationships to or inclusion of other Acts, documents or use of templates. The constraints pertaining to a level may also specify the permissible levels that may be contained as components of that level. Several nested levels with the same levelCode may be permitted, prohibited (or limited). Instances of the next subordinate level are usually permitted within any level but some levels may be omitted from a model and it may be permissible to skip several layers.

3.1.1.18 Act.independentInd:: BL (0..1)
Definition:An indicator specifying whether the Act can be manipulated independently of other Acts or whether manipulation of the Act can only be through a super-ordinate composite Act that has this Act as a component. By default the independentInd should be true.

Examples: An Act definition is sometimes marked with independentInd=false if the business rules would not allow this act to be ordered without ordering the containing act group.

An order may have a component that cannot be aborted independently of the other components.

3.1.1.19 Act.uncertaintyCode:: CE (0..1)
Vocabulary domain: ActUncertainty (CNE)
Definition:A code indicating whether the Act statement as a whole, with its subordinate components has been asserted to be uncertain in any way.

Examples: Patient might have had a cholecystectomy procedure in the past (but isn't sure).

Constraints: Uncertainty asserted using this attribute applies to the combined meaning of the Act statement established by all descriptive attributes (e.g., Act.code, Act.effectiveTime, Observation.value, SubstanceAdministration.doseQuantity, etc.), and the meanings of any components.

Discussion:This is not intended for use to replace or compete with uncertainty associated with Observation.value alone or other individual attributes of the class. Such pointed indications of uncertainty should be specified by applying the PPD, UVP or UVN data type extensions to the specific attribute. Particularly if the uncertainty is uncertainty of a quantitative measurement value, this must still be represented by a PPD<PQ> in the value andnotusing the uncertaintyCode. Also, when differential diagnoses are enumerated or weighed for probability, the UVP<CD> or UVN<CD> must be used, not the uncertaintyCode. The use of the uncertaintyCode is appropriate only if the entirety of the Act and its dependent Acts is questioned.

Note that very vague uncertainty may be thought related to negationInd, however, the two concepts are really independent. One may be very uncertain about an event, but that does not mean that one is certain about the negation of the event.

3.1.1.20 Act.reasonCode:: SET<CE> (0..*)
Vocabulary domain: ActReason (CWE)
Definition:A code specifying the motivation, cause, or rationale of an Act, when such rationale is not reasonably represented as an ActRelationship of type "has reason" linking to another Act.

Examples: Example reasons that might qualify for being coded in this field might be: "routine requirement", "infectious disease reporting requirement", "on patient request", "required by law".

Discussion

Most reasons for acts can be clearly expressed by linking the new Act to another prior Act using an ActRelationship of type "has reason". This simply states that the prior Act is a reason for the new Act (see ActRelationship). The prior act can then be a specific existing act or a textual explanation. This works for most cases, and the more specific the reason data is, the more should this reason ActRelationship be used instead of the reasonCode.

The reasonCode remains as a place for common reasons that are not related to a prior Act or any other condition expressed in Acts. Indicators that something was required by law or was on the request of a patient etc. may qualify. However, if that piece of legislation, regulation, or the contract or the patient request can be represented as an Act (and they usually can), the reasonCode should not be used.

Version 2.x reference:

| PV1^29^00159^Transfer to Bad Debt Code |

| PV1^34^00164^Delete Account Indicator |

| PV2^4^00184^Transfer Reason |

| IN3^17^00518^Appeal Reason |

3.1.1.21 Act.languageCode:: CE (0..1)
Vocabulary domain: HumanLanguage (CWE)
Definition:The primary language in which this Act statement is specified, particularly the language of the Act.text.

3.1.1.22 State machine for Act
Link to state diagram for this class.

#### States of Act:

- aborted (sub-state of normal): The Act has been terminated prior to the originally intended completion.
- active (sub-state of normal): The Act can be performed or is being performed.
- cancelled (sub-state of normal): The Act has been abandoned before activation.
- completed (sub-state of normal): An Act that has terminated normally after all of its constituents have been performed.
- held (sub-state of normal): An Act that is still in the preparatory stages has been put aside. No action can occur until the Act is released.
- new (sub-state of normal): An Act that has been activated (actions could or have been performed against it), but has been temporarily disabled. No further action should be taken against it until it is released.
- normal: Encompasses the expected states of a service object, but excludes "nullified" and "obsolete" which represent unusual terminal states for the life-cycle.
- nullified: This Act instance was created in error and has been 'removed' and is treated as though it never existed. A record is retained for audit purposes only.
- obsolete: This Act instance has been replaced by a new instance.
- suspended (sub-state of normal): Active service object is temporarily suspended.

#### State transitions of Act:

- abort (from active to aborted)
- revise (from active to active)
- complete (from active to completed)
- suspend (from active to suspended)
- reactivate (from completed to active)
- revise (from completed to completed)
- cancel (from held to cancelled)
- revise (from held to held)
- release (from held to new)
- activate (from new to active)
- cancel (from new to cancelled)
- complete (from new to completed)
- hold (from new to held)
- revise (from new to new)
- nullify (from normal to nullified)
- obsolete (from normal to obsolete)
- activate (from null to active)
- complete (from null to completed)
- create (from null to new)
- jump (from null to normal)
- abort (from suspended to aborted)
- resume (from suspended to active)
- complete (from suspended to completed)
- revise (from suspended to suspended)

3.1.2 Class: ActRelationship (in Acts)

#### Attributes of ActRelationship:

- Attributes of ActRelationship:

typeCode:: CS
inversionInd:: BL
contextControlCode:: CS
contextConductionInd:: BL
sequenceNumber:: INT
priorityNumber:: INT
| pauseQuantity:: PQ
checkpointCode:: CS
splitCode:: CS
joinCode:: CS
negationInd:: BL
conjunctionCode:: CS
| localVariableName:: ST
seperatableInd:: BL
subsetCode:: CS
uncertaintyCode:: CE

- Associations of ActRelationship:
- target::(1..1)Act::inboundRelationship::(0..*)
- source::(1..1)Act::outboundRelationship::(0..*)

- ActRelationship is a specialization of: InfrastructureRoot

#### Definition of ActRelationship:

A directed association between a source Act and a target Act. ActRelationship on the same source Act are called the "outbound" act relationships of that Act. ActRelationships on the same target Act are called the "inbound" relationships of that Act. The meaning and purpose of an ActRelationship is specified in the ActRelationship.typeCode attribute.

Examples: 1) An electrolyte observation panel may have sodium, potassium, pH, and bicarbonate observations as components. The composite electrolyte panel would then have 4 outbound ActRelationships of type "has component".

2) The electrolyte panel event has been performed in fulfillment of an observation order. The electrolyte panel event has an outbound ActRelationship of type "fulfills" with the order as target.

3) A Procedure "cholecystectomy" may be performed for the reason of an Observation of "cholelithiasis". The procedure has an outbound ActRelationship of type "has reason" to the cholelithiasis observation.

Discussion: Consider every ActRelationship instance an arrow with a point (headed to the target) and a butt (coming from the source). The functions (sometimes called "roles") that source and target Acts play in that association are defined for each ActRelationship type differently. For instance in a composition relationship, the source is the composite and the target is the component. In a reason-relationship the source is any Act and the target is the reason or indication for the source-Act.

The relationships associated with an Act are considered properties of the source act object. This means that the author of an Act-instance is also considered the author of all of the act relationships that have this Act as their source. There are no exceptions to this rule.

See ActRelationship.typeCode for more overview of the different kinds of ActRelationships.

The ActRelationship class is used to construct action plans and to represent clinical reasoning or judgments about action relationships. Prior actions can be linked as the reasons for more recent actions. Supporting evidence can be linked with current clinical hypotheses. Problem lists and other networks of related judgments about clinical events are represented by the ActRelationship link.

One of the most commonly used ActRelationship types is "has component" to describe the composition and de-composition of Acts. The relationship type allows specifying detail of Acts to varying degrees.

The composition relationship can group actions into "batteries," e.g., LYTES, CHEM12, or CBC, where multiple routine laboratory tests are ordered as a group. Some groupings, such as CHEM12, appear more arbitrary; others, such as blood pressure, seem to naturally consist of systolic and diastolic pressure.

The composition relationships can be arranged in a sequence to form temporal and conditional (non-temporal) action plans (e.g., care plan, critical path, clinical trials protocol, drug treatment protocols). There is a group of attributes in both Act and ActRelationship that we refer to as the "workflow Control suite of attributes", and which allow the detailed specification of executable action plans. These attributes are:

ActRelationship.sequenceNumber arranges the components of an Act as a sequence or as concurrent collections of components, expressing logical branches as well as parallel tasks (tasks carried out at the same time). The ActRelationship attributes splitCode and joinCode control how branches are selected or executable in parallel.

Act.activityTime and ActRelationship.pauseQty allow one to explicitly time an action plan. Act.repeatNumber allows specifying act to repeat (loop).

The ActRelationship type has-precondition allows plan steps to be conditional on the status or outcome of previous actions. The ActRelationhsip.checkpointCode specifies when pre-conditions of acts are tested during the flow of control.

The composition ActRelationship allows these constructs to be organized in multiple layers of nesting to fully support workflow management. This nesting and the workflow control attributes are designed in analogy to a block-structured programming language with support for concurrency (fork, join, interrupts), and without "goto" statements. It is important to note that ALL plans are established through sequencing components (steps) in a composite act (block) as can be depicted in "Nassi-Schneiderman" diagrams (also known as "Chap Charts" or "Structograms"), not by chain-linking acts as in a flowchart diagram.

With the composition relationship, the detail of Acts can be revealed to different levels for different purposes, without the structure of the Act hierarchy needing to be rearranged. This allows supporting multiple viewpoints on the same business processes. For instance, a billing-viewpoint of a laboratory test battery may be as a single billable act. A clinician's view of the same laboratory test battery is as a set of individual observations, where the ordering among the observations is irrelevant. The laboratory's view of this act will be more detailed, including action plan steps that are never reported to the clinician (e.g., centrifugation, decantation, aliquoting, running certain machines etc.). The laboratory's viewpoint warrants a thorough specification of action plans (that can be automated). During this specification, more and more nested sub-activities will be defined. Still the Act is the same, with varying degrees of detail uncovered in the de-composition relationship.

We described the nature of varying detail saying that Acts are "fractal", ever more decomposable, just as the movements of a robotic arm can be decomposed in many fine control steps.

#### Attributes of ActRelationship:

3.1.2.1 ActRelationship.typeCode:: CS (1..1) Mandatory
Vocabulary domain: ActRelationshipType (CNE)
Definition:A code specifying the meaning and purpose of every ActRelationship instance. Each of its values implies specific constraints to what kinds of Act objects can be related and in which way.

Discussion: The types of act relationships fall under one of 5 categories:

1.) (De)-composition, with composite (source) and component (target).

2.) Sequel which includes follow-up, fulfillment, instantiation, replacement, transformation, etc. that all have in common that source and target are Acts of essentially the same kind but with variances in mood and other attributes, and where the target exists before the source and the source refers to the target that it links back to.

3.) Pre-condition, trigger, reason, contraindication, with the conditioned Act at the source and the condition or reason at the target.

4.) Post-condition, outcome, goal and risk, with the Act at the source having the outcome or goal at the target.

5.) A host of functional relationships including support, cause, derivation, etc. generalized under the notion of "pertinence".

Version 2.x reference:

| FT1^3^00357^Transaction Batch ID |

| FT1^15^00369^Insurance Amount |

| FT1^17^00370^Fee Schedule |

| IN1^25^00450^Rpt of Eligibility Flag |

| IN1^33^00458^Lifetime Reserve Days |

| IN1^34^00459^Delay Before L. R. Day |

| IN1^37^00462^Policy Deductible |

| IN1^39^00464^Policy Limit - Days |

| IN2^19^00490^Baby Coverage |

| IN2^20^00491^Combine Baby Bill |

| IN2^21^00492^Blood Deductible |

| IN2^24^00495^Non-Covered Insurance Code |

| IN2^28^00499^Room Coverage Type/Amount |

| IN2^29^00500^Policy Type/Amount |

| IN2^30^00501^Daily Deductible |

| IN3^5^00506^Penalty |

| IN3^20^00521^Pre-Certification Req/Window |

| IN2^67^00807^Copay Limit Flag |

3.1.2.2 ActRelationship.inversionInd:: BL (0..1)
Definition:An indicator specifying that the ActRelationship.typeCode should be interpreted as if the roles of the source and target Acts were reversed. The inversion indicator is used when the meaning of ActRelationship.typeCode must be reversed.

3.1.2.3 ActRelationship.contextControlCode:: CS (0..1)
Vocabulary domain: ContextControl (CNE)
Definition:A code that specifies how this ActRelationship contributes to the context of the current Act, and whether it may be propagated to descendent Acts whose association allows such propagation (see ActRelationship.contextConductionInd).

Rationale: In the interest of reducing duplication, humans tend to rely on context when interpreting information. For example, when reading a report taken from a folder containing a patient's medical record, the reader will infer that the report deals with the patient, even if there is no direct reference to the patient on the form. However, other pieces of information such as the author of the folder (the hospital that maintains it) may sometimes apply to the contents of the folder (e.g. a report generated by a doctor at the hospital) and other times not (e.g. a copy of a report from another institution). Humans are quite good at making the necessary inferences about what context should be propagated from an item to something within that item. However, incorrect inferences can occur (perhaps the report in the patient's record deals with a relative). Furthermore, computers have substantially more difficulty making such inferences, even though they can be essential for decision-support systems.

Discussion: This attribute allows the clear specification of whether an association adds to the context associated with a particular item (e.g. adding an additional author) or whether it replaces (overrides) part of the context associated with a particular item (e.g. identifying a sole author, independent of the containing item). It also indicates whether the association applies to only this act (non-propagating), or whether it may apply to derived acts as well (propagating).

This attribute is closely linked with ActRelationship.contextConductionInd which determines whether associations that have been marked as propagating will actually be conducted to a child Act. For example, an author participation might be marked as propagating, but still not conducted to a hyperlink to an external document.

If no value or default is specified for this attribute (i.e. it is null), no inference can be made about context. Systems must make their own assumptions on the basis of what data is being represented. (For this reason, HL7 committees are encouraged to specify a default or fixed value for this attribute as part of their designs to ensure consistency of interpretation.)

Examples: An observation event has a patient participation marked "additive, propagating" (AP) and has component observation events linked through act relationships that are marked propagating. This means that the patient participation behaves as a patient participation of those component observation events in addition to the parent observation event.

A composite order is created containing a pharmacy order as well as requests for several lab tests. The composite order has participations for patient and author, and an act relationship to a diagnosis, all marked as "additive, propagating". The "component" association between the composite order and the pharmacy order is marked as conductive (contextConductionInd is TRUE). The pharmacy order has an author participation marked as "additive, non-propagating" (AN), and a reason relationship to a diagnosis, marked as "overriding, propagating" (OP). The order further has a relationship to a dispense event, marked as conductive, and an association to a drug protocol marked as non-conductive (contextConductionInd is FALSE). The meaning would be as follows:

The pharmacy order is interpreted as having the patient from the composite order, and having two authors (the one from the composite order, and the one on the pharmacy order itself). The diagnosis for the pharmacy order would only be the diagnosis specified on the pharmacy order, not the one specified on the composite order. The dispense event would carry the patient from the composite order and the diagnosis from the pharmacy order, but no author. The drug protocol would not be associated with a patient, diagnosis or author.

3.1.2.4 ActRelationship.contextConductionInd:: BL (0..1)
Definition:If true, associations in the parent act are conducted across the ActRelationship to the child act.

Discussion: Only associations that have been added to the context of an Act and are marked "propagating" will be conducted. (See contextControlCode on ActRelationship and Participation)

The identification of an Act as a parent or child (and therefore the direction context will be conducted) is determined by how the association is traversed when it is serialized. The first act to be encountered is considered to be the parent. Context conducts across the ActRelationship to the second (child) Act.

Refer to ActRelationship.contextControlCode for rationale and examples.

3.1.2.5 ActRelationship.sequenceNumber:: INT (0..1)
Definition:An integer specifying the relative sequential or temporal ordering of this relationship among other like-types relationships having the same source Act.

Discussion: This attribute is part of the workflow control suite of attributes. An action plan is a composite Act with component Acts. In a sequential plan, each component has a sequenceNumber that specifies the ordering of the plan steps. Multiple components with the same sequenceNumber make a branch. Branches can be exclusive (case-switch) or can indicate parallel processes indicated by the splitCode.

If value is null, the relative position of the target Act is unspecified. (i.e. it may occur anywhere.)

Use the 'priorityNumber' attribute to indicate relative preference instead of order of occurrence.

3.1.2.6 ActRelationship.priorityNumber:: INT (0..1)
Definition:An integer specifying the relative preference for considering this relationship before other like-typed relationships having the same source Act. Relationships with lower priorityNumber values are considered before and above those with higher values.

Examples: For multiple criteria specifies which criteria are considered before others. For components with the same sequence number, specifies which ones are considered before others. Among alternatives or options that are being chosen by humans, the priorityNumber specifies preference.

Discussion: The ordering may be a total ordering in which all priority numbers are unique or a partial ordering, which assigns the same priority to more than one relationship.

3.1.2.7 ActRelationship.pauseQuantity:: PQ (0..1)
Definition:A quantity of time that should elapse between when an Act is ready for execution and the actual beginning of the execution.

Discussion: This attribute is part of the workflow control suite of attributes. An action plan is a composite Act with component Acts. In a sequential plan, each component has a sequenceNumber that specifies the ordering of the plan steps. Before each step is executed and has preconditions these conditions are tested and if the test is positive, the Act has clearance for execution. At that time the pauseQuantity timer is started and the Act is executed after the pauseQuantity has elapsed.

As a precondition (e.g. administer 3 hours prior to surgery), pause quantity is allowed to be negative provided that it is possible to predict the occurrence of the target condition.

Constraint: Units must be comparable to seconds.

3.1.2.8 ActRelationship.checkpointCode:: CS (0..1)
Vocabulary domain: ActRelationshipCheckpoint (CNE)
Definition:A code specifying when in the course of an Act a precondition for the Act is evaluated (e.g., before the Act starts for the first time, before every repetition, after each repetition but not before the first, or throughout the entire time of the Act).

Discussion: This attribute is part of the workflow control suite of attributes. An action plan is a composite Act with component Acts. In a sequential plan, each component has a sequenceNumber that specifies the ordering of the plan steps. Before each step is executed, those with preconditions have their conditions tested; where the test is positive, the Act has clearance for execution. The repeatNumber may indicate that an Act may be repeatedly executed. The checkpointCode is specifies when the precondition is checked and is analogous to the various conditional statements and loop constructs in programming languages "while-do" vs. "do-while" or "repeat-until" vs. "loop-exit".

For all checkpointCodes, except "end", preconditions are being checked at the time when the preceding step of the plan has terminated and this step would be next in the sequence established by the sequenceNumber attribute.

When the checkpointCode for a criterion of a repeatable Act is "end", the criterion is tested only at the end of each repetition of that Act. When the condition holds true, the next repetition is ready for execution.

When the checkpointCode is "entry" the criterion is checked at the beginning of each repetition (if any) whereas "beginning" means the criterion is checked only once before the repetition "loop" starts.

The checkpointCode "through" is special in that it requires the condition to hold throughout the execution of the Act, even throughout a single execution. As soon as the condition turns false, the Act should receive an interrupt event (see Act.interruptibleInd) and will eventually terminate.

The checkpointCode "exit" is only used on a special plan step that represents a loop exit step. This allows an action plan to exit due to a condition tested inside the execution of this plan. Such exit criteria are sequenced with the other plan components using the ActRelationship.sequenceNumber.

3.1.2.9 ActRelationship.splitCode:: CS (0..1)
Vocabulary domain: ActRelationshipSplit (CNE)
Definition:A code specifying how branches in an action plan are selected among other branches.

Discussion: This attribute is part of the workflow control suite of attributes. An action plan is a composite Act with component Acts. In a sequential plan, each component has a sequenceNumber that specifies the ordering of the plan steps. Branches exist when multiple components have the same sequenceNumber. The splitCode specifies whether a branch is executed exclusively (case-switch) or inclusively, i.e., in parallel with other branches.

In addition to exclusive and inclusive split the splitCode specifies how the pre-condition (also known as "guard conditions" on the branch) are evaluated. A guard condition may be evaluated once when the branching step is entered and if the conditions do not hold at that time, the branch is abandoned. Conversely execution of a branch may wait until the guard condition turns true.

In exclusive wait branches, the first branch whose guard conditions turn true will be executed and all other branches abandoned. In inclusive wait branches some branches may already be executed while other branches still wait for their guard conditions to turn true.

3.1.2.10 ActRelationship.joinCode:: CS (0..1)
Vocabulary domain: ActRelationshipJoin (CNE)
Definition:A code specifying how concurrent Acts are resynchronized in a parallel branch construct.

Discussion: This attribute is part of the workflow control suite of attributes. An action plan is a composite Act with component Acts. In a sequential plan, each component has a sequenceNumber that specifies the ordering of the plan steps. Branches exist when multiple components have the same sequenceNumber. Branches are parallel if the splitCode specifies that more than one branch can be executed at the same time. The joinCode then specifies if and how the branches are resynchronized.

The principal re-synchronization actions are (1) the control flow waits for a branch to terminate (wait-branch), (2) the branch that is not yet terminated is aborted (kill-branch), (3) the branch is not re-synchronized at all and continues in parallel (detached branch).

A kill-branch is only executed if there is at least one active wait (or exclusive wait) branch. If there is no other wait branch active, a kill-branch is not started at all (rather than being aborted shortly after it is started). Since a detached branch is unrelated to all other branches, active detached branches do not protect a kill-branch from being aborted.

3.1.2.11 ActRelationship.negationInd:: BL (0..1)
Definition:An indicator that asserts that the meaning of the link is negated.

Examples: If the relationship without negation specifies that Act A has Act B as a component, then the negation indicator specifies that Act A does not have Act B as a component. If B is a reason for A, then negation means that B is not a reason for A. If B is a pre-condition for A, then negation means that B is not a precondition for A.

Discussion: As the examples show, the use of this attribute is quite limited, notably contrast this with the Act.negationInd that actually requires that the described Act not exist, not be done, etc. whereas the ActRelationship.negationInd merely negates this relationship between source and target act, but does not change the meaning of each Act. This is mostly used for clarifying statements.

Note also the difference between negation and the contrary. A contraindication is the contrary of an indication (reason) but not the negation of the reason. The fact that lower back pain is not a reason to prescribe antibiotics doesn't mean that antibiotics are contraindicated with lower back pain.

3.1.2.12 ActRelationship.conjunctionCode:: CS (0..1)
Vocabulary domain: RelationshipConjunction (CNE)
Definition:A code specifying the logical conjunction of the criteria among all the condition-links of Acts (e.g., and, or, exclusive-or).

Constraints: All AND criteria must be true. If OR and AND criteria occur together, one criterion out of the OR-group must be true and all AND criteria must be true also. If XOR criteria occur together with OR and AND criteria, exactly one of the XOR criteria must be true, and at least one of the OR criteria and all AND criteria must be true. In other words, the sets of AND, OR, and XOR criteria are in turn combined by a logical AND operator (all AND criteria and at least one OR criterion and exactly one XOR criterion). To overcome this ordering, Act criteria can be nested in any way necessary.

3.1.2.13 ActRelationship.localVariableName:: ST (0..1)
Definition:A character string name for the input parameter from which the source Act of this ActRelationship derives some of its attributes. The local variable name is bound in the scope of the Act.derivationExpr with its value being an Act selected based on the input parameter specification.

3.1.2.14 ActRelationship.seperatableInd:: BL (0..1)
Definition:This attribute indicates whether or not the source Act is intended to be interpreted independently of the target Act. The indicator cannot prevent an individual or application from separating the Acts, but indicates the author's desire and willingness to attest to the content of the source Act if separated from the target Act. Note that the default for this attribute will typically be "TRUE". Also note that this attribute is orthogonal and unrelated to the RIM's context/inheritance mechanism. If the context of an Act is propagated to nested Acts, it is assumed that those nested Acts are not intended to be interpreted without the propagated context.

3.1.2.15 ActRelationship.subsetCode:: CS (0..1)
Vocabulary domain: ActRelationshipSubset (CNE)
Definition:Used to indicate that the target of the relationship will be a filtered subset of the total related set of targets

Used when there is a need to limit the number of components to the first, the last, the next, the total, the average or some other filtered or calculated subset.

3.1.2.16 ActRelationship.uncertaintyCode:: CE (0..1)
Vocabulary domain: ActUncertainty (CNE)
Definition:A code indicating whether the specific relationship between the source and target Acts has been asserted to be uncertain in any way.

Examples: A particular exposure event is suspected but not known to have caused a particular symptom.

Constraints: Uncertainty asserted using this attribute applies only to the relationship between two acts. The certainty of the acts themselves should be conveyed via Act.uncertaintyCode.

Discussion: Note that very vague uncertainty may be thought related to ActRelationship.negationInd, however, the two concepts are really independent. One may be very uncertain about whether a relationship exists (e.g. not sure whether a drug contains an ingredient) an event, but that does not mean that one is certain about the negation of the relationship (e.g. A drug definitively does not contain an ingredient).

3.1.3 Class: Participation (in Acts)

#### Attributes of Participation:

- Attributes of Participation:

typeCode:: CS
functionCode:: CD
contextControlCode:: CS
sequenceNumber:: INT
negationInd:: BL
| noteText:: ED
time:: IVL<TS>
modeCode:: CE
awarenessCode:: CE
signatureCode:: CE
| signatureText:: ED
performInd:: BL
substitutionConditionCode:: CE
subsetCode:: CS

- Associations of Participation:
- act::(1..1)Act::participation::(0..*)
- role::(1..1)Role::participation::(0..*)

- Participation generalizes:

ManagedParticipation

- Participation is a specialization of: InfrastructureRoot

#### Definition of Participation:

An association between an Act and a Role with an Entity playing that Role. Each Entity (in a Role) involved in an Act in a certain way is linked to the act by one Participation-instance. The kind of involvement in the Act is specified by the Participation.typeCode.

Examples: 1) Performers of acts (surgeons, observers, practitioners).

2) Subjects of acts, patient, devices

3) Locations

4) Author, co-signer, witness, informant

5) Addressee, information recipient

Rationale: Participations represent performance while Roles represent competence. Participations specify the actual performance of an Entity in a certain Act, and thus a Participation is scoped by its specific Act. Conversely, Roles specify the competence of an Entity (i.e., how it may principally participate in what kinds of acts) irrespective of any individual Act.

For example, the professional credentials of a person (Role) may be quite different from what a person actually does (Participation). A common example is interns and residents performing anesthesia or surgeries under (more or less) supervision of attending specialists.

An Act can have multiple participations of the same type, which indicates collaborative activities or group involvement. The notion of multiple performing Participations partially overlaps with sub-activities (Act components). Whenever multiple actors are involved in an act, each actor performs a different task (with the extremely rare exception of such symmetrical activities as two people pulling a rope from either end). Thus, the presence of multiple actors could be equally well represented as an act consisting of sub-acts where each act would have only one performing actor

For example, a record of a surgical service may include the actors of type: (a) consenter, (b) primary surgeon, and (c) anesthetist. These three actors really perform different tasks, which can be represented as three related acts: (a) the consent, (b) the surgery proper, and (c) the anesthesia act in parallel to the surgery. If we used the sub-acts, the consenter, surgeon and anesthetist could simply be of actor type "performer." Thus the more sub-acts we use, the fewer different actor types we need to distinguish; conversely, the fewer sub-acts we use, the more distinct actor types we need.

As a rule of thumb, sub-tasks should be considered instead of multiple actors when each sub-task requires special scheduling, or billing, or if overall responsibilities for the sub-tasks are different. In most cases, however, human resources are scheduled by teams (instead of individuals), billing tends to lump many sub-tasks together into one position, and overall responsibility often rests with one attending physician, chief nurse, or head of department. This model allows both the multi-actor and the multi-act approach to represent the business reality, with a slight bias towards "lumping" minor sub-activities into the overall act.

#### Attributes of Participation:

3.1.3.1 Participation.typeCode:: CS (1..1) Mandatory
Vocabulary domain: ParticipationType (CNE)
Definition:A code specifying the kind of Participation or involvement the Entity playing the Role associated with the Participation has with regard to the associated Act.

Constraints: The Participant.typeCode contains only categories that have crisp semantic relevance in the scope of HL7. It is a coded attribute without exceptions and no alternative coding systems allowed.

Version 2.x reference:

| IN1^20^00445^Assignment of Benefits |

| IN1^21^00446^Coordination of Benefits |

| IN1^22^00447^Coord of Ben. Priority |

| IN2^5^00476^Mail Claim Party |

| IN2^19^00490^Baby Coverage |

| IN2^59^00799^Policy Scope |

3.1.3.2 Participation.functionCode:: CD (0..1)
Vocabulary domain: ParticipationFunction (CWE)
Definition:An optional code specifying additional detail about the function that the Participation has in the Act, if such detail is not implied by the Participation.typeCode.

Examples: First surgeon, second surgeon (or first assistant surgeon, the one facing the primary surgeon), second assistant (often standing next to the primary surgeon), potentially a third assistant, scrub nurse, circulating nurse, nurse assistant, anesthetist, attending anesthetist, anesthesia nurse, technician who positions the patient, postoperative watch nurse, assistants, midwives, students, etc.

Constraints: This code, if specified at all, must not be in conflict with the Participation.typeCode. Automated systems should not functionally depend on this code.

No HL7 standard specification may be written to technically depend on the functionCode. If that is deemed necessary, such concepts should be defined in the Participation.typeCode instead.

Discussion: This code can accommodate the huge variety and nuances of functions that participants may perform in the act. The number and kinds of functions applicable depends on the special kind of act. E.g., each operation and method may require a different number of assistant surgeons or nurses.

Since participation functions refer to what people do in an Act, these are really sub-activities that may all occur in parallel. If any more detail needs to be said about these activities other than just who does them, one should consider using component acts instead.

3.1.3.3 Participation.contextControlCode:: CS (0..1)
Vocabulary domain: ContextControl (CNE)
Definition:A code that specifies how this Participation contributes to the context of the current Act, and whether it may be propagated to descendent Acts whose association allows such propagation (see ActRelationship.contextConductionInd).

Discussion: Refer to ActRelationship.contextControlCode for rationale, discussion and examples.

3.1.3.4 Participation.sequenceNumber:: INT (0..1)
Definition:An integer specifying the relative order of the Participation in relation to other Participations of the same Act.

Rationale: The sequencing might be undertaken for functional reasons or to establish a priority between participations. One example is the sequencing of covered party participations to establish a coordination of benefits sequence in insurance claims.

3.1.3.5 Participation.negationInd:: BL (0..1)
Definition:If true, indicates that the specified participation did not, is not or should not occur (depending on mood).

Rationale: This has two primary uses: (1) To indicate that a particular Role did not/should not participate in an Act. (2) To remove a participant from the context being propagated between Acts.

Discussion: A participation with a negationInd set to true is stronger than one with a negationInd of false. In other words, if there is a conflict, the negated participation takes precedence.

Examples: Dr. Smith did not participate; Patient Jones did not sign the consent.

3.1.3.6 Participation.noteText:: ED (0..1)
Definition:A textual or multimedia depiction of commentary related to the participation. This note is attributed to this participant only.

3.1.3.7 Participation.time:: IVL<TS> (0..1)
Definition:An interval of time specifying the time during which the participant is involved in the act through this Participation.

Rationale: Participation time is needed when the participant's involvement in the act spans only part of the Act's time. Participation time is also used to indicate the time at which certain very common sub-activities happen that are not worth mentioning in full acts.

Examples: 1) The time data was entered into the originating system is the Participation.time of the "data entry" participation.

2) The end of the participation time of an author is the time associated with the signature.

3) The Participation.time of a co-signing participation is also the time of that co-signature.

3.1.3.8 Participation.modeCode:: CE (0..1)
Vocabulary domain: ParticipationMode (CWE)
Definition:A code specifying the modality by which the Entity playing the Role is participating in the Act.

Examples: Physically present, over the telephone, written communication.

Rationale: Particularly for author (originator) participants this is used to specify whether the information represented by the act was initially provided verbally, (hand-)written, or electronically.

3.1.3.9 Participation.awarenessCode:: CE (0..1)
Vocabulary domain: TargetAwareness (CWE)
Definition:A code specifying the extent to which the Entity playing the participating Role (usually as a target Participation) is aware of the associated Act.

Examples: For diagnostic observations, is the patient, family member or other participant aware of the patient's terminal illness?

Discussion: If the awareness, denial, unconsciousness, etc. is the subject of medical considerations (e.g., part of the problem list), one should use explicit observations in these matters as well, and should not solely rely on this simple attribute in the Participation.

3.1.3.10 Participation.signatureCode:: CE (0..1)
Vocabulary domain: ParticipationSignature (CNE)
Definition:A code specifying whether and how the participant has attested his participation through a signature and or whether such a signature is needed.

Examples: A surgical Procedure act object (representing a procedure report) requires a signature of the performing and responsible surgeon, and possibly other participants. (See also: Participation.signatureText.)

3.1.3.11 Participation.signatureText:: ED (0..1)
Definition:A textual or multimedia depiction of the signature by which the participant endorses his or her participation in the Act as specified in the Participation.typeCode and that he or she agrees to assume the associated accountability.

Examples: 1) An "author" participant assumes accountability for the truth of the Act statement to the best of his knowledge.

2) An information recipient only attests to the fact that he or she has received the information.

Discussion: The signature can be represented in many different ways either inline or by reference according to the ED data type. Typical cases are:

1) Paper-based signatures: the ED data type may refer to some document or file that can be retrieved through an electronic interface to a hardcopy archive.

2) Electronic signature: this attribute can represent virtually any electronic signature scheme.

3) Digital signature: in particular, this attribute can represent digital signatures, for example, by reference to a signature data block that is constructed in accordance to a digital signature standard, such as XML-DSIG, PKCS#7, PGP, etc.

3.1.3.12 Participation.performInd:: BL (0..1)
Definition:Indicates that the resource for this Participation must be reserved before use (i.e. it is controlled by a schedule).

Rationale: This attribute serves a very specific need in the context of resource scheduling. It is not needed in the majority of participation expressions. In most circumstances, it applies to the participation of a particular location or piece of equipment whose use is controlled by a scheduler.

3.1.3.13 Participation.substitutionConditionCode:: CE (0..1)
Vocabulary domain: SubstitutionCondition (CWE)
Definition:Indicates the conditions under which a participating item may be substituted with a different one.

3.1.3.14 Participation.subsetCode:: CS (0..1)
Vocabulary domain: ParticipationSubset (CNE)
Definition:Used to indicate that the participation is a filtered subset of the total participations of the same type owned by the Act.

Used when there is a need to limit the participations to the first, the last, the next or some other filtered subset.

3.1.4 Class: Account (in Acts)

#### Attributes of Account:

- Attributes of Account:

balanceAmt:: MO
currencyCode:: CE
| interestRateQuantity:: RTO<MO,PQ>
allowedBalanceQuantity:: IVL<MO>

- Account is a specialization of: Act

#### Definition of Account:

An Act representing a category of financial transactions that are tracked and reported together with a single balance.

Discussion: This can be used to represent the accumulated total of billable amounts for goods or services received, payments made for goods or services, and debit and credit accounts between which financial transactions flow.

Examples: Patient accounts; Encounter accounts; Cost centers; Accounts receivable

#### Attributes of Account:

3.1.4.1 Account.balanceAmt:: MO (0..1)
Definition:The total of the debit and credit transactions that have occurred against the account over its lifetime.

Discussion: The balance of an account will generally be communicated in the currency identified as the account's currencyCode. However, it is allowed to communicate the balance in alternative currencies.

3.1.4.2 Account.currencyCode:: CE (0..1)
Vocabulary domain: Currency (CWE)
Definition:Indicates the currency that the account is managed in.

Discussion: Specific amounts might be reported in another currency however this represents the default currency for activity in this account.

3.1.4.3 Account.interestRateQuantity:: RTO<MO,PQ> (0..1)
Definition:A ratio that indicates the rate of interest that the account balance is subject to, and the term over which the interest rate compounds.

Discussion: This may represent interest charged (e.g. for loans, overdue accounts, etc.) or credited (investments, etc.) depending on the type of account.

Examples: 0.10/1a (10%/year); 0.0005895/1d (.05895%/day)

Constraints: Unit of the denominator PQ data type must be comparable to seconds. (I.e. the denominator must be measured in time.)

3.1.4.4 Account.allowedBalanceQuantity:: IVL<MO> (0..1)
Definition:An interval describing the minimum and maximum allowed balances for an account.

Discussion: These are not necessarily 'hard' limits (i.e. the account may go above or below the specified amounts), however, they represent the 'target' range for the account, and there may be consequences for going outside the specified boundaries. It is not necessary to specify both upper and lower limits (or either) for an account.

Examples: 'stop loss' limits; credit limits

3.1.5 Class: ControlAct (in Acts)

- Associations of ControlAct:
- payload::(0..1)Message::controlAct::(0..*)
- queryEvent::(0..1)QueryEvent::controlAct::(1..1)

- ControlAct is a specialization of: Act

#### Definition of ControlAct:

An act representing a change to the state of another class, a user event (e.g. query), or a system event (e.g. time-based occurrences).

Examples:

- Discharging a patient (Encounter from Active to Completed);

- Stopping a medication (SubstanceAdministration from Active to Aborted);

- Sending an end-of-day summary (time-based event).

Discussion: This class corresponds to the concept of 'Trigger Event', and as such, must be present as the focus of every messaging interaction (because of the 1..1 association between a trigger event and an interaction.) However, control acts can also appear within a message payload. For example, a set of control acts associated with a Lab Order identifying the events that have occurred against that order (first created, then revised, then suspended, then resumed, then completed.)

3.1.6 Class: DeviceTask (in Acts)

#### Attributes of DeviceTask:

- Attributes of DeviceTask:

parameterValue:: LIST<ANY>

- DeviceTask is a specialization of: Act

#### Definition of DeviceTask:

An activity of an automated system.

Discussion:Such activities are invoked either by an outside command or are scheduled and executed spontaneously by the device (e.g., regular calibration or flushing). The command to execute the task has moodCode <= ORD; an executed task (including a task in progress) has moodCode <= EVN, an automatic task on the schedule has moodCode <= APT.

#### Attributes of DeviceTask:

3.1.6.1 DeviceTask.parameterValue:: LIST<ANY> (0..*)
Definition:The parameters of the task submitted to the device upon the issuance of a command (or configuring the schedule of spontaneously executed tasks).

Rationale: Some parameters for tasks are uniquely defined by a specific model of equipment. Most critical arguments of a task (e.g., container to operate on, positioning, timing, etc.) are specified in an HL7 standardized structure, and the parameter list would not be used for those. The parameter list is used only for those parameters that cannot be standardized because they are uniquely defined for a specific model of equipment. NOTE: This means that the semantics and interpretation of a parameterValue can only be made with an understanding of the specifications or documentation for the specific device being addressed. This information is not conveyed as part of the message.

Constraints: Parameters are only specified here if they are not included in a separate HL7 defined structure. The parameters are a list of any data values interpreted by the device. The parameters should be typed with an appropriate HL7 data type (e.g., codes for nominal settings, such as flags, REAL and INT for numbers, TS for points in time, PQ for dimensioned quantities, etc.). However, besides this HL7 data typing, the functioning of the parameters is opaque to the HL7 standardization.

3.1.7 Class: DiagnosticImage (in Acts)

#### Attributes of DiagnosticImage:

- Attributes of DiagnosticImage:

subjectOrientationCode:: CE

- DiagnosticImage is a specialization of: Observation

#### Definition of DiagnosticImage:

An observation whose immediate and primary outcome (post-condition) is new data about a subject, in the form of visualized images.

#### Attributes of DiagnosticImage:

3.1.7.1 DiagnosticImage.subjectOrientationCode:: CE (0..1)
Vocabulary domain: ImagingSubjectOrientation (CWE)
Definition:A code specifying qualitatively the spatial relation between an imaged object and the imaging film or detector.
3.1.8 Class: Diet (in Acts)

#### Attributes of Diet:

- Attributes of Diet:

energyQuantity:: PQ
| carbohydrateQuantity:: PQ

- Diet is a specialization of: Supply

#### Definition of Diet:

A supply act dealing specifically with the feeding or nourishment of a subject.

Discussion: The detail of the diet is given as a description of the Material associated via Participation.typeCode="product". Medically relevant diet types may be communicated in the Diet.code, however, the detail of the food supplied and the various combinations of dishes should be communicated as Material instances.

Examples: Gluten free; Low sodium

#### Attributes of Diet:

3.1.8.1 Diet.energyQuantity:: PQ (0..1)
Definition:The supplied biologic energy (Calories) per day.

Discussion: This physical quantity should be convertible to 1 kcal/d (or 1 kJ/d). Note, avoid the existing confusion between "large Calorie" and a "small calorie." Nutrition labels on food products list "large Calories." It is more appropriate to use the small calorie, which is 1/1000 of a large Calorie. These are clearly distinguished in the HL7 units of measure tables.

3.1.8.2 Diet.carbohydrateQuantity:: PQ (0..1)
Definition:The supplied amount of carbohydrates (g) per day.

Discussion: For a diabetes diet one typically restricts the amount of metabolized carbohydrates to a certain amount per day (e.g., 240 g/d). This restriction can be communicated in the carbohydrateQuantity.

3.1.9 Class: FinancialContract (in Acts)

#### Attributes of FinancialContract:

- Attributes of FinancialContract:

paymentTermsCode:: CE

- FinancialContract is a specialization of: Act

#### Definition of FinancialContract:

A contract whose value is measured in monetary terms.

Examples: Insurance; Purchase agreement

#### Attributes of FinancialContract:

3.1.9.1 FinancialContract.paymentTermsCode:: CE (0..1)
Vocabulary domain: PaymentTerms (CWE)
Definition:Establishes the payment terms for a contractual agreement or obligation.

Examples: "net 30"; "on receipt of invoice"; "upon completion of service"

3.1.10 Class: FinancialTransaction (in Acts)

#### Attributes of FinancialTransaction:

- Attributes of FinancialTransaction:

amt:: MO
| creditExchangeRateQuantity:: REAL
| debitExchangeRateQuantity:: REAL

- FinancialTransaction is a specialization of: Act

#### Definition of FinancialTransaction:

An Act representing the movement of a monetary amount between two accounts.

Discussion: Financial transactions always occur between two accounts (debit and credit), but there may be circumstances where one or both accounts are implied or inherited from the containing model.

In the "order" mood, this represents a request for a transaction to be initiated.

In the "event" mood, this represents the posting of a transaction to an account.

Examples: Cost of a service; Charge for a service; Payment of an invoice

#### Attributes of FinancialTransaction:

3.1.10.1 FinancialTransaction.amt:: MO (0..1)
Definition:Indicates the monetary amount to be transferred from the debit to the credit account.

Discussion: If the denomination of the amt differs from the denomination of the debit or credit account, then the associated exchange rate should be specified.

3.1.10.2 FinancialTransaction.creditExchangeRateQuantity:: REAL (0..1)
Definition:A decimal number indicating the rate of exchange in effect between the currency of the account being credited, and the currency of the transaction net amount.

Examples: For the purchase of services valued in Mexican pesos using U.S. dollars paid from a Canadian dollar account, the credit exchange ratio would be communicated as real number "r" such that "y (USD) * r = x (CAD)".

Rationale: This allows a transaction to be expressed in a currency other than that of the credit and debit accounts. It also allows the credit and debit accounts to be based in different currencies.

3.1.10.3 FinancialTransaction.debitExchangeRateQuantity:: REAL (0..1)
Definition:A decimal number indicating the rate of exchange in effect between the currency of the account being debited, and the currency of the transaction net amount.

Examples: For the purchase of services valued in Mexican pesos using U.S. dollars paid from a Canadian dollar account, the debit exchange ratio would be communicated as real number "r" such that "y (USD) * r = x (MXP)".

Rationale: This allows a transaction to be expressed in a currency other than that of the credit and debit accounts. It also allows the credit and debit accounts to be based in different currencies.

3.1.11 Class: InvoiceElement (in Acts)

#### Attributes of InvoiceElement:

- Attributes of InvoiceElement:

modifierCode:: SET<CE>
unitQuantity:: RTO<PQ,PQ>
| unitPriceAmt:: RTO<MO,PQ>
netAmt:: MO
| factorNumber:: REAL
pointsNumber:: REAL

- InvoiceElement is a specialization of: Act

#### Definition of InvoiceElement:

An Act representing a statement and justification of an "amount owed".

Discussion: This represents the 'justification' portion of an invoice. It is frequently combined with a financial transaction representing the amount requested to be paid, agreed to be paid, or actually paid.

A recursive relationship can be used to break a single InvoiceElement into constituent elements.

In definition mood, it represents "possible" justification for future billing. In request mood, it is a request to determine the amount owed. In event mood, this class represents the determination of a specific amount owed by a particular Entity.

#### Attributes of InvoiceElement:

3.1.11.1 InvoiceElement.modifierCode:: SET<CE> (0..*)
Vocabulary domain: InvoiceElementModifier (CWE)
Definition:Designates a modifier to the code attribute to provide additional information about the invoice element.

Examples: Isolation allowance; After-hours service

Rationale: This is not pre-coordinated into the CD attribute because the modifier code set may not be specifically designed for use with the Act.code code set. This violates the constraint for using the 'modifier' property that the modifier code set must be defined as part of, or specifically for the base code set.

3.1.11.2 InvoiceElement.unitQuantity:: RTO<PQ,PQ> (0..1)
Definition:A description of the number of instances of a product or service that is being billed or charged for.

Examples: 4 hours, 4 mg, 4 boxes, and 15 each of a container of 1000 each, etc.

Discussion: Each InvoiceElement that is being charged or billed is identified by a charge or bill code (InvoiceElement.code). In some situations, this code is a pre-coordinated code set and represents a container (e.g. UPC code for a container of 1000 pills and another UPC code for a container of the same pills but in a container of 100). The UPC code is used in invoicing, but ratios are required to specify that only a portion of the container (e.g. bottle) is being billed or charged. If the InvoiceElement does not reference a container, then the denominator is not specified.

For example, 15 pills in a container size of 1000 pills. In this case, the numerator can be expressed as "15 {pill}" or simply "15" and the denominator can be expressed as "1000 {bottle}" or simply "1000" (see discussion following for rationale of using descriptive text for countable units).

Constraints:

The unit of measure is restricted to a measurable unit such as liters, milligrams and hours. Non-measurable, but countable units such as boxes, packages, visits, pills and containers must not be specified using the unit component of the PQ data type, except as an annotation, marked by {xxx}. Refer to Data Types Part II Unabridged Specification, Appendix A :Unified Code for Units of Measure.

Specification of countable units can be handled with the following techniques:

(1) specify the countable unit in the InvoiceElement.code. That is, a specific InvoiceElement.code would indicate that the item referenced by the act represents a box of 20 items. There would be a different InvoiceElement.code for a box of 40 items, and so on.

For example, if the InvoiceElement.code represents a box of 20 items, and the InvoiceElement.unitQuantity = 2 (no units), then this represents 2 boxes of 20 items for a total of 40 items.

(2) If more detail is required (e.g. to describe the composition, packaging, manufacturer of a product), then use a participation (typeCode = "PRD"), and a combination of role and entity classes to describe the details of the packaging.

3.1.11.3 InvoiceElement.unitPriceAmt:: RTO<MO,PQ> (0..1)
Definition:The monetary cost per unit being accounted.

Constraints: In constructing the ratio, the numerator must be of data type MO, and the denominator must be a PQ, specified in the same manner as the unitQuantity attribute.

Examples: $0.20/mg; $250/day; $50

Version 2.x reference:

| FT1^10^00364^Transaction Quantity |

| FT1^22^00374^Unit Cost |

3.1.11.4 InvoiceElement.netAmt:: MO (0..1)
Definition:Identifies the total monetary amount for the invoice element, including the sum of any component elements.

Discussion: For leaf-level amounts, this will be the value of the unitQuantity * unitPriceAmt [ * factorNumber] [* pointsNumber]. For grouping invoice elements, this will be the sum of the netAmt attributes of all contained InvoiceElements.

3.1.11.5 InvoiceElement.factorNumber:: REAL (0..1)
Definition:Represents a multiplier used in determining the overall cost of services delivered and/or goods received.

Examples: this could be 10 (Number of Treatments as Units) * $3.00 (Cost per Unit) * 1.5 (Factor) = $45.00 (Amount).

Discussion: This concept is frequently used in Europe to adjust the charge between that used for the public system and that used for private insurers.

The simplest formula for deriving gross amounts is: unitQuantity * unitPriceAmount = netAmt.

The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. For example, the formula, with a factor would be: unitQuantity * unitPrice (Cost/Point) * factorNumber = netAmt

See related note on Points. Formula, with Points and Factors becomes: unitQuantity * unitPriceAmt * pointsNumber * factorNumber = netAmt

3.1.11.6 InvoiceElement.pointsNumber:: REAL (0..1)
Definition:For charges whose quantity is expressed in 'points', this expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered.

Examples: This could be 5 (Number of Treatments as Units) * 3 (Number of Points per treatment as Points)* $20.00 (Cost per Point) = $300.00 (Amount).

Discussion: This is commonly used in systems where services provided are assigned a relative 'cost or difficulty rating', and then a fixed price is assigned to a 'point'. Adjustments to all prices charged by an organization can then be handled by increasing or decreasing the cost per point to reflect changes in inflation, overhead, etc.

The simplest formula for deriving gross amounts is: unitQuantity * unitPriceAmount = netAmt.

The concept of Points allows for assignment of point values for services and/or goods, such that a dollar amount can be assigned to each point. For example, the formula, with points would be: unitQuantity * pointsNumber * unitPriceAmt (Cost/Point) = netAmt.

See related note on Factor. Formula, with Points and Factors becomes: unitQuantity * unitPriceAmt * pointsNumber * factorNumber = netAmt.

3.1.12 Class: ManagedParticipation (in Acts)

#### Attributes of ManagedParticipation:

- Attributes of ManagedParticipation:

id:: SET<II>
| statusCode:: CS

- ManagedParticipation is a specialization of: Participation

#### Definition of ManagedParticipation:

A participation that will be operated on over time and thus whose state and identity must be managed.

Examples: An attending practitioner for an inpatient encounter may change due to leave of absence and it is important to note when this participation will be available.

Rationale: ManagedParticipations are defined as a subclass of Participations to make explicit that not all Participations are stateful. In general, when the sub-activity realized by a Participation is of closer interest and needs to be managed, one SHOULD instead model that sub-activity as an Act component underneath the main Act.

However, in certain environments the view of what these activities really are that the participants perform is not very well recognized and hence modeling those as sub-acts is deemed confusing or burdensome.

Therefore, the ManagedParticipation extends Participation with an identity-attribute and a state-attribute to support these exceptional use cases. ManagedParticipations should be used with utmost caution so as to avoid confusion with Acts and to avoid having to duplicate the act-management infrastructure around participations.

#### Attributes of ManagedParticipation:

3.1.12.1 ManagedParticipation.id:: SET<II> (0..*)
Definition:A unique identifier used to refer to a specific instance of a Participation that may have the same Act and the same Role. (See ManagedParticipation.)

3.1.12.2 ManagedParticipation.statusCode:: CS (0..1)
Vocabulary domain: ManagedParticipationStatus (CNE)
Definition:A code specifying whether the participation instance is pending, active, complete, or cancelled. (See ManagedParticipation.)

Design Advisory: This attribute was defined in the original RIM as repeating, owing to the presence of nested states in the state machines. In actual practice, however, there is never a need to communicate more than a single status value. therefore, committees are advised to constrain this attribute to a maximum cardinality of 1 in all message designs.

3.1.12.3 State machine for ManagedParticipation
Link to state diagram for this class.

#### States of ManagedParticipation:

- active (sub-state of normal): The state representing the fact that the Participation is in progress.
- cancelled (sub-state of normal): The termination state resulting from cancellation of the Participation prior to activation.
- completed (sub-state of normal): The terminal state representing the successful completion of the Participation.
- normal: The "typical" state. Excludes "nullified", which represents the termination state of a participation instance that was created in error.
- nullified: The state representing the termination of a Participation instance that was created in error.
- pending (sub-state of normal): The state representing the fact that the Participation has not yet become active.

#### State transitions of ManagedParticipation:

- revise (from active to active)
- complete (from active to completed)
- reactivate (from completed to active)
- revise (from completed to completed)
- nullify (from normal to nullified)
- create (from null to active)
- create (from null to completed)
- create (from null to pending)
- activate (from pending to active)
- cancel (from pending to cancelled)
- revise (from pending to pending)

3.1.13 Class: Observation (in Acts)

#### Attributes of Observation:

- Attributes of Observation:

value:: ANY
interpretationCode:: SET<CE>
| methodCode:: SET<CE>
targetSiteCode:: SET<CD>

- Observation generalizes:

DiagnosticImage
| PublicHealthCase

- Observation is a specialization of: Act

#### Definition of Observation:

An act that is intended to result in new information about a subject. The main difference between observations and other acts is that it has a value attribute that is used to state the result of the assessment action described in Act.code.

Discussion: Structurally, many observations are name-value-pairs, where the Observation.code (inherited from Act) is the name and the Observation.value is the value of the property. Such a construct is also known as a "variable" (a named feature that can assume a value); hence, the Observation class is always used to hold generic name-value-pairs or variables, even though the variable valuation may not be the result of an elaborate observation method. It may be a simple answer to a question or it may be an assertion or setting of a parameter.

As with all Act statements, Observation statements describe what was done, and in the case of Observations, this includes a description of what was actually observed ("results" or "answers"); and those "results" or "answers" are part of the observation and not split off into other objects.

The method of action is asserted by the Observation classCode or its subclasses at the least granular level, by the Observation.code attribute value at the medium level of granularity, and by the attribute value of observation.methodCode when a finer level of granularity is required. The method in whole or in part may also appear in the attribute value of Observation.value when using coded data types to express the value of the attribute. Relevant aspects of methodology may also be restated in value when the results themselves imply or state a methodology.

An observation may consist of component observations each having their own Observation.code and Observation.value. In this case, the composite observation may not have an Observation.value for itself. For instance, a white blood cell count consists of the sub-observations for the counts of the various granulocytes, lymphocytes and other normal or abnormal blood cells (e.g., blasts). The overall white blood cell count Observation itself may therefore not have a value by itself (even though it could have one, e.g., the sum total of white blood cells). Thus, as long as an Act is essentially an Act of recognizing and noting information about a subject, it is an Observation, regardless of whether it has a simple value by itself or whether it has sub-observations.

Even though observations are professional acts (see Act) and as such are intentional actions, this does not require that every possible outcome of an observation be pondered in advance of it being actually made. For instance, differential white blood cell counts (WBC) rarely show blasts, but if they do, this is part of the WBC observation even though blasts might not be predefined in the structure of a normal WBC.

Clinical documents commonly have 'Subjective' and 'Objective' findings, both of which are kinds of Observations. In addition, clinical documents commonly contain 'Assessments', which are also kinds of Observations. Thus, the establishment of a diagnosis is an Observation.

The Observation.code (or the reference to the Observation definition) specifies the kind of diagnosis (e.g. "chief complaint" or "discharge diagnosis") and the value specifies the diagnosis code or symptom code.

Examples of Observation:

#### Attributes of Observation:

3.1.13.1 Observation.value:: ANY (0..*)
Vocabulary domain: ObservationValue (CWE)
Definition:Information that is assigned or determined by the observation action.

Constraints: The Observation.value, if not otherwise constrained, can be of any data type.

The appropriate data type of the Observation.value varies with the kind of Observation and can generally be described in Observation definitions or in a simple relation that pairs Act.codes to value data types.

The following guidelines govern the choice of the appropriate value data type.

(1) Quantitative measurements use the data type Physical Quantity (PQ) in general. A PQ is essentially a real number with a unit. This is the general preference for all numeric values, subject to a few exceptions listed below.

Numeric values must not be communicated as simply a character string (ST).

(2) Titer (e.g., 1:64) and very few other ratios use the data type Ratio (RTO). For titers, the ratio would be a ratio of two integer numbers (e.g., 1:128). Other ratios may relate different quantitative data types, such as a "price" specified in Physical Quantity over Monetary Amount.

Sometimes by local conventions titers are reported as just the denominator (e.g., 32 instead of 1/32). Such conventions are confusing and should be converted into correct ratios in HL7 messages.

(3) Index values (a number without unit) uses the Real Number (REAL) data type. When a quantity does not have a proper unit, one can just send the number as a real number. Alternatively one can use a PQ with a dimensionless unit (e.g., 1 or %). An integer number should only be sent when the measurement is by definition an integer, which is an extremely rare case and then is most likely an ordinal (see below).

(4) Ranges (e.g., <3; 12-20) must be expressed as Interval of Physical Quantity (IVL<PQ>) or intervals of other quantity data types.

Sometimes such intervals are used to report the uncertainty of measurement value. For uncertainty there are dedicated data type extensions available.

(5) Ordinals (e.g., +, ++, +++; or I, IIa, IIb, III, IV) use the Coded Ordinal (CO) data type.

(6) Nominal results ("taxons", e.g., organism type). use any of the coded data types (CD, CE) that specify at least a code and a coding system, and optionally original text, translations to other coding systems and sometimes qualifiers.

(7) Imaging results use the Encapsulated Data (ED) type. The encapsulated data type allows one to send an image (e.g., chest X-ray) or a movie (e.g., coronary angiography, cardiac echo) as alternatively inline binary data or as a reference to an external address where the data can be downloaded on demand.

(8) Waveforms can be sent using the Correlated Observation Sequences templates that provide all the data in an HL7 framework. In addition one can use the Encapsulated Data (ED) data type to send waveforms in other than HL7 formats or to refer to waveform data for on-demand download.

(9) The character string data type may exceptionally be used to convey formalized expressions that do not fit in any of the existing data types. However, the string data type must not be used if the meaning can be represented by one of the existing data types.

(10) Timestamps should not be sent in Observations if there are more appropriate places to send those, e.g., usually as Act.effectiveTime of some act. (E.g., "specimen received in lab" is in the effectiveTime of an Act describing the specimen transport to the lab, not in an Observation.

(11) Sets of values of any data type, enumerated sets as well as intervals, are often used for Observation criteria (event-criterion mood) to specify "normal ranges" or "decision ranges" (for alerts) etc.

(12) For sequences of observations (repeated measurements of the same property during a relatively short time) a Sequence (LIST) data type is used. Refer to the Correlated Observation Sequences specification for more detail.

(13) Uncertainty of values is specified using the Probability and Probability Distribution data type extensions (UVP, PPD). If a statistical sample is reported with absolute frequencies of categories a Bag collection (BAG) can be used efficiently.

Version 2.x reference:

| GT1^34^00145^Ambulatory Status |

| IN2^32^00145^Ambulatory Status |

| NK1^18^00145^Ambulatory Status |

| PV1^15^00145^Ambulatory Status |

3.1.13.2 Observation.interpretationCode:: SET<CE> (0..*)
Vocabulary domain: ObservationInterpretation (CWE)
Definition:One or more codes specifying a rough qualitative interpretation of the observation, such as "normal", "abnormal", "below normal", "change up", "resistant", "susceptible", etc.

Discussion: These interpretation codes are sometimes called "abnormal flags", however, the judgment of normalcy is just one of the common rough interpretations, and is often not relevant. For example, the susceptibility interpretations are not about "normalcy", and for any observation of a pathologic condition, it does not make sense to state the normalcy, since pathologic conditions are never considered "normal."

3.1.13.3 Observation.methodCode:: SET<CE> (0..*)
Vocabulary domain: ObservationMethod (CWE)
Definition:A code that provides additional detail about the means or technique used to ascertain the observation.

Examples: Blood pressure measurement method: arterial puncture vs. sphygmomanometer (Riva-Rocci), sitting vs. supine position, etc.

Constraints: In all observations the method is already partially specified by the Act.code. In this case, the methodCode need not be used at all. The methodCode may still be used to identify this method more clearly in addition to what is implied from the Act.code. However, an information consumer system or process should not depend on this methodCode information for method detail that is implied by the Act.code.

If the methodCode is used to express method detail that is also implied by the Act.code, the methodCode must not be in conflict with the implied method of the Act.code.

Discussion: In all observations the method is already partially specified by simply knowing the kind of observation (observation definition, Act.code) and this implicit information about the method does not need to be specified in Observation.methodCode. For example, many LOINC codes are defined for specific methods as long as the method makes a practical difference in interpretation. Thus, using LOINC, the difference between susceptibility studies using the "minimal inhibitory concentration" (MIC) or the "agar diffusion method" (Kirby-Baur) are specifically assigned different codes. The methodCode therefore is only an additional qualifier to specify what may not be known already from the Act.code.

Also, some variances in methods may be tied to the particular device used. The methodCode should not be used to identify the specific device or test-kit material used in the observation. Such information about devices or test-kits should be associated with the observation as "device" participations.

3.1.13.4 Observation.targetSiteCode:: SET<CD> (0..*)
Vocabulary domain: ActSite (CWE)
Definition:A code specifying detail about the anatomical site or system that is the focus of the observation if this information is not already implied by the observation definition or Act.code.

Constraints: The targetSiteCode value, if specified, must not conflict with what is implied about the target site or system from the observation definition and the Act.code.

Discussion: Most observation target sites are implied by the observation definition and Act.code, or Observation.value. For example, "heart murmur" always has the heart as target. This attribute is used only when the observation target site needs to be refined, to distinguish right and left etc.

If the subject of the Observation is something other than a human patient or animal, the attribute is used analogously to specify a structural landmark of the thing where the act focuses. For example, if the subject is a lake, the site could be inflow and outflow, etc. If the subject is a lymphatic node, "hilus," "periphery," etc. would still be valid target sites.

3.1.14 Class: PatientEncounter (in Acts)

#### Attributes of PatientEncounter:

- Attributes of PatientEncounter:

admissionReferralSourceCode:: CE
lengthOfStayQuantity:: PQ
| dischargeDispositionCode:: CE
preAdmitTestInd:: BL
| specialCourtesiesCode:: SET<CE>
specialArrangementCode:: SET<CE>

- PatientEncounter is a specialization of: Act

#### Definition of PatientEncounter:

An interaction between a patient and care provider(s) for the purpose of providing healthcare-related service(s). Healthcare services include health assessment.

Examples: outpatient visit to multiple departments, home health support (including physical therapy), inpatient hospital stay, emergency room visit, field visit (e.g., traffic accident), office visit, occupational therapy, telephone call.

#### Attributes of PatientEncounter:

3.1.14.1 PatientEncounter.admissionReferralSourceCode:: CE (0..1)
Vocabulary domain: EncounterReferralSource (CWE)
Definition:The source of the referral for a patient encounter.
Version 2.x reference:

| PV1^14^00144^Admit Source |

| PV2^36^00737^Newborn Baby Indicator |

3.1.14.2 PatientEncounter.lengthOfStayQuantity:: PQ (0..1)
Definition:Identifies the total quantity of time when the subject is expected to be or was resident at a facility as part of an encounter.

Discussion: The actual days quantity cannot be simply calculated from the admission and discharge dates because of possible leaves of absence.

Version 2.x reference:

| PV2^11^00712^Actual Length of Inpatient Stay |

3.1.14.3 PatientEncounter.dischargeDispositionCode:: CE (0..1)
Vocabulary domain: EncounterDischargeDisposition (CWE)
Definition:A code depicting the disposition of the patient at the time of discharge (e.g., discharged to home, expired, against medical advice, etc.). While the encounter is still "active" (the encounter doesn't have an end date yet) this attribute should be interpreted as the expected discharge disposition. When the encounter is "completed" this field contains the actual discharge disposition.
Version 2.x reference:

| PV1^36^00166^Discharge Disposition |

3.1.14.4 PatientEncounter.preAdmitTestInd:: BL (0..1)
Definition:An indication that pre-admission tests are required for this patient encounter.
Version 2.x reference:

| PV1^12^00142^Preadmit Test Indicator |

3.1.14.5 PatientEncounter.specialCourtesiesCode:: SET<CE> (0..*)
Vocabulary domain: EncounterSpecialCourtesy (CWE)
Definition:A code identifying special courtesies extended to the patient. For example, no courtesies, extended courtesies, professional courtesy, VIP courtesies.
Version 2.x reference:

| PV1^22^00152^Courtesy Code |

3.1.14.6 PatientEncounter.specialArrangementCode:: SET<CE> (0..*)
Vocabulary domain: SpecialArrangement (CWE)
Definition:A code indicating the type of special arrangements provided for a patient encounter (e.g., wheelchair, stretcher, interpreter, attendant, seeing eye dog). For encounters in intention moods, this information can be used to identify special arrangements that will need to be made for the incoming patient. This is not related to the AccommodationEvent.
3.1.15 Class: Procedure (in Acts)

#### Attributes of Procedure:

- Attributes of Procedure:

methodCode:: SET<CE>
| approachSiteCode:: SET<CD>
| targetSiteCode:: SET<CD>

- Procedure is a specialization of: Act

#### Definition of Procedure:

An Act whose immediate and primary outcome (post-condition) is the alteration of the physical condition of the subject.

Examples: Procedures may involve the disruption of some body surface (e.g. an incision in a surgical procedure) conservative procedures such as reduction of a luxated join, including physiotherapy such as chiropractic treatment, massage, balneotherapy, acupuncture, shiatsu, etc. Outside of clinical medicine, procedures may be such things as alteration of environments (e.g. straightening rivers, draining swamps, building dams) or the repair or change of machinery etc.

Discussion: Applied to clinical medicine, procedure is but one among several types of clinical activities such as observation, substance-administrations, and communicative interactions (e.g. teaching, advice, psychotherapy, represented simply as Acts without special attributes). Procedure does not subsume those other activities nor is procedure subsumed by them. Notably Procedure does not comprise all acts of whose intent is intervention or treatment. Whether the bodily alteration is appreciated or intended as beneficial to the subject is likewise irrelevant, what counts is that the act is essentially an alteration of the physical condition of the subject.

The choice between representations for real activities is based on whether the specific properties of procedure are applicable and whether the activity or activity step's necessary post-condition is the physical alteration. For example, taking an x-ray image may sometimes be called "procedure", but it is not a Procedure in the RIM sense for an x-ray image is not done to alter the physical condition of the body.

Many clinical activities combine Acts of Observation and Procedure nature into one composite. For instance, interventional radiology (e.g., catheter directed thrombolysis) does both observing and treating, and most surgical procedures include conscious and documented Observation steps. These clinical activities therefore are best represented by multiple component acts each of the appropriate type.

#### Attributes of Procedure:

3.1.15.1 Procedure.methodCode:: SET<CE> (0..*)
Vocabulary domain: ProcedureMethod (CWE)
Definition:Identifies the means or technique used to perform the procedure.

Discussion: For any Procedure there may be several different methods to achieve by and large the same result, but may be important to know when interpreting a report more thoroughly (e.g., cholecystectomy: open vs. laparoscopic). Method concepts can be "pre-coordinated" in the Act definition. There are many possible methods, which all depend heavily on the particular kind of Procedure, so that defining a vocabulary domain of all methods is difficult. However, a code system might be designed such that it specifies a set of available methods for each defined Procedure concept. Thus, a user ordering a Procedure could select one of several variances of the act by means of the method code. Available method variances may also be defined in a master service catalog for each defined Procedure. In act definition records (Act.moodCode = DEF) the methodCode attribute is a set of all available method codes that a user may select while ordering, or expect while receiving results.

3.1.15.2 Procedure.approachSiteCode:: SET<CD> (0..*)
Vocabulary domain: ActSite (CWE)
Definition:The anatomical site or system through which the procedure reaches its target (see targetSiteCode).

Examples:

Nephrectomy can have a trans-abdominal or a primarily retroperitoneal approach

An arteria pulmonalis catheter targets a pulmonary artery but the approach site is typically the vena carotis interna or the vena subclavia, at the neck or the fossa subclavia respectively.

For non-invasive procedures, e.g., acupuncture, the approach site is the punctured area of the skin.

Discussion: If the subject of the Act is something other than a human patient or animal, the attribute is used analogously to specify a structural landmark of the thing where the act focuses.

Some approach sites can also be "pre-coordinated" in the Act definition, so that there is never an option to select different body sites. The same information structure can handle both the pre-coordinated and the post-coordinated approach.

3.1.15.3 Procedure.targetSiteCode:: SET<CD> (0..*)
Vocabulary domain: ActSite (CWE)
Definition:The anatomical site or system that is the focus of the procedure.

Examples:

A Nephrectomy's target site is the right or left kidney

An arteria pulmonalis catheter targets a pulmonary artery.

For non-invasive procedures, e.g., acupuncture, the target site is the organ/system that is sought to be influenced (e.g., "the liver").

Discussion: If the subject of the Act is something other than a human patient or animal, the attribute is used analogously to specify a structural landmark of the thing where the act focuses.

Some target sites can also be "pre-coordinated" in the Act definition, so that there is never an option to select different body sites. The same information structure can handle both the pre-coordinated and the post-coordinated approach.

3.1.16 Class: PublicHealthCase (in Acts)

#### Attributes of PublicHealthCase:

- Attributes of PublicHealthCase:

detectionMethodCode:: CE
| transmissionModeCode:: CE
| diseaseImportedCode:: CE

- PublicHealthCase is a specialization of: Observation

#### Definition of PublicHealthCase:

A public health case is an Observation representing a condition or event that has a specific significance for public health. Typically it involves an instance or instances of a reportable infectious disease or other condition. The public health case can include a health-related event concerning a single individual or it may refer to multiple health-related events that are occurrences of the same disease or condition of interest to public health. An outbreak involving multiple individuals may be considered as a type of public health case. A public health case definition (Act.moodCode = "definition") includes the description of the clinical, laboratory, and epidemiologic indicators associated with a disease or condition of interest to public health. There are case definitions for conditions that are reportable, as well as for those that are not. There are also case definitions for outbreaks. A public health case definition is a construct used by public health for the purpose of counting cases, and should not be used as clinical indications for treatment. Examples include AIDS, toxic-shock syndrome, and salmonellosis and their associated indicators that are used to define a case.

#### Attributes of PublicHealthCase:

3.1.16.1 PublicHealthCase.detectionMethodCode:: CE (0..1)
Vocabulary domain: CaseDetectionMethod (CWE)
Definition:Code for the method by which the public health department was made aware of the case. Includes provider report, patient self-referral, laboratory report, case or outbreak investigation, contact investigation, active surveillance, routine physical, prenatal testing, perinatal testing, prison entry screening, occupational disease surveillance, medical record review, etc.

3.1.16.2 PublicHealthCase.transmissionModeCode:: CE (0..1)
Vocabulary domain: CaseTransmissionMode (CWE)
Definition:Code for the mechanism by which disease was acquired by the living subject involved in the public health case. Includes sexually transmitted, airborne, bloodborne, vectorborne, foodborne, zoonotic, nosocomial, mechanical, dermal, congenital, environmental exposure, indeterminate.

3.1.16.3 PublicHealthCase.diseaseImportedCode:: CE (0..1)
Vocabulary domain: CaseDiseaseImported (CWE)
Definition:Code that indicates whether the disease was likely acquired outside the jurisdiction of observation, and if so, the nature of the inter-jurisdictional relationship. Possible values include not imported, imported from another country, imported from another state, imported from another jurisdiction, and insufficient information to determine.
3.1.17 Class: SubstanceAdministration (in Acts)

#### Attributes of SubstanceAdministration:

- Attributes of SubstanceAdministration:

routeCode:: CE
approachSiteCode:: SET<CD>
doseQuantity:: IVL<PQ>
| rateQuantity:: IVL<PQ>
doseCheckQuantity:: SET<RTO>
maxDoseQuantity:: SET<RTO>
| administrationUnitCode:: CE
methodCode:: SET<CD>

- SubstanceAdministration is a specialization of: Act

#### Definition of SubstanceAdministration:

The act of introducing or otherwise applying a substance to the subject.

Discussion: The effect of the substance is typically established on a biochemical basis, however, that is not a requirement. For example, radiotherapy can largely be described in the same way, especially if it is a systemic therapy such as radio-iodine. This class also includes the application of chemical treatments to an area.

Examples: Chemotherapy protocol; Drug prescription; Vaccination record

#### Attributes of SubstanceAdministration:

3.1.17.1 SubstanceAdministration.routeCode:: CE (0..1)
Vocabulary domain: RouteOfAdministration (CWE)
Definition:The the physiological path or route for introducing the therapeutic material into or onto the subject.

Discussion: If the route requires further specification, both the site of administration (administrationSiteCode) and the method of adminitration (methodCode) may be used. For example, if the routeCode is intravenous or intra-muscular, it may be necessary to specify the precise site, with approachSiteCode, (e.g., right forearm or left deltoid muscle respectively) and the precise method of administration, with methodCode, (e.g., "slow bolus injection" or "Z-track injection" respectively).

Route, site of administration (administrationSiteCode), method of adminitration (methodCode) and the device used in administration are closely related. All four (if present) must be closely coordinated and in agreement. In some cases, the coding system used to specify one may pre-coordinate one or more of the others.

When the medication is delivered to an environmental site, or a location, the route code indicates a site on its "body".

Examples: per os (PO), sublingual (SL), rectal (PR), per inhalationem (IH), ophtalmic (OP), nasal (NS), otic (OT), vaginal (VG), intra-dermal (ID), subcutaneous (SC), intra-venous (IV), and intra-cardial (IC)

3.1.17.2 SubstanceAdministration.approachSiteCode:: SET<CD> (0..*)
Vocabulary domain: ActSite (CWE)
Definition:The detailed anatomical site where the medication enters or is applied to the subject.

Discussion: This attribute is only needed if the routeCode requires further specification. For example, if the routeCode is "by mouth", no further specification of approach site is needed. If, however, routeCode is intravenous or intra-muscular, the precise site may be specified in this attribute (e.g., right forearm or left deltoid muscle respectively).

Route, site of administration (approachSiteCode) method of administration (methodCode) and the device used in administration are closely related. All four (if present) must be closely coordinated and in agreement. In some cases, the coding system used to specify one may pre-coordinate one or more of the others.

3.1.17.3 SubstanceAdministration.doseQuantity:: IVL<PQ> (0..1)
Definition:The amount of the therapeutic agent or other substance given at one administration event.

Discussion: The dose may be specified either as a physical quantity of active ingredient (e.g. 200 mg) or as the count of administration-units (e.g., tablets, capsules, "eaches"). Which approach is chosen depends upon the player of the 'consumable' participation (which identifies the drug being administered). If the consumable has a non-countable dosage form (e.g. measured in milligram or litre) then the dose must be expressed in those units. If the consumable has a countable dosage form (tablets, capsules, "eaches"), then the dose must be expressed as a dimensionless count (i.e., with no other unit of measure specified).

The unit of measure is restricted to a measurable unit such as milliliters and milligrams. Non-measurable, but countable units such as tablets and capsules must not be specified using the unit component of the PQ data type, except as an annotation, marked by {xxx}. Refer to Data Types Part II Unabridged Specification, Appendix A :Unified Code for Units of Measure.

3.1.17.4 SubstanceAdministration.rateQuantity:: IVL<PQ> (0..1)
Definition:Identifies the speed with which the substance is introduced into the subject. Expressed as a physical (extensive) quantity over elapsed time (e.g., examples are 100 mL/h, 1 g/d, 40 mmol/h, etc.)

Discussion: This is appropriate for continuously divisible dose forms (e.g., liquids, gases). If specified as an interval, the rate should be anywhere in the specified range. This attribute is specified as a extensive physical quantity over elapsed time, i.e., a quantity that could be used for the doseQuantity divided by a duration quantity.

3.1.17.5 SubstanceAdministration.doseCheckQuantity:: SET<RTO> (0..*)
Definition:This attribute identifies the expected quantity to be consumed over a period of time. It is used as a verification check on the values specified for other values.

Discussion: This attribute should not generally be used; it is only provided for a special purpose. In some countries, especially Japan, there is a regulatory requirement to note the total daily dose on the prescription and associated documentation. The purpose of this requirement obviously is to encourage and facilitate reviewing the total dose prescribed to avoid over- (or under-) dosage.

Examples:

With Erythromycin 250 mg 1 tablet 3 times a day one can calculate the total daily dose as "doseCheckQuantity = doseQuantity (1) * Ingredient.quantity (250 mg) * effectiveTime (3 /d) = 750 mg/1d."

For an intravenous example, this term would be "doseCheckQuantity = doseQuantity (100 ml) * Ingredient.quantity (5mg/L) / rateQuantity (1 h) = 0.5 mg/h" which can be calculated on a daily basis as "doseCheckQuantity = 0.5 mg/h * 24 h/d = 12 mg/d."

Rationale: Rather than defining a "total daily dose" attribute as HL7 v2.3 did, we define this general purpose doseCheckQuantity attribute of the Ratio (RTO) data type.

Constraints: invariant(SubstanceAdministration med, RTO max) where med.doseCheckQuantity.contains(max) {max.numerator.compares(med.doseQuantity); max.denominator.compares(1 s);} Numerator must be in units comparable to doseQuantity and denominator must be a measurement of time.

3.1.17.6 SubstanceAdministration.maxDoseQuantity:: SET<RTO> (0..*)
Definition:Identifies the maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time.

Discussion: This attribute is particularly useful where the allowed dosage is specified as a range or the timing is variable or PRN (as needed). It provides an overall limit on the quantity that may be administered in a period of time. Multiple occurrences of maxDoseQuantity may be used to indicate different limits over different time periods.

Examples: 500 mg/day; 1200mg/week.

Constraints: invariant(SubstanceAdministration med, RTO max) where med.maxDoseQuantity.contains(max) {max.numerator.compares(med.doseQuantity); max.denominator.compares(1 s);} Numerator must be in units comparable to doseQuantity and denominator must be a measurement of time.

3.1.17.7 SubstanceAdministration.administrationUnitCode:: CE (0..1)
Vocabulary domain: AdministrableDrugForm (CWE)
Definition:A code for the administered thing taken from a larger whole. Used if the consumable material is specified as a larger whole but the doseQuantity relates to a specific portion of it rather than the entire consumable material.

Example: The ordering system only has a code for "Budesonide Metered Dose Inhaler" but the dose is to be measured in "number of actuations".

Rationale: In the given example, without an administrationUnitCode the doseQty = 1 would mean that the entire inhaler bottle is to be emptied upon a single administration event. The administrationUnitCode signifying "actuation" (or "puff") specifies that the doseQty relates to this fraction of the medication rather than to the whole.

Constraints:

(1) This attribute should be used if and only if the material specified as the player of the Role attaching to the consumable participation is not in itself the finished dose form to be administered but a larger whole, pack, etc.

(2) IF the material so specified is the proper administered dose form, such as a tablet, capsule, etc. THEN this attribute should be valued NULL (not applicable).

(3) IF the material so specified is an amorphous substance (liquid, gas, powder, etc.) to be measured as a volume, mass, etc., THEN this attribute should remain NULL (not applicable).

(4) IF the material so specified is a container, and the content is to be measured as a volume, mass, etc., THEN this attribute should be specified as "measured portion".

3.1.17.8 SubstanceAdministration.methodCode:: SET<CD> (0..*)
Vocabulary domain: SubstanceAdministrationMethod (CWE)
Definition:Identifies the means or technique used to perform the particular substance administration.

Discussion: This attribute is only needed if the routeCode requires further specification. For example, if the routeCode is "by mouth", no further information about the method may be required. If, however, routeCode is intravenous or intra-muscular, the precise method of administration may be specified in this attribute (e.g., "slow bolus injection" or "Z-track injection" respectively).

Route of administration (routeCode), site of administration (approachSiteCode) and the method of administration are closely related. All three (if present) must be closely coordinated and in agreement. In some cases, the coding system used to specify one may pre-coordinate one or more of the others.

3.1.18 Class: Supply (in Acts)

#### Attributes of Supply:

- Attributes of Supply:

quantity:: PQ
| expectedUseTime:: IVL<TS>

- Supply generalizes:

Diet

- Supply is a specialization of: Act

#### Definition of Supply:

An act that involves provision of a material by one entity to another.

Discussion: The product is associated with the Supply Act via Participation.typeCode="product". With general Supply Acts, the precise identification of the Material (manufacturer, serial numbers, etc.) is important. Most of the detailed information about the Supply should be represented using the Material class. If delivery needs to be scheduled, tracked, and billed separately, one can associate a Transportation Act with the Supply Act. Pharmacy dispense services are represented as Supply Acts, associated with a SubstanceAdministration Act. The SubstanceAdministration class represents the administration of medication, while dispensing is supply.

Examples: Ordering bed sheets; Dispensing of a drug; Issuing medical supplies from storage

#### Attributes of Supply:

3.1.18.1 Supply.quantity:: PQ (0..1)
Definition:The amount that was or is to be supplied (depending on the moodCode)

Discussion: This attribute may be used as an alternative to expectedUseTime or both may be used. If both are specified, then the specified quantity is the amount expected to be consumed within the expectedUseTime.

The unit of measure is restricted to a measured unit such as milliliter and milligram. Non-measured, but countable units such as tablet and capsule must not be specified using the unit component of the PQ data type, except as an annotation, marked by {xxx}. Refer to Data Types Part II Unabridged Specification, Appendix A: Unified Code for Units of Measure. The type of 'countable' information is determined by information in the 'product' entity.

3.1.18.2 Supply.expectedUseTime:: IVL<TS> (0..1)
Definition:Identifies the period time over which the supplied product is expected to be used, or the length of time the supply is expected to last.

In some situations, this attribute may be used instead of Supply.quantity to identify the amount supplied by how long it is expected to last, rather than the physical quantity issued. E.g. 90 days supply of medication (based on an ordered dosage), 10 hours of jet fuel, etc. NOTE: When possible, it is always better to specify Supply.quantity, as this tends to be more precise. Supply.expectedUseTime will always be an estimate that can be influenced by external factors.

3.1.19 Class: WorkingList (in Acts)

#### Attributes of WorkingList:

- Attributes of WorkingList:

ownershipLevelCode:: CE

- WorkingList is a specialization of: Act

#### Definition of WorkingList:

A dynamic list of individual instances of Act which reflect the needs of an individual worker, team of workers, or an organization to view groups of Acts for clinical or administrative reasons.

Discussion: The grouped Acts are related to the WorkingList via an ActRelationship of type 'COMP' (component).

Examples: Problem lists, goal lists, allergy lists, to-do lists, etc.

Design note: This physical class contains but a single attribute, other than those that it inherits from Act. Use of that attribute in the design of RIM-based static models has been DEPRECATED in HL7 RIM Harmonization, effective November 2005. This action was based on recommendations from the Patient Care Technical Committee.

As a consequence, this class will cease to be shown as a physical class in the RIM, once the attribute is retired. Nevertheless, use of this class via an Act.classCode value of "LIST" is entirely appropriate so long as only the attibutes inherited from Act are used.

#### Attributes of WorkingList:

3.1.19.1 WorkingList.ownershipLevelCode:: CE (0..1)
Vocabulary domain: ListOwnershipLevel (CWE)
Definition:Indicates the category of representation for the personnel managing the list, whether person, team or organization.

Constraint: Use of this attribute in the design of RIM-based static models has been DEPRECATED in HL7 RIM Harmonization, effective November 2005. This action was based on recommendations from the Patient Care Technical Committee. The rationale for this action is that "ownership" of the list (i.e. identification whether the list is intended for nurses, physicians, pharmacists, etc.) can be communicated using Participations. No codes have ever been proposed for this attribute and there is no clear use for it.

3.2 Classes in subject area Entities
3.2.1 Class: Entity (in Entities)

#### Attributes of Entity:

- Attributes of Entity:

classCode:: CS
determinerCode:: CS
id:: SET<II>
code:: CE
| quantity:: SET<PQ>
name:: BAG<EN>
desc:: ED
statusCode:: CS
| existenceTime:: IVL<TS>
telecom:: BAG<TEL>
riskCode:: CE
handlingCode:: CE

- Associations of Entity:
- communicationFunction::(0..*)CommunicationFunction::entity::(1..*)
- languageCommunication::(0..*)LanguageCommunication::entity::(1..1)
- playedRole::(0..*)Role::player::(0..1)
- scopedRole::(0..*)Role::scoper::(0..1)

- Entity generalizes:

EntityHeir
LivingSubject
| Material
Organization
| Place

- Entity is a specialization of: InfrastructureRoot

#### Definition of Entity:

A physical thing, group of physical things or an organization capable of participating in Acts, while in a role.

Discussion: An entity is a physical object that has, had or will have existence. The only exception to this is Organization, which while not having a physical presence, fulfills the other characteristics of an Entity. The Entity hierarchy encompasses living subjects (including human beings), organizations, material, and places and their specializations. It does not indicate the roles played, or acts that these entities participate in.

Constraints: It does not include events/acts/actions, or the roles that things can play (e.g. patient, provider).

#### Attributes of Entity:

3.2.1.1 Entity.classCode:: CS (1..1) Mandatory
Vocabulary domain: EntityClass (CNE)
Definition:An HL7 defined value representing the class or category that the Entity instance represents.

Examples: Person, Animal, Chemical Substance, Group, Organization

Rationale: Due to the extremely large number of potential values for a code set representing all physical things in the universe, the class code indicates both the subtype branch of the Entity hierarchy used as well as a high level classifier to represent the instance of Entity. This can be used to constrain the eligible value domains for the Entity.code attribute.

Version 2.x reference:

| GT1^10^00414^Guarantor Type |

| LOC^3^00945^Location Type-LOC |

3.2.1.2 Entity.determinerCode:: CS (1..1) Mandatory
Vocabulary domain: EntityDeterminer (CNE)
Definition:An HL7 defined value representing whether the Entity represents a kind-of or a specific instance.

Examples: 1 human being (an instance), 3 syringes (quantified kind) or the population of Indianapolis (kind of group)

Rationale: An Entity may at times represent information concerning a specific instance (the most common), a quantifiable group with common characteristics or a general type of Entity. This code distinguishes these different representations.

3.2.1.3 Entity.id:: SET<II> (0..*)
Definition:A unique identifier for the Entity.

Rationale: Successful communication only requires that an entity have a single identifier assigned to it. However, it is recognized that as different systems maintain different databases, there may be different instance identifiers assigned by different systems. Note that an instance identifier is a pure identifier and not a classifier. For Material, serial numbers assigned by specific manufacturers, catalog numbers of specific distributors, or inventory numbers issued by owners, may also be represented by the Role.id, which allows a more clear expression of the fact that such a code is assigned by a specific party associated with that material.

3.2.1.4 Entity.code:: CE (0..1)
Vocabulary domain: EntityCode (CWE)
Definition:A value representing the specific kind of Entity the instance represents.

Examples: A medical building, a Doberman Pinscher, a blood collection tube, a tissue biopsy.

Rationale: For each Entity, the value for this attribute is drawn from one of several coding systems depending on the Entity.classCode, such as living subjects (animal and plant taxonomies), chemical substance (e.g., IUPAC code), organizations, insurance company, government agency, hospital, park, lake, syringe, etc. It is possible that Entity.code may be so fine grained that it represents a single instance. An example is the CDC vaccine manufacturer code, modeled as a concept vocabulary, when in fact each concept refers to a single instance.

Version 2.x reference:

| IN2^14^00485^Champus Service |

3.2.1.5 Entity.quantity:: SET<PQ> (0..*)
Definition:The number or quantity of the Entity, with appropriate units, congruent with the value of Entity.determinerCode.

Examples: With undetermined kinds, the quantity is but a reference quantity for the specification of the proportion of ingredients or components (e.g. through a has-part, has-ingredient, or has-content Role). For example, a kind of group with 60% females is Person(quantity = 100) has-part Person(quantity = 60; sex = female). Amoxicillin 500 mg per tablet is Material(Tablet, quantity = 1) has-ingredient Material(Amoxicillin, quantity = 500 mg). Glucose 5% (D5W) is Material(D5W, quantity = 1 kg) has-ingredient Material(Glucose, quantity = 50 g).

Material-specific quantity relations are expressed using the fact that the data type of this attribute is a set of physical quantity (SET<PQ>). If more than one quantity value are specified in this set, each element in this set is considered to specify the same amount of the material. For example, for one liter of water one could use the set 1 L, 1 kg, 55.56 mol to specify the volume, mass, and amount of substance for the same amount of water, this is equivalent with specifying the mass density (volumic mass 1 kg/L) and the molar mass (18 g/mol). For Glucose one could specify 180 g, 1 mol according to the molar mass (180 g/mol).

Discussion: When the Entity instance is a portion of a substance, the quantity specifies the amount of that substance comprised by that portion. For an undetermined substance (kind) the quantity serves two purposes at the same time: (a) it provides a means of relations between quantities specific for that substance, and (b) it is a reference quantity for the specification of ingredients or components. In all cases, the quantity is an extensive "amount" kind of quantity (e.g., number, length, volume, mass, surface area, energy, etc.). Note that most relative or fractional quantities are not amounts, in particular, mass fraction, substance concentration, mass ratios, percentages, etc. are not extensive quantities and are prohibited values for this attribute.

Constraints: For Entities with determinerCode = INSTANCE, the quantity is 1. For an Entity with determinerCode = QUANTIFIED_KIND, the quantity is the number of individual members in the group; for an Entity with a determinerCode = KIND, the value is undetermined.

3.2.1.6 Entity.name:: BAG<EN> (0..*)
Definition:A non-unique textual identifier or moniker for the Entity.

Examples: Proper names, nicknames, legal names of persons, places or things.

Rationale: Most entities have a commonly used name that can be used to differentiate them from other Entities, but does not provide a unique identifier.

3.2.1.7 Entity.desc:: ED (0..1)
Definition:A textual or multimedia depiction of the Entity.

Discussion: The content of the description is not considered part of the functional information communicated between systems. Descriptions are meant to be shown to interested human individuals. All information relevant for automated functions must be communicated using the proper attributes and associated objects.

Rationale: Names and descriptions of entities are typically more meaningful to human viewers than numeric, mnemonic or abbreviated code values. The description allows for additional context about the entity to be conveyed to human viewers without impacting the functional components of the message.

Version 2.x reference:

| PV2^5^00185^Patient Valuables |

| PV2^6^00186^Patient Valuables Location |

3.2.1.8 Entity.statusCode:: CS (0..1)
Vocabulary domain: EntityStatus (CNE)
Definition:A value representing whether the information associated with the Entity is currently active or inactive for the purpose of participation in acts.

Design Advisory: This attribute was defined in the original RIM as repeating, owing to the presence of nested states in the state machines. In actual practice, however, there is never a need to communicate more than a single status value. therefore, committees are advised to constrain this attribute to a maximum cardinality of 1 in all message designs.

3.2.1.9 Entity.existenceTime:: IVL<TS> (0..1)
Definition:An interval of time specifying the period in which the Entity physically existed.

Examples: ManufactureDate/DisposalDate

Constraints: This period may represent past, present or future time periods.

Rationale: Physical entities have specified periods in which they exist. Equipment is manufactured, placed in service, retired and salvaged. The relevance of this attribute is in planning, availability and retrospective analysis.

3.2.1.10 Entity.telecom:: BAG<TEL> (0..*)
Definition:A telecommunication address for the Entity.
Version 2.x reference:

| PID^13^00116^Phone Number - Home |

| NK1^6^00195^Business Phone Number |

| GT1^6^00410^Guarantor Ph Num- Home |

| GT1^7^00411^Guarantor Ph Num-Business |

| GT1^18^00422^Guarantor Employer Phone Number |

| IN1^7^00432^Insurance Co Phone Number |

| IN3^16^00517^Certification Contact Phone Number |

| IN3^19^00520^Certification Agency Phone Number |

| OM1^17^00602^Telephone Number of Section |

| OM1^29^00614^Phone Number of Outside Site |

| GT1^46^00749^Contact Person's Telephone Number |

| NK1^31^00749^Contact Person's Telephone Number |

| IN2^50^00790^Employer Contact Person Phone Number |

| IN2^53^00793^Insured's Contact Person Telephone Number |

| IN2^58^00798^Insurance Co Contact Phone Number |

| IN2^63^00803^Insured's Telephone Number - Home |

| IN2^64^00804^Insured's Employer Telephone Number |

3.2.1.11 Entity.riskCode:: CE (0..1)
Vocabulary domain: EntityRisk (CWE)
Definition:A value representing the type of hazard or threat associated with the Entity.

Examples: Petrochemical or organic chemicals are highly flammable agents that pose an increased risk of fire under certain conditions. Entities with either natural or introduced radioactive character pose a risk to those handling them. Entities comprising specimens from diseased individuals pose an increased risk of infection to those handling them. Persons or animals of irascible temperament may prove to be a risk to healthcare personnel.

Rationale: Some entities have characteristics that pose potential increased risk of injury or damage to other Entities. This attribute identifies the type of risk without specifying the level of risk.

3.2.1.12 Entity.handlingCode:: CE (0..1)
Vocabulary domain: EntityHandling (CWE)
Definition:A value representing special handling requirements for the Entity.

Examples: Keep at room temperature; Keep frozen below 0 C; Keep in a dry environment; Keep upright, do not turn upside down.

Rationale: This attribute is used to describe special handling required by the Entity to avoid damage to it or other entities.

3.2.1.13 State machine for Entity
Link to state diagram for this class.

#### States of Entity:

- active (sub-state of normal): The state representing the fact that the Entity is currently active.
- inactive (sub-state of normal): The state representing the fact that an entity can no longer be an active participant in events.
- normal: The "typical" state. Excludes "nullified", which represents the termination state of an Entity instance that was created in error
- nullified: The state representing the termination of an Entity instance that was created in error.

#### State transitions of Entity:

- revise (from active to active)
- inactivate (from active to inactive)
- reactivate (from inactive to active)
- revise (from inactive to inactive)
- nullify (from normal to nullified)
- create (from null to active)

3.2.2 Class: LanguageCommunication (in Entities)

#### Attributes of LanguageCommunication:

- Attributes of LanguageCommunication:

languageCode:: CE
modeCode:: CE
| proficiencyLevelCode:: CE
preferenceInd:: BL

- Associations of LanguageCommunication:
- entity::(1..1)Entity::languageCommunication::(0..*)

- LanguageCommunication is a specialization of: InfrastructureRoot

#### Definition of LanguageCommunication:

The language communication capabilities for an Entity.

Examples: A patient who originally came from Mexico may have fluent language capabilities to speak, read and write in Spanish, but only rudimentary capabilities in English. A person from Russia may have the capability to communicate equally well in spoken language in Russian, Armenian or Ukrainian, but prefers to speak in Armenian.

Discussion: While it may seem on the surface that this class would be restricted in usage to only the LivingSubject subtypes, Devices also have the ability to communicate, such as automated telephony devices that transmit patient information to live operators on a triage line or provide automated laboratory results to clinicians.

Rationale: Each Entity with the ability to communicate verbally has differing language and proficiency level. This class specifies the languages with which the entity can communicate, the mode of communication (speak, read, write), the proficiency of that communication, and the Entity's preference.

#### Attributes of LanguageCommunication:

3.2.2.1 LanguageCommunication.languageCode:: CE (0..1)
Vocabulary domain: HumanLanguage (CWE)
Definition:A value representing a language for which the Entity has some level of proficiency for written or spoken communication.

Examples: Spanish, Italian, German, English, American Sign, etc.

Discussion: Communication via spoken or written language is not solely restricted to LivingSubjects. Devices that communicate with persons using human language also must specify in which languages they are capable. Automated voice response systems respond to human language and communicate with other devices or persons using human language.

Rationale: Many individuals and devices have the capability to communicate at varying levels in multiple languages. This code specifies a language capability that the entity wishes to make known.

Version 2.x reference:

| GT1^36^00118^Primary Language |

| IN2^34^00118^Primary Language |

| NK1^20^00118^Primary Language |

| PID^15^00118^Primary Language |

3.2.2.2 LanguageCommunication.modeCode:: CE (0..1)
Vocabulary domain: LanguageAbilityMode (CWE)
Definition:A value representing the method of expression of the language

Examples: expressed spoken, expressed written, expressed signed, received spoken, received written, received signed

3.2.2.3 LanguageCommunication.proficiencyLevelCode:: CE (0..1)
Vocabulary domain: LanguageAbilityProficiency (CWE)
Definition:A value representing the level of proficiency in a language.

Examples: excellent, good, fair, poor

3.2.2.4 LanguageCommunication.preferenceInd:: BL (0..1)
Definition:An indicator specifying whether or not the language is preferred by the entity for the associated mode.
3.2.3 Class: Container (in Entities)

#### Attributes of Container:

- Attributes of Container:

capacityQuantity:: PQ
heightQuantity:: PQ
diameterQuantity:: PQ
| capTypeCode:: CE
separatorTypeCode:: CE
barrierDeltaQuantity:: PQ
| bottomDeltaQuantity:: PQ

- Container is a specialization of: ManufacturedMaterial

#### Definition of Container:

A subtype of ManufacturedMaterial used to hold other Entities for purposes such as transportation or protection of contents from loss or damage.

Rationale: The specifications for this class arose from the collaboration between HL7 and the NCCLS. Many of the attribute definitions are drawn from or reference the NCCLS standard. With amorphic substances (liquids, gases) a container is required. However, the content of a container is always distinguishable and relatively easily separable from the container, unlike the content (ingredient) of a mixture.

Usage: A container is related to a content material through Role.classCode = CONT (content).

#### Attributes of Container:

3.2.3.1 Container.capacityQuantity:: PQ (0..1)
Definition:The functional capacity of the container.

3.2.3.2 Container.heightQuantity:: PQ (0..1)
Definition:The height of the container.

3.2.3.3 Container.diameterQuantity:: PQ (0..1)
Definition:The outside diameter of the container.

3.2.3.4 Container.capTypeCode:: CE (0..1)
Vocabulary domain: ContainerCap (CWE)
Definition:The type of container cap consistent with decapping, piercing or other automated manipulation.

3.2.3.5 Container.separatorTypeCode:: CE (0..1)
Vocabulary domain: ContainerSeparator (CWE)
Definition:A material added to a container to facilitate and create a physical separation of specimen components of differing density.

Examples: A gel material added to blood collection tubes that following centrifugation creates a physical barrier between the blood cells and the serum or plasma.

Rationale: The composition or nature of the separator material may have an effect on the analysis. Knowledge of the material aids interpretation of results.

3.2.3.6 Container.barrierDeltaQuantity:: PQ (0..1)
Definition:The distance from the Point of Reference to the separator material (barrier) within a container.

Rationale: This distance may be provided by a laboratory automation system to an instrument and/or specimen processing/handling device to facilitate the insertion of a sampling probe into the specimen without touching the separator. See the Point of Reference definition or in NCCLS standard AUTO5 Laboratory Automation: Electromechanical Interfaces.

3.2.3.7 Container.bottomDeltaQuantity:: PQ (0..1)
Definition:The distance from the Point of Reference to the outside bottom of the container.

Rationale: Refer to Point of Reference in NCCLS standard AUTO5 Laboratory Automation: Electromechanical Interfaces.

3.2.4 Class: Device (in Entities)

#### Attributes of Device:

- Attributes of Device:

manufacturerModelName:: SC
softwareName:: SC
| localRemoteControlStateCode:: CE
alertLevelCode:: CE
| lastCalibrationTime:: TS

- Device is a specialization of: ManufacturedMaterial

#### Definition of Device:

A subtype of ManufacturedMaterial used in an activity, without being substantially changed through that activity. The kind of device is identified by the code attribute inherited from Entity.

Usage: This includes durable (reusable) medical equipment as well as disposable equipment.

#### Attributes of Device:

3.2.4.1 Device.manufacturerModelName:: SC (0..1)
Vocabulary domain: ManufacturerModelName (CWE)
Definition:The human designated moniker for a device assigned by the manufacturer.

Examples: Perkin Elmer 400 Inductively Coupled Plasma Unit

3.2.4.2 Device.softwareName:: SC (0..1)
Vocabulary domain: SoftwareName (CWE)
Definition:The moniker, version and release of the software that operates the device as assigned by the software manufacturer or developer.

Examples: Agilent Technologies Chemstation A.08.xx

3.2.4.3 Device.localRemoteControlStateCode:: CE (0..1)
Vocabulary domain: LocalRemoteControlState (CWE)
Definition:A value representing the current state of control associated with the device.

Examples: A device can either work autonomously (localRemoteControlStateCode="Local") or it can be controlled by another system (localRemoteControlStateCode="Remote").

Rationale: The control status of a device must be communicated between devices prior to remote commands being transmitted. If the device is not in "Remote" status then external commands will be ignored.

3.2.4.4 Device.alertLevelCode:: CE (0..1)
Vocabulary domain: DeviceAlertLevel (CWE)
Definition:A value representing the current functional activity of an automated device.

Examples: Normal, Warning, Critical

Constraints: The value of the attribute is determined by the device.

3.2.4.5 Device.lastCalibrationTime:: TS (0..1)
Definition:The date/time of the last calibration of the device.

Rationale: Devices are required to be recalibrated at specific intervals to ensure they are performing within specifications. The accepted interval between calibrations varies with protocols. Thus for results to be valid, the precise time/date of last calibration is a critical component.

3.2.5 Class: LivingSubject (in Entities)

#### Attributes of LivingSubject:

- Attributes of LivingSubject:

administrativeGenderCode:: CE
birthTime:: TS
deceasedInd:: BL
| deceasedTime:: TS
multipleBirthInd:: BL
multipleBirthOrderNumber:: INT
| organDonorInd:: BL

- LivingSubject generalizes:

NonPersonLivingSubject
| Person

- LivingSubject is a specialization of: Entity

#### Definition of LivingSubject:

A subtype of Entity representing an organism or complex animal, alive or not.

Examples: A person, dog, microorganism or a plant of any taxonomic group.

Constraints: Instances of this class encompass mammals, birds, fishes, bacteria, parasites, fungi and viruses. Person is a specialization of this class.

Rationale: This class contains "static" or "administrative" attributes of interest to medicine that differentiate living organisms from other Entities.

#### Attributes of LivingSubject:

3.2.5.1 LivingSubject.administrativeGenderCode:: CE (0..1)
Vocabulary domain: AdministrativeGender (CWE)
Definition:A value representing the gender (sex) of a Living subject.

Examples: female, male

Discussion: This attribute does not include terms related to clinical gender. Gender is a complex physiological, genetic and sociological concept that requires multiple observations in order to be comprehensively described. The purpose of this attribute is to provide a high level classification that can additionally be used for the appropriate allocation of inpatient bed assignment.

Constraints: This code is used for administrative purposes.

ExtRef: This information is reported on UB FL 15.

Version 2.x reference:

| NK1^15^00111^Sex |

| PID^8^00111^Sex |

| STF^5^00111^Sex |

| GT1^9^00413^Guarantor Sex |

| IN1^43^00468^Insured's Sex |

3.2.5.2 LivingSubject.birthTime:: TS (0..1)
Definition:The date and time of a living subject's birth or hatching.
Version 2.x reference:

| NK1^16^00110^Date/Time of Birth |

| PID^7^00110^Date/Time of Birth |

| STF^6^00110^Date/Time of Birth |

| GT1^8^00412^Guarantor Date/Time of Birth |

| IN1^18^00443^Insured's Date of Birth |

3.2.5.3 LivingSubject.deceasedInd:: BL (0..1)
Definition:An indication that the subject is dead.

3.2.5.4 LivingSubject.deceasedTime:: TS (0..1)
Definition:The date and time that a living subject's death occurred.

3.2.5.5 LivingSubject.multipleBirthInd:: BL (0..1)
Definition:An indication as to whether the living subject is part of a multiple birth.
Version 2.x reference:

| PID^24^00127^Multiple Birth Indicator |

3.2.5.6 LivingSubject.multipleBirthOrderNumber:: INT (0..1)
Definition:The order in which this living subject was born if part of a multiple birth.
Version 2.x reference:

| PID^25^00128^Birth Order |

3.2.5.7 LivingSubject.organDonorInd:: BL (0..1)
Definition:An indication that the living subject is a candidate to serve as an organ donor.

Discussion: This attribute specifies whether an individual living subject has donated or is willing to donate an organ.

Version 2.x reference:

| PD1^8^00760^Organ Donor |

3.2.6 Class: ManufacturedMaterial (in Entities)

#### Attributes of ManufacturedMaterial:

- Attributes of ManufacturedMaterial:

lotNumberText:: ST
| expirationTime:: IVL<TS>
| stabilityTime:: IVL<TS>

- ManufacturedMaterial generalizes:

Container
| Device

- ManufacturedMaterial is a specialization of: Material

#### Definition of ManufacturedMaterial:

A subtype of Material representing an Entity or combination of Entities transformed for a particular purpose by a non-natural or manufacturing process.

Examples: Processed food products, disposable syringes, chemistry analyzer, saline for infusion, etc.

Discussion: This class encompasses containers, devices, software modules and facilities.

Rationale: This class is used to further define the characteristics of Entities that are created out of other Entities. These entities are identified and tracked through associations and mechanisms unique to the class, such as lotName, stabilityTime and expirationTime.

#### Attributes of ManufacturedMaterial:

3.2.6.1 ManufacturedMaterial.lotNumberText:: ST (0..1)
Definition:An alphanumeric string used to identify a particular batch of manufactured material.

Discussion: The lot name is usually printed on the label attached to the container holding the substance and/or on the packaging which houses the container. Note that a lot number is not meant to be a unique identifier, but is meaningful only when the product kind and manufacturer are also identified.

3.2.6.2 ManufacturedMaterial.expirationTime:: IVL<TS> (0..1)
Definition:The date and time the manufacturer no longer ensures the safety, quality, and/or proper functioning of the material.

Rationale: There is a need in many situations that the materials used are of a specific quality or potency or functional status. The ending date for this guarantee is specified by the manufacturer. After that date, while the material may still provide the same characteristics, the manufacturer no longer takes responsibility that the product will perform as specified and denies responsibility for failure of the material after that date.

3.2.6.3 ManufacturedMaterial.stabilityTime:: IVL<TS> (0..1)
Definition:The time at which the material is considered useable after it is activated.

Examples: After opening a bottle of a liquid. The mixing of two chemicals for an analysis that must be mixed and used within two hours or their activity diminishes.

Discussion: If a kind of material is described (determinerCode = KIND) only the width of that interval can be known, i.e., the duration after opening the reagent container at which the reagent substance is considered useable for its normal testing purpose. For an actual instance of the reagent (e.g., a specific bottle), the stabilityTime.low TS marks the time at which the reagent bottle has been opened (or the reagent was otherwise activated). Together with the typical stability duration, this determines the stabilityTime.high TS beyond which the reagent is no longer considered useable for its normal testing purpose.

3.2.7 Class: Material (in Entities)

#### Attributes of Material:

- Attributes of Material:

formCode:: CE

- Material generalizes:

ManufacturedMaterial

- Material is a specialization of: Entity

#### Definition of Material:

A subtype of Entity that is inanimate and locationally independent.

Examples: Pharmaceutical substances (including active vaccines containing retarded virus), disposable supplies, durable equipment, implantable devices, food items (including meat or plant products), waste, traded goods, etc.

Discussion: Manufactured or processed products are considered material, even if they originate as living matter. Materials come in a wide variety of physical forms and can pass through different states (ie. Gas, liquid, solid) while still retaining their physical composition and material characteristics.

Rationale: There are entities that have attributes in addition to the Entity class, yet cannot be classified as either LivingSubject or Place.

#### Attributes of Material:

3.2.7.1 Material.formCode:: CE (0..1)
Vocabulary domain: MaterialForm (CWE)
Definition:A value representing the state (solid, liquid, gas) and nature of the material.

Examples: For therapeutic substances, the dose form, such as tablet, ointment, gel, etc.

3.2.8 Class: NonPersonLivingSubject (in Entities)

#### Attributes of NonPersonLivingSubject:

- Attributes of NonPersonLivingSubject:

strainText:: ED
| genderStatusCode:: CE

- NonPersonLivingSubject is a specialization of: LivingSubject

#### Definition of NonPersonLivingSubject:

A subtype of LivingSubject that includes all living things except the species homo sapiens.

Examples: Cattle, birds, bacteria , plants molds and fungi, etc.

Rationale: Living organisms other than human beings may require additional characterizing information such as genetic strain identification that cannot be conveyed in the Entity.code.

#### Attributes of NonPersonLivingSubject:

3.2.8.1 NonPersonLivingSubject.strainText:: ED (0..1)
Definition:A text string representing a specific genotypic or phenotypic variant of a NonPersonLivingSubject.

Examples: Minnesota5 (swine strain), DXL (poultry strain), RB51 (vaccine strain of Brucella abortus)

Rationale: There is no universal guideline for the naming or cataloging of strains. Many strain designations are created and eliminated over time, while some become established in various industries for a variety of reasons (vaccine production, breeding stock popularity, etc). However, the ability for anyone who cares to designate an organism as a "new" strain, precludes this field from being a coded value. Descriptive text is required to capture these designations.

3.2.8.2 NonPersonLivingSubject.genderStatusCode:: CE (0..1)
Vocabulary domain: GenderStatus (CWE)
Definition:A value representing whether the primary reproductive organs of NonPersonLivingSubject are present.
3.2.9 Class: Organization (in Entities)

#### Attributes of Organization:

- Attributes of Organization:

addr:: BAG<AD>
| standardIndustryClassCode:: CE

- Organization is a specialization of: Entity

#### Definition of Organization:

An Entity representing a formalized group of entities with a common purpose (e.g. administrative, legal, political) and the infrastructure to carry out that purpose.

Examples: Companies and institutions, a government department, an incorporated body that is responsible for administering a facility, an insurance company.

#### Attributes of Organization:

3.2.9.1 Organization.addr:: BAG<AD> (0..*)
Definition:The postal and/or residential address of an organization.
Version 2.x reference:

| PID^11^00114^Patient Address |

| PID^12^00115^County Code |

| NK1^4^00193^Address |

| GT1^5^00409^Guarantor Address |

| GT1^17^00421^Guarantor Employer Address |

| IN1^5^00430^Insurance Company Address |

| IN1^19^00444^Insured's Address |

| IN1^44^00469^Insured's Employer Address |

| OM1^28^00613^Address of Outside Site(s) |

3.2.9.2 Organization.standardIndustryClassCode:: CE (0..1)
Vocabulary domain: OrganizationIndustryClass (CWE)
Definition:A value representing the industrial category of an organization entity.

Examples: 11231-Chicken Egg Production, 6211- Offices of Physicians, 621511-Medical Laboratories, 524114-Direct Health and Medical Insurance Carriers

3.2.10 Class: Person (in Entities)

#### Attributes of Person:

- Attributes of Person:

addr:: BAG<AD>
maritalStatusCode:: CE
educationLevelCode:: CE
| disabilityCode:: SET<CE>
livingArrangementCode:: CE
religiousAffiliationCode:: CE
| raceCode:: SET<CE>
ethnicGroupCode:: SET<CE>

- Person is a specialization of: LivingSubject

#### Definition of Person:

A subtype of LivingSubject representing a human being.

Constraints: This class can be used to represent either a single individual or a group of individuals based on the value of Entity.determinerCode and Entity.quantity.

#### Attributes of Person:

3.2.10.1 Person.addr:: BAG<AD> (0..*)
Definition:The postal and/or residential address of a Person.
Version 2.x reference:

| PID^11^00114^Patient Address |

| PID^12^00115^County Code |

| NK1^4^00193^Address |

| GT1^5^00409^Guarantor Address |

| GT1^17^00421^Guarantor Employer Address |

| IN1^5^00430^Insurance Company Address |

| IN1^19^00444^Insured's Address |

| IN1^44^00469^Insured's Employer Address |

| OM1^28^00613^Address of Outside Site(s) |

3.2.10.2 Person.maritalStatusCode:: CE (0..1)
Vocabulary domain: MaritalStatus (CWE)
Definition:A value representing the domestic partnership status of a person.

Examples: Married, separated, divorced, widowed, common-law marriage.

Rationale: This information is reported on UB FL 16

Version 2.x reference:

| IN2^43^00119^Marital Status |

| NK1^14^00119^Marital Status |

| PID^16^00119^Marital Status |

| STF^17^00119^Marital Status |

| GT1^30^00781^Guarantor Marital Status Code |

3.2.10.3 Person.educationLevelCode:: CE (0..1)
Vocabulary domain: EducationLevel (CWE)
Definition:The highest level of education a person achieved (e.g. elementary school, high school or secondary school degree complete, college or baccalaureate degree complete).

3.2.10.4 Person.disabilityCode:: SET<CE> (0..*)
Vocabulary domain: PersonDisabilityType (CWE)
Definition:A value identifying a person's disability.

Examples: vision impaired, hearing impaired.

Version 2.x reference:

| GT1^52^00753^Handicap |

| IN1^48^00753^Handicap |

| NK1^36^00753^Handicap |

| PD1^6^00753^Handicap |

3.2.10.5 Person.livingArrangementCode:: CE (0..1)
Vocabulary domain: LivingArrangement (CWE)
Definition:A value specifying the housing situation of a person.

Examples: Independent household, institution, nursing home, extended care facility, retirement community, etc.).

Discussion: Used for discharge planning, social service assessment, psychosocial evaluation.

Version 2.x reference:

| GT1^37^00742^Living Arrangement |

| IN2^35^00742^Living Arrangement |

| NK1^21^00742^Living Arrangement |

| PD1^2^00742^Living Arrangement |

3.2.10.6 Person.religiousAffiliationCode:: CE (0..1)
Vocabulary domain: ReligiousAffiliation (CWE)
Definition:The primary religious preference of a person (e.g. Hinduism, Islam, Roman Catholic Church).
Version 2.x reference:

| GT1^41^00120^Religion |

| IN2^39^00120^Religion |

| NK1^25^00120^Religion |

| PID^17^00120^Religion |

3.2.10.7 Person.raceCode:: SET<CE> (0..*)
Vocabulary domain: Race (CWE)
Definition:A value representing the race of a person.
Version 2.x reference:

| IN2^71^00113^Race |

| NK1^35^00113^Race |

| PID^10^00113^Race |

3.2.10.8 Person.ethnicGroupCode:: SET<CE> (0..*)
Vocabulary domain: Ethnicity (CWE)
Definition:The ethnic group of the person.
Version 2.x reference:

| GT1^44^00125^Ethnic Group |

| IN2^42^00125^Ethnic Group |

| NK1^28^00125^Ethnic Group |

| PID^22^00125^Ethnic Group |

3.2.11 Class: Place (in Entities)

#### Attributes of Place:

- Attributes of Place:

mobileInd:: BL
addr:: AD
| directionsText:: ED
positionText:: ED
| gpsText:: ST

- Place is a specialization of: Entity

#### Definition of Place:

A subtype of Entity representing a bounded physical place or site with its contained structures, if any.

Examples: A field, lake, city, county, state, country, lot (land), building, pipeline, power line, playground, ship, truck.

Constraints: Place may be natural or man-made. The geographic position of a place may or may not be constant.

Discussion: Places may be work facilities (where relevant acts occur), homes (where people live) or offices (where people work). Places may contain sub-places (floor, room, booth, bed). Places may also be sites that are investigated in the context of health care, social work, public health administration (e.g., buildings, picnic grounds, day care centers, prisons, counties, states, and other focuses of epidemiological events).

#### Attributes of Place:

3.2.11.1 Place.mobileInd:: BL (0..1)
Definition:An Indication of whether the facility has the capability to move freely from one location to another.

Examples: Ships, aircraft and ambulances all have the capability to participate in healthcare acts.

3.2.11.2 Place.addr:: AD (0..1)
Definition:The physical address of this place.

Constraints: Must be the address that allows the physical location of the place on a map.

Version 2.x reference:

| RXD^13^00299^Deliver-to Location |

| RXE^8^00299^Deliver-to Location |

| RXG^11^00299^Deliver-to Location |

| RXO^8^00299^Deliver-to Location |

| RXA^11^00353^Administered-at Location |

| LOC^5^00948^Location Address |

| RXD^13^01303^Dispense-to Location |

| RXG^11^01303^Dispense-to Location |

3.2.11.3 Place.directionsText:: ED (0..1)
Definition:A free text note that carries information related to a site that is useful for entities accessing that site.

Discussion: The attribute could include directions for finding the site when address information is inadequate, GPS information is not available, and/or the entity accessing the site cannot make direct use of the GPS information. It could also include information useful to people visiting the location. E.g., "Last house on the right", "If owner not present, check whereabouts with neighbor down the road".

ExtRef: PHCDM-02.01.04.01(Public Health Common Data Model)

3.2.11.4 Place.positionText:: ED (0..1)
Definition:A set of codes that locates the site within a mapping scheme.

Examples: map coordinates for US Geological Survey maps.

3.2.11.5 Place.gpsText:: ST (0..1)
Definition:The global positioning system coordinates of a place.

Discussion: The global positioning system values for this attribute should conform with the USGS Spatial Data Transmission Standards. Among other things this includes the nature of the latitude and longitude readings, the offset error, the projection.

Rationale: In some field conditions, there will be no physical address to identify a place of interest. As all locations on the surface of the earth have unique geographic coordinates, the GPS values allow for precise location information to be captured and transmitted.

3.3 Classes in subject area Roles
3.3.1 Class: Role (in Roles)

#### Attributes of Role:

- Attributes of Role:

classCode:: CS
id:: SET<II>
code:: CE
negationInd:: BL
name:: BAG<EN>
| addr:: BAG<AD>
telecom:: BAG<TEL>
statusCode:: CS
effectiveTime:: IVL<TS>
certificateText:: ED
| confidentialityCode:: SET<CE>
quantity:: RTO
positionNumber:: LIST<INT>

- Associations of Role:
- player::(0..1)Entity::playedRole::(0..*)
- scoper::(0..1)Entity::scopedRole::(0..*)
- participation::(0..*)Participation::role::(1..1)
- outboundLink::(0..*)RoleLink::source::(1..1)
- inboundLink::(0..*)RoleLink::target::(1..1)

- Role generalizes:

Access
Employee
| LicensedEntity
Patient
| QualifiedEntity
RoleHeir

- Role is a specialization of: InfrastructureRoot

#### Definition of Role:

A competency of the Entity playing the Role as identified, defined, guaranteed, or acknowledged by the Entity that scopes the Role.

Discussion: An Entity participates in an Act as in a particular Role. Note that a particular entity in a particular role can participate in an act in many ways. Thus, a Person in the role of a practitioner can participate in a patient encounter as a rounding physician or as an attending physician. The Role defines the competency of the Entity irrespective of any Act, as opposed to Participation, which are limited to the scope of an Act.

Each role is "played" by one Entity, called the "player" and is "scoped" by another Entity, called the "scoper". Thus the Role of "patient" may be played by a person and scoped by the provider organization from which the patient will receive services. Similarly, the employer scopes an "employee" role.

The identifier of the Role identifies the Entity playing the role in that role. This identifier is assigned by the scoping Entity to the player. The scoping Entity need not have issued the identifier, but it may have re-used an existing identifier for the Entity to also identify the Entity in the Role with the scoper.

Most attributes of Role are attributes of the playing entity while in the particular role.

#### Attributes of Role:

3.3.1.1 Role.classCode:: CS (1..1) Mandatory
Vocabulary domain: RoleClass (CNE)
Definition:A code specifying the major category of a Role as defined by HL7 vocabulary.

3.3.1.2 Role.id:: SET<II> (0..*)
Definition:A unique identifier for the player Entity in this Role.

3.3.1.3 Role.code:: CE (0..1)
Vocabulary domain: RoleCode (CWE)
Definition:A code further specifying the kind of Role.

Discussion: The Role.code must conceptually be a proper specialization of Role.classCode. Role.code does not modify Role.classCode. Rather, each is a complete concept or a Role-like relationship between two Entities, but Role.code may be more specific than Role.classCode.

The Role.code may not be coded if only an un-coded name for the type of role is commonly used.

3.3.1.4 Role.negationInd:: BL (0..1)
Definition:An indicator specifying that the Role is a competency that is specifically not attributed to the Entity playing the Role.

Examples: 1.) This Person is not our Employee

2.) This Mouthwash does not have Alcohol as an ingredient.

Constraint

Normally all Roles are considered to be affirmative. (This attribute defaults to FALSE).

3.3.1.5 Role.name:: BAG<EN> (0..*)
Definition:A non-unique textual identifier or moniker for the playing Entity intended for use principally when playing the Role.

Examples: Names used as an employee, as a licensed professional, etc.

Usage: In general, names are specified using Entity.name. Role.name is only used when the standard wishes to distinguish names that are appropriate for use when referring to the Entity in one Role as opposed to other Roles..

3.3.1.6 Role.addr:: BAG<AD> (0..*)
Definition:An address for the Entity while in the Role.
Version 2.x reference:

| PID^11^00114^Patient Address |

| PID^12^00115^County Code |

| NK1^4^00193^Address |

| GT1^5^00409^Guarantor Address |

| GT1^17^00421^Guarantor Employer Address |

| IN1^5^00430^Insurance Company Address |

| IN1^19^00444^Insured's Address |

| IN1^44^00469^Insured's Employer Address |

| OM1^28^00613^Address of Outside Site(s) |

3.3.1.7 Role.telecom:: BAG<TEL> (0..*)
Definition:A telecommunication address for the Entity while in the Role.
Version 2.x reference:

| PID^13^00116^Phone Number - Home |

| NK1^6^00195^Business Phone Number |

| GT1^6^00410^Guarantor Ph Num- Home |

| GT1^7^00411^Guarantor Ph Num-Business |

| GT1^18^00422^Guarantor Employer Phone Number |

| IN1^7^00432^Insurance Co Phone Number |

| IN3^16^00517^Certification Contact Phone Number |

| IN3^19^00520^Certification Agency Phone Number |

| OM1^17^00602^Telephone Number of Section |

| OM1^29^00614^Phone Number of Outside Site |

| GT1^46^00749^Contact Person's Telephone Number |

| NK1^31^00749^Contact Person's Telephone Number |

| IN2^50^00790^Employer Contact Person Phone Number |

| IN2^53^00793^Insured's Contact Person Telephone Number |

| IN2^58^00798^Insurance Co Contact Phone Number |

| IN2^63^00803^Insured's Telephone Number - Home |

| IN2^64^00804^Insured's Employer Telephone Number |

3.3.1.8 Role.statusCode:: CS (0..1)
Vocabulary domain: RoleStatus (CNE)
Definition:A code specifying the state of this Role as defined in the state-transition model.

Design Advisory: This attribute was defined in the original RIM as repeating, owing to the presence of nested states in the state machines. In actual practice, however, there is never a need to communicate more than a single status value. therefore, committees are advised to constrain this attribute to a maximum cardinality of 1 in all message designs.

Version 2.x reference:

| PID^27^00130^Veterans Military Status |

3.3.1.9 Role.effectiveTime:: IVL<TS> (0..1)
Definition:An interval of time specifying the period during which the Role is in effect, if such time limit is applicable and known.

3.3.1.10 Role.certificateText:: ED (0..*)
Definition:A textual or multimedia depiction of a certificate issued by the scoping Entity of a Role certifying that this Role is indeed played by the player Entity.

Examples: The certificate can be represented in many different ways, either inline or by reference, according to the ED data type. Typical cases are:

1.) Paper-based certificate: the ED data type may refer to some document or file that can be retrieved through an electronic interface to a hardcopy archive.

2.) Electronic certificate: this attribute can represent virtually any electronic certification scheme, such as, an electronically (including digitally) signed electronic text document.

3.) Digital certificate (public key certificate): in particular, this attribute can represent digital certificates, as an inline data block or by reference to such data. The certificate data block would be constructed in accordance to a digital certificate standard, such as X509, SPKI, PGP, etc.

The certificate subject is the Entity that plays the Role. The certificate issuer is the Entity that scopes the Role.

3.3.1.11 Role.confidentialityCode:: SET<CE> (0..*)
Vocabulary domain: Confidentiality (CWE)
Definition:A code that controls the disclosure of information about this Role with respect to the playing Entity..

Discussion: It is important to note that the necessary confidentiality of the medical record cannot be achieved solely through confidentiality codes to mask individual record items from certain types of users. There are two important problems with per-item confidentiality: one is inference and the other is the danger of holding back information that may be critical in a certain care situation. Inference means that filtered sensitive information can still be assumed given the other information that was not filtered. The simplest form of inference is that even the existence of a test order for an HIV Western Blot test or a T4/T8 lymphocyte count is a strong indication for an existing HIV infection, even if the results are not known. Very often, diagnoses can be inferred from medication, such as Zidovudin for treatment of HIV infections. The problem of hiding individual items becomes especially difficult with current medications, since the continuing administration of the medication must be assured.

To mitigate some of the inference-risk, aggregations of data should assume the confidentiality level of the most confidential action in the aggregation.

Version 2.x reference:

| GT1^38^00743^Publicity Indicator |

| IN2^36^00743^Publicity Indicator |

| NK1^22^00743^Publicity Indicator |

| PD1^11^00743^Publicity Indicator |

| GT1^39^00744^Protection Indicator |

| IN2^37^00744^Protection Indicator |

| NK1^23^00744^Protection Indicator |

| PD1^12^00744^Protection Indicator |

3.3.1.12 Role.quantity:: RTO (0..1)
Definition:A ratio (numerator : denominator) specifying the relative quantities of the Entity playing the Role in the Entity scoping the Role, used for Roles that represent composition relationships between the scoping and playing Entities.

Examples: 1.) This syrup's (scoper) ingredients include 160 mg (numerator) Acetaminophen (player) per tablespoon (denominator).

2.) This herd (scoper) consists of 500 (numerator) cattle (player).

3.) A VAX 6630 computer (scoper) has 3 (numerator) CPUs (player) as parts.

4.) This package (scoper) contains 100 (numerator) pills (player).

Discussion: In composition-relationships (e.g., has-parts, has-ingredient, has-content) the Role.quantity attribute specifies that a numerator amount of the target entity is comprised by a denominator amount of the source entity of such composition-relationship. For example, if a box (source) has-content 10 eggs (target), the relationship quantity is 10:1; if 0.6 mL contain 75 mg of FeSO4 the ingredient relationship quantity is 75 mg : 0.6 mL. Both numerator and denominator must be amount quantities (extensive quantities, i.e., a count number, mass, volume, amount of substance, amount of energy, etc.).

3.3.1.13 Role.positionNumber:: LIST<INT> (0..*)
Definition:An integer specifying the position of the Entity playing the Role with respect to the Entity that scopes the Role.

Discussion: This attribute is primarily used with respect to containment roles. For example, some containers have discrete positions in which content may be located. Depending on the geometry of the container, the position may be referenced as a scalar ordinal number, or as a vector of ordinal numbers (coordinates). Coordinates always begin counting at 1.

Some containers may have customary ways of referring to the positions or no way at all. In the absence of any specific regulation for a specific container type, the rule of thumb is that the coordinate that is changed earlier is positioned first. For an automated blood chemistry analyzer with a square shaped tray, this means that the first coordinate is the one in which direction the tray moves at each step and the second coordinate is the one in which the tray moves only every 10 (or so) steps.

3.3.1.14 State machine for Role
Link to state diagram for this class.

#### States of Role:

- active (sub-state of normal): The state representing the fact that the Entity is currently active in the Role.
- cancelled (sub-state of normal): The terminal state resulting from cancellation of the role prior to activation.
- normal: The "typical" state. Excludes "nullified", which represents the termination of a Role instance that was created in error.
- nullified: The state representing the termination of a Role instance that was created in error
- pending (sub-state of normal): The state representing that fact that the role has not yet become active.
- suspended (sub-state of normal): The state that represents the suspension of the Entity playing the Role. This state is arrived at from the "active" state.
- terminated (sub-state of normal): The state representing the successful termination of the Role.

#### State transitions of Role:

- revise (from active to active)
- suspend (from active to suspended)
- terminate (from active to terminated)
- nullify (from normal to nullified)
- create (from null to active)
- create (from null to pending)
- activate (from pending to active)
- cancel (from pending to cancelled)
- revise (from pending to pending)
- resume (from suspended to active)
- revise (from suspended to suspended)
- terminate (from suspended to terminated)
- reactivate (from terminated to active)
- revise (from terminated to terminated)

3.3.2 Class: RoleLink (in Roles)

#### Attributes of RoleLink:

- Attributes of RoleLink:

typeCode:: CS
| priorityNumber:: INT
| effectiveTime:: IVL<TS>

- Associations of RoleLink:
- target::(1..1)Role::inboundLink::(0..*)
- source::(1..1)Role::outboundLink::(0..*)

- RoleLink is a specialization of: InfrastructureRoot

#### Definition of RoleLink:

A connection between two roles expressing a dependency between those roles.

Examples: 1.) A role of assignment or agency depends on another role of employment, such that when the employment role is terminated, the assignments would be terminated as well. This is the dependency of the assignment role with the employment role, or in other words, the assignment is "part of" the employment.

2.) One role has authority over another (in organizational relationships). For example, an employee of type "manager" may have authority over employees of type "analyst" which would be indicated by a role link for "direct authority".

Discussion: RoleLink specifies the relationships between roles, not between people (or other entities). People (or other Entities) are primarily related by their direct player/scoper relationships around the player's Role and more generally through their interactions (i.e. their participations in acts).

#### Attributes of RoleLink:

3.3.2.1 RoleLink.typeCode:: CS (1..1) Mandatory
Vocabulary domain: RoleLinkType (CNE)
Definition:A code specifying the kind of connection represented by this RoleLink, e.g., has-part, has-authority.

3.3.2.2 RoleLink.priorityNumber:: INT (0..1)
Definition:An integer specifying the relative preference for considering this relationship before other like-typed relationships having the same source RoleRelationships with lower priorityNumber values are considered before and above those with higher values.

Examples: For multiple backups specifies which backup is considered before others.

What is the preferred ServiceDeliveryLocation for a Physician working on behalf of a particular Health Authority?

Discussion: The ordering may be a total ordering in which all priority numbers are unique or a partial ordering, which assigns the same priority to more than one relationship.

3.3.2.3 RoleLink.effectiveTime:: IVL<TS> (0..1)
Definition:An interval of time specifying the period during which the connection between Roles is in effect.
3.3.3 Class: Access (in Roles)

#### Attributes of Access:

- Attributes of Access:

approachSiteCode:: CD
| targetSiteCode:: CD
| gaugeQuantity:: PQ

- Access is a specialization of: Role

#### Definition of Access:

A role played by a device when the device is used to administer therapeutic agents (medication and vital elements) into the body, or to drain material (e.g., exudates, pus, urine, air, blood) out of the body.

Discussion: In general, Access is a Role of a ManufacturedMaterial or Device, something specifically manufactured or created to serve that purpose, such as a catheter or cannula inserted into a compartment of the body.

Devices in the role of an Access are typically used in intake/outflow observations, and in medication routing instructions. Microbiologic observations on the material itself or on fluids coming out of a drain, are also common.

Rationale: The Access role primarily exists in order to describe material actually deployed as an access, and not so much the fresh material as it comes from the manufacturer. For example, in supply ordering a box of catheters from a distributor, it is not necessary to use the Access role class, since the material attributes will usually suffice to describe and identify the product for the order. But the Access role is used to communicate about the maintenance, intake/outflow, and due replacement of tubes and drains.

#### Attributes of Access:

3.3.3.1 Access.approachSiteCode:: CD (0..1)
Vocabulary domain: ActSite (CWE)
Definition:A coded specification of the anatomic site where the Access (cannula, line or drain) first enters the body and, if applicable, a routing from the first entrance to the target site.

Examples: For example an arteria pulmonalis catheter targets a pulmonary artery but the access approach site is typically the vena carotis interna at the neck, or the vena subclavia at the fossa subclavia.

Constraints: The coding system is the same as for Procedure.approachSiteCode; indeed the Access.approachSiteCode has been copied from the Procedure class into the Access role class. The value of the Access.approachSiteCode should be identical to the value of the Procedure.approachSiteCode of an associated access placement procedure.

Rationale: Since accesses are typically placed for a considerable period of time and since the access is used as a resource of many acts, the access approach site becomes an important identifying attribute of the access itself (as opposed to merely being an attribute of the placement procedure).

3.3.3.2 Access.targetSiteCode:: CD (0..1)
Vocabulary domain: ActSite (CWE)
Definition:A coded specification of the site or body compartment into which access is being provided, i.e., the compartment into which material is administered or from which it is collected.

Examples: For example, a pulmonary artery catheter will have the target site "arteria pulmonalis".

Constraints: The coding system is the same as for Procedure.targetSiteCode; indeed the Access.targetSiteCode has been copied from the Procedure class into the Access role class. The value of the Access.targetSiteCode should be identical to the value of the Procedure.targetSiteCode of an associated access placement procedure.

Rationale: Since accesses are typically placed for a considerable period of time and since the access is used as a resource of many acts, the target site becomes an important identifying attribute of the access itself (as opposed to merely being an attribute of the placement procedure). The target site is important information that determines what kinds of substances may or may not be administered (e.g., special care to avoid medication injections into an arterial access).

3.3.3.3 Access.gaugeQuantity:: PQ (0..1)
Definition:A measure for the inner diameter of the Access (e.g. the lumen of the tube).
3.3.4 Class: Employee (in Roles)

#### Attributes of Employee:

- Attributes of Employee:

jobCode:: CE
jobTitleName:: SC
jobClassCode:: CE
| occupationCode:: CE
salaryTypeCode:: CE
salaryQuantity:: MO
| hazardExposureText:: ED
protectiveEquipmentText:: ED

- Employee is a specialization of: Role

#### Definition of Employee:

A role played by a person who is associated with an organization (the employer, scoper) to receive wages or salary.

Discussion: The purpose of the role is to identify the type of relationship the employee has to the employer rather than the nature of the work actually performed (contrast with AssignedEntity).

#### Attributes of Employee:

3.3.4.1 Employee.jobCode:: CE (0..1)
Vocabulary domain: EmployeeJob (CWE)
Definition:A code specifying an employer-defined categorization of work, used primarily for payroll/remuneration purposes and not necessarily indicative of an employee's specific work assignments, responsibilities and privileges. Examples are accountant, programmer analyst, patient care associate, staff nurse, etc.
Version 2.x reference:

| NK1^11^00200^Next of Kin/Associated Parties Job Code/Class |

| GT1^50^00786^Job Code/Class |

| IN2^47^00786^Job Code/Class |

| STF^19^00786^Job Code/Class |

3.3.4.2 Employee.jobTitleName:: SC (0..1)
Vocabulary domain: JobTitleName (CWE)
Definition:The title of the job held, for example, Vice President, Senior Technical Analyst. This is a local name for the employee's occupation that doesn't necessarily correspond to any scheme for categorizing occupation. Trading partners that need a coded standard should be using Employee "occupation" attribute.
Version 2.x reference:

| NK1^10^00199^Next of Kin/Associated Parties Job Title |

| IN2^23^00494^Special Coverage Approval Title |

| GT1^49^00785^Job Title |

| IN2^46^00785^Job Title |

| STF^18^00785^Job Title |

3.3.4.3 Employee.jobClassCode:: CE (0..1)
Vocabulary domain: EmployeeJobClass (CWE)
Definition:A code qualifying the employment regarding frequency or periodicity, such as, full-time vs. part-time.
Version 2.x reference:

| NK1^11^00200^Next of Kin/Associated Parties Job Code/Class |

| GT1^50^00786^Job Code/Class |

| IN2^47^00786^Job Code/Class |

| STF^19^00786^Job Code/Class |

3.3.4.4 Employee.occupationCode:: CE (0..1)
Vocabulary domain: EmployeeOccupationCode (CWE)
Definition:A code qualifying the classification of kind-of-work based upon a recognized industry or jurisdictional standard.

3.3.4.5 Employee.salaryTypeCode:: CE (0..1)
Vocabulary domain: EmployeeSalaryType (CWE)
Definition:A code specifying the method used by the employer to compute the employee's salary or wages. For example, hourly, annual, or commission.

3.3.4.6 Employee.salaryQuantity:: MO (0..1)
Definition:The amount paid in salary or wages to the employee according to the computation method specified in salaryTypeCode. E.g., if the salaryTypeCode is "hourly" the salaryQuantity specifies the hourly wage.

3.3.4.7 Employee.hazardExposureText:: ED (0..1)
Definition:The type of hazards associated with the work performed by the employee for the employer. For example, asbestos, infectious agents.

3.3.4.8 Employee.protectiveEquipmentText:: ED (0..1)
Definition:Protective equipment needed for the job performed by the employee for the employer. For example, safety glasses, hardhat.
3.3.5 Class: LicensedEntity (in Roles)

#### Attributes of LicensedEntity:

- Attributes of LicensedEntity:

recertificationTime:: TS

- LicensedEntity is a specialization of: Role

#### Definition of LicensedEntity:

A Role of an Entity (player) that is accredited with licenses or qualifications (diplomas) certifying that this Entity may properly perform specific functions.

Examples: 1.) A paramedical training diploma

2.) The certification of equipment

3.) A license to a Person or Organization to provide health services.

Constraints: The scoper is the Organization that issues the credential.

#### Attributes of LicensedEntity:

3.3.5.1 LicensedEntity.recertificationTime:: TS (0..1)
Definition:The date recertification is required.
3.3.6 Class: Patient (in Roles)

#### Attributes of Patient:

- Attributes of Patient:

veryImportantPersonCode:: CE

- Patient is a specialization of: Role

#### Definition of Patient:

A Role of a LivingSubject (player) as a recipient of health care services from a healthcare provider (scoper).

#### Attributes of Patient:

3.3.6.1 Patient.veryImportantPersonCode:: CE (0..1)
Vocabulary domain: PatientImportance (CWE)
Definition:A code specifying the Patient's special status granted by the scoper organization, often resulting in preferred treatment and special considerations. For example, board member, diplomat, etc.
Version 2.x reference:

| PV1^16^00146^VIP Indicator |

3.3.7 Class: QualifiedEntity (in Roles)

#### Attributes of QualifiedEntity:

- Attributes of QualifiedEntity:

equivalenceInd:: BL

- QualifiedEntity is a specialization of: Role

#### Definition of QualifiedEntity:

An entity (player) that has been recognized as having certain training/experience or other characteristics that would make said entity an appropriate performer for a certain activity. The scoper is an organization that educates or qualifies entities.

#### Attributes of QualifiedEntity:

3.3.7.1 QualifiedEntity.equivalenceInd:: BL (0..1)
Definition:If "True", the scoper of the qualified entity role is asserting that it recognizes a combination of qualifications equivalent to the normal definition of the term encoded in the Role.code attribute.

Examples: Bachelor Degree (equivalent), Bachelor of Nursing (equivalent), Bachelor of Dental Surgery (equivalent).

3.4 Classes in subject area CoreInfrastructure
3.4.1 Class: InfrastructureRoot (in CoreInfrastructure)

#### Attributes of InfrastructureRoot:

- Attributes of InfrastructureRoot:

nullFlavor:: CS
realmCode:: SET<CS>
| typeId:: II
templateId:: LIST<II>

- InfrastructureRoot generalizes:

Acknowledgement
Act
ActRelationship
AttentionLine
CommunicationFunction
| Entity
LanguageCommunication
Parameter
Participation
QueryEvent
| Role
RoleLink
SelectionExpression
SortControl
Transmission

#### Definition of InfrastructureRoot:

This abstract class is a super-type for all RIM classes, either directly or through inheritance. It provides a set of communication infrastructure attributes that may be used in instances of HL7-specified, RIM-based communications. When valued in a communication instance, these attributes indicate whether the information structure is being constrained by specifically defined templates, realms or common communication element types.

In general, constraint declarations, such as those communicated in this class's attributes, may occur wherever a RIM class or one of its derived clones is instantiated in an HL7 communication. Thus the attributes must be available in all RIM classes and clones.

#### Attributes of InfrastructureRoot:

3.4.1.1 InfrastructureRoot.nullFlavor:: CS (0..1)
Vocabulary domain: NullFlavor (CNE)
Definition:When valued in an instance, this attribute signals that the class instance is null, and that the remainder of the information for this class and its properties will not be communicated. The value of this attribute specifies the flavor of null that is intended.

3.4.1.2 InfrastructureRoot.realmCode:: SET<CS> (0..*)
Vocabulary domain: Realm (CNE)
Definition:When valued in an instance, this attribute signals the imposition of realm-specific constraints. The value of this attribute identifies the realm in question.

3.4.1.3 InfrastructureRoot.typeId:: II (0..1)
Definition:When valued in an instance, this attribute signals the imposition of constraints defined in an HL7-specified message type. This might be a common type (also known as CMET in the messaging communication environment), or content included within a wrapper. The value of this attribute provides a unique identifier for the type in question.

3.4.1.4 InfrastructureRoot.templateId:: LIST<II> (0..*)
Definition:When valued in an instance, this attribute signals the imposition of a set of template-defined constraints. The value of this attribute provides a unique identifier for the templates in question.

3.4.2 Class: ActHeir (in CoreInfrastructure)

- ActHeir is a specialization of: Act

#### Definition of ActHeir:

A class defined solely as a work-around for the lack of support of the reflexive closure of generalization relationships (i.e. "Act is-a Act") by the current set of tools.

Examples: Consider a refined message information model (RMIM) contains Act with the specializations of Observation and PatientEducationAct, where PatientEducationAct is conceptually a direct specialization ("clone") of Act. In this case, the ActHeir class is used as the basis of the PatientEducationAct clone rather than the Act RIM class itself. The Act RIM class is used here only to represent the common generalization of Observation and PatientEducationAct. This use is entirely dictated by the (excusable) shortcomings of certain tools and data-structures used in the HL7 methodology, and have no conceptual meaning.

Discussion: Notably, although it is used to represent Acts that are not otherwise sub-classed in the RIM, the ActHeir class does not reflect any conceptual modeling principle according to which generalizations must all be abstract and only leaf-specializations (like ActHeir) could be instantiated. This is not what ActHeir conveys; it is simply and only a work-around practical tooling problems and subsequent evolution of the tooling may permit the elimination of these classes in favor of an equivalent abstraction in the methodology.

Note that EntityHeir and RoleHeir have the same use for Entity and Role respectively.

3.4.3 Class: EntityHeir (in CoreInfrastructure)

- EntityHeir is a specialization of: Entity

#### Definition of EntityHeir:

A subtype of Entity defined solely as a work-around for the lack of support of the reflexive closure of generalization relationships (i.e. "Entity is-an Entity") by the current set of tools.

Examples: A refined message information model (RMIM) contains Entity with the specializations of EnvironmentalEntity, and LivingSubject, where EnvironmentalEntity is conceptually a direct specialization ("clone") of Entity. In this case, the EntityHeir class is used as the basis of the EnvironmentalEntity clone rather than the Entity RIM class itself. The Entity RIM class is used only to represent the common generalization of Observation and EnvironmentalEntity.

Discussion: Notably, although it is used to represent Entities that are not otherwise sub-classed in the RIM, the EntityHeir class does not reflect any conceptual modeling principle according to which generalizations must all be abstract and only leaf-specializations (like EntityHeir) could be instantiated. This is not what EntityHeir conveys; it is only a work-around for practical tooling problems. Subsequent evolution of the tooling may permit the elimination of these classes in favor of an equivalent abstraction in the methodology.

Rationale: This use is entirely dictated by the (excusable) shortcomings of certain tools and data-structures used in the HL7 methodology, and have no conceptual meaning. Note that ActHeir and RoleHeir have the same use for Act and Role respectively.

Rationale: It has been discovered that one cannot create an HMD choice structure for a set of classes, all of which are sub-types of Act, Role or Entity, but for which there is not a defined physical class. These are the classes that would have been in the RIM as direct descendants (heirs) of Act, Role and Entity, except for the fact that they carried no unique attributes or associations.

The addition of this single empty class in each hierarchy will permit messages with the appropriate and necessary choice structures to be built. Subsequent evolution of the methodology and tooling may permit the elimination of these classes in favor of an equivalent abstraction in the methodology.

3.4.4 Class: RoleHeir (in CoreInfrastructure)

- RoleHeir is a specialization of: Role

#### Definition of RoleHeir:

A class defined solely as a work-around for the lack of support of the reflexive closure of generalization relationships (i.e. "Role is-a Role") by the current set of tools.

Examples: Consider a refined message information model (RMIM) contains Role with the specializations of Employee and Member, where Member is conceptually a direct specialization ("clone") of Role. In this case, the RoleHeir class is used as the basis of the Member clone rather than the Role RIM class itself. The Role RIM class is used here only to represent the common generalization of Employee and Member. This use is entirely dictated by the (excusable) shortcomings of certain tools and data-structures used in the HL7 methodology, and have no conceptual meaning.

Discussion: Notably, although it is used to represent Roles that are not otherwise sub-classed in the RIM, the RoleHeir class does not reflect any conceptual modeling principle according to which generalizations must all be abstract and only leaf-specializations (like RoleHeir) could be instantiated. This is not what RoleHeir conveys; it is simply and only a work-around practical tooling problems and subsequent evolution of the tooling may permit the elimination of these classes in favor of an equivalent abstraction in the methodology. Note that EntityHeir and ActHeir have the same use for Entity and Act respectively.

3.5 Classes in subject area MessageControl
3.5.1 Class: Acknowledgement (in MessageControl)

#### Attributes of Acknowledgement:

- Attributes of Acknowledgement:

typeCode:: CS
expectedSequenceNumber:: INT
| messageWaitingNumber:: INT
messageWaitingPriorityCode:: CE

- Associations of Acknowledgement:
- acknowledgementDetail::(0..*)AcknowledgementDetail::acknowledgement::(1..1)
- acknowledges::(1..1)Transmission::acknowledgedBy::(0..*)
- conveyingTransmission::(1..1)Transmission::conveyedAcknowledgement::(0..*)

- Acknowledgement is a specialization of: InfrastructureRoot

#### Definition of Acknowledgement:

The Acknowledgement class contains information sent when acknowledging another message.

#### Attributes of Acknowledgement:

3.5.1.1 Acknowledgement.typeCode:: CS (0..1)
Vocabulary domain: AcknowledgementType (CNE)
Definition:This attribute contains an acknowledgement code as described in the HL7 message processing rules.
Version 2.x reference:

| MSA^1^00018^Acknowledgement Code |

3.5.1.2 Acknowledgement.expectedSequenceNumber:: INT (0..1)
Definition:This attribute is used in the sequence number protocol.
Version 2.x reference:

| MSA^4^00021^Expected Sequence Number |

3.5.1.3 Acknowledgement.messageWaitingNumber:: INT (0..1)
Definition:Indicates the number of messages the acknowledging application has waiting on a queue for the receiving application.

Discussion: These messages would then need to be retrieved via a query. This facilitates receiving applications that cannot receive unsolicited message (i.e. polling).

Examples: If there are 3 low priority messages, 1 medium priority message and 1 high priority message, the message waiting number would be 5, because that is the total number of messages.

3.5.1.4 Acknowledgement.messageWaitingPriorityCode:: CE (0..1)
Vocabulary domain: MessageWaitingPriority (CWE)
Definition:Indicates the highest importance level of the set of messages the acknowledging application has waiting on a queue for the receiving application.

Discussion: These messages would need to be retrieved via a query. This facilitates receiving applications that cannot receive unsolicited messages (i.e. polling). The specific code specified identifies how important the most important waiting message is (and may govern how soon the receiving application is required to poll for the message).

Priority may be used by local agreement to determine the timeframe in which the receiving application is expected to retrieve the messages from the queue.

3.5.2 Class: AcknowledgementDetail (in MessageControl)

#### Attributes of AcknowledgementDetail:

- Attributes of AcknowledgementDetail:

typeCode:: CS
code:: CE
| text:: ED
location:: SET<ST>

- Associations of AcknowledgementDetail:
- acknowledgement::(1..1)Acknowledgement::acknowledgementDetail::(0..*)

#### Definition of AcknowledgementDetail:

A message that provides information about the communication, parsing or non-business-rule validation of the message being acknowledged.

#### Attributes of AcknowledgementDetail:

3.5.2.1 AcknowledgementDetail.typeCode:: CS (0..1)
Vocabulary domain: AcknowledgementDetailType (CNE)
Definition:Identifies the kind of information specified in the acknowledgement message. Options are: Error, Warning or Information.

3.5.2.2 AcknowledgementDetail.code:: CE (0..1)
Vocabulary domain: AcknowledgementDetailCode (CWE)
Definition:A code identifying the specific message to be provided.

Discussion: A textual value may be specified as the print name, or for non-coded messages, as the original text.

Examples: 'Required attribute xxx is missing', 'System will be unavailable March 19 from 0100 to 0300'

3.5.2.3 AcknowledgementDetail.text:: ED (0..1)
Definition:Identifies additional diagnostic information relevant to the message.

Discussion: This may be free text or structured data (e.g. XML).

Examples: Java exception, memory dump, internal error code, call-stack information, etc.

3.5.2.4 AcknowledgementDetail.location:: SET<ST> (0..*)
Definition:Identifies a position within the message being acknowledged that is related to the message.

Discussion: Not all messages will have an associated location. Some messages may relate to multiple locations.

Example: There is no location for a missing element, and there may be two locations if two elements violate a conditionality constraint.

OpenIssue: The specific format for the string that defines the message location needs to be identified. This might be xPath or possibly OCL

3.5.3 Class: Attachment (in MessageControl)

#### Attributes of Attachment:

- Attributes of Attachment:

id:: II
| text:: ED

- Associations of Attachment:
- transmission::(0..1)Transmission::attachment::(0..*)

#### Definition of Attachment:

Contains arbitrary attachments of data blocks to which can be referred to from the interior of the message. Attachments are referred to from the message body using the reference functionality of the ED data type.

OpenIssue: Proper use of this class (Attachment) requires an extension of the referencing mechanism of the ED data type.

#### Attributes of Attachment:

3.5.3.1 Attachment.id:: II (1..1)
Definition:Identifies the attachment being linked to by an ED attribute contained elsewhere in the interaction.

3.5.3.2 Attachment.text:: ED (1..1)
Definition:Contains the data block which plays the role of an attachment.
3.5.4 Class: AttentionLine (in MessageControl)

#### Attributes of AttentionLine:

- Attributes of AttentionLine:

keyWordText:: SC
| value:: ANY

- Associations of AttentionLine:
- transmission::(1..1)Transmission::attentionLine::(0..*)

- AttentionLine is a specialization of: InfrastructureRoot

#### Definition of AttentionLine:

This class allows parameters for a technology specific transport to be represented in the V3 message outer wrapper.

#### Attributes of AttentionLine:

3.5.4.1 AttentionLine.keyWordText:: SC (0..1)
Vocabulary domain: AttentionKeyword (CWE)
Definition:A parameter defining word.

3.5.4.2 AttentionLine.value:: ANY (0..1)
Vocabulary domain: AttentionLineValue (CWE)
Definition:OpenIssue: Control-Query agreed to provide new definition that includes a strong set of constraints on the data tpes that this attribute can assume. Pending the delivery of that description, it was agreed in harmonization to drop the proposed description.
3.5.5 Class: Batch (in MessageControl)

#### Attributes of Batch:

- Attributes of Batch:

referenceControlId:: II
name:: SC
| batchComment:: SET<ST>
transmissionQuantity:: INT
| batchTotalNumber:: SET<INT>

- Associations of Batch:
- transmission::(0..*)Transmission::batch::(0..1)

- Batch is a specialization of: Transmission

#### Definition of Batch:

The Batch class is used to specify a message which is a collection of HL7 V3 messages.

#### Attributes of Batch:

3.5.5.1 Batch.referenceControlId:: II (0..1)
Definition:This attribute indicates the control identifier of the batch when it was originally transmitted.
Version 2.x reference:

| BHS^12^00092^Reference Batch Control ID |

3.5.5.2 Batch.name:: SC (0..1)
Vocabulary domain: BatchName (CWE)
Definition:This attribute is used by the application processing the batch.
Version 2.x reference:

| BHS^9^00089^Batch Name/ID/Type |

3.5.5.3 Batch.batchComment:: SET<ST> (0..*)
Definition:This attribute is available to capture comments related to the batch.
Version 2.x reference:

| BHS^10^00090^Batch Comment |

| BTS^2^00090^Batch Comment |

3.5.5.4 Batch.transmissionQuantity:: INT (0..1)
Definition:This attribute contains the count of individual transmissions contained within the batch.

3.5.5.5 Batch.batchTotalNumber:: SET<INT> (0..*)
Definition:The batch total. It is possible that more than a single batch total exists.
Version 2.x reference:

| BTS^3^00095^Batch Totals |

3.5.6 Class: CommunicationFunction (in MessageControl)

#### Attributes of CommunicationFunction:

- Attributes of CommunicationFunction:

typeCode:: CS
| telecom:: TEL

- Associations of CommunicationFunction:
- entity::(1..*)Entity::communicationFunction::(0..*)
- transmission::(1..*)Transmission::communicationFunction::(0..*)

- CommunicationFunction is a specialization of: InfrastructureRoot

#### Definition of CommunicationFunction:

Relationship class binds the various entities which function in the transmission (sender, receiver, respond-to) to be linked to the transmission.

#### Attributes of CommunicationFunction:

3.5.6.1 CommunicationFunction.typeCode:: CS (0..1)
Vocabulary domain: CommunicationFunctionType (CNE)
Definition:The type of communication function being served by the entity with respect to the transmission, such as sender, receiver, respond-to party, etc.

3.5.6.2 CommunicationFunction.telecom:: TEL (0..1)
Definition:The telecomm address that can be used to reach the entity that is serving this function.
3.5.7 Class: Message (in MessageControl)

#### Attributes of Message:

- Attributes of Message:

profileId:: LIST<II>
processingCode:: CS
processingModeCode:: CS
| acceptAckCode:: CS
responseCode:: CS
sequenceNumber:: INT
| attachmentText:: SET<ED>

- Associations of Message:
- controlAct::(0..*)ControlAct::payload::(0..1)

- Message is a specialization of: Transmission

#### Definition of Message:

The Message class is the parent class of all HL7 Version 3 messages.

#### Attributes of Message:

3.5.7.1 Message.profileId:: LIST<II> (0..*)
Definition:The message profile identifier allows a given implementation to explicitly state how it varies from the standard message definition.

When multiple profiles are specified, the message instance must be valid against all of them. However, a receiver may choose to validate against only the first one recognized. For this reason, 'preferred' or more-rigorous profiles should be listed first.

3.5.7.2 Message.processingCode:: CS (0..1)
Vocabulary domain: ProcessingID (CNE)
Definition:This attribute defines whether the message is part of a production, training, or debugging system.
Version 2.x reference:

| MSH^11^00011^Processing ID |

3.5.7.3 Message.processingModeCode:: CS (0..1)
Vocabulary domain: ProcessingMode (CNE)
Definition:This attribute defines whether the message is being sent in current processing, archive mode, initial load mode, restore from archive mode, etc.
Version 2.x reference:

| MSH^11^00011^Processing ID |

3.5.7.4 Message.acceptAckCode:: CS (0..1)
Vocabulary domain: AcknowledgementCondition (CNE)
Definition:The attribute identifies the conditions under which accept acknowledgements are required to be returned in response to this message.
Version 2.x reference:

| MSH^15^00015^Accept Acknowledgement Type |

3.5.7.5 Message.responseCode:: CS (0..1)
Vocabulary domain: ResponseLevel (CNE)
Definition:Specifies whether an application response is expected from the addressee of this interaction and what level of detail that response should include. This attribute restricts the default response options specified by the receiver responsibilities for the interaction. For example, if an interaction has receiver responsibilities to send either an accept interaction or a refuse interaction, and the responseCode is set to 'E' - Exception, the receiver should only respond if they refuse.

3.5.7.6 Message.sequenceNumber:: INT (0..1)
Definition:This attribute is provided for implementing the sequence number protocol. This field is incremented by one for each subsequent value assignment.
Version 2.x reference:

| MSH^13^00013^Sequence Number |

3.5.7.7 Message.attachmentText:: SET<ED> (0..*)
Definition:Contains arbitrary attachments of data blocks to which can be referred to from the interior of the message. Any ITS is advised to represent the attachments behind the main message body. Attachments are referred to from the message body using the reference functionality of the ED data type.

OpenIssue: Use of this attribute has been superseded by the addition of the Attachment class to the RIM, and further use if this attribute is deprecated in favor of the new approach.

OpenIssue: Constrain the use of the ED data type in the attachment message type. Additionally, the appropriateness of this attribute in the Message class is in question. An alternative to consider would be the placement of this attribute in a new class maintaining a 0 to many relationship with the Message class.

3.5.8 Class: Transmission (in MessageControl)

#### Attributes of Transmission:

- Attributes of Transmission:

id:: II
creationTime:: TS
| securityText:: ST
responseModeCode:: CS
| versionCode:: CS
interactionId:: II

- Associations of Transmission:
- acknowledgedBy::(0..*)Acknowledgement::acknowledges::(1..1)
- conveyedAcknowledgement::(0..*)Acknowledgement::conveyingTransmission::(1..1)
- attachment::(0..*)Attachment::transmission::(0..1)
- attentionLine::(0..*)AttentionLine::transmission::(1..1)
- batch::(0..1)Batch::transmission::(0..*)
- communicationFunction::(0..*)CommunicationFunction::transmission::(1..*)

- Transmission generalizes:

Batch
| Message

- Transmission is a specialization of: InfrastructureRoot

#### Definition of Transmission:

Represents information about a specific transmission of information from one application to another.

#### Attributes of Transmission:

3.5.8.1 Transmission.id:: II (0..1)
Definition:Unique identifier of the transmission.
Version 2.x reference:

| MSA^2^00010^Message Control ID |

| MSH^10^00010^Message Control ID |

| FHS^11^00077^File Control ID |

| BHS^11^00091^Batch Control ID |

3.5.8.2 Transmission.creationTime:: TS (0..1)
Definition:The date/time that the sending system created the transmission. If the time zone is specified, it will be used throughout the transmission as the default time zone.
Version 2.x reference:

| MSH^7^00007^Date/Time of Message |

| FHS^7^00073^File Creation Date/Time |

| BHS^7^00087^Batch Creation Date/Time |

3.5.8.3 Transmission.securityText:: ST (0..1)
Definition:This attribute is specified for applications to implement security features for a transmission. Its use is not further specified at this time.
Version 2.x reference:

| FHS^8^00074^File Security |

| BHS^8^00088^Batch Security |

3.5.8.4 Transmission.responseModeCode:: CS (0..1)
Vocabulary domain: ResponseMode (CNE)
Definition:This attribute defines the transmission mode with which a receiver should communicate its receiver responsibilities, i.e. the expected dynamic behavior of the receiving application with regard to application response transmissions.

3.5.8.5 Transmission.versionCode:: CS (0..1)
Vocabulary domain: HL7StandardVersionCode (CNE)
Definition:This attribute is matched by the receiving system to its own version to be sure the message will be interpreted correctly.

Note: This attribute is also present in the sibling class, Message. This change was made rather than moving this attribute to their common ancestor class, Transmission. This decision was taken because we do not have all the methodology and backwards compatibility issues worked out. Once we have established our backwards compatibility, we should promote this attribute to the parent. The problem is the sequencing of attributes within the HDF and their impact on the ITSs.

Version 2.x reference:

| MSH^12^00012^Version ID |

3.5.8.6 Transmission.interactionId:: II (0..1)
Definition:The interaction identifier is a reference to the unique information interchange derived from the V3 MDF for specifying a message.

Note: This attribute is also present in the sibling class, Batch. This change was made rather than moving this attribute to their common ancestor class, Transmission. This decision was taken because we do not have all the methodology and backwards compatibility issues worked out. Once we have established our backwards compatibility, we should promote this attribute to the parent. The problem is the sequencing of attributes within the HDF and their impact on the ITSs.

Version 2.x reference:

| MSH^9^00009^Message Type |

3.6 Classes in subject area QueryControl
3.6.1 Class: LogicalExpression (in QueryControl)

#### Attributes of LogicalExpression:

- Attributes of LogicalExpression:

relationalConjunctionCode:: CS

- Associations of LogicalExpression:
- userAsLeft::(0..*)SelectionExpression::leftSide::(0..1)
- userAsRight::(0..*)SelectionExpression::rightSide::(0..1)

- LogicalExpression is a specialization of: SelectionExpression

#### Attributes of LogicalExpression:

3.6.1.1 LogicalExpression.relationalConjunctionCode:: CS (0..1)
Vocabulary domain: SQLConjunction (CNE)
Definition:When more than one criteria is to be applied in the evaluation of candidate instances, a conjunction is supplied to identify how to relate an additional criteria.
Version 2.x reference:

| VTQ^5^00700^Selection Criteria |

3.6.2 Class: Parameter (in QueryControl)

#### Attributes of Parameter:

- Attributes of Parameter:

id:: II

- Associations of Parameter:
- parameterList::(0..1)ParameterList::parameter::(0..*)
- queryByParameter::(0..1)QueryByParameter::parameter::(0..*)

- Parameter generalizes:

ParameterItem
| ParameterList

- Parameter is a specialization of: InfrastructureRoot

#### Definition of Parameter:

The Parameter class is an implementation class that represents the structure of parameters that may be specified with the Query-by-parameter mechanisms of the V3 query framework. Parameters may be set of name/value pairs, a named parameter list with a set of name/value pairs or any combination the previous two options.

#### Attributes of Parameter:

3.6.2.1 Parameter.id:: II (0..1)
Definition:The Parameter.id can assist in tracing problems with implementing the query-by-parameter mechanism.
3.6.3 Class: ParameterItem (in QueryControl)

#### Attributes of ParameterItem:

- Attributes of ParameterItem:

value:: ANY
| semanticsText:: ST

- ParameterItem is a specialization of: Parameter

#### Definition of ParameterItem:

Represents a valued element structure (name-value pair) for the element specified in the query response.

The use of a SET<XX> data type in a parameter indicates an OR-type construct: the query results have to match at least one of the XX's.

Discussion: The use of multiple parameterItem classes should be defined as an AND, OR, or XOR in the descriptive model documentation, based on what the modeler intends.

#### Attributes of ParameterItem:

3.6.3.1 ParameterItem.value:: ANY (0..1)
Vocabulary domain: QueryParameterValue (CWE)
Definition:Provides the value for the valued element structure (name-value pair) for the element specified in the query response.

3.6.3.2 ParameterItem.semanticsText:: ST (0..1)
Definition:Provides a unique identification (the name of the name-value pair) to an element within a specified query response structure.

3.6.4 Class: ParameterList (in QueryControl)

- Associations of ParameterList:
- parameter::(0..*)Parameter::parameterList::(0..1)

- ParameterList is a specialization of: Parameter

#### Definition of ParameterList:

Specifies a named list of parameters (name/value pairs) that is referenced in a query conformance statement.

3.6.5 Class: QueryAck (in QueryControl)

#### Attributes of QueryAck:

- Attributes of QueryAck:

queryResponseCode:: CS
resultTotalQuantity:: INT
| resultCurrentQuantity:: INT
resultRemainingQuantity:: INT

- QueryAck is a specialization of: QueryEvent

#### Definition of QueryAck:

This class carries information sent with responses to a query.

#### Attributes of QueryAck:

3.6.5.1 QueryAck.queryResponseCode:: CS (0..1)
Vocabulary domain: QueryResponse (CNE)
Definition:This attribute allows the responding system to return a precise response status.
Version 2.x reference:

| QAK^2^00708^Query Response Status |

3.6.5.2 QueryAck.resultTotalQuantity:: INT (0..1)
Definition:Specifies total number of instance matches for query specification associated with this query response instance.

3.6.5.3 QueryAck.resultCurrentQuantity:: INT (0..1)
Definition:Specifies number of matches for processed query specification that occur in current bundle of matches.

3.6.5.4 QueryAck.resultRemainingQuantity:: INT (0..1)
Definition:Specifies number of matches for processed query specification that have yet to be sent to receiver.

3.6.6 Class: QueryByParameter (in QueryControl)

- Associations of QueryByParameter:
- parameter::(0..*)Parameter::queryByParameter::(0..1)

- QueryByParameter is a specialization of: QuerySpec

#### Definition of QueryByParameter:

This class contains the definition of a Query by Parameter, an HL7 query format proposed to replace the QRD/QRF query format. The query format is considered a closed query because a data server specifies a fixed list of parameters published in a query conformance statement.

3.6.7 Class: QueryBySelection (in QueryControl)

- Associations of QueryBySelection:
- selectionExpression::(0..*)SelectionExpression::queryBySelection::(1..1)

- QueryBySelection is a specialization of: QuerySpec

#### Definition of QueryBySelection:

This class contains the definition of a Query by Selection. This is an HL7 query in which a request can specify any or all of the variables offered by a data server and may additionally specify any permissible operators and values for each variable as published in a query conformance statement. This query format is considered an open query because it allows a selection specification against a published data base schema.

3.6.8 Class: QueryContinuation (in QueryControl)

#### Attributes of QueryContinuation:

- Attributes of QueryContinuation:

startResultNumber:: INT
| continuationQuantity:: INT

- QueryContinuation is a specialization of: QueryEvent

#### Definition of QueryContinuation:

This class maintains the state information required at the application level to control the logical continuation of a query response.

#### Attributes of QueryContinuation:

3.6.8.1 QueryContinuation.startResultNumber:: INT (0..1)
Definition:Specifies the instance number in the original query result set to start return in next query response message.

3.6.8.2 QueryContinuation.continuationQuantity:: INT (0..1)
Definition:Specifies the number of instance matches to return in the next query response message.
3.6.9 Class: QueryEvent (in QueryControl)

#### Attributes of QueryEvent:

- Attributes of QueryEvent:

queryId:: II
| statusCode:: CS

- Associations of QueryEvent:
- controlAct::(1..1)ControlAct::queryEvent::(0..1)

- QueryEvent generalizes:

QueryAck
| QueryContinuation
| QuerySpec

- QueryEvent is a specialization of: InfrastructureRoot

#### Definition of QueryEvent:

This abstract class is used to gather the parts of a message interaction that are specific to a query message interaction.

Rationale: A message element type is defined by a TC to meet a messaging requirement for a query response (like the response message element type for a demographics query). An instance of such a message element type would be represented as a query message interaction in this revised view of the V3 query/response model. The "return_element_group" would identify the RIM view that would be similar in form to the RIM view specified in a declarative or imperative application message interaction.

OpenIssue: State names need to be re-visited.

#### Attributes of QueryEvent:

3.6.9.1 QueryEvent.queryId:: II (0..1)
Definition:This attribute may be valued by the initiating application to identify the query. It is intended to be used to match response messages to the originating query. QueryEvent.queryId may remain the same across multiple interactions when performing continuations of a previous query.

3.6.9.2 QueryEvent.statusCode:: CS (0..1)
Vocabulary domain: QueryStatusCode (CNE)

3.6.9.3 State machine for QueryEvent
Link to state diagram for this class.

#### States of QueryEvent:

- aborted:
- deliveredResponse:
- executing:
- new:
- waitContinuedQueryResponse:

#### State transitions of QueryEvent:

- abort (from deliveredResponse to aborted)
- activateQueryContinue (from deliveredResponse to executing)
- abort (from executing to aborted)
- completeInitialQueryResponse (from executing to deliveredResponse)
- completeQueryContinuation (from executing to deliveredResponse)
- executeQuerySpec (from new to executing)
- create (from null to new)

3.6.10 Class: QuerySpec (in QueryControl)

#### Attributes of QuerySpec:

- Attributes of QuerySpec:

modifyCode:: CS
responseElementGroupId:: SET<II>
responseModalityCode:: CS
| responsePriorityCode:: CS
initialQuantity:: INT
initialQuantityCode:: CE
| executionAndDeliveryTime:: TS

- Associations of QuerySpec:
- sortControl::(0..*)SortControl::querySpec::(1..1)

- QuerySpec generalizes:

QueryByParameter
| QueryBySelection

- QuerySpec is a specialization of: QueryEvent

#### Definition of QuerySpec:

This class contains the specification of all HL7 Version 3 queries. Attributes common to all queries appear in this class specification.

#### Attributes of QuerySpec:

3.6.10.1 QuerySpec.modifyCode:: CS (0..1)
Vocabulary domain: ModifyIndicator (CNE)
Definition:Indicates whether the subscription to a query is new or is being modified.

3.6.10.2 QuerySpec.responseElementGroupId:: SET<II> (0..*)
Definition:The responseElementGroupId identifies the specific message type to be returned in the query response. This message type must be chosen from the set of message types supported by the receiver responsibilities associated with the query interaction.

3.6.10.3 QuerySpec.responseModalityCode:: CS (0..1)
Vocabulary domain: ResponseModality (CNE)
Definition:Defines the timing and grouping of the response instances.

3.6.10.4 QuerySpec.responsePriorityCode:: CS (0..1)
Vocabulary domain: QueryPriority (CNE)
Definition:Identifies the time frame in which the response is expected.
Version 2.x reference:

| QRD^3^00027^Query Priority |

3.6.10.5 QuerySpec.initialQuantity:: INT (0..1)
Definition:Defines the maximum size of the response that can be accepted by the requesting application.
Version 2.x reference:

| QRD^7^00031^Quantity Limited Request |

3.6.10.6 QuerySpec.initialQuantityCode:: CE (0..1)
Vocabulary domain: QueryRequestLimit (CWE)
Definition:Defines the units associated with the magnitude of the maximum size limit of a query response that can be accepted by the requesting application

3.6.10.7 QuerySpec.executionAndDeliveryTime:: TS (0..1)
Definition:Specifies the time the response is to be returned.
3.6.11 Class: RelationalExpression (in QueryControl)

#### Attributes of RelationalExpression:

- Attributes of RelationalExpression:

elementName:: SC
| relationalOperatorCode:: CS
| value:: ST

- RelationalExpression is a specialization of: SelectionExpression

#### Attributes of RelationalExpression:

3.6.11.1 RelationalExpression.elementName:: SC (0..1)
Vocabulary domain: RelationalName (CWE)
Definition:Identifies RIM element as subject of selection criteria evaluation.

3.6.11.2 RelationalExpression.relationalOperatorCode:: CS (0..1)
Vocabulary domain: RelationalOperator (CNE)
Definition:Identifies common relational operators used in selection criteria.
Version 2.x reference:

| VTQ^5^00700^Selection Criteria |

3.6.11.3 RelationalExpression.value:: ST (0..1)
Definition:Value supplied for comparison using criteria.
Version 2.x reference:

| VTQ^5^00700^Selection Criteria |

3.6.12 Class: SelectionExpression (in QueryControl)

- Associations of SelectionExpression:
- leftSide::(0..1)LogicalExpression::userAsLeft::(0..*)
- rightSide::(0..1)LogicalExpression::userAsRight::(0..*)
- queryBySelection::(1..1)QueryBySelection::selectionExpression::(0..*)

- SelectionExpression generalizes:

LogicalExpression
| RelationalExpression

- SelectionExpression is a specialization of: InfrastructureRoot

3.6.13 Class: SortControl (in QueryControl)

#### Attributes of SortControl:

- Attributes of SortControl:

sequenceNumber:: INT
| elementName:: SC
| directionCode:: CS

- Associations of SortControl:
- querySpec::(1..1)QuerySpec::sortControl::(0..*)

- SortControl is a specialization of: InfrastructureRoot

#### Definition of SortControl:

Holds specification of sort order for instance matches to a query.

#### Attributes of SortControl:

3.6.13.1 SortControl.sequenceNumber:: INT (0..1)
Definition:Provides the sequence or primacy of the various SortControls for a given query.

3.6.13.2 SortControl.elementName:: SC (0..1)
Vocabulary domain: ElementName (CWE)
Definition:Identifies a RIM element in a query response upon which to sort.

3.6.13.3 SortControl.directionCode:: CS (0..1)
Vocabulary domain: Sequencing (CNE)
Definition:Specifies direction (ascending or descending) of the sort.
3.7 Classes in subject area StructuredDocuments
3.7.1 Class: Document (in StructuredDocuments)

#### Attributes of Document:

- Attributes of Document:

completionCode:: CE
storageCode:: CE
| copyTime:: TS
bibliographicDesignationText:: SET<ED>

- Document is a specialization of: ContextStructure

#### Definition of Document:

Specialization of Act to add the characteristics unique to document management services.

#### Attributes of Document:

3.7.1.1 Document.completionCode:: CE (0..1)
Vocabulary domain: DocumentCompletion (CWE)
Definition:A code depicting the completion status of a report (e.g., incomplete, authenticated, legally authenticated).

3.7.1.2 Document.storageCode:: CE (0..1)
Vocabulary domain: DocumentStorage (CWE)
Definition:A code depicting the storage status (e.g., active, archived, purged) of a report.

3.7.1.3 Document.copyTime:: TS (0..1)
Definition:Time a document is released (i.e., copied or sent to a display device) from a document management system that maintains revision control over the document. Once valued, cannot be changed. Intent of this attribute is to give the viewer of the document some notion as to how long the document has been out of the safe context of its document management system.

3.7.1.4 Document.bibliographicDesignationText:: SET<ED> (0..*)
Definition:Citation for a cataloged document that permits its identification, location and/or retrieval from common collections.
3.7.2 Class: ContextStructure (in StructuredDocuments)

#### Attributes of ContextStructure:

- Attributes of ContextStructure:

setId:: II
| versionNumber:: INT

- ContextStructure generalizes:

Document

- ContextStructure is a specialization of: Act

#### Definition of ContextStructure:

A structure is a container within a document. Structures have captions which can be coded. Structures can nest, and structures can contain entries.

OpenIssue: The name of this class, and the allowable ActClass values, will be revised so as to be consistent with the ActContainer hierarchy, which is currently undergoing review. (November 2004)

#### Attributes of ContextStructure:

3.7.2.1 ContextStructure.setId:: II (0..1)
Definition:A report identifier that remains constant across all revisions that derive from a common original.

An original report is the first version of a report. It gets a new unique value for setId, and has the value of versionNumber set to equal "1".

An addendum is an appendage to an existing report that contains supplemental information. The appendage is itself an original report. The parent report being appended is referenced via an ActRelationship, with ActRelationship.typeCode set to equal "APND" (for "appends"). The parent report being appended remains in place and its content and status are unaltered.

A replacement report replaces an existing report. The replacement report uses the same value for setId as the parent report being replaced, and increments the value of versionNumber by 1. The state of the parent report being replaced should become "superceded", but is still retained in the system for historical reference.

3.7.2.2 ContextStructure.versionNumber:: INT (0..1)
Definition:Version number is an integer starting at '1' and incrementing by 1. The first instance or original report should always be valued as '1'. The version number value must be incremented by one when a report is replaced, but can also be incremented more often to meet local requirements.

4 Associations in HL7 Reference Information Model

4.1 (1..1) Acknowledgement::acknowledgementDetail :: (0..*) AcknowledgementDetail:: acknowledgement

Identifies the relationship between an acknowledgment and the error, warning and informational detail accompanying that acknowledgment.

4.2 (0..*) Acknowledgement::acknowledges :: (1..1) Transmission:: acknowledgedBy

Identifies the relationship between a transmission and the acknowledgements that acknowledge that transmission.

4.3 (0..*) Acknowledgement::conveyingTransmission :: (1..1) Transmission:: conveyedAcknowledgement

Identifies the relationship between an acknowledgment and the transmission conveying that acknowledgement.

4.4 (0..*) ActRelationship::source :: (1..1) Act:: outboundRelationship

4.5 (0..*) ActRelationship::target :: (1..1) Act:: inboundRelationship

4.6 (0..*) Attachment::transmission :: (0..1) Transmission:: attachment

4.7 (0..*) AttentionLine::transmission :: (1..1) Transmission:: attentionLine

This relationship allows parameters for a technology-specific transport to be represented in the V3 transmission outer wrapper.

4.8 (0..1) Batch::transmission :: (0..*) Transmission:: batch

4.9 (0..*) ControlAct::payload :: (0..1) Message:: controlAct

4.10 (1..*) Entity::communicationFunction :: (0..*) CommunicationFunction:: entity

This relationship allows the entities playing the various communication functions to be identified.

4.11 (1..1) Entity::languageCommunication :: (0..*) LanguageCommunication:: entity

4.12 (0..*) Parameter::queryByParameter :: (0..1) QueryByParameter:: parameter

4.13 (0..1) ParameterList::parameter :: (0..*) Parameter:: parameterList

Specifies the relationship between a parameter list and the parameters which are its content.

4.14 (0..*) Participation::act :: (1..1) Act:: participation

4.15 (0..*) Participation::role :: (1..1) Role:: participation

4.16 (0..1) QueryEvent::controlAct :: (1..1) ControlAct:: queryEvent

4.17 (0..*) Role::player :: (0..1) Entity:: playedRole

4.18 (0..*) Role::scoper :: (0..1) Entity:: scopedRole

4.19 (0..*) RoleLink::source :: (1..1) Role:: outboundLink

4.20 (0..*) RoleLink::target :: (1..1) Role:: inboundLink

4.21 (0..*) SelectionExpression::leftSide :: (0..1) LogicalExpression:: userAsLeft

4.22 (0..*) SelectionExpression::queryBySelection :: (1..1) QueryBySelection:: selectionExpression

4.23 (0..*) SelectionExpression::rightSide :: (0..1) LogicalExpression:: userAsRight

4.24 (0..*) SortControl::querySpec :: (1..1) QuerySpec:: sortControl

4.25 (1..*) Transmission::communicationFunction :: (0..*) CommunicationFunction:: transmission

This relation links a transmission to its sender, receiver, call-back party, etc.

View Revision Marks Hide Revision Marks | Return to top of page