HL7 Reference Information Model

Version: V 01-20 (12/2/2002)
ModelID: RIM_0120

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
Editor Lloyd Mckenzie
IBM Canada & CIHI - HL7 Canada
Editor Gunther Schadow, M.D., PhD.
Regenstrief Institute for Health Care
Modeling & Methodology Co-Chair Abdul-Malik Shakir
Shakir Consulting LLC

Table of contents

1 Introduction
    1.1 Objectives of the HL7 RIM
    1.2 Implications of Balloting the RIM
    1.3 Representation of the RIM in this ballot
    1.4 Graphic Diagrams of the RIM core
    1.5 Graphic Diagrams of the RIM Infrastructure Classes
    1.6 Release notes
2 Subject areas
    2.1 Acts
    2.2 CommunicationInfrastructure
        2.2.1 MessageControl
        2.2.2 StructuredDocuments
    2.3 Entities
    2.4 Roles
3 Classes
    3.1 Access
    3.2 Account
    3.3 Act
    3.4 ActHeir
    3.5 ActRelationship
    3.6 AssignedEntity
    3.7 Container
    3.8 Device
    3.9 DeviceTask
    3.10 DiagnosticImage
    3.11 Diet
    3.12 Employee
    3.13 Entity
    3.14 EntityHeir
    3.15 FinancialContract
    3.16 FinancialTransaction
    3.17 Guarantor
    3.18 InvoiceElement
    3.19 LanguageCommunication
    3.20 LicensedEntity
    3.21 LivingSubject
    3.22 ManagedParticipation
    3.23 ManufacturedMaterial
    3.24 Material
    3.25 NonPersonLivingSubject
    3.26 Observation
    3.27 Organization
    3.28 Participation
    3.29 Patient
    3.30 PatientEncounter
    3.31 Person
    3.32 Place
    3.33 Procedure
    3.34 PublicHealthCase
    3.35 Role
    3.36 RoleHeir
    3.37 RoleLink
    3.38 SchedulableResource
    3.39 SubstanceAdministration
    3.40 Supply
    3.41 WorkingList
    3.42 Acknowledgement
    3.43 AcknowledgementMessage
    3.44 AttentionLine
    3.45 Batch
    3.46 ClinicalDocument
    3.47 CommunicationFunction
    3.48 ContextStructure
    3.49 ControlAct
    3.50 InfrastructureRoot
    3.51 LinkHtml
    3.52 LocalAttr
    3.53 LocalMarkup
    3.54 LogicalExpression
    3.55 Message
    3.56 Parameter
    3.57 ParameterItem
    3.58 ParameterList
    3.59 QueryAck
    3.60 QueryByParameter
    3.61 QueryBySelection
    3.62 QueryContinuation
    3.63 QueryEvent
    3.64 QuerySpec
    3.65 RelationalExpression
    3.66 SelectionExpression
    3.67 SortControl
    3.68 Table
    3.69 TableCell
    3.70 TableColumnStructure
    3.71 TableStructure
    3.72 Transmission
4 Associations
    4.1 (0..*)Acknowledgement :: acknowledgedMessage :: (1..1)Message :: acknowledgement
    4.2 (0..1)Acknowledgement :: acknowledgingMessage :: (1..1)Message :: payload
    4.3 (0..1)AcknowledgementMessage :: acknowledgement :: (0..*)Acknowledgement :: annotatedBy
    4.4 (0..*)ActRelationship :: source :: (1..1)Act :: outboundRelationship
    4.5 (0..*)ActRelationship :: target :: (1..1)Act :: inboundRelationship
    4.6 (0..*)AttentionLine :: transmission :: (1..1)Transmission :: attentionLine
    4.7 (0..1)Batch :: transmission :: (0..*)Transmission :: batch
    4.8 (0..1)ControlAct :: payload :: (0..*)Message :: controlAct
    4.9 (1..*)Entity :: communicationFunction :: (0..*)CommunicationFunction :: entity
    4.10 (1..1)Entity :: languageCommunication :: (0..*)LanguageCommunication :: entity
    4.11 (0..*)Parameter :: queryByParameter :: (0..1)QueryByParameter :: parameter
    4.12 (0..1)ParameterList :: parameter :: (0..*)Parameter :: parameterList
    4.13 (0..*)Participation :: act :: (1..1)Act :: participation
    4.14 (0..*)Participation :: role :: (1..1)Role :: participation
    4.15 (0..1)QueryEvent :: controlAct :: (1..1)ControlAct :: queryEvent
    4.16 (0..*)Role :: player :: (0..1)Entity :: playedRole
    4.17 (0..*)Role :: scoper :: (0..1)Entity :: scopedRole
    4.18 (0..*)RoleLink :: source :: (1..1)Role :: outboundLink
    4.19 (0..*)RoleLink :: target :: (1..1)Role :: inboundLink
    4.20 (0..*)SelectionExpression :: leftSide :: (0..1)LogicalExpression :: userAsLeft
    4.21 (0..*)SelectionExpression :: queryBySelection :: (1..1)QueryBySelection :: selectionExpression
    4.22 (0..*)SelectionExpression :: rightSide :: (0..1)LogicalExpression :: userAsRight
    4.23 (0..*)SortControl :: querySpec :: (1..1)QuerySpec :: sortControl
    4.24 (1..*)Transmission :: communicationFunction :: (0..*)CommunicationFunction :: transmission

1

Introduction

1.1

Objectives of the HL7 RIM

The Health Level Seven (HL7) Reference Information Model (RIM) is a model from which the information-related content of HL7 version 3.0 protocol specification standards is drawn. An information model is documentation of information from a particular functional domain, for a specific purpose, using a formal specification language.

The HL7 RIM is documentation of information from the health care domain. It is the combined consensus view of information from the perspective of the HL7 working group and international affiliates. The RIM uses notation based upon the Unified Modeling Language (UML) and the information modeling conventions outlined in the HL7 Message Development Framework.

Purposes of the RIM

The primary purpose of an information model is to aid in understanding knowledge pertaining to a particular domain. Because a rigorous information model unambiguously communicates the modeler's understanding of information, it allows that understanding to be shared and assessed by others. Information modeling can be a useful tool for reconciling multiple perspectives on information by facilitating the blending of the multiple perspectives into a single uniform specification. Information models are often used to document the design of the data component of an information system so that the design may be evaluated and enhanced. An information model aids in revealing assumptions, reducing ambiguity, reconciling and expanding understanding, and consolidating ideas.

The RIM serves all of these purposes. It reconciles the multiple perspectives held by the various HL7 International Affiliates and committees in the HL7 Working Group. It documents the designs of the data components that HL7 specifies for use within collaborating sets of health care information systems. Finally, it aids in understanding the semantic intent of HL7 specifications.

Use of the RIM by HL7

Within HL7, the RIM is a model from which all of the information-related content of HL7 version 3.0 specifications is being drawn. This relationship is spelled out in the HL7 Message Development Framework (MDF) and the evolving HL7 Development Framework (HDF). These documents define how HL7 will use processes of refinement-by-constraint to evolve definitive information models for more specific purposes from the more abstract and generalized RIM.

Uses Outside of HL7

Organizations other than HL7 may find many uses for the RIM that are above and beyond the specific uses within HL7 documented above. When adopting the RIM for its own purposes, however, organizations are advised to recognize the design purposes for which the RIM has been developed and is being maintained, to ensure that it can appropriately and adequately satisfy local requirements. All models are constructed for a purpose, and the RIM can only be assured to be useful for the purpose(s) for which it was constructed.

1.2

Implications of Balloting the RIM

While the intent of a normative specification of standards such as HL7 messages is well understood, the intent of the RIM as a normative artifact needs further definition. As described in the HL7 Message Development Framework [MDF-99, pg. 4-2], "The Reference Information Model is a means of specifying the information content of the Messages through a common information model that clarifies the definitions and ensures that they are used consistently across all Version 3 Messages defined by all Technical Committees."

Prior to its submission for formal ballot, the RIM had been considered an internal work product and not a first-order artifact. In other words, the RIM's primary consuming audience was the committees of HL7 that were using it as the basis for developing content for the Version 3.0 Standards. Submission of the RIM for formal ballot recognizes that the RIM has a larger community of consumers, that is not solely those who are producing the HL7 standards.

Upon successful ballot of the RIM, organizations will be able to assert compliance with the RIM content. Ultimately, measures will need to be determined upon which RIM conformance can be tested.

Maturity and Transformation of the RIM

Although the RIM has undergone a lengthy, carefully-reviewed process of evolution, there is no expectation that the RIM has reached its completion and is therefore no longer subject to change. HL7 intends to ballot changes to the RIM in consistent, periodic cycles, and will publish informative updates to the RIM during the interval between ballots.

The Message Development Framework (MDF) and the emerging HL7 Development Framework (HDF) are both methodologies that define the relationship of the RIM to the HL7 artifacts dependant upon it. These methodologies address the binding between HL7 artifacts and the RIM, the transformation rules and an approach to managing change as the RIM evolves. This ensures that HL7 has the flexibility to adapt the RIM to increase understanding, to address new and emerging requirements, and to ensure that versions of the standard based upon one RIM are not obviated as the RIM evolves.

The Meaning of Normative

The RIM, as a normative artifact, expresses a set of abstract classes and relationships upon which the HL7 Version 3 Standards are being built. To consider a metaphor, think about the RIM as though it were a language in its own right. Any expression within that language could be composed only of the classes and relationships that have been identified within the RIM. If a relationship does not exist in the RIM, it cannot be expressed in that language. The RIM is the "language" of Version 3, and any valid Version 3 information construct must be well-formed with respect to that language.

Within the HL7 methodology, a series of transformations are used to mold the concepts within the RIM to meet the expressed needs of varying domains (represented by the HL7 Technical Committees). Essential to this process is the immutability of the RIM concepts. Once something is declared to be, for instance, an Act, that item throughout its transformations persists its identity as an Act and maintains only those relationships an Act is allowed to have as represented in the RIM.

While the methodology describes valid restriction and extension mechanisms, the semantic integrity of the information content is maintained and held inviolate.

Assertions

Based upon this understanding, there are a number of assertions that must hold true with the RIM as a normative artifact:

1.3

Representation of the RIM in this ballot

RIM as an abstract model

The foundation of the RIM is a set of abstract classes whose concrete meanings are established by selecting a value from by a set of controlling vocabulary domains. HL7 embraced this abstract modeling style in order to best represent the complex and continuously-evolving set of the concepts that comprise clinical health care. A brief overview of this abstraction is presented here, but Appendix A of this document contains a thorough exploration of the RIM concepts.

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

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:

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.

In each case, the set of coded concepts that are permitted for each of these attributes is included for review and critique as part of this ballot.

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.

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.

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 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

Graphic Diagrams of the RIM core

The representations available for the RIM include a diagram for each of the high level subject areas, and a reference to the full RIM "billboard" in a PDF file where 'zooming' is more readily supported. The available graphics follow:

RIM core classes subject to ballot.

Figure 1: RIM core classes subject to ballot.

Entity class hierarchy in HL7 RIM.

Figure 2: Entity class hierarchy in HL7 RIM.

Role class hierarchy in HL7 RIM.

Figure 3: Role class hierarchy in HL7 RIM.

Act class hierarchy in HL7 RIM

Figure 4: Act class hierarchy in HL7 RIM

The state-machine diagram for the Act class.

Figure 5: The state-machine diagram for the Act class.

The state-machine diagram for the Entity class.

Figure 6: The state-machine diagram for the Entity class.

The state-machine diagram for the ManagedParticipation class.

Figure 7: The state-machine diagram for the ManagedParticipation class.

The state-machine diagram for the Role class.

Figure 8: The state-machine diagram for the Role class.

1.5

Graphic Diagrams of the RIM Infrastructure Classes

The classes in the RIM Infrastructure subject area represented in the following diagrams:

Model of message control classes.

Figure 9: Model of message control classes.

Model of structured documents classes..

Figure 10: Model of structured documents classes..

The state-machine diagram for the QueryEvent class.

Figure 11: The state-machine diagram for the QueryEvent class.

1.6

Release notes

This version of the RIM reflects changes that were harmonized during at the November 2002 RIM Harmonization meeting and technical corrections reported against RIM 1.19. This version be the focus of the first Committee-level ballot of the RIM.

Question 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

Acts
CommunicationInfrastructure
Entities
Roles

2.1

Acts (in base model)

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

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

2.2

CommunicationInfrastructure (in base model)

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

MessageControl
StructuredDocuments

2.2.1

MessageControl (in CommunicationInfrastructure)

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

Acknowledgement
AcknowledgementMessage
AttentionLine
Batch
CommunicationFunction
ControlAct
InfrastructureRoot
LogicalExpression
Message
Parameter
ParameterItem
ParameterList
QueryAck
QueryByParameter
QueryBySelection
QueryContinuation
QueryEvent
QuerySpec
RelationalExpression
SelectionExpression
SortControl
Transmission

2.2.2

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.

ClinicalDocument
ContextStructure
LinkHtml
LocalAttr
LocalMarkup
Table
TableCell
TableColumnStructure
TableStructure

2.3

Entities (in base model)

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.

Container
Device
Entity
EntityHeir
LanguageCommunication
LivingSubject
ManufacturedMaterial
Material
NonPersonLivingSubject
Organization
Person
Place
Role

2.4

Roles (in base model)

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

Access
AssignedEntity
Employee
Entity
Guarantor
LicensedEntity
Participation
Patient
Role
RoleHeir
RoleLink
SchedulableResource

3

Classes in HL7 Reference Information Model

3.1

Class: Access (in Roles)

approachSiteCode :: CD
targetSiteCode :: CD
gaugeQuantity :: PQ

Description 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.1.1

Access.approachSiteCode :: CD (0..1)

Vocabulary domain: ActSite (CWE)

Attribute description:

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 in a 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.1.2

Access.targetSiteCode :: CD (0..1)

Vocabulary domain: ActSite (CWE)

Attribute description:

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.1.3

Access.gaugeQuantity :: PQ (0..1)

Attribute description:

A measure for the inner diameter of the Access (e.g. the lumen of the tube.)


3.2

Class: Account (in Acts)

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

Description 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.2.1

Account.name :: ST (0..1)

Attribute description:

The descriptive name of the account as carried in the ledger of which the account is a part.

Discussion: This is *not* the identifier for the account. (Use 'id' for account identifiers, name for descriptive/meaningful labels.)

Examples: 'June 2002 Costs'; 'John Smith Receivables'


3.2.2

Account.balanceAmt :: MO (0..1)

Attribute description:

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.2.3

Account.currencyCode :: CE (0..1)

Vocabulary domain: Currency (CWE)

Attribute description:

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.2.4

Account.interestRateQuantity :: RTO<MO,PQ> (0..1)

Attribute description:

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 datatype must be comparable to seconds. (I.e. the denominator must be measured in time.)


3.2.5

Account.allowedBalanceQuantity :: IVL<MO> (0..1)

Attribute description:

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.3

Class: Act (in Acts)

classCode :: CS
moodCode :: CS
id :: SET<II>
code :: CD
derivationExpr :: ST
negationInd :: BL
text :: ED
statusCode :: SET<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
substitutionConditionCode :: CE

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

Description 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) between 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.3.1

Act.classCode :: CS (1..1) Mandatory

Vocabulary domain: ActClass (CNE)

Attribute description:

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.3.2

Act.moodCode :: CS (1..1) Mandatory

Vocabulary domain: ActMood (CNE)

Attribute description:

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.type.)

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 as

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 can not 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 Participatons, while how and when is 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 not to measure blood glucose, not to measure blood glucose in a specific range. (But compare with GOAL below.)

In ORDER 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 &lt;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.3.3

Act.id :: SET<II> (0..*)

Attribute description:

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.3.4

Act.code :: CD (0..1)

Vocabulary domain: ActCode (CWE)

Attribute description:

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 specificed 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.3.5

Act.derivationExpr :: ST (0..1)

Attribute description:

A character string containing a formal language expression that specifies how the Act's attributes are 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 no now and drafts can be expected within the year 2003.]


3.3.6

Act.negationInd :: BL (0..1)

Attribute description:

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 criteria 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, we the meaning is test whether a systolic blood pressure of 90-100 mm Hg yesterday does NOT EXIST (independent from whether any blood pressure was measured.)

The negationInd negates the Act as described by the descriptive properties (incl. 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 dose_qty, it would mean that the substance not be given at that particular dose (but any other dose might still be O.K.)

An act statement with negationInd is still an 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.3.7

Act.text :: ED (0..1)

Attribute description:

A textual or multimedia 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.

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.

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.

Version 2.x reference:

| FT1^8^00362^Transaction Description |


3.3.8

Act.statusCode :: SET<CS> (0..*)

Vocabulary domain: ActStatus (CNE)

Attribute description:

A code specifying the state of the Act.

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.3.9

Act.effectiveTime :: GTS (0..1)

Attribute description:

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 a surgical procedure (operation) the effectiveTime is the time relevant for the patient, i.e., between incision and last suture.

For transportations 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.3.10

Act.activityTime :: GTS (0..1)

Attribute description:

A time expression specifying the time in which the activity referred to by the Act statement happened, or -- depending on the mood -- is ordered to happen, scheduled to happen, when it can possibly happen, etc.

Discussion: See also, effectiveTime. The activityTime is the total time of activity including preparation and clean-up actions that may not be considered relevant to the main action. Thus the activityTime may be longer than the effectiveTime of the same act or it may be entirely different. For example, in retrospective observations, the observation activityTime is much later than the effectiveTime for which the observation is made.

For most use cases, designers should first consider effectiveTime as the primary relevant time for an act.

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.3.11

Act.availabilityTime :: TS (0..1)

Attribute description:

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 be 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 when 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 of adverse events, availabilityTimes are attributed to the author who compiles that report.


3.3.12

Act.priorityCode :: SET<CE> (0..*)

Vocabulary domain: ActPriority (CWE)

Attribute description:

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.3.13

Act.confidentialityCode :: SET<CE> (0..*)

Vocabulary domain: Confidentiality (CWE)

Attribute description:

A code that controls the disclosure of information about this Act, regardless of mood.

Discussion: It is important to note that good 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 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.3.14

Act.repeatNumber :: IVL<INT> (0..1)

Attribute description:

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.


3.3.15

Act.interruptibleInd :: BL (0..1)

Attribute description:

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.3.16

Act.levelCode :: CE (0..1)

Vocabulary domain: ActContextLevel (CWE)

Attribute description:

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.

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). Instance 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.

Discussion: 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 a 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).


3.3.17

Act.independentInd :: BL (0..1)

Attribute description:

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.3.18

Act.uncertaintyCode :: CE (0..1)

Vocabulary domain: ActUncertainty (CNE)

Attribute description:

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 a Observation.values 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&lt;PQ> in the value and NOT using 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.3.19

Act.reasonCode :: SET<CE> (0..*)

Vocabulary domain: ActReason (CWE)

Attribute description:

A code specifying the motivation, cause, or rationale of an Act, when such rationale is not reasonably representable 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.3.20

Act.languageCode :: CE (0..1)

Vocabulary domain: HumanLanguage (CWE)

Attribute description:

The primary language in which this Act statement is specified, particularly the language of the Act.text.


3.3.21

Act.substitutionConditionCode :: CE (0..1)

Vocabulary domain: SubstitutionCondition (CWE)

Attribute description:

Indicates the conditions under which an ordered or intended item may be substituted with a different one.


3.4

Class: ActHeir (in Acts)

Description 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 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.5

Class: ActRelationship (in Acts)

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

Description 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 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 allows 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 very many fine control steps.

Attributes of ActRelationship:

3.5.1

ActRelationship.typeCode :: CS (1..1) Mandatory

Vocabulary domain: ActRelationshipType (CNE)

Attribute description:

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.5.2

ActRelationship.inversionInd :: BL (0..1)

Attribute description:

An indicator specifying that the Act_Relationship.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.5.3

ActRelationship.contextControlCode :: CS (0..1)

Vocabulary domain: ContextControlActRelationship (CNE)

Attribute description:

A code that specifies if this ActRelationship propagates associations from the source act to the target act, as well as whether this act relationship can itself be propagated.

Discussion: Act relationships and participations that are marked "propagatable" can be propagated along ActRelationships that are marked "conductive." Propagation of object associations is transitive and unidirectional from source to target (i.e., if A propagates to B and B propagates to C then A propagates to C; and propagation always occurs from source to target, never the other way around). The total of all propagated associations along an uninterrupted chain of conductive links leading back from a target act towards the source of act relationships is called the propagated context of that act. All propagated context is lost at an act relationship marked non-conductive.

Context propagation can be additive or overriding. Additive propagation adds new associations into the context while overriding propagation replaces previously propagated associations of the same or more specific type with this association.

Examples: 1. An observation event has a patient participation marked propagatable and has component observation events linked through act relationships that are marked conductive. This means that the patient participation is a patient participation of those component observation events.

2. A composite order has a patient-participation, an author-participation, and a reason-relationship to a diagnosis, all marked as propagatable. The order further has three detail orders as components (A, B and C). The component associations for A and B are marked as conductive. The component association for C is marked non-conductive. Both A and B also have participations for Author. A's participation is marked as propagating. B's participation is marked as propagating with override.

The interpretation is as follows: A has the same patient, author and reason as the parent, as well as an additional co-author. B has the same patient and reason, but only the single author pointing to it directly (the parent author was overridden). C is not associated with any patient, author or reason.

Rationale: When building an information model, one often wants to avoid repetition. If a model has many constituent parts which all share a set of properties, it is desirable to propagate those properties to the parts, rather than to repeat the properties for each part. However, there are circumstances where unrestrained propagation to constituent parts is undesirable. In many modeling schemes, the propagation is implicit. If there is an author associated with the top element in a hierarchy, the assumption is made that all components within the hierarchy share the same author. If one of the components happens to be a reference to some external document a human reader will likely cease assuming that the author is the same. However, computers and inference engines do not have that same capability of reasoning where propagation of information is appropriate. As a result, there is a need to make this explicit. I.e. there is a need to control (a) what propagates and (b) whether propagation is allowed to occur at all. The context control code provides this capability.


3.5.4

ActRelationship.contextConductionInd :: BL (0..1)


3.5.5

ActRelationship.sequenceNumber :: INT (0..1)

Attribute description:

An integer specifying the relative 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.


3.5.6

ActRelationship.priorityNumber :: INT (0..1)

Attribute description:

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 relationships.


3.5.7

ActRelationship.pauseQuantity :: PQ (0..1)

Attribute description:

A quantity of time that should elapse between 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.


3.5.8

ActRelationship.checkpointCode :: CS (0..1)

Vocabulary domain: ActRelationshipCheckpoint (CNE)

Attribute description:

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 and has preconditions these conditions are tested and if 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 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.5.9

ActRelationship.splitCode :: CS (0..1)

Vocabulary domain: ActRelationshipSplit (CNE)

Attribute description:

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 exlusive 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.5.10

ActRelationship.joinCode :: CS (0..1)

Vocabulary domain: ActRelationshipJoin (CNE)

Attribute description:

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 braches 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.5.11

ActRelationship.negationInd :: BL (0..1)

Attribute description:

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.5.12

ActRelationship.conjunctionCode :: CS (0..1)

Vocabulary domain: RelationshipConjunction (CNE)

Attribute description:

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.5.13

ActRelationship.localVariableName :: ST (0..1)

Attribute description:

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.5.14

ActRelationship.seperatableInd :: BL (0..1)

Attribute description:

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.6

Class: AssignedEntity (in Roles)

positionCode :: CE
primaryCareInd :: BL

Description of AssignedEntity:

An agent role in which the agent is an Entity acting in the employ of an organization.

Discussion: The focus is on functional role on behalf of the organization, unlike the Employee role where the focus is on the 'Human Resources' relationship between the employee and the organization.</p

Attributes of AssignedEntity:

3.6.1

AssignedEntity.positionCode :: CE (0..1)

Vocabulary domain: PractitionerPosition (CWE)


3.6.2

AssignedEntity.primaryCareInd :: BL (0..1)

Attribute description:

An indication that the healthcare practitioner is a primary care provider.


3.7

Class: Container (in Entities)

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

Description 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_relationship.typeCode = "has content".

Attributes of Container:

3.7.1

Container.capacityQuantity :: PQ (0..1)

Attribute description:

The functional capacity of the container.


3.7.2

Container.heightQuantity :: PQ (0..1)

Attribute description:

The height of the container.


3.7.3

Container.diameterQuantity :: PQ (0..1)

Attribute description:

The outside diameter of the container.


3.7.4

Container.capTypeCode :: CE (0..1)

Vocabulary domain: ContainerCap (CWE)

Attribute description:

The type of container cap consistent with decapping, piercing or other automated manipulation.


3.7.5

Container.separatorTypeCode :: CE (0..1)

Vocabulary domain: ContainerSeparator (CWE)

Attribute description:

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.7.6

Container.barrierDeltaQuantity :: PQ (0..1)

Attribute description:

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.7.7

Container.bottomDeltaQuantity :: PQ (0..1)

Attribute description:

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.8

Class: Device (in Entities)

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

Description 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.8.1

Device.manufacturerModelName :: SC (0..1)

Vocabulary domain: ManufacturerModelName (CWE)

Attribute description:

The human designated moniker for a device assigned by the manufacturer.

Examples: Perkin Elmer 400 Inductively Coupled Plasma Unit


3.8.2

Device.softwareName :: SC (0..1)

Vocabulary domain: SoftwareName (CWE)

Attribute description:

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.8.3

Device.localRemoteControlStateCode :: CE (0..1)

Vocabulary domain: LocalRemoteControlState (CWE)

Attribute description:

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.8.4

Device.alertLevelCode :: CE (0..1)

Vocabulary domain: DeviceAlertLevel (CWE)

Attribute description:

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.8.5

Device.lastCalibrationTime :: TS (0..1)

Attribute description:

The date/time of the last calibration of the device.

Ratonale: 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.

OpenIssue: Is this linked somehow with the 'maintainer'?

OpenIssue: Given the definition of the class, this attribute would be moved up to ManufacturedMaterial.


3.9

Class: DeviceTask (in Acts)

parameterValue :: LIST<ANY>

Description 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 &lt;= ORD; an executed task (including a task in progress) has moodCode &lt;= EVN, an automatic task on the schedule has moodCode &lt;= APT.

Attributes of DeviceTask:

3.9.1

DeviceTask.parameterValue :: LIST<ANY> (0..*)

Attribute description:

The parameters of the task submitted to the device upon issuing of a command (or configuring the schedule of spontaneously executed tasks.)

Discussion: Parameters are only specified here if they are not included in 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.

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 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.10

Class: DiagnosticImage (in Acts)

subjectOrientationCode :: CE

Description of DiagnosticImage:

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

Attributes of DiagnosticImage:

3.10.1

DiagnosticImage.subjectOrientationCode :: CE (0..1)

Vocabulary domain: ImagingSubjectOrientation (CWE)

Attribute description:

A code specifying qualitatively the spatial relation between imaged object and imaging film or detector.


3.11

Class: Diet (in Acts)

energyQuantity :: PQ
carbohydrateQuantity :: PQ

Description 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.11.1

Diet.energyQuantity :: PQ (0..1)

Attribute description:

The supplied biologic energy (Calories) per day.

Discussion: This physical quantity should be convertible to 1 kcal/d (or 1 kJ/d.) Note, that there is a lot of confusion about what is a "calorie." There is a "large Calorie" and a "small calorie." On "nutrition facts" labels, the large "Calories" is used. More appropriately, however, one should use the small calorie, which is 1/1000 of a large Calorie. In the Unified Code for Units of Measure, the proper unit symbol for the large calorie is "[Cal]" and for the small calorie it is "cal", or, more commonly used as a kilocalorie "kcal".


3.11.2

Diet.carbohydrateQuantity :: PQ (0..1)

Attribute description:

The supplied amount of carbohydrates (g) per day.

Discussion: For 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.

OpenIssue: Unclear whether the same should not be expressed as associated observations in goal mood (observation.typeCode = carbohydrate intake.)


3.12

Class: Employee (in Roles)

jobCode :: CE
jobTitleName :: SC
jobClassCode :: CE
salaryTypeCode :: CE
salaryQuantity :: MO
hazardExposureText :: ED
protectiveEquipmentText :: ED

Description 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.12.1

Employee.jobCode :: CE (0..1)

Vocabulary domain: EmployeeJob (CWE)

Attribute description:

A code specifying the job performed by the employee for the employer. For example, 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.12.2

Employee.jobTitleName :: SC (0..1)

Vocabulary domain: JobTitleName (CWE)

Attribute description:

The title of the job held, for example, Vice President, Senior Technical Analyst.

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.12.3

Employee.jobClassCode :: CE (0..1)

Vocabulary domain: EmployeeJobClass (CWE)

Attribute description:

A code qualifying the employment in various ways, such as, full-time vs. part time, 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.12.4

Employee.salaryTypeCode :: CE (0..1)

Vocabulary domain: EmployeeSalaryType (CWE)

Attribute description:

A code specifying the method used by the employer to compute the employee's salary or wages. For example, hourly, annual, or commission.


3.12.5

Employee.salaryQuantity :: MO (0..1)

Attribute description:

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.12.6

Employee.hazardExposureText :: ED (0..1)

Attribute description:

The type of hazards associated with the work performed by the employee for the employer. For example, asbestos, infectious agents.


3.12.7

Employee.protectiveEquipmentText :: ED (0..1)

Attribute description:

Protective equipment needed for the job performed by the employee for the employer. For example, safety glasses, hard hat.


3.13

Class: Entity (in Entities)

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

EntityHeir
LivingSubject
Material
Organization
Place

Description 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 an physical object that has, had 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.13.1

Entity.classCode :: CS (1..1) Mandatory

Vocabulary domain: EntityClass (CNE)

Attribute description:

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 codeset 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.13.2

Entity.determinerCode :: CS (1..1) Mandatory

Vocabulary domain: EntityDeterminer (CNE)

Attribute description:

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 distiguishes these different representations.


3.13.3

Entity.id :: SET<II> (0..*)

Attribute description:

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 data bases, 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.13.4

Entity.code :: CE (0..1)

Vocabulary domain: EntityCode (CWE)

Attribute description:

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.13.5

Entity.quantity :: SET<PQ> (0..*)

Attribute description:

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 50% (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 are, 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 an 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.13.6

Entity.name :: BAG<EN> (0..*)

Attribute description:

A non-unique textual identifier or moniker for the Entity.

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

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


3.13.7

Entity.desc :: ED (0..1)

Attribute description:

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 additiona 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.13.8

Entity.statusCode :: SET<CS> (0..*)

Vocabulary domain: EntityStatus (CNE)

Attribute description:

A value representing whether the information associated with the Entity is currently active or inactive for the purpose of participation in acts.


3.13.9

Entity.existenceTime :: IVL<TS> (0..1)

Attribute description:

An interval of time specifying the period in which the Entity physically existed.

Examples: Birthdate/Deathdate, ManufactureDate/DisposalDate

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

Rationale: Physical entities have specified periods in which they exist. Human beings are born, live their lives and die. Equipment is manufactured, placed in service, retired and salvaged. The relevance of this attribute is in planning, availability and retrospective analysis.


3.13.10

Entity.telecom :: BAG<TEL> (0..*)

Attribute description:

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.13.11

Entity.riskCode :: CE (0..1)

Vocabulary domain: EntityRisk (CWE)

Attribute description:

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. Entites with either natural or introduce 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 iracible temperment 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.13.12

Entity.handlingCode :: CE (0..1)

Vocabulary domain: EntityHandling (CWE)

Attribute description:

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.13.13

Entity.importanceStatusText :: ED (0..1)

Attribute description:

A textual or multimedia depiction of the relative importance the Entity has to other Entities.

OpenIssue: There is a problem with this attribute. Shouldn't it be coded? Does it belong here at all?


3.14

Class: EntityHeir (in Entities)

Description 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 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 subclassed 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.15

Class: FinancialContract (in Acts)

paymentTermsCode :: CE

Description of FinancialContract:

A contract whose value is measured in monetary terms.

Examples: Insurance; Purchase agreement

Attributes of FinancialContract:

3.15.1

FinancialContract.paymentTermsCode :: CE (0..1)

Vocabulary domain: PaymentTerms (CWE)

Attribute description:

Establishes the payment terms for a contractual agreement or obligation.

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


3.16

Class: FinancialTransaction (in Acts)

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

Description 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.16.1

FinancialTransaction.amt :: MO (0..1)

Attribute description:

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.16.2

FinancialTransaction.creditExchangeRateQuantity :: REAL (0..1)

Attribute description:

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.16.3

FinancialTransaction.debitExchangeRateQuantity :: REAL (0..1)

Attribute description:

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.17

Class: Guarantor (in Roles)

creditRatingCode :: CE

Description of Guarantor:

A role of a Person or Organization (player) who guarantees payment for services provided in case other prospective payers default or reject the payment. The scoper is the Organization that ascertains the payment guarantee and may then hold the Guarantor responsible for payment. A Guarantor role is typically also limited by an Act (typically an Encounter) for which this payment guarantee is being made.

Attributes of Guarantor:

3.17.1

Guarantor.creditRatingCode :: CE (0..1)

Vocabulary domain: CreditRating (CWE)

Attribute description:

A code specifying the Guarantor's credit rating (e.g., excellent, good, fair, questionable, poor).

Version 2.x reference:

| PV1^23^00153^Credit Rating |

| GT1^23^00774^Guarantor Credit Rating Code |


3.18

Class: InvoiceElement (in Acts)

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

Description 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.18.1

InvoiceElement.modifierCode :: SET<CE> (0..*)

Vocabulary domain: InvoiceElementModifier (CWE)

Attribute description:

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.18.2

InvoiceElement.unitQuantity :: RTO<PQ,PQ> (0..1)

Attribute description:

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 rational 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 invoice_element.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.18.3

InvoiceElement.unitPriceAmt :: RTO<MO,PQ> (0..1)

Attribute description:

The monetary cost per unit being accounted.

Constraints: In constructing the ratio, the numerator must 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.18.4

InvoiceElement.netAmt :: MO (0..1)

Attribute description:

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 x unitPriceAmt [ x factorNumber] [x pointsNumber]. For grouping invoice elements, this will be the sum of the netAmt attributes of all contained InvoiceElements.


3.18.5

InvoiceElement.factorNumber :: REAL (0..1)

Attribute description:

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.18.6

InvoiceElement.pointsNumber :: REAL (0..1)

Attribute description:

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.19

Class: LanguageCommunication (in Entities)

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

Description of LanguageCommunication:

The language communication capabilities for an Entity.

Examples: A patient that originatally came form Mexico may have fluent language capabilities to speak, read and write in Spanish, but only rudimentary capabilties in English. A person from Russia may have the capability to communicate equally well in spoken language in Russian, Armenian or Ukranian, 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.19.1

LanguageCommunication.languageCode :: CE (0..1)

Vocabulary domain: HumanLanguage (CWE)

Attribute description:

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 capabilty 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.19.2

LanguageCommunication.modeCode :: CE (0..1)

Vocabulary domain: LanguageAbilityMode (CWE)

Attribute description:

A value representing the method of expression of the language

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


3.19.3

LanguageCommunication.proficiencyLevelCode :: CE (0..1)

Vocabulary domain: LanguageAbilityProficiency (CWE)

Attribute description:

A value representing the level of proficiency in a language.

Examples: excellent, good, fair, poor


3.19.4

LanguageCommunication.preferenceInd :: BL (0..1)

Attribute description:

An indicator specifying whether or not the language is preferred by the entity for the associated mode.


3.20

Class: LicensedEntity (in Roles)

recertificationTime :: TS

Description 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.20.1

LicensedEntity.recertificationTime :: TS (0..1)

Attribute description:

The date recertification is required.


3.21

Class: LivingSubject (in Entities)

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

NonPersonLivingSubject
Person

Description 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.21.1

LivingSubject.administrativeGenderCode :: CE (0..1)

Vocabulary domain: AdministrativeGender (CWE)

Attribute description:

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.21.2

LivingSubject.birthTime :: TS (0..1)

Attribute description:

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.21.3

LivingSubject.deceasedInd :: BL (0..1)

Attribute description:

An indication that the subject is dead.


3.21.4

LivingSubject.deceasedTime :: TS (0..1)

Attribute description:

The date and time that a living subject's death occurred.


3.21.5

LivingSubject.multipleBirthInd :: BL (0..1)

Attribute description:

A indication as to whether the living subject is part of a multiple birth.

Version 2.x reference:

| PID^24^00127^Multiple Birth Indicator |


3.21.6

LivingSubject.multipleBirthOrderNumber :: INT (0..1)

Attribute description:

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.21.7

LivingSubject.organDonorInd :: BL (0..1)

Attribute description:

An indication that the living subject is an organ donor.

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

Version 2.x reference:

| PD1^8^00760^Organ Donor |


3.22

Class: ManagedParticipation (in Acts)

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

Description of ManagedParticipation:

A participation that may 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.22.1

ManagedParticipation.id :: SET<II> (0..*)

Attribute description:

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.22.2

ManagedParticipation.statusCode :: SET<CS> (0..*)

Vocabulary domain: ManagedParticipationStatus (CNE)

Attribute description:

A code specifying whether the participation instance is pending, active, complete, or cancelled. (See ManagedParticipation.)


3.23

Class: ManufacturedMaterial (in Entities)

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

Container
Device

Description 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.23.1

ManufacturedMaterial.lotNumberText :: ST (0..1)

Attribute description:

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.23.2

ManufacturedMaterial.expirationTime :: IVL<TS> (0..1)

Attribute description:

The date and time the manufacturer no longer ensures the safety, quality, and/or proper functioning of the material.

Ratrionale: 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 responsbility for failure of the material after that date.


3.23.3

ManufacturedMaterial.stabilityTime :: IVL<TS> (0..1)

Attribute description:

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.24

Class: Material (in Entities)

formCode :: CE

ManufacturedMaterial

Description 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 Living_subject or Place.

Attributes of Material:

3.24.1

Material.formCode :: CE (0..1)

Vocabulary domain: MaterialForm (CWE)

Attribute description:

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.

OpenIssue: Vocabulary domain should include, but is broader than, the DoseForm domain.


3.25

Class: NonPersonLivingSubject (in Entities)

strainText :: ED
genderStatusCode :: CE

Description 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.25.1

NonPersonLivingSubject.strainText :: ED (0..1)

Attribute description:

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 cateloging of strains. Many strain designations are created and elimiated 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.25.2

NonPersonLivingSubject.genderStatusCode :: CE (0..1)

Vocabulary domain: GenderStatus (CWE)

Attribute description:

A value representing whether the primary reproductive organs of NonPersonLivingSubject are present.


3.26

Class: Observation (in Acts)

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

DiagnosticImage
PublicHealthCase

Description of Observation:

An Act of recognizing and noting information about the subject, and whose immediate and primary outcome (post-condition) is new data about a subject. Observations often involve measurement or other elaborate methods of investigation, but may also be simply assertive statements.

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.

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.

Diagnoses, findings, symptoms, etc. are also Observations. 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.

Attributes of Observation:

3.26.1

Observation.value :: ANY (0..1)

Attribute description:

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., &lt;3; 12-20) must be expressed as Interval of Physical Quantity (IVL&lt;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 a 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.26.2

Observation.interpretationCode :: SET<CE> (0..*)

Vocabulary domain: ObservationInterpretation (CWE)

Attribute description:

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.26.3

Observation.methodCode :: SET<CE> (0..*)

Vocabulary domain: ObservationMethod (CWE)

Attribute description:

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. Particularly, most LOINC codes are defined for specific methods as long as the method makes a practical difference in interpretation. For example, the difference between susceptibility studies using the "minimal inhibitory concentration" (MIC) or the "agar diffusion method" (Kirby-Baur) are specifically assigned to different LOINC 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.26.4

Observation.targetSiteCode :: SET<CD> (0..*)

Vocabulary domain: ActSite (CWE)

Attribute description:

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.27

Class: Organization (in Entities)

addr :: BAG<AD>
standardIndustryClassCode :: CE

Description of Organization:

A subtype of Entity representing a formalized group of people 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.

Rationale: While not a physical item, organizations have the ability to play Roles and participate in Acts. Many of the attributes associated with physical entities are also applicable to organizations. They can be viewed as virtually physical due to their usage.

Attributes of Organization:

3.27.1

Organization.addr :: BAG<AD> (0..*)

Attribute description:

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.27.2

Organization.standardIndustryClassCode :: CE (0..1)

Vocabulary domain: OrganizationIndustryClass (CWE)

Attribute description:

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.28

Class: Participation (in Acts)

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

ManagedParticipation

Description of Participation:

An association between an Act and an 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.28.1

Participation.typeCode :: CS (1..1) Mandatory

Vocabulary domain: ParticipationType (CNE)

Attribute description:

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.28.2

Participation.functionCode :: CD (0..1)

Vocabulary domain: ParticipationFunction (CWE)

Attribute description:

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.28.3

Participation.contextControlCode :: CS (0..1)

Vocabulary domain: ContextControlParticipation (CNE)

Attribute description:

A code that specifies if this Participation can be propagated along ActRelationships (see ActRelationship.contextControlCode.)


3.28.4

Participation.sequenceNumber :: INT (0..1)

Attribute description:

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.28.5

Participation.negationInd :: BL (0..1)

Attribute description:

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.28.6

Participation.noteText :: ED (0..1)

Attribute description:

A textual or multimedia depiction of commentary related to the participation. This note is attributed to this participant only.


3.28.7

Participation.time :: IVL<TS> (0..1)

Attribute description:

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.28.8

Participation.modeCode :: CE (0..1)

Vocabulary domain: ParticipationMode (CWE)

Attribute description:

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.28.9

Participation.awarenessCode :: CE (0..1)

Vocabulary domain: TargetAwareness (CWE)

Attribute description:

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 his 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.28.10

Participation.signatureCode :: CE (0..1)

Vocabulary domain: ParticipationSignature (CNE)

Attribute description:

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.28.11

Participation.signatureText :: ED (0..1)

Attribute description:

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.29

Class: Patient (in Roles)

confidentialityCode :: CE
veryImportantPersonCode :: CE

Description of Patient:

A Role of a LivingSubject (player) as a recipient of health care services from a healthcare provider (scoper).

OpenIssue: This is really a kind of Customer role.

Attributes of Patient:

3.29.1

Patient.confidentialityCode :: CE (0..1)

Vocabulary domain: Confidentiality (CWE)

Attribute description:

A code specifying the privacy protection policies in place for this patient.

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.29.2

Patient.veryImportantPersonCode :: CE (0..1)

Vocabulary domain: PatientImportance (CWE)

Attribute description:

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.30

Class: PatientEncounter (in Acts)

admissionReferralSourceCode :: CE
lengthOfStayQuantity :: PQ
dischargeDispositionCode :: CE
acuityLevelCode :: CE
preAdmitTestInd :: BL
specialCourtesiesCode :: SET<CE>
specialAccommodationCode :: SET<CE>

Description 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.30.1

PatientEncounter.admissionReferralSourceCode :: CE (0..1)

Vocabulary domain: EncounterReferralSource (CWE)

Attribute description:

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.30.2

PatientEncounter.lengthOfStayQuantity :: PQ (0..1)

Attribute description:

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.30.3

PatientEncounter.dischargeDispositionCode :: CE (0..1)

Vocabulary domain: EncounterDischargeDisposition (CWE)

Attribute description:

A code depicting the actual disposition of the patient at the time of discharge (e.g., discharged to home, expired, against medical advice, etc.).

Version 2.x reference:

| PV1^36^00166^Discharge Disposition |


3.30.4

PatientEncounter.acuityLevelCode :: CE (0..1)

Vocabulary domain: EncounterAcuity (CWE)

Attribute description:

A code depicting the acuity (complexity of patient care, resource intensiveness of the patient care) of a patient's medical condition upon arrival. Values may be derived from formal acuity coding schemes such as RBS.


3.30.5

PatientEncounter.preAdmitTestInd :: BL (0..1)

Attribute description:

An indication that pre-admission tests are required for this patient encounter.

Version 2.x reference:

| PV1^12^00142^Preadmit Test Indicator |


3.30.6

PatientEncounter.specialCourtesiesCode :: SET<CE> (0..*)

Vocabulary domain: EncounterSpecialCourtesy (CWE)

Attribute description:

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.30.7

PatientEncounter.specialAccommodationCode :: SET<CE> (0..*)

Vocabulary domain: SpecialAccommodation (CWE)

Attribute description:

A code indicating the type of special accommodations 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.


3.31

Class: Person (in Entities)

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

Description 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.31.1

Person.addr :: BAG<AD> (0..*)

Attribute description:

The address(es) 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.31.2

Person.maritalStatusCode :: CE (0..1)

Vocabulary domain: MaritalStatus (CWE)

Attribute description:

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

OpenIssue: It is not clear what the temporal values are and whether or not items such as divorced/married are mutually exclusive.

OpenIssue: Probably competing existing code schemes.

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.31.3

Person.educationLevelCode :: CE (0..1)

Vocabulary domain: EducationLevel (CWE)

Attribute description:

The level of education a person achieved.

OpenIssue: Need example values.


3.31.4

Person.disabilityCode :: CE (0..1)

Vocabulary domain: PersonDisabilityType (CWE)

Attribute description:

A value identifying a person's disability.

Examples: vision impaired, hearing impaired.

OpenIssue: Need example values. OpenIssue: Shouldn't this be SET<CE>

Version 2.x reference:

| GT1^52^00753^Handicap |

| IN1^48^00753^Handicap |

| NK1^36^00753^Handicap |

| PD1^6^00753^Handicap |


3.31.5

Person.livingArrangementCode :: CE (0..1)

Vocabulary domain: LivingArrangement (CWE)

Attribute description:

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.31.6

Person.religiousAffiliationCode :: CE (0..1)

Vocabulary domain: ReligiousAffiliation (CWE)

Attribute description:

A value representing the religious preference for a person

OpenIssue: Need example values.

Version 2.x reference:

| GT1^41^00120^Religion |

| IN2^39^00120^Religion |

| NK1^25^00120^Religion |

| PID^17^00120^Religion |


3.31.7

Person.raceCode :: SET<CE> (0..*)

Vocabulary domain: Race (CWE)

Attribute description:

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.31.8

Person.ethnicGroupCode :: SET<CE> (0..*)

Vocabulary domain: Ethnicity (CWE)

Attribute description:

The ethnic group of the person.

OpenIssue: Knowing that this repeats, it may be required that a 'primary' in the list is required as well. There is currently no mechanism to identify the primary in the set in the HMD.

OpenIssue: Need example values.

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.32

Class: Place (in Entities)

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

Description 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.32.1

Place.mobileInd :: BL (0..1)

Attribute description:

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.32.2

Place.addr :: AD (0..1)

Attribute description:

The physical address of this place.

Constraints: must be the address tha tallows 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.32.3

Place.directionsText :: ED (0..1)

Attribute description:

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


3.32.4

Place.positionText :: ED (0..1)

Attribute description:

A set of codes that locates the site within a mapping scheme.

Examples: map coordinates for US Geological Survey maps.


3.32.5

Place.gpsText :: ST (0..1)

Attribute description:

The global positioning system coordinates of a place.

Discussion: The global positioning system values for this attribute should conform with the USGS Spatial Data Tranmission 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 geografic coordinates, the GPS values allow for precise locational information to be capture and transmitted.

OpenIssue: This is really the GPS coordinates, and needs a different data type to capture the integers. Also, it needs a description.


3.33

Class: Procedure (in Acts)

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

Description of Procedure:

A planned alteration or manipulation of the structure of the body. This may require the disruption of some body surface, usually through an incision (i.e. "surgical procedure" or "operative procedure").

Examples: Appendectomy, Back massage, Dental filling

Attributes of Procedure:

3.33.1

Procedure.methodCode :: SET<CE> (0..*)

Vocabulary domain: ProcedureMethod (CWE)

Attribute description:

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.33.2

Procedure.approachSiteCode :: SET<CD> (0..*)

Vocabulary domain: ActSite (CWE)

Attribute description:

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.33.3

Procedure.targetSiteCode :: SET<CD> (0..*)

Vocabulary domain: ActSite (CWE)

Attribute description:

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.34

Class: PublicHealthCase (in Acts)

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

Description 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.

OpenIssue: Need to work to broaden the concept, the name and the description.

Attributes of PublicHealthCase:

3.34.1

PublicHealthCase.detectionMethodCode :: CE (0..1)

Vocabulary domain: CaseDetectionMethod (CWE)

Attribute description:

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.34.2

PublicHealthCase.transmissionModeCode :: CE (0..1)

Vocabulary domain: CaseTransmissionMode (CWE)

Attribute description:

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.

OpenIssue: Consider moving this attribute to Observation.


3.34.3

PublicHealthCase.diseaseImportedCode :: CE (0..1)

Vocabulary domain: CaseDiseaseImported (CWE)

Attribute description:

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.35

Class: Role (in Roles)

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

Access
AssignedEntity
Employee
Guarantor
LicensedEntity
Patient
RoleHeir
SchedulableResource

Description 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 whom 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.35.1

Role.classCode :: CS (1..1) Mandatory

Vocabulary domain: RoleClass (CNE)

Attribute description:

A code specifying the major category of a Role as defined by HL7 vocabulary.


3.35.2

Role.id :: SET<II> (0..*)

Attribute description:

A unique identifier for the player Entity in this Role.


3.35.3

Role.code :: CE (0..1)

Vocabulary domain: RoleCode (CWE)

Attribute description:

A code further specifying the kind of Role.

Constraint

The Role.code must conceptually be a proper specialization of Role.classCode. Role.classCode and Role.code are not modifiers or qualifiers or each other, but each is a complete concept or a Role-like relationship between two Entities, where 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.35.4

Role.negationInd :: BL (0..1)

Attribute description:

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.35.5

Role.addr :: BAG<AD> (0..*)

Attribute description:

A 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.35.6

Role.telecom :: BAG<TEL> (0..*)

Attribute description:

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.35.7

Role.statusCode :: SET<CS> (0..*)

Vocabulary domain: RoleStatus (CNE)

Attribute description:

A code specifying the state of this Role as defined the state-transition model.

Version 2.x reference:

| PID^27^00130^Veterans Military Status |


3.35.8

Role.effectiveTime :: IVL<TS> (0..1)

Attribute description:

An interval of time specifying the period during which the Role is in effect, if such time limit is applicable and known.


3.35.9

Role.certificateText :: ED (0..1)

Attribute description:

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 (incl. 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.35.10

Role.quantity :: RTO (0..1)

Attribute description:

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.35.11

Role.positionNumber :: LIST<INT> (0..*)

Attribute description:

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 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.36

Class: RoleHeir (in Roles)

Description 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 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.37

Class: RoleLink (in Roles)

typeCode :: CS
effectiveTime :: IVL<TS>

Description 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.37.1

RoleLink.typeCode :: CS (1..1) Mandatory

Vocabulary domain: RoleLinkType (CNE)

Attribute description:

A code specifying the kind of connection represented by this RoleLink, e.g., has-part, has-authority.


3.37.2

RoleLink.effectiveTime :: IVL<TS> (0..1)

Attribute description:

An interval of time specifying the period during which the connection between Roles is in effect.


3.38

Class: SchedulableResource (in Roles)

slotSizeIncrementQuantity :: PQ

Description of SchedulableResource:

A Role of an Entity that can be scheduled.

Attributes of SchedulableResource:

3.38.1

SchedulableResource.slotSizeIncrementQuantity :: PQ (0..1)

Attribute description:

The amount of time or other quantity in slices of which the resource is scheduled.


3.39

Class: SubstanceAdministration (in Acts)

routeCode :: CE
approachSiteCode :: SET<CD>
doseQuantity :: IVL<PQ>
rateQuantity :: IVL<PQ>
doseCheckQuantity :: SET<RTO>
maxDoseQuantity :: SET<RTO>
substitutionCode :: CE

Description of SubstanceAdministration:

An act involving the introduction of a generally therapeutic material into or onto a subject.

Discussion: The effect of the therapeutic 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.39.1

SubstanceAdministration.routeCode :: CE (0..1)

Vocabulary domain: MedAdministrationRoute (CWE)

Attribute description:

The method of introducing the therapeutic material into or onto the subject.

Discussion: Route, site of administration (administrationSiteCode) and the device used in 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.

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.39.2

SubstanceAdministration.approachSiteCode :: SET<CD> (0..*)

Vocabulary domain: ActSite (CWE)

Attribute description:

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 (administrationSiteCode) and the device used in 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.39.3

SubstanceAdministration.doseQuantity :: IVL<PQ> (0..1)

Attribute description:

The amount of the therapeutic agent or other substance given at one administration event.

Discussion: If specified as an interval, the dose is a value in the specified range. The dose may be specified either as a quantity of active ingredient (e.g. 200 mg) or a count of units of the specified substance to be administered (1 tablet). In the second case, it is generally necessary to specify the 'strength' of a each unit. This is done by walking the 'consumable' participation to the entity identifying the drug, and if the strength is not pre-coordinated with the drug, then walking a 'contains' role to the active ingredient entity(s). The strength of a single unit will be the quantity on the 'contains' role.

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.39.4

SubstanceAdministration.rateQuantity :: IVL<PQ> (0..1)

Attribute description:

Identifies the speed with which the substance is introduced into the subject. It is expressed as a period of time over which the quantity of the substance specified in doseQuanty is to be administered.

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. The SubstanceAdministration.rateQuantity is specified as a physical quantity in time (a duration.) Hence, the rateQuantity is really the denominator of the dose rate (the doseQuantity is the numerator). For example, if a Ringer's solution is to be given at 100 mL/hour i.v., the doseQuantity would be 100 mL and the rateQuantity would be 1 h. Note that there is no difference in the actual values of doseQuantity and rateQuantity as long as the quotient of both has the same value. In this example, we could just as well specify doseQuantity as 50 mL and rateQuantity as 30 min, or 200 mL and 2 h or any other combination where the quotient equals 100 mL/h.

Note that in principle one could again suffice with just the doseQuantity attribute specifying the rate right in that one attribute (e.g., doseQuantity = 100 mL/h.) However this practice is not allowed. Systems that implement the semantics of units according to the Unified Code for Units of Measure would have no problem noting the fact that a doseQuantity is really a rate. Other systems however will have difficulties to tell an at-once dose from a dose rate from just looking at the units. If a system wishes to deal only with a single quantity describing the dosage, it can always calculate such a quantity as 'realDoseQuantity' = doseQuantity x strength / rateQuantity.

Constraints: rateQuantity.units must be convertible to seconds. I.e. rateQuantity must be expressed as a period of time.


3.39.5

SubstanceAdministration.doseCheckQuantity :: SET<RTO> (0..*)

Attribute description:

This 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) * strength_quantity (250 mg) * activity_dttm (3 /d) = 750 mg/1d."

For an intravenous example, this term would be "doseCheckQuantity = doseQuantity (100 ml) * strength quantity (1) / rateQuantity (1 h) = 100 mL/h" which can be calculated on a daily basis as "doseCheckQuantity = 100 mL/h * 24 h/d = 2400 mL/d = 2.4 L/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.39.6

SubstanceAdministration.maxDoseQuantity :: SET<RTO> (0..*)

Attribute description:

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.39.7

SubstanceAdministration.substitutionCode :: CE (0..1)

Vocabulary domain: SubstanceAdminSubstitution (CWE)

Attribute description:

Indicates what type of substitution has or may occur between the ordered material and the material actually administered.

Discussion: In Order mood, this identifies the maximum substitution level allowed. In other intents, it identifies the substitution planned, and inevent, it identifies what substitution actually occurred.

To see the specific change (i.e. exactly what was ordered, what was intended and/or what was done), the SubstanceAdministration act must be sent in each mood. The SubstanceAdministration.substitutionCode attribute is mainly used in an order, to specify whether an ordered act may be substituted and in what way it may be substituted, and as a flag in an event or promise.

Examples: No substitutions allowed, Generic substitution performed, Formulary substitution


3.40

Class: Supply (in Acts)

quantity :: PQ
expectedUseTime :: IVL<TS>

Diet

Description of Supply:

An act that involves transfer of a material from one entity to another. It does not necessarily involve a transfer of ownership.

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.40.1

Supply.quantity :: PQ (0..1)

Attribute description:

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.

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. The type of 'countable' information is determined by information in the 'product' entity.


3.40.2

Supply.expectedUseTime :: IVL<TS> (0..1)

Attribute description:

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.

30 days

1 year


3.41

Class: WorkingList (in Acts)

ownershipLevelCode :: CE

Description 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.

OpenIssue: The name is too generic. This needs to be harmonized with Scheduling.

Attributes of WorkingList:

3.41.1

WorkingList.ownershipLevelCode :: CE (0..1)

Vocabulary domain: ListOwnershipLevel (CWE)

Attribute description:

Indicates the category of representation for the personnel managing the list, whether person, team or organization.


3.42

Class: Acknowledgement (in MessageControl)

typeCode :: CS
expectedSequenceNumber :: INT
messageWaitingNumber :: INT
messageWaitingPriorityCode :: CE

Description of Acknowledgement:

The Acknowledgement class contains information sent when acknowledging another message.

Attributes of Acknowledgement:

3.42.1

Acknowledgement.typeCode :: CS (0..1)

Vocabulary domain: AcknowledgementType (CNE)

Attribute description:

This attribute contains an acknowledgement code as described in the HL7 message processing rules.

Version 2.x reference:

| MSA^1^00018^Acknowledgement Code |


3.42.2

Acknowledgement.expectedSequenceNumber :: INT (0..1)

Attribute description:

This attribute is used in the sequence number protocol.

Version 2.x reference:

| MSA^4^00021^Expected Sequence Number |


3.42.3

Acknowledgement.messageWaitingNumber :: INT (0..1)

Attribute description:

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.42.4

Acknowledgement.messageWaitingPriorityCode :: CE (0..1)

Vocabulary domain: MessageWaitingPriority (CWE)

Attribute description:

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.43

Class: AcknowledgementMessage (in MessageControl)

messageTypeCode :: CS
code :: CE
text :: ED
location :: SET<ST>

Description of AcknowledgementMessage:

A message that provides information about the communication, parsing or non-business-rule validation of the message being acknowledged.

Attributes of AcknowledgementMessage:

3.43.1

AcknowledgementMessage.messageTypeCode :: CS (0..1)

Vocabulary domain: AcknowledgmentMessageType (CNE)

Attribute description:

Identifies the the kind of information specified in the acknowledgement message. Options are: Error, Warning or Information.


3.43.2

AcknowledgementMessage.code :: CE (0..1)

Vocabulary domain: AcknowledgementMessageCode (CWE)

Attribute description:

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.43.3

AcknowledgementMessage.text :: ED (0..1)

Attribute description:

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.43.4

AcknowledgementMessage.location :: SET<ST> (0..*)

Attribute description:

Identifies a position within the message being acknowledged that is related to the message.

Discussion: Not all messages will have an associatied location. Some messages may relate to multiple locations.

Example: Location of element having missing element. Location of two elemnts that violate 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.44

Class: AttentionLine (in MessageControl)

keyWordText :: SC
value :: ST

Description of AttentionLine:

This class allows parameters for a technology specific transport to be represented in the V3 message outer wrapper.

Attributes of AttentionLine:

3.44.1

AttentionLine.keyWordText :: SC (0..1)

Vocabulary domain: AttentionKeyword (CWE)

Attribute description:

A parameter defining word.


3.44.2

AttentionLine.value :: ST (0..1)

Attribute description:

A parameter value.


3.45

Class: Batch (in MessageControl)

referenceControlId :: II
name :: SC
batchComment :: SET<ST>
transmissionQuantity :: INT
batchTotalNumber :: SET<INT>

Description of Batch:

The Batch class is to specify a message which is a collection of HL7 V3 messages. This class is a placeholder for future specification work by the Control/Query TC.

OpenIssue: To be resolved when future work completed.

Attributes of Batch:

3.45.1

Batch.referenceControlId :: II (0..1)

Attribute description:

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.45.2

Batch.name :: SC (0..1)

Vocabulary domain: BatchName (CWE)

Attribute description:

This attribute is used by the application processing the batch.

Version 2.x reference:

| BHS^9^00089^Batch Name/ID/Type |


3.45.3

Batch.batchComment :: SET<ST> (0..*)

Attribute description:

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.45.4

Batch.transmissionQuantity :: INT (0..1)

Attribute description:

This attribute contains the count of individual transmissions contained within the batch.


3.45.5

Batch.batchTotalNumber :: SET<INT> (0..*)

Attribute description:

The batch total. It is possible that more than a single batch total exists.

Version 2.x reference:

| BTS^3^00095^Batch Totals |


3.46

Class: ClinicalDocument (in StructuredDocuments)

setId :: II
versionNumber :: INT
completionCode :: CE
storageCode :: CE
copyTime :: TS

Description of ClinicalDocument:

Specialization of Act to add the characteristics unique to document management services.

Attributes of ClinicalDocument:

3.46.1

ClinicalDocument.setId :: II (0..1)

Attribute description:

A report identifier that remains constant across all document revisions that derive from a common original document. An original report is the first version of a report. It gets a new unique value for document_service.setId, and has the value of document_service.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 act_relationsip, with act_relationship.typeCode set to equal "APND" (for "appends"). The parent report being appended remains in place and its content and status are unaltered. A replacemnt report replaces an existing report. The replacement report uses the same value for document_service.setId as the parent report being replaced, and increments the value of document_serivce.versionNumber by 1. The state of the parent report being replaced should become "superceded" explicitly by another message, but is still retained in the system for historical reference.


3.46.2

ClinicalDocument.versionNumber :: INT (0..1)

Attribute description:

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.


3.46.3

ClinicalDocument.completionCode :: CE (0..1)

Vocabulary domain: DocumentCompletion (CWE)

Attribute description:

A code depicting the completion status of a report (e.g., incomplete, authenticated, legally authenticated).


3.46.4

ClinicalDocument.storageCode :: CE (0..1)

Vocabulary domain: DocumentStorage (CWE)

Attribute description:

A code depicting the storage status (e.g., active, archived, purged) of a report.


3.46.5

ClinicalDocument.copyTime :: TS (0..1)

Attribute description:

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.47

Class: CommunicationFunction (in MessageControl)

typeCode :: CS
telecom :: TEL

Description 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.47.1

CommunicationFunction.typeCode :: CS (0..1)

Vocabulary domain: CommunicationFunctionType (CNE)

Attribute description:

The type of communication function being served by the entity with respect to the transmission, such as sender, receiver, respond-to party, etc.


3.47.2

CommunicationFunction.telecom :: TEL (0..1)

Attribute description:

The telecomm address that can be used to reach the entity that is serving this function.


3.48

Class: ContextStructure (in StructuredDocuments)

localId :: ST

ClinicalDocument
LinkHtml
LocalAttr
LocalMarkup
Table
TableStructure

Description 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.

Attributes of ContextStructure:

3.48.1

ContextStructure.localId :: ST (0..1)

Attribute description:

An optional identifier which must be unique within the document.


3.49

Class: ControlAct (in MessageControl)

structureTypeId :: II
responseCode :: CS

Description of ControlAct:

An act representing a system action such as the change of state of another act or the initiation of a query. All control acts represent trigger events in the HL7 context. ControlActs may occur in different moods.

OpenIssue: Look at the symmetry between how messages and documents are structured. This is work that is yet to be completed.

Attributes of ControlAct:

3.49.1

ControlAct.structureTypeId :: II (0..1)

Attribute description:

Attribute identifying the structure of the payload portion of the message specified for this interaction.


3.49.2

ControlAct.responseCode :: CS (0..1)

Vocabulary domain: ResponseLevel (CNE)

Attribute description:

Specifies whether a response is expected from the addressee of this interaction and what level of detail that response should include.


3.50

Class: InfrastructureRoot (in MessageControl)

templateId :: II
realmId :: II
commonTypeID :: II
nullFlavor :: CS

Acknowledgement
Act
ActRelationship
AttentionLine
CommunicationFunction
Entity
LanguageCommunication
Parameter
Participation
QueryEvent
Role
RoleLink
SelectionExpression
SortControl
Transmission

Description 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-specifed, 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.50.1

InfrastructureRoot.templateId :: II (0..1)

Attribute description:

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 template in question.


3.50.2

InfrastructureRoot.realmId :: II (0..1)

Attribute description:

When valued in an instance, this attribute signals the imposition of a realm-specific constraints. The value of this attribute provides a uniqye identifier for the realm in question.


3.50.3

InfrastructureRoot.commonTypeID :: II (0..1)

Attribute description:

When valued in an instance, this attribute signals the imposition of constraints defined in an HL7-specified common type (also known as CMET in the messaging communication environment). The value of this attribute provides a unique identifier for the common type in question.


3.50.4

InfrastructureRoot.nullFlavor :: CS (0..1)

Vocabulary domain: NullFlavor (CNE)

Attribute description:

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 flabor of null that is intended.


3.51

Class: LinkHtml (in StructuredDocuments)

href :: ED
name :: ST
rel :: SET<CE>
rev :: SET<CE>
title :: ST

Description of LinkHtml:

LinkHtml is based on the HTML anchor tag, and enables HTML-style hyperlinking semantics.

Attributes of LinkHtml:

3.51.1

LinkHtml.href :: ED (0..1)

Attribute description:

This attribute is part of the HTML anchor tag.


3.51.2

LinkHtml.name :: ST (0..1)

Attribute description:

This attribute is part of the HTML anchor tag.


3.51.3

LinkHtml.rel :: SET<CE> (0..*)

Vocabulary domain: HtmlLinkType (CWE)

Attribute description:

This attribute is part of the HTML anchor tag.


3.51.4

LinkHtml.rev :: SET<CE> (0..*)

Vocabulary domain: HtmlLinkType (CWE)

Attribute description:

This attribute is part of the HTML anchor tag.


3.51.5

LinkHtml.title :: ST (0..1)

Attribute description:

This attribute is part of the HTML anchor tag.


3.52

Class: LocalAttr (in StructuredDocuments)

name :: ST
value :: ST

Description of LocalAttr:

A component used to map local semantics into the exchange standard when local semantics have not yet been standardized.

Attributes of LocalAttr:

3.52.1

LocalAttr.name :: ST (0..1)

Attribute description:

The name of the local attribute.


3.52.2

LocalAttr.value :: ST (0..1)

Attribute description:

The value of the local attribute.


3.53

Class: LocalMarkup (in StructuredDocuments)

descriptor :: ST
render :: ST
ignoreCode :: CS

Description of LocalMarkup:

A component used to map local semantics into the exchange standard when local semantics have not yet been standardized.

Attributes of LocalMarkup:

3.53.1

LocalMarkup.descriptor :: ST (0..1)

Attribute description:

The descriptor attribute describes the element, and the value can be drawn from a local vocabulary domain.


3.53.2

LocalMarkup.render :: ST (0..1)

Attribute description:

The render attribute indicates how the sender would render the contents. The value can be drawn from a local vocabulary domain.


3.53.3

LocalMarkup.ignoreCode :: CS (0..1)

Vocabulary domain: LocalMarkupIgnore (CNE)

Attribute description:

The ignore attribute tells the receiver to ignore just the <local_markup> tag (ignore="markup"), or to ignore the <local_markup> tag and all contained content (ignore="all").


3.54

Class: LogicalExpression (in MessageControl)

relationalConjunctionCode :: CS

Attributes of LogicalExpression:

3.54.1

LogicalExpression.relationalConjunctionCode :: CS (0..1)

Vocabulary domain: SQLConjunction (CNE)

Attribute description:

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.55

Class: Message (in MessageControl)

versionId :: ST
interactionId :: II
profileId :: SET<II>
processingCode :: CS
processingModeCode :: CS
acceptAckCode :: CS
applicationAckCode :: CS
sequenceNumber :: INT
attachmentText :: SET<ED>

Description of Message:

The Message class is the parent class of all HL7 Version 3 messages.

Attributes of Message:

3.55.1

Message.versionId :: ST (0..1)

Attribute description:

This attribute is matched by the receiving system to its own version to be sure the message will be interpreted correctly.

Version 2.x reference:

| MSH^12^00012^Version ID |


3.55.2

Message.interactionId :: II (0..1)

Attribute description:

The interaction identifier is a reference to the unique information interchange derived from the V3 MDF for specifying a message.

Version 2.x reference:

| MSH^9^00009^Message Type |


3.55.3

Message.profileId :: SET<II> (0..*)

Attribute description:

The message profile identifier allows a given implementation to explicitly state how it varies from the standard message definition.


3.55.4

Message.processingCode :: CS (0..1)

Vocabulary domain: ProcessingID (CNE)

Attribute description:

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.55.5

Message.processingModeCode :: CS (0..1)

Vocabulary domain: ProcessingMode (CNE)

Attribute description:

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.55.6

Message.acceptAckCode :: CS (0..1)

Vocabulary domain: AcknowledgmentCondition (CNE)

Attribute description:

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.55.7

Message.applicationAckCode :: CS (0..1)

Vocabulary domain: AcknowledgmentCondition (CNE)

Attribute description:

This attribute contains conditions under which application level acknowledgements are to be returned in response to this message.

Version 2.x reference:

| MSH^16^00016^Application Acknowledgement Type |


3.55.8

Message.sequenceNumber :: INT (0..1)

Attribute description:

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.55.9

Message.attachmentText :: SET<ED> (0..*)

Attribute description:

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: 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.56

Class: Parameter (in MessageControl)

id :: II

ParameterItem
ParameterList

Description of Parameter:

The Parmeter 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.56.1

Parameter.id :: II (0..1)

Attribute description:

The Parameter.id can assist in tracing problems with implementing the query-by-parameter mechanism.


3.57

Class: ParameterItem (in MessageControl)

value :: ANY
semanticsText :: ST

Description of ParameterItem:

Represents a valued element structure for the element specified in the query response.

Attributes of ParameterItem:

3.57.1

ParameterItem.value :: ANY (0..1)

Attribute description:

Represents a valued element structure for the element specified in the query response.


3.57.2

ParameterItem.semanticsText :: ST (0..1)

Attribute description:

The ParameterItem.typeCode attribute provides a unique identification to an element within a specified query response structure.


3.58

Class: ParameterList (in MessageControl)

Description of ParameterList:

Specifies a named list of parameters (name/value pairs) that is referenced in a query conformance statement.

3.59

Class: QueryAck (in MessageControl)

queryResponseCode :: CS
resultTotalQuantity :: INT
resultCurrentQuantity :: INT
resultRemainingQuantity :: INT

Description of QueryAck:

This class carries information sent with responses to a query.

Attributes of QueryAck:

3.59.1

QueryAck.queryResponseCode :: CS (0..1)

Vocabulary domain: QueryStatus (CNE)

Attribute description:

This attribute allows the responding system to return a precise response status.

Version 2.x reference:

| QAK^2^00708^Query Response Status |


3.59.2

QueryAck.resultTotalQuantity :: INT (0..1)

Attribute description:

Specifies total number of instance matches for query specification associated with this query response instance.


3.59.3

QueryAck.resultCurrentQuantity :: INT (0..1)

Attribute description:

Specifies number of matches for processed query specification that occur in current bundle of matches.


3.59.4

QueryAck.resultRemainingQuantity :: INT (0..1)

Attribute description:

Specifies number of matches for processed query specification that have yet to be sent to receiver.


3.60

Class: QueryByParameter (in MessageControl)

Description 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.61

Class: QueryBySelection (in MessageControl)

Description 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.62

Class: QueryContinuation (in MessageControl)

startResultNumber :: INT
continuationQuantity :: INT

Description 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.62.1

QueryContinuation.startResultNumber :: INT (0..1)

Attribute description:

Specifies the instance number in the original query result set to start return in next query response message.


3.62.2

QueryContinuation.continuationQuantity :: INT (0..1)

Attribute description:

Specifies the number of instance matches to return in the next query response message.


3.63

Class: QueryEvent (in MessageControl)

queryId :: II
statusCode :: CS

QueryAck
QueryContinuation
QuerySpec

Description 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.63.1

QueryEvent.queryId :: II (0..1)

Attribute description:

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.63.2

QueryEvent.statusCode :: CS (0..1) Mandatory

Vocabulary domain: QueryEventStatus (CWE)


3.64

Class: QuerySpec (in MessageControl)

modifyCode :: CS
responseElementGroupId :: SET<II>
responseModalityCode :: CS
responsePriorityCode :: CS
initialQuantity :: INT
initialQuantityCode :: CE
executionAndDeliveryTime :: TS

QueryByParameter
QueryBySelection

Description 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.64.1

QuerySpec.modifyCode :: CS (0..1)

Vocabulary domain: ModifyIndicator (CNE)

Attribute description:

Indicates whether the subscription to a query is new or is being modified.


3.64.2

QuerySpec.responseElementGroupId :: SET<II> (0..*)

Attribute description:

The responseElementGroupId identifies the specific message_type to be returned in the query response. This message_type must be chosed from the set of message types supported by the receiver responsibilities associated with the query interaction.


3.64.3

QuerySpec.responseModalityCode :: CS (0..1)

Vocabulary domain: ResponseModality (CNE)

Attribute description:

Defines the timing and grouping of the response instances.


3.64.4

QuerySpec.responsePriorityCode :: CS (0..1)

Vocabulary domain: QueryPriority (CNE)

Attribute description:

Identifies the time frame in which the response is expected.

Version 2.x reference:

| QRD^3^00027^Query Priority |


3.64.5

QuerySpec.initialQuantity :: INT (0..1)

Attribute description:

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.64.6

QuerySpec.initialQuantityCode :: CE (0..1)

Vocabulary domain: QueryRequestLimit (CWE)

Attribute description:

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.64.7

QuerySpec.executionAndDeliveryTime :: TS (0..1)

Attribute description:

Specifies the time the response is to be returned.


3.65

Class: RelationalExpression (in MessageControl)

elementName :: SC
relationalOperatorCode :: CS
value :: ST

Attributes of RelationalExpression:

3.65.1

RelationalExpression.elementName :: SC (0..1)

Vocabulary domain: RelationalName (CWE)

Attribute description:

Identifies RIM element as subject of selection criteria evaluation.


3.65.2

RelationalExpression.relationalOperatorCode :: CS (0..1)

Vocabulary domain: RelationalOperator (CNE)

Attribute description:

Identifies common relational operators used in selection criteria.

Version 2.x reference:

| VTQ^5^00700^Selection Criteria |


3.65.3

RelationalExpression.value :: ST (0..1)

Attribute description:

Value supplied for comparison using criteria.

Version 2.x reference:

| VTQ^5^00700^Selection Criteria |


3.66

Class: SelectionExpression (in MessageControl)

LogicalExpression
RelationalExpression

3.67

Class: SortControl (in MessageControl)

sequenceNumber :: INT
elementName :: SC
directionCode :: CS

Description of SortControl:

Holds specification of sort order for instance matches to a query.

Attributes of SortControl:

3.67.1

SortControl.sequenceNumber :: INT (0..1)


3.67.2

SortControl.elementName :: SC (0..1)

Vocabulary domain: ElementName (CWE)

Attribute description:

Identifies a RIM element in a query response.


3.67.3

SortControl.directionCode :: CS (0..1)

Vocabulary domain: Sequencing (CNE)

Attribute description:

Specifies sequence of sort order.


3.68

Class: Table (in StructuredDocuments)

summary :: ST
width :: ST
rules :: CS
cellspacing :: ST
cellpadding :: ST
border :: INT
frame :: CS

Description of Table:

A container consisting of multiple cells arranged in rows and columns.

Attributes of Table:

3.68.1

Table.summary :: ST (0..1)

Attribute description:

This attribute is part of the XHTML table model.


3.68.2

Table.width :: ST (0..1)

Attribute description:

This attribute is part of the XHTML table model.


3.68.3

Table.rules :: CS (0..1)

Vocabulary domain: TableRules (CNE)

Attribute description:

This attribute is part of the XHTML table model.


3.68.4

Table.cellspacing :: ST (0..1)

Attribute description:

This attribute is part of the XHTML table model.


3.68.5

Table.cellpadding :: ST (0..1)

Attribute description:

This attribute is part of the XHTML table model.


3.68.6

Table.border :: INT (0..1)

Attribute description:

This attribute is part of the XHTML table model.


3.68.7

Table.frame :: CS (0..1)

Vocabulary domain: TableFrame (CNE)

Attribute description:

This attribute is part of the XHTML table model.


3.69

Class: TableCell (in StructuredDocuments)

scope :: CS
abbr :: ST
axis :: ST
colspan :: INT
headers :: SET<ED>
rowspan :: INT

Description of TableCell:

A cell in a table.

Attributes of TableCell:

3.69.1

TableCell.scope :: CS (0..1)

Vocabulary domain: TableCellScope (CNE)

Attribute description:

This attribute is part of the XHTML table model.


3.69.2

TableCell.abbr :: ST (0..1)

Attribute description:

This attribute is part of the XHTML table model.


3.69.3

TableCell.axis :: ST (0..1)

Attribute description:

This attribute is part of the XHTML table model.


3.69.4

TableCell.colspan :: INT (0..1)

Attribute description:

This attribute is part of the XHTML model.


3.69.5

TableCell.headers :: SET<ED> (0..*)

Attribute description:

This attribute is part of the XHTML table model.


3.69.6

TableCell.rowspan :: INT (0..1)

Attribute description:

This attribute is part of the XHTML model.


3.70

Class: TableColumnStructure (in StructuredDocuments)

span :: INT
width :: ST

Description of TableColumnStructure:

A table column or column group.

Attributes of TableColumnStructure:

3.70.1

TableColumnStructure.span :: INT (0..1)

Attribute description:

This attribute is part of the XHTML table model.


3.70.2

TableColumnStructure.width :: ST (0..1)

Attribute description:

This attribute is part of the XHTML table model.


3.71

Class: TableStructure (in StructuredDocuments)

char :: ST
charoff :: ST
halign :: CS
valign :: CS

TableCell
TableColumnStructure

Description of TableStructure:

A table structure is either a column structure, a row structure, or a table cell.

Attributes of TableStructure:

3.71.1

TableStructure.char :: ST (0..1)

Attribute description:

This attribute is part of the XHTML table model.


3.71.2

TableStructure.charoff :: ST (0..1)

Attribute description:

This attribute is part of the XHTML table model.


3.71.3

TableStructure.halign :: CS (0..1)

Vocabulary domain: TableCellHorizontalAlign (CNE)

Attribute description:

This attribute is part of the XHTML table model.


3.71.4

TableStructure.valign :: CS (0..1)

Vocabulary domain: TableCellVerticalAlign (CNE)

Attribute description:

This attribute is part of the XHTML table model.


3.72

Class: Transmission (in MessageControl)

id :: II
creationTime :: TS
securityText :: ST

Batch
Message

Description of Transmission:

Represents information about a specific transmission of information from one application to another.

Attributes of Transmission:

3.72.1

Transmission.id :: II (0..1)

Attribute description:

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.72.2

Transmission.creationTime :: TS (0..1)

Attribute description:

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.72.3

Transmission.securityText :: ST (0..1)

Attribute description:

This attribute is specified for applications to implement security features for a transmission. Its uses is not further specified at this time.

Version 2.x reference:

| FHS^8^00074^File Security |

| BHS^8^00088^Batch Security |


4

Associations in HL7 Reference Information Model

4.1

(0..*)   Acknowledgement :: acknowledgedMessage :: (1..1) Message :: acknowledgement

This connection shows the relationship of the acknowledgement to a specific HL7 V3 message

4.2

(0..1)   Acknowledgement :: acknowledgingMessage :: (1..1) Message :: payload

This relationship indicates the association of the Acknowledgement class in an HL7 V3 acknowledgement message.

4.3

(0..1)   AcknowledgementMessage :: acknowledgement :: (0..*) Acknowledgement :: annotatedBy

4.4

(0..*)   ActRelationship :: source :: (1..1) Act :: outboundRelationship

4.5

(0..*)   ActRelationship :: target :: (1..1) Act :: inboundRelationship

4.6

(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.7

(0..1)   Batch :: transmission :: (0..*) Transmission :: batch

4.8

(0..1)   ControlAct :: payload :: (0..*) Message :: controlAct

Message_interactions are the payloads of Messages. This is navigable in one direction only from Message to Message_interaction.

OpenIssue: Examine the symmetry between the way messages and documents relate to the RIM including the way messages.

4.9

(1..*)   Entity :: communicationFunction :: (0..*) CommunicationFunction :: entity

This relationship allows the entities playing the various communication functions to be identified.

4.10

(1..1)   Entity :: languageCommunication :: (0..*) LanguageCommunication :: entity

4.11

(0..*)   Parameter :: queryByParameter :: (0..1) QueryByParameter :: parameter

4.12

(0..1)   ParameterList :: parameter :: (0..*) Parameter :: parameterList

Specifies the relationship between a parameter list and the parameters which are its content.

4.13

(0..*)   Participation :: act :: (1..1) Act :: participation

4.14

(0..*)   Participation :: role :: (1..1) Role :: participation

4.15

(0..1)   QueryEvent :: controlAct :: (1..1) ControlAct :: queryEvent

4.16

(0..*)   Role :: player :: (0..1) Entity :: playedRole

The following constraint applies to this association:

Invariant (Role x) { not(x.played_by.equals(null)) or not(x.scoped_by.equals(null)) }

4.17

(0..*)   Role :: scoper :: (0..1) Entity :: scopedRole

The following constraint applies to this association:

Invariant (Role x) { not(x.played_by.equals(null)) or not(x.scoped_by.equals(null)) }

4.18

(0..*)   RoleLink :: source :: (1..1) Role :: outboundLink

4.19

(0..*)   RoleLink :: target :: (1..1) Role :: inboundLink

4.20

(0..*)   SelectionExpression :: leftSide :: (0..1) LogicalExpression :: userAsLeft

4.21

(0..*)   SelectionExpression :: queryBySelection :: (1..1) QueryBySelection :: selectionExpression

4.22

(0..*)   SelectionExpression :: rightSide :: (0..1) LogicalExpression :: userAsRight

4.23

(0..*)   SortControl :: querySpec :: (1..1) QuerySpec :: sortControl

4.24

(1..*)   Transmission :: communicationFunction :: (0..*) CommunicationFunction :: transmission

This relation links a transmission to its sender, receiver, call-back party, etc.


1

Appendix A - Overview of the RIM

1.1

Purpose

This document is meant to serve as an "Executive Summary" of the basic concepts and rationale behind the design and development of the HL7 Reference Information Model (RIM). It is not meant to be an "application guide" on RIM usage although several partial examples of usage are presented when they are deemed helpful in explaining the fundamental design and development concepts of the RIM.

1.2

Overview

A Reference Information Model (RIM) is constructed to facilitate consistent sharing and usage of data across multiple "local" contexts. In general, the broader the scope of interest, the more important it is to make explicit all assumptions about a topic or domain-of-interest. The HL7 Version 3 RIM is designed to provide a unified framework for, and to serve as a comprehensive source of, all information used by an HL7 Specification . The RIM specifically and unambiguously articulates both the explicit definitions of healthcare concepts - the "things of interest" to the world of healthcare information systems - and the relationships (aka "associations") between these concepts-of-interest.

HL7 V3 Specifications (e.g. HL7 V3 messages, structured documents, etc.) permit loosely-coupled information systems to interoperate (i.e. exchange data) in a variety of healthcare delivery contexts including those found in disparate provider organizations, perspectives, and jurisdictions. The scope of the HL7 RIM therefore includes all of the information that is required to be sent between, and processed by, participating healthcare information systems. In addition, it should be noted that the RIM does not model (nor need to model) information stored by a given healthcare information system but never transmitted to another system.

The RIM is expressed using a visual modeling syntax based on the Unified Modeling Language (UML). (Specific variances between "standard UML" and "HL7 UML" as manifest in the RIM, such as the placement of association names, are currently under review by the HL7 Modeling and Methodology Technical Committee with the goal of moving to a maximum alignment between the two syntaxes.) HL7 also maintains a database ("RIM repository") containing the details of each RIM concept, attribute, and association including the item's rationale, definition, constraints, and edit/change history. At some point in the future, any or all of this information may be formally published in an HL7-specific UML profile.

It is important to note that the RIM is not intended to be a logical or physical model of a database, a design for a particular vendor's information system, or a perspective focused on a particular healthcare organization or enterprise. In fact, the RIM is not intended to represent a particular set of HL7 messages, but rather the collective universe of data and relationships from which any relevant HL7 message could be constructed. Specific users of the RIM are expected to utilize relevant portions of the RIM as needed, adopting its content to their own information modeling needs and notations.

1.3

The Rationale Behind the RIM's Design

The overarching structure of the RIM is based on six "core" classes: Act, Entity, Role, Participation, ActRelationship, and RoleLink. Each class is defined in Section 1.4. Following is a discussion of the fundamental thinking behind, and basic usage guidelines for, the six classes and their inter-relationships.

The HL7 RIM identifies two major "high-level" concepts that are fundamental to understanding the world of healthcare information: intentional "actions" or "services" (Acts), and "people, places and things" that are of interest in the world of healthcare (Entities).

The concept "Act" (and its subclasses) represents all of the intentional actions documented by a healthcare professional in either a clinical or administrative context. The presence of the Act class as one of the core RIM classes is a reflection of HL7's view that "from a messaging/system communication perspective, healthcare consists of a series of attributed, intentional actions."" Thus, instances of the class/concept Act include both clinical observations (e.g. patient temperature) and interventions (e.g. administer medication), and administrative actions (e.g. admit patient). Note that in this "act-centered" view of healthcare, the act of an observation takes on two seemingly contradictory meanings: "the act of recognizing and documenting a particular fact," and "the description of the thing observed." In other words, an instance of an Observation Act represents both the attributed act of observing and the results of the observation. Both aspects of this expanded definition of an Observation Act are captured by specific attributes of the class Act or its subclass Observation.

The concept "Entity" (and its subclasses) includes all living subjects (e.g. persons, animals), organizations (e.g. formal and informal), materials (e.g. durable and non-durable goods, food, tissue, containers,), and places that may be of interest in a healthcare messaging context. It should be noted that the concept of "collection of information" (e.g. a medical record) is not a instance or subclass of Entity, but is instead considered as a collection of attributed Acts.

The RIM places two additional classes - Role and Participation - between Act and Entity. The Role class models several important concepts that are prevalent in the healthcare delivery domain. First, Role captures the fact that the various "static" entities may "temporally" assume one or more "roles" (e.g. patient, primary care physician, responsible party, Registered Nurse etc.) in a particular healthcare context. Second, the concepts of "capability" (e.g. Advanced Cardiac Life Support) and "certification" (e.g. Licensed Practical Nurse) are also modeled using instances of the Role class. Finally, careful examination of the multiplicity (0..1) and names (scoper, player) of the two associations between Entity and Role reveals that the Role class can be used to "group" instances of Entity.

It is important to distinguish the concept of Entity-in-a-Role from the Act-specific concept of "the function-based role played by an Entity-in-a-Role in the context of a specific Act." These semantics are modeled using instances of the Participation class. For example, an Anesthesia Resident (Entity-in-a-Role) administers anesthesia (Participation as "provider" in the Act "administer anesthesia") to a patient (Participation as a 'recipient" in the Act "administer anesthesia." Note that the absence of a direct association between the Participation and Entity classes is a manifestation of an underlying HL7 RIM assumption that all instances of Entity involved in an Act are participating in the Act in a particular Role.

In summary, both the Participation and the Role classes are necessary to fully model the complex semantics that exist between instances of Entity and Act, and a concise summary of the HL7 RIM's view of healthcare can be stated as follows: At the highest level of abstraction, healthcare consists of a series of intentional, attributed Acts performed to, by, on behalf of, utilizing or in some way involving one or more instances of a Participating ("as primary provider," etc.) Entity-in-a-Role ("John Smith in the role of Patient").

The two remaining classes in the RIM - ActRelationship and RoleLink - are used to "associate" or "link" instances of the class with which it is associated. The class RoleLink is used to establish a "dependency-based link" (e.g. accountability, chain-of-trust, etc.) between two instances of an Entity-in-a-Role. The semantics of ActRelationship are explained below.

1.4

Linking Acts Together: The Semantics of ActRelationship

An understanding of the semantics and application of ActRelationship begins with, an understanding of the "fractal" or "robotic arm" nature of a set of Acts. This perspective is, in turn, best viewed from the overarching framework of the categorization of three types of "collecting relationships" represented by instances of ActRelationship: whole/part (e.g. lab or test batteries (see the discussion of the "robotic arm" below); rule-based (e.g. care plans, protocols, etc.); and cognitive actions (e.g. judgment, renaming, replacement, subsumption, supported by/reason for, etc.).

Regarding the "fractal" or "robotic arm" discussion, As mentioned above, instances of ActRelationship can be used to model the "fractal" or "robotic arm" notion behind a "whole/part" relationship. Consider a surgical procedure such as a laparoscopic cholecystectomy. The procedure may be represented as a single instance of Act, or, alternatively, as a "collection" of (partially ordered) instances of Act each of which is a finer granularity than the entire procedure, e.g. obtain consent, administer pre-op medication, administer anesthesia (throughout the surgical procedure), make the incision, etc. In turn, for any of the more finely granulated actions just mentioned, further granulation/decomposition may occur. The degree of granularity is clearly dependent on the context of the action(s) and the interest level/perspective of the party performing (or not performing) the decomposition. Figure 1 shows a "surgeon's-eye view" of some of the instances of Act and ActRelationship for the exemplar cholecystectomy..

Example of sequential plan construction for laparoscopic cholecystectomy.  Edged boxes are Act instances (all in definition, or 'master' mood.)  Rounded boxes are ActRelationship instances of type: has-component.  The sequenceNumber attribute orders the relationships into a sequence.  Each act can in turn be decomposed into plan-components.

Figure 12: Example of sequential plan construction for laparoscopic cholecystectomy. Edged boxes are Act instances (all in definition, or 'master' mood.) Rounded boxes are ActRelationship instances of type: has-component. The sequenceNumber attribute orders the relationships into a sequence. Each act can in turn be decomposed into plan-components.

In summary, the classes Act and ActRelationship have been designed to allow for representing the rich semantics of each of three types of collections mentioned above at whatever coarseness or fineness of granularity is appropriate to the specific messaging context. In addition, the various of types of collections and levels of granularity represented by instances of ActRelationship can (and will) be expected to be used to collectively capture the complex semantics of clinical reasoning, e.g. an instance of ActRelationship (e.g. "supported by") could be used to form a link from an instance of an observation Act representing a specific lab test (e.g. sedimentation rate = 48 to an instance of an observation Act representing a particular diagnosis (e.g. DX = Systemic Lupus Erythematosus).

1.5

Definitions of the Six Core Rim Classes

1.5.1

Act

An Act is an action of interest that has happened, can happen, is happening, is intended to happen, or is requested/demanded to happen. An act is an intentional action in the business domain of HL7. Healthcare (and any profession or business) is constituted of intentional actions. An Act instance is a record of such an intentional action.

1.5.2

Entity

An Entity is a class or specific instance of a physical thing or an organization/group of physical things capable of participating in Acts; an artifact. This includes living subjects, organizations, material, and places. The Entity hierarchy encompasses human beings, organizations, living organisms, devices, pharmaceutical substances, etc. It does not include events/acts/actions, the definition of things, or the roles that things can play (e.g. patient, provider).

1.5.3

Role

A Role is a categorization of competency of the Entity that plays the Role as defined by the Entity that scopes the Role.

An Entity, in a particular Role, can participate in an Act. 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 is limited to the scope of an Act.

Each role is 'played' by one Entity (the Entity that is in the role) and is usually 'scoped' by another. Thus the Role of 'patient' is played by (usually) a person and scoped by the provider from whom the patient will receive services. Similarly, the employer scopes an Employee role.

1.5.4

Participation

A Participation is an association between a Role and an Act. The Participation represents the involvement of the Entity playing the Role with regard to the associated Act. A single Role may participate in multiple Acts and a single Act may have multiple participating Roles. A single Participation is always an association between a particular Role and a particular Act. Participation is limited to the scope of the Act, as opposed to Role, which defines the competency of an Entity irrespective of any Act.

1.5.5

ActRelationship

An ActRelationship is an association between a pair of Acts. This includes Act to Act associations such as collector/component, predecessor/successor, and cause/outcome.

The class has two associations to the Act class, one named "source" the other named "target". .... Since the relationships associated with an Act are considered properties of the source act object. That means that the originator of the information reported in an act object is not only responsible for the attribute values of that object, but also for all its outgoing relationships.

The rule of attribution is that all act relationships are attributed to the responsible actor of the Act at the source of the ActRelationship (the "source act".)

1.5.6

RoleLink

A RoleLink is a connection between two roles expressing a dependency between those roles.

1.5.7

Sub Classes of Act, Entity and Role

Entity, Act and Role are "high-level" classes, although they are not "abstract" classes in the formal sense (i.e. meaningful instances of both classes are quite common). As a result, it has been necessary to define a number of more specialized subclasses of these three classes to specify the additional data (class attributes) required in more specific contexts (e.g. the Observation subclass of Act and the Living Subject and Material subclasses of Entity). . Attributes of a subclass must be both useful and unique to that subclass. Subclasses inherit all of the attributes of their parent superclass.

There are meaningful subclasses in each of these hierarchies that do not require additional attributes, and therefore are not represented as classes in the RIM. The "classCode" attribute in each of these hierarchies specifies which class is represented. The code set that can be used with the "classCode" attributes are tightly controlled by HL7. A second attribute in each hierarchy, the "code" attribute provides a further classification of subtypes of each subclass.

1.5.8

The Concept of Mood

The Act class represents intentional actions. These actions can exist in different "moods". Moods describe activities as they progress in the business cycle, from defined, through planned and ordered to complete. The mood of an Act is specified by the value of the Act.moodCode attribute.

Any instance of an Act assumes one and only one mood and will not change its mood along its life cycle. The moods - definition, intent, order, event - seem to specify a life cycle of an activity. However, the participants in the activity in these different moods are different, as is the data. Therefore, the mood of an Act instance is static. The progression actualization (i.e., the progression from defined, through planned and ordered, to being performed) is called the "business cycle" to distinguish it from the "life cycle" of a single act instance. Related Act instances that form such a "business cycle" are linked through the ActRelationship class.

1.6

Data Types and Vocabulary Domains

The RIM class, attribute and association definitions provide detail about logical meaning, but a full specification requires data types and domains. Data Types define the allowable values of attributes and what these values "mean." Data types are therefore the fundamental building blocks that shape (and constrain) all the semantics that can ultimately expressed in the RIM. Data types are represented in the RIM repository rendered in a style similar to that of the RIM. (It should be noted that this visual representation of the RIM Data Types is not the normative form and is not entirely correct. The normative form can be found in the Data Types Specification Part II).

Vocabulary Domains are also explicitly defined in the RIM repository. They document cross-reference and alternative representations among coding systems, while keeping track of the logical concepts being expressed by each code. Each attribute of each class may only be expressed using specific Data Types and Vocabulary Domains.

1.7

HL7 Version 3 Methodology and the RIM

In summary, the primary motivation for the development of the RIM was the desire to clearly define the various data elements and relationships that comprise the healthcare information space. A direct outgrowth of this knowledge explication exercise is the ability to reuse the same concept in multiple healthcare messages. The complete process of defining a message is defined and discussed in the V3 Guide and accompanying HL7 Message Definition Framework (MDF). The basic steps include definition and documentation of the data interchange needs (e.g. a set of messages to support a particular clinical or administrative process) via a Storyboard, the selection/restriction of the RIM to those classes and attributes needed to populate the given message, and the subsequent application of additional constraints on number and possible values of each attribute.

Refer to the HL7 Version 3 Guide and MDF for further information.

2

Appendix B - Summary of Version 3 Data Types

2.1

Overview of Data Types

The following table summarizes the definition of each of the data types being balloted as part of HL7 Version 3, as of December 2, 2002. Subsequent RIM ballots will accomany a complete data tyoe specification and will provide direct hyper-links to those specifications.

Table 1: Overview of HL7 version 3 data types
Name Symbol Description
DataValue ANY Defines the basic properties of every data value. This is an abstract type, meaning that no value can be just a data value without belonging to any concrete type. Every concrete type is a specialization of this general abstract DataValue type.
Boolean BL The Boolean type stands for the values of two-valued logic. A Boolean value can be either true or false, or, as any other value may be NULL.
Encapsulated Data ED Data that is primarily intended for human interpretation or for further machine processing outside the scope of HL7. This includes unformatted or formatted written language, multimedia data, or structured information in as defined by a different standard (e.g., XML-signatures.) Instead of the data itself, an ED may contain only a reference (see TEL.) Note that the ST data type is a specialization of the ED data type when the ED media type is text/plain.
Character String ST The character string data type stands for text data, primarily intended for machine processing (e.g., sorting, querying, indexing, etc.) Used for names, symbols, and formal expressions.
Concept Descriptor CD A concept descriptor represents any kind of concept usually by giving a code defined in a code system. A concept descriptor can contain the original text or phrase that served as the basis of the coding and one or more translations into different coding systems. A concept descriptor can also contain qualifiers to describe, e.g., the concept of a "left foot" as a postcoordinated term built from the primary code "FOOT" and the qualifier "LEFT". In exceptional cases, the concept descriptor need not contain a code but only the original text describing that concept.
Coded Simple Value CS Coded data in its simplest form, where only the code and display name is not predetermined. The code system and code system version is fixed by the context in which the CS value occurs. CS is used for coded attributes that have a single HL7-defined value set.
Coded With Equivalents CE Coded data that consists of a coded value (CV) and, optionally, coded value(s) from other coding systems that identify the same concept. Used when alternative codes may exist.
Character String with Code SC A Character String that optionally may have a code attached. The text must always be present if a code is present. The code is often a local code.
Instance Identifier II An identifier that uniquely identifies a thing or object. Examples are object identifier for HL7 RIM objects, medical record number, order id, service catalog item id, Vehicle Identification Number (VIN), etc. Instance identifiers are defined based on ISO object identifiers.
Telecommunication Address TEL A telephone number (voice or fax), e-mail address, or other locator for a resource mediated by telecommunication equipment. The address is specified as a Universal Resource Locator (URL) qualified by time specification and use codes that help deciding which address to use for a given time and purpose.
Postal Address AD Mailing and home or office addresses. A sequence of address parts, such as street or post office Box, city, postal code, country, etc.
Entity Name EN A name for a person, organization, place or thing. A sequence of name parts, such as first name or family name, prefix, suffix, etc. Examples for entity name values are "Jim Bob Walton, Jr.", "Health Level Seven, Inc.", "Lake Tahoe", etc. An entity name may be as simple as a character string or may consist of several entity name parts, such as, "Jim", "Bob", "Walton", and "Jr.", "Health Level Seven" and "Inc.", "Lake" and "Tahoe".
Trivial Name TN A restriction of entity name that is effectively a simple string used for a simple name for things and places.
Person Name PN A name for a person. A sequence of name parts, such as first name or family name, prefix, suffix, etc.
Organization Name ON A name for an organization. A sequence of name parts.
Integer Number INT Integer numbers (-1,0,1,2, 100, 3398129, etc.) are precise numbers that are results of counting and enumerating. Integer numbers are discrete, the set of integers is infinite but countable. No arbitrary limit is imposed on the range of integer numbers. Two NULL flavors are defined for the positive and negative infinity.
Real Number REAL Fractional numbers. Typically used whenever quantities are measured, estimated, or computed from other real numbers. The typical representation is decimal, where the number of significant decimal digits is known as the precision.
Ratio RTO A quantity constructed as the quotient of a numerator quantity divided by a denominator quantity. Common factors in the numerator and denominator are not automatically cancelled out. The RTO data type supports titers (e.g., "1:128") and other quantities produced by laboratories that truly represent ratios. Ratios are not simply "structured numerics", particularly blood pressure measurements (e.g. "120/60") are not ratios. In many cases the REAL should be used instead of the RTO.
Physical Quantity PQ A dimensioned quantity expressing the result of measuring.
Monetary Amount MO A monetary amount is a quantity expressing the amount of money in some currency. Currencies are the units in which monetary amounts are denominated in different economic regions. While the monetary amount is a single kind of quantity (money) the exchange rates between the different units are variable. This is the principle difference between physical quantity and monetary amounts, and the reason why currency units are not physical units.
Point in Time TS A a quantity specifying a point on the axis of natural time. A point in time is most often represented as a calendar expression.
Set SET A value that contains other distinct values in no particular order.
Sequence LIST A value that contains other discrete values in a defined sequence.
Bag BAG An unordered collection of values, where each value can be contained more than once in the bag.
Interval IVL A set of consecutive values of an ordered base data type.
History HIST A set of data values that conform to the history item (HXIT) type, (i.e., that have a valid-time property). The history information is not limited to the past; expected future values can also appear.
Uncertain Value - Probabilistic UVP A generic data type extension used to specify a probability expressing the information producer's belief that the given value holds.
Parametric Probability Distribution PPD A generic data type extension specifying uncertainty of quantitative data using a distribution function and its parameters. Aside from the specific parameters of the distribution, a mean (expected value) and standard deviation is always given to help maintain a minimum layer of interoperability if receiving applications cannot deal with a certain probability distribution.
General Timing Specification GTS A set of points in time, specifying the timing of events and actions and the cyclical validity-patterns that may exist for certain kinds of information, such as phone numbers (evening, daytime), addresses (so called "snowbirds," residing in the south during winter and north during summer) and office hours.