This page is part of the FHIR Specification (v0.05: DSTU 1 Draft). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions


Fast Health Interoperability Resources (FHIR) v0.05

This is an old version of FHIR retained for archive purposes. Do not use for anything else

Ballot Notes for FHIR Draft for Comment ballot

Welcome to the FHIR Draft for comment ballot + Connectathon Source. This is the "book form" of FHIR, with all the contents in a single stream with section numbers. The section numbers are used when making ballot comments. You can can download this book form and compare previous versions of FHIR at the FHIR home page (http://hl7.org/fhir). You can also go to that page for more information about implementation support and how to engage in the FHIR development process.

This ballot is restricted to the infrastructural parts. Specifically, this is the "Introduction" and "Implementation" sections, or sections 1.*, 2.*, 4.1-4.8 and 5.1-5.9. Comments may be made against the Resources but there is no guarantee that they will ever be acted on.

As draft for comment, there are still several open issues around the the FHIR specification.

Additional open issues can be found in the text of the specification and on the FHIR active discussions wiki page. Contributions on the wiki in addition to (or in place of) ballot feedback is more than welcome.

It is expected that these will be resolved between this ballot and the next, particularly through feedback from the connectathon.

FHIR is a very implementation focused specification. Ballot comments representing real world experience will attract a greater weight; reference the implementation context in your comments where possible.

The FHIR project team is


Table of Contents

1: Introduction (§1.0)
  1.1: Roadmap (§1.1)
  1.2: Resource Format (§1.2)
  1.3: Data Types (§1.3)
  1.4: Using Codes (§1.4)
  1.5: Extensibility (§1.5)
  1.6: Resource Profiles (§1.6)
2: Implementation (§2.6)
  2.1: REST (HTTP) (§2.1)
  2.2: Messaging (§2.2)
  2.3: Documents (§2.3)
  2.4: hData Integration (§2.4)
  2.5: Atom Feeds
  2.6: Value Set (§2.6)
  2.7: Conformance (§2.7)
3: Resources (§3.7)
  3.1: Agent (§3.1)
  3.2: Animal (§3.2)
  3.3: AssessmentScale (§3.3)
  3.4: LabReport (§3.4)
  3.5: Organization (§3.5)
  3.6: Patient (§3.6)
  3.7: Person (§3.7)
  3.8: Prescription (§3.8)
4: Examples
  4.1: Resource Format (§4.1.1)
  4.2: Data types (§4.2.1)
  4.3: Extensibility (§4.3.1)
  4.4: Agent (§4.4)
  4.5: Animal (§4.5)
  4.6: AssessmentScale (§4.6)
  4.7: Conformance (§4.7)
  4.8: DocumentHeader (§4.8)
  4.9: LabReport (§4.9)
  4.10: MessageHeader (§4.10)
  4.11: Organization (§4.11)
  4.12: Patient (§4.12)
  4.13: Person (§4.13)
  4.14: Prescription (§4.14)
  4.15: Profile (§4.15)
  4.16: ValueSet (§4.16)
5: Formal Definitions
  5.1: Terminology Bindings (§5.1.1)
  5.2: XML (§5.2.1)
  5.3: Data Types (§5.3.1)
  5.4: Extensibility (§5.4.1)
  5.5: Agent (§5.5)
  5.6: Animal (§5.6)
  5.7: AssessmentScale (§5.7)
  5.8: Conformance (§5.8)
  5.9: DocumentHeader (§5.9)
  5.10: LabReport (§5.10)
  5.11: MessageHeader (§5.11)
  5.12: Organization (§5.12)
  5.13: Patient (§5.13)
  5.14: Person (§5.14)
  5.15: Prescription (§5.15)
  5.16: Profile (§5.16)
  5.17: ValueSet (§5.17)


1: Introduction

1.0: Welcome to FHIR

Fast Healthcare Interoperability Resources (FHIR) defines a set of "resources" for health. These resources represent granular clinical concepts that can be exchanged in order to quickly and effectively solve problems in healthcare and related processes. The resources cover the basic elements of healthcare - patients, admissions, diagnostic reports, medications and problem lists - with their typical participants and also support a range of richer and more complex clinical models. The simple direct definitions of the resources are based on thorough requirements gathering, formal analysis and extensive cross-mapping to other relevant standards.

 

1.0.1: FHIR License

FHIR plain English license:

  • FHIR is © HL7. The right to maintain FHIR remains vested in HL7
  • You can redistribute FHIR
  • You can create derivative specifications or implementation-related products and services
  • Derivative Specifications cannot redefine what conformance to FHIR means
  • You can't claim that HL7 or any of its members endorses your derived [thing] because it uses content from this specification
  • Neither HL7 nor any of the contributors to this specification accept any liability for your use of FHIR

Note: Why not use a standard open source license? We'd like to use Creative Commons (http://creativecommons.org/) or a license listed here (http://opensource.org/licenses/alphabetical) , but none of them actually deliver on the plain English intent above in important ways. We aspire to meet these requirements from the Open Source Initiative (http://opensource.org/osr-intro) , though patents are a problem (http://xml.coverpages.org/patents.html) .

While we resolve the questions around the long term license, the following license, adapted from the OMG (http://www.omg.org) (thanks for allowing this), applies:

Subject to all of the terms and conditions below, HL7 hereby grants you a fully-paid up, non-exclusive, non-transferable, perpetual, worldwide license (without the right to sublicense) to use this specification to create and distribute software and special purpose specifications that are based upon this specification and to use, copy and distribute this specification as provided under the United States Copyright Act; provided that:

  1. both the copyright notice identified above and this permission notice appear on any copies of this specification;
  2. the use of the specifications is for informational purposes and will not be resold or transferred for commercial purposes;
  3. no modifications are made to this specification.

This limited permission automatically terminates without notice if you breach any of these terms or conditions. Upon termination, you will destroy immediately any copies of the specifications in your possession or control.

GENERAL USE RESTRICTIONS

Any unauthorized use of this specification may violate copyright laws, trademark laws, and communications regulations and statutes. This document contains information which is protected by copyright. All Rights Reserved. No part of this work covered by copyright herein may be reproduced or used in any form or by any means--graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage and retrieval systems--without permission of the copyright owner.

DISCLAIMER OF WARRANTY

WHILE THIS PUBLICATION IS BELIEVED TO BE ACCURATE, IT IS PROVIDED "AS IS" AND MAY CONTAIN ERRORS OR MISPRINTS. HL7 MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS PUBLICATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF TITLE OR OWNERSHIP, IMPLIED WARRANTY OF MERCHANTABILITY OR WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE. IN NO EVENT SHALL HL7 BE LIABLE FOR ERRORS CONTAINED HEREIN OR FOR DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, RELIANCE OR COVER DAMAGES, INCLUDING LOSS OF PROFITS, REVENUE, DATA OR USE, INCURRED BY ANY USER OR ANY THIRD PARTY IN CONNECTION WITH THE FURNISHING, PERFORMANCE, OR USE OF THIS MATERIAL, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

The entire risk as to the quality and performance of software developed using this specification is borne by you. This disclaimer of warranty constitutes an essential part of the license granted to you to use this specification.

CONFORMANCE

HL7 is and shall at all times be the sole entity that may authorize developers, suppliers and sellers of computer software or specifications to use certification marks, trademarks or other special designations to indicate compliance with FHIR. Software developed under the terms of this license may claim compliance or conformance with FHIR if and only if the software compliance is of a nature fully matching the applicable conformance points as stated in the FHIR specification. Software developed only partially matching the applicable compliance points may claim only that the software was based on FHIR, but may not claim compliance or conformance with this specification. In the event that testing suites or processes are implemented or approved by HL7, Inc., software developed using this specification may claim compliance or conformance with the FHIR specification only if the software satisfactorily completes the testing suites.

1.1: Overview

Fast Healthcare Interoperability Resources (FHIR) defines a set of resources for use in exchanging information about the healthcare processes. Resources are:

  • Granular - they are the smallest unit of operation and a transaction scope of their own
  • Independent - the content of a resource can be understood without reference to other resources
  • Simple - each resource is easy to understand and implement without needing tooling or infrastructure (though that can be used if desired)
  • RESTful - resources are able to be used in a RESTful exchange context
  • Flexible - resources can also be used in other contexts, such as messaging or SOA architectures, and moved in and out of RESTful paradigms as convenient
  • Extensible - resources can be extended to cater for local requirements without impacting on interoperability
  • Web Enabled - where possible or appropriate, open internet standards are used for data representation
  • Free for use - the FHIR specification itself is open - anyone can implement FHIR or derive related specifications without any IP restrictions

In addition to the basic resources, FHIR defines a lightweight implementation framework that supports the use of these resources in RESTful environments, classic message exchanges, human-centric clinical documents and enterprise SOA architectures. Each of these approaches provides its own benefits - FHIR provides the underpinning enablement that makes the choosing one of these painless and enables enterprises to choose their own paradigm without forsaking interoperability with other paradigms.

Though the resources are simple and easy to understand, they are backed by a thorough, global requirements gathering and formal modeling process that ensures that the content of the resources is stable and reliable. The resource contents are mapped to solid underlying ontologies and models using computable languages (including RDF) so that the definitions and contents of the resources can be leveraged by computational analysis and conversion processes.

FHIR also provides an underlying conformance framework and tooling that allows different implementation contexts and enterprises to describe their context and use of resources in formal computable ways and to empower computed interoperability that leverages both the conformance and definitional frameworks.

The combination of the resources and the 3 supporting layers (implementation frameworks, definitional thoroughness, and conformance tooling) frees healthcare data so that it can easily flow to where it needs to be (hospital production systems, mobile clinical systems, cloud based data stores, national health repositories, research databases, etc.) without having to pass through format and semantic inter-conversion hurdles along the way.

Compared to the all the other approaches, FHIR... [-- Obligatory: insert your FHIR FIRE related joke here --].

1.1.1: Roadmap

This specification is structured into 3 parts, the introduction, the implementation section and the resource definitions.

1.1.1.1: Introduction

The introduction provides foundational material that is required to understand and use resources:

  • Introduction (§1.0): Overall introduction, useful links and the FHIR license
  • This roadmap
  • Resource Formats (§1.2): An explanation of the general content and format of all resources and how they are described
  • Data Types (§1.3): Common re-usable patterns encountered throughout healthcare data and used in the resources
  • Using Codes (§1.4): Explains how the use of codes (code systems, terminologies, classifications, ontologies) is managed in FHIR
  • Extensibility (§1.5): Describes the extension section of the resource and specifies the rules that apply to its use
  • Resource Profiles (§1.6): Describes how resources are profiled to describe their use in a particular context

1.1.1.2: Implementation

The implementation section explains how resources are used in various contexts:

  • Implementation (§2.6): General requirements for using resources and various useful things including schema packs and reference implementations
  • REST (HTTP) (§2.1): Defines a lightweight HTTP based paradigm for using resources
  • Messaging (§2.2): A simple request/response message based transactional framework (equivalent to HL7 v2)
  • Documents (§2.3): Clinical documents contain attested content that are both human readable and computer processable and can be exchanged and signed as single bundles (equivalent to CDA)
  • hData Integration (§2.4): An explanation of how to use resources in a the context of an hData RESTful service
  • Atom Feeds: Atom feeds are used to gather a set of resources into a single XML document when they are transferred as a group - these are called "bundles"
  • Value Set (§2.6): A resource that describes a set of codes - used in association with profiles to specify resource contents and potentially usable in other contexts
  • Conformance (§2.7): A resource that describes how an application does, can, or should use FHIR resources

1.1.1.3: Resources

The resources section enumerates the resources:

  • Resources (§3.7): An index of the defined resources
  • etc.: The resources in alphabetical order

For each resource, the following pages are provided:

  • Content: Provides context for the resource and defines its content with a simple XML format and some additional description. Formal definitions such as W3C schema and others are also provided. Also describes events and search criteria associated with the resource.
  • Examples: Provides one or more examples that show how the resource is used.
  • Formal Definitions: A table of the full formal definitions for each element in the resource along with mappings to other standards and ontologies.
  • Design Notes: Explanations of some of the less obvious aspects of the resource and explanation of why the resource is structured in a particular way. Not all resources have design notes and implementers do not need to read them.
  • Profiles: A list of profiles of the resource that are provided as part of the standard. Profiles may be provided to illustrate some aspect of the use of a resource or because certain particular uses of a resource are sufficiently common to warrant a standard profile.

1.1.2: Community

The FHIR community meets inside the wider HL7 community (http://hl7.org) and draws on its extensive human resources, institutional memory, previous standards and corporate support. HL7 itself owns FHIR and makes it freely available and the community relies on HL7 provided infrastructure.

The primary resources used by the FHIR community are the HL7 wiki (http://wiki.hl7.org/index.php?title=FHIR) , and the FHIR email list (http://wiki.hl7.org/index.php?title=FHIR_email_list_subscription_instructions) . In addition, the community holds regular face to face meetings as part of the HL7 Working Group meetings (http://www.hl7.org/events/workgroupmeetings.cfm?ref=nav) . The formal governance arrangements that manage FHIR development are documented (where?)

Note that each page contains a direct link its matching wiki page where input from the wider community is managed. Community input is very welcome - please consider making comments.

1.2: Resource Format

In this specification, resources are described in a simple XML format. This page documents how the XML content for resources is described and controlled. The XML may be validated by schema and schemas are provided, but validation is not required in operational systems (though the XML must always be valid against this specification). In addition to the simple XML description, W3C Schema, UML models, and other definitional models are provided that may be a useful aid for system implementation.

1.2.1: XML Content Models

To provide a visual sense of what the end resource instances will look like, all resources include documentation of their allowed content in a pseudo-XML syntax that uses the following notation:

 <name xmlns="http://hl7.org/fhir" [xml:lang]> 
   <nameA><!-- 1..1 type description of content  --><nameA>
   <nameB d?><!-- 0..1 type description  --></nameB>
   <nameC> <!--  1..* -->
     <nameD  d?><!-- 1..1 type>Relevant records  --></nameD>
   </nameC>
 <name>

Notes:

  • The XML character set is always unicode. Specifying the character encoding is optional but recommended. Any encoding that is round trip compatible with unicode is allowed.
  • .
  • FHIR elements are always in the namespace http://hl7.org/fhir. This is usually specified as the default namespace on the root element. The only other namespaces that occur in FHIR resources are where some external content model is introduced into the resource content model. XHTML is found in every resource - see below.
  • To build a valid resource, simply replace the contents of the elements with valid content as described by the cardinality, type rules and content description found in the comment in each element.
  • Elements are assigned a cardinality that specifies how many times the element may or must appear. If the cardinality is shown in Pink then there is an additional condition that impacts on the allowed cardinality. This is available as a mouse-over text, or in the formal definitions.
  • Some elements are marked with a d?, which indicates that they are able to carry the "dataAbsentReason" attribute. See below for further discussion (§1.2.3).
  • The elements are assigned one or more types. All of the types are defined in the data types (§1.3) except for "Resource" and "Narrative" that are documented below. The type names are hyperlinked.
  • In the Resource definitions, each element name is also a hyperlink to the formal definition of the element in the data dictionary that underlies the exchange formats. If the element name is underlined, then applications are required to support and/or understand it.
  • Any of the XML elements may have an id attribute to serve as the target of an internal reference (§1.2.5). The id attribute is not shown.
  • The root element of a resource may have an xml:lang the specifies the primary language of the resource.
  • In addition to this description, other definitional forms are available, including W3C schema, Schematron, (Todo: Relax NG schema, RDF and eCore).

1.2.2: Resource Data and Metadata items

Every resource contains the following common elements:

<[Name] xmlns="http://hl7.org/fhir">
 <id><!-- 0..1 id Master Resource Id, always first in all resources --></id>
 <extension><!-- 0..*  Extension   See Extensions  --></extension>
 <text><!-- 1..1 Narrative Text summary of [x], for human interpretation --></text>
</[Name]>

The id element is always mandatory except in the case that a resource is posted to a server to create it, and the id of the resource is not yet known. In this case, the id element is absent. The use of the id element is discussed further below (§1.2.6). The use of the extensions element is discussed under "Extensibility" (§1.5). The text ("Narrative") is discussed below (§1.2.4). In addition to these data elements, there are several pieces of metadata about a resource that are not part of the resource content, but are delegated to the infrastructure:

Metadata ItemTypeUsage
Version IdidChanged each time the content of the resource changes. Can be referenced in a resource reference (see below). Can be used to ensure that updates are based on the latest version of the resource.
Last Modified DatedateTimeChanged each time the content of the resource changes. Can be used by a system or a human to judge the currency of the resource content.
Master LocationuriReports the location of the master for the resource. Useful when a resource is re-used by another system - it can report the location of the master should any system need to know this.

In any environment where the resources are used, the technical details of how these metadata elements are represents will need to be resolved. For further details, see Implementation Details (§2.6).

1.2.3: dataAbsentReason

Data Quality - or the lack thereof - is a ubiquitious issue in healthcare. In order to handle this, many elements defined as part of a resource may have a dataAbsentReason attribute. This attribute may be used to specify why the normally expected content of the data element is missing.

 <x dataAbsentReason=""/>

The dataAbsentReason attribute can have one of the following values:

unknown The value is not known
  asked The source human does not know the value
  temp There is reason to expect (from the workflow) that the value may become known
  notaskedThe workflow didn't lead to this value being known
masked The information is not available due to security, privacy or related reasons
unsupported The source system wasn't capable of supporting this element
astext The content of the data is represented as text (see below)
error Some system or workflow process error means that the information is not available

Notes:


1.2.4: Narrative

Every resource SHALL include a human readable narrative that contains a summary of the resource, and may be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resources may define what content should be represented in the narrative to ensure clinical safety.

The narrative for a resource is allowed to contain additional information that is not in the structured data, including human-edited content. Such additional information must be in the scope of the definition of the resource. In small, closed trading partner environments, there may be no need for a narrative text. In such cases, implementations are allowed to populate the narrative with text equivalent to "No human readable text provided for this resource" (other languages are allowed). Implementers should note that small, closed traing partner environments are very likely to open up during the lifetime of the resources they define.

Each narrative has a flag that specifies the relationship between the narrative and the structured data. This flag may have one of the following codes:

generatedThe contents of the narrative are entirely generated from the structured data in the resource.
extensionsThe contents of the narrative are entirely generated from the structured data in the resource and some of the narrative is generated from extensions
additionalThe contents of the narrative contain additional information not found in the structured data

In addition to this general flag that specifies the status of the narrative, there is an optional mapping between the narrative and the structured data. Each mapping has narrative id and structured data id which provide internal references (§1.2.5) to the narrative and the structured data respectively, and a flag for whether the text was generated from the data, or the data was generated from the text (by some form of retrospective processing, whether human or computer), or whether both come from an external source. The structured data target may be an empty element with a dataAbsentReason of "astext"; this means that the value of the text could not be properly represented in the data type. Any element defined as part of the resource content, or any repeating element inside a data type may carry an id attribute to serve as the target of a narrative mapping.

The narrative is an xhtml fragment that also includes images if appropriate:

<x xmlns="http://hl7.org/fhir">
 <status><!-- 1..1 code generated | extensions | additional --></status>
 <div xmlns="http://www.w3.org/1999/xhtml"> <!-- Limited xhtml content< --> </div>
 <image>  <!-- 0..* Images referenced in xhtml -->
  <mimeType><!-- 1..1 code Mime type of image --></mimeType>
  <content><!-- 1..1 base64Binary base64 image data --></content>
 </image>
 <map>  <!-- 0..* -->
  <text><!-- 1..1 idref Narrative source (by id attribute) --></text>
  <data><!-- 1..1 idref Data source (by id attribute) --></data>
  <source><!-- 1..1 code text | data --></source>
 </map>
</x>

Terminology Bindings

  • Narrative.status has the definition NarrativeStatus: "The status of a resource narrative". Possible values:
    generatedThe contents of the narrative are entirely generated from the structured data in the resource.
    extensionsThe contents of the narrative are entirely generated from the structured data in the resource and some of the content is generated from extensions
    additionalThe contents of the narrative contain additional information not found in the structured data
  • Narrative.image.mimeType has the definition MediaType: "The mime type of an attachment". For example values, see BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) (http://www.rfc-editor.org/bcp/bcp13.txt)
  • Narrative.map.source has the definition NarrativeMapSource: "Which is the source in a Narrative <-> Data mapping". Possible values:
    textThe text is the original data
    dataThe data is the original data

The contents of the div element are an XHTML fragment containing only the basic html formatting elements described in chapters 7-11 (except section 4 of chapter 9) and 15 of the HTML 4.0 standard, <a> elements (either name or href), images and internally contained style attributes. The XHTML content must not contain a head, a body element, external stylesheet references, scripts, forms, base/link/xlink, frames, iframes, and objects.

  <narrative>
    <div xmlns="http://www.w3.org/1999/xhtml">This is a simple 
          example with only plain text</div>
  </narrative>
   
  <narrative>
   <div xmlns="http://www.w3.org/1999/xhtml">
     <p>
       This is an <i>example</i> with some <b>xhtml</b> formatting.
     </p>
   </div>
  <narrative>

The image source may be a local reference within the resource:

  <img src="#a5"/>

This is a internal reference (§1.2.5) to an id attribute on an element in the same resource, either in the image attachments on the text element directly, or an element of type "Attachment (§1.3.4)".

  <narrative>
    <html xmlns="http://www.w3.org/1999/xhtml">
      <p>
        <img src="#a1/>.
      </p>
    </html>
    <image id="a1">
      <mimeType>image/png</mimeType>
      <data>MEKH....SD/Z</data>
    </image>
  <narrative>

Since the presence of images that are not part of the resource is not guaranteed, images that are an essential part of the narrative should always be embedded.

The dataAbsentReason is not used on the narrative element or any elements contained in it. The xhtml element must have some non-whitespace content.

Note: the XHTML is contained in general XML, and there is no support for HTML entities like &nbsp; or &copy; etc. Unicode characters should be used instead. Note that &#160; substitutes for &nbsp;.

1.2.4.1: Styling the XHTML

The XHTML fragment in the narrative may be styled using CSS in the normal fashion, using a mix of classes, ids and in-line style elements. Specific CSS stylesheets will be applied to the XHTML when it is extracted from the resource to be displayed to a human to create the presentation desired in the context of use. Authors may fix the following styling aspects of the content:

  • bold, italic, underline, strikethrough
  • font color, family, and size
  • background colour, text alignment
  • whitespace interpretation
  • ordered list number format (since it may be referred to in text)

These style properties are specified in-line using the style attribute. If an equivalent html element exists, such as "i", or "pre", it may be used instead, but note that some of these elements are deprecated in HTML 4 and must not be used in Narrative XHTML (including "u", and "font").

Rendering systems are required to respect any of these rendering styles when they are specified in the XHTML, though appropriate interpretation is allowed (e.g. a low-contrast display for dark room contexts may adjust colors accordingly).

Authors are allowed to specify additional styles and style properties as specified in the CSS specification, but these are extensions to this specification and renderers are not required to honor them. Note, however, the additional rules around styling that apply in the context of documents (§2.3.4.1).

1.2.5: Internal References

There are 4 cases where elements inside a resource reference each other:

These references are done using an id/idref based approach, where a source element indicates that it has the same content as the target element. The target element has an attribute "id" which must have a unique value within the resource with regard to any other id attributes. The "id" attribute is not in any namespace. The source element has no content (text or children elements) and just a single attribute named "idref". The value of the idref attribute must match the value of an id attribute in the same resource (or, for a CodeableConcept, inside the same datatype).

  <example>
    <target id="a1">
      <child>content</child>
    </target>
    <-- other stuff -->
    <source idref="a1">
  </example>

In a single resource, this works exactly like xml:id/idref, but there is an important difference: the uniqueness and resolution scope of these id references is within the resource that contains them. If multiple resources are combined into a single piece of XML, such as an atom feed, duplicate values may occur between resources. This must be managed by applications reading the resources.

1.2.6: Resource References

The "Resource" type indicates a reference from one resource to another.

<x xmlns="http://hl7.org/fhir">
 <type><!-- 0..1 code Resource Type --></type>
 <id><!-- 0..1 uri URL/Id of the reference --></id>
 <version><!-- 0..1 uri Specific version URL/Id of resource referenced --></version>
 <text><!-- 0..1 string Text alternative for the resource --></text>
</x>

Terminology Bindings

Whether or not the type of the resource reference is fixed for a particular element, the reference includes the resource type.

Both the id and the version are URL based references - they must be literal URLs that resolve to the location of the resource. Both URLs may be relative URLS, in which case they are interpreted to contain the logical id and versionId respectively of the resource in question, and the resolution of the logical reference is a matter of implementation logic. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading between separated eco-systems. Absolute URLs do not need to point to a FHIR RESTful server (§2.1), though this is the preferred approach.

A resource reference may contain either a version independent reference ("id") or a version dependent reference ("version") or both. If both are provided, it is at the descretion of the processor of the data which to use in a particular context. If relative references are used, a version cannot be provided without an id, since the version may be scoped by the id.

A relative reference to the patient (§3.6) "034AB16" in an element named "context":

  <context>
    <type>Patient</type>
    <id>034AB16</id>
  <context>

An absolute reference to a resource profile (§1.6) in an element named "profile":

  <profile>
    <type>Profile</type>
    <id>http://fhir.hl7.org/svc/profile/@c8973a22-2b5b-4e76-9c66-00639c99e61b</id>
  <profile>

Note that HL7 has not yet actually created a profile registry, nor decided on a URL for it.

The logical id and version id of a Resource can take one of the following forms:

A whole number in the range 0 to 2^64-1. May be represented in hex
A uuid (guid) (in lowercase, without wrapping with the characters "{}[]" which sometimes occur)
An ISO OID (http://en.wikipedia.org/wiki/Object_identifier)
Any other combination of letters, numerals, "-" and "."

Resource ids must be represented in lowercase. Ids are always opaque, and systems should not and need not attempt to determine their internal structure. However the id is represented, it must always be represented in the same way in resource references and URLs. Note that absolute URLs that do not point to FHIR RESTful servers do not need to include the id in the URL, though this is good practice. If the id is in the URL, it must be present in lower case. Irrespective of whether the URL points to a FHIR RESTful server or includes the logical id in the URL, URLs are always considered to be case-sensitive and lowercase is preferred.

Plain text narrative may be provided that describes the resource in addition to the resource reference (or in place of, if a dataAbsentReason is allowed).

  <id>
    <type>Organisation</type>
    <id>1234</id>
    <text>HL7, Inc</text>
  <id>

Use

Unless the resource reference element has a dataAbsentReason flag, it must contain a valid type and (id or version).

1.2.7: Inter-version Compatibility

There is no explicit version marker in the XML. Subsequent versions of this specification may introduce new elements at any point in the content models, but the path and meaning of existing data elements will not be changed. Given that, in a typical scenario, mixed versions may need to exist, applications SHOULD ignore elements that they do not recognize unless those elements are marked with a "must understand" attribute. However, in a healthcare context, many application vendors are unwilling to consider this approach because of concerns about clinical risk. Applications are not required to ignore unknown elements, but must declare whether they will do so in their conformance statements using the acceptUnknown element.

1.2.8: XML Schema and Schematron

This specification provides schema definitions for all of the content models described here. The base schema is called "fhir-base.xsd" and defines all of the datatypes and also the base infrastructure types described on this page. In addition, there is a schema for each resource and a common schema fhir-all.xsd that includes all the resource schemas. A customized atom schema fhir-atom.xsd is provided for validating bundles.

In addition to the w3c schema files, this specification also provides Schematron files that enforce the various constraints defined for the datatypes and resources. These are packaged as files for each resource as well as a combined fhir-atom.sch file that incorporates the rules for all resources.

XML that is exchanged must be valid against the w3c schema and Schematron, though there is no requirement to validate instances against either, nor is being valid against the schema and Schematron sufficient to be a conformant instance. (This specification makes several rules that cannot be checked by either mechanism.) Exchanged content must not specify the schema or even the schema instance namespace in the resource itself.

1.2.9: Object Models

In addition to the schema, this specification also provides object models defined in UML that may be of assistance in defining systems that work with the resources defined here.

Although the UML models provided express the same contents as the resource formats, because of the wide variation in how different architectures and tools map from UML to XML, there should be no expectation that any particular tool will produce compatible XML from these UML diagrams. Systems are welcome to use these object models as a basis for serialization internally or even between trading partner systems, with any form of exchange technology (including JSON). Systems that use this form of exchange cannot claim to be conformant with this specification, but can describe themselves as using "FHIR consistent object models".

1.2.10: JSON Format

Informative Section: Due to a series of issues around the formal standardization of the JSON representation, the standard JSON representation for resources is only informative.

Though the formal representation of the resources is in XML, many systems wish to use JSON to exchange the resources and it is useful to standardise a single JSON format for this use. The JSON format for the resources follows the standard XML format closely so XPath queries can easily be mapped to query the JSON structures:

There are differences too:

  • There are no namespaces in the JSON representation.
  • JSON does not have a notion of attributes versus elements, so FHIR's only attributes (dataAbsentReason and id) are treated as JSON object members (see below for more details).
  • JSON has a notation for arrays, which are used to represent repeating elements. Note that this is the case, even if they do not repeat in the actual instance.
  • The XHTML <div> element in the Narrative datatype is represented as a single escaped string of XHTML

These differences - particularly the repeating element one, which cannot be avoided - ensure that generic XML --> JSON converters are not able to perform correctly. The reference platforms will provide XML <--> JSON conversion functionality.

1.2.10.1: JSON representation of primitive types

FHIR elements with primitive values are represented as JSON object members of the same name, with their value encoded as a string. Native JSON types other than "string" are never used to guarantee equivalence of the serialized representation between XML and JSON.

Primitive elements used inside the FHIR datatypes cannot have an 'id' or 'dataAbsentReason' attribute, so they are rendered in JSON as a property and value:

 <date>1972-11-30</date>

is represented in JSON as

"date": "1972-11-30"

Primitive elements inside resources can have 'id' or (if allowed) 'dataAbsentReason' attributes, so their JSON representation uses a JSON object with members '_id', 'dataAbsentReason' and 'value', which contains the actual primitive value as string. Note that in most cases, the primitive will not have a value when there is a dataAbsentReason present, in which case the special 'value' member must not be present. So,

 <dob id='314159'>1972-11-30</dob>

is represented in JSON as:

"dob": { "_id": "314159", "value": "1972-11-30" }

while this example would look like this in the case of a dataAbsentReason:

"dob": { "_id": "314159", "dataAbsentReason": "Unknown" }

1.2.10.2: Repeating elements

Repeating elements are rendered withing a JSON array with the name of the element, so a repeating <dob> element in

 <dob>2011-11-30</dob>
 <dob id='314159'>1972-11-30</dob>

is represented in JSON like so:

"dob": [
	{ "value": "2011-11-30" },
	{ "_id": "314159", "value": "1972-11-30" }
  ]

1.2.10.3: JSON representation of composite datatypes

Resources and other composite datatypes (types that contain named elements of other types) are represented using a JSON object, containing a member for each element in the datatype. Composites can have id's and dataAbsentReasons, therefore these attributes get converted to JSON members values, in the same manner as described for primitives. These members will be placed before all other members. For example:

<Person>
  <id>34234</>
  <name>
    <use>official</use>  
    <part>
      <type>given</type>
      <value>Karen</value>
    </part>
    <part id="n1">
      <type>family</type>
      <value>Van</value>
    </part>
  </name>
  <text>
    <status>generated</status>
    <div xmlns="http://www.w3.org/1999/xhtml">...</div>
  </text>
</Person>

is represented in JSON as:

{
  "Person" : {
    "id" : { "value" : "34234" },
    "name" : [{
      "use" : "official",
      "part" : [
        {
          "type" : "given",
          "value" : "Karen" 
        },
        {
           "_id" : "n1",
           "type" : "family",
           "value" : "van"
        }]
     }],
    "dob" : { "dataAbsentReason" : "notasked" },
    "language" : [
      {
        "code" : { "_id" : "lang-1", "value" : "dut" },
        "use" : { "value" : "fluent" }
      },
      {
        "code" : { "value" : "cmn" },
        "use" : { "value" : "useable" }
      }],
    "text" : {
      "status" : "generated",
      "div" : "<div xmlns='http://www.w3.org/1999/xhtml'>...</div>"
    }
}

Things to note here are:

  • Because the primitive element 'id' is in a resource, it is serialized as a JSON object.
  • In the family part of 'name', the '_id' is added as the first member.
  • The 'code' within member 'language' is a part of the resource definition and therefore serialized as a JSON object, whereas the member 'use' within 'name' is a primitive inside a datatype and therefore serialized as a JSON string value.
  • The XHTML content in the 'div' element which in the Narrative element 'text' is represented as an escaped string in JSON. The xhtml's root element needs to be a <div> in the xhtml namespace.

1.2.11: UML Models and dataAbsentReason

This specification describes the use of the dataAbsentReason attribute, which is used throughout the content models on elements of any type to indicate missing data. The dataAbsentReason attribute "may appear on any element in a resource other than those marked mandatory".

In Object-Orientated paradigms, the dataAbsentReason is a mixin. The definition of a mix-in (http://en.wikipedia.org/wiki/Mixin#) is that it is an abstract class that provides functionality that is not inherited by specialization but rather by collecting functionality. A mixin can be thought of as a generic class that specializes its parameter class:

This shows a mixin called "DataQualityAspect" which expresses the attribute "dataAbsentReason". The two derived classes, DataQualityAspectQuantity which inherits both Quantity and DataQualityAspect and DataQualityAspect(Quantity), which binds Quantity to the parameter T on the DataQualityAspect mixin both have the same semantics (are identical other than their type derivation).

The problem with this approach is that not only is the <<mixin>> stereotype not a recognised standard UML syntax, but most mainstream programming languages cannot implement multiple inheritance in this form. There are two alternative approaches for implementing mixins in object-oriented platforms. The first is using a wrapper class:

The problem with this variation is that Quantity and DataQualityAspect(Quantity) are no longer both types of Quantity, as with a pure mixin and this will have a series of effects on implementations. The other alternative is simply to make DataQualityAspect a base class:

This is the simplest approach, but has the disadvantage that all instances of the Quantity data type carry the dataAbsentReason attribute, whether it is appropriate or not.

Implementers that use these objects in an environment where mixins are not supported must choose one of these two approaches. For simplicity, the object models defined in this specification simply bind the target type directly to the specified data type, and ignore the issue of the dataAbsentReason mixin.

Note that the dataAbsentReason may also be associated with primitive types as well so use of one of these mixin mechanisms will be required there as well.

1.3: Data Types

The FHIR data types include primitive types imported from XML schema and additional data types that capture patterns that are ubiquitous throughout the scope of the healthcare data that will be exchanged.

Data Types Concept Map

The data types defined on this page on this page are categorised as "Primitive Types", "Types" or "Structures". Primitive Types are those either drawn from W3C Schema types or directly derived from them. Types and Structures are more complex, made up of multiple properties. "Structures" are higher level concepts that some systems internally treat differently from Types. There is no functional difference between the two categories, and systems are not required to treat them any differently.

1.3.1: Primitive Types

1.3.2: Imported Types

The following table summarises the primitive types that are used by are used in the exchange specifications and are directly imported from w3c schema (though sometimes aliased). The possible values for these types are those specified in the W3C Schema specification part 2. All elements that contain text content have one of these primitive types. Elements of this type can only be empty if they have a dataAbsentReason (§1.2.3) attribute on them (and only where that attribute is allowed).

TypeBase typeDescription SpecExampleDefault value
booleanxs:booleanValues can be either true or false {true, false}truefalse
integerxs:intA signed 32-bit integer (for larger values, use decimal) {-2147483648,...,-2,-1,0,1,2,...,2147483647}10660
decimalxs:decimalA rational number. Do not use a IEEE type floating point type, instead use something that works like a true decimal, with inbuilt precision (e.g. Java BigDecimal) ('-'? [1-9][0-9]* '.' [0-9]+) | '0'-1.23, 12678967.5432330
base64Binaryxs:base64BinaryA stream of bytes, base64 encoded see Wikipedia (http://en.wikipedia.org/wiki/Base64) cGxlYXN1cmUunull / empty
instantxs:dateTimeAn instant in time - known at least to the second and always includes a timezone. Note: This type is for system times, not human times (see below). yyyy '-' mm '-' dd 'T' hh ':' mm ':' ss ('.' s+)? ('Z' | (('+' | '-') hh ':' ss)) 2002-10-10T17:00:00ZN/A - systems must track missing/null
stringxs:stringA sequence of Unicode characters. Note that FHIR strings may not exceed 1MB in sizenull / empty
urixs:anyURIA Uniform Resource Identifier Reference. It can be absolute or relative, and may have an optional fragment identifier.See RFC 3986 (http://tools.ietf.org/html/rfc3986) http://www.hl7.org/fhirnull / no reference

The default value specifies the implicit semantic meaning of a missing element. Note that some implementations are able to distinguish between missing values and the default values, but the semantic meaning is still required anyway. The string patterns that follow share the same default value as the string type, and all the rest of the types have a default value of null.

Implementations that convert the xml described in this specification to other formats such as JSON or some object based notation will have to find equivalent types.

1.3.2.1: String Patterns

In addition to these assumed primitive types, this specification defines a few simple string patterns that are commonly used:

TypeDescriptionSpecExample
codeA string which has at least one character and no whitespace[^\s]+([\s]+[^\s]+)*++, asked
oidAn ISO oid (ISO/IEC 8824:1990(E))([1-9][0-9]*)(\.[1-9][0-9]*)*1.20.134.5.6
uuidA UUID (Open Group, CDE 1.1 Remote Procedure Call specification, Appendix A), sometimes called a GUID. Always represented in lowercase.[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}0ff343ac-ae48-3c92-2385e35e34ac
sidA system id, which is a uri taken from the list of known definition systems (§1.4.2). sid values never contain a '#'[A-Za-z]+:[^s]*http://snomed.info
idA whole number in the range 0 to 2^64-1, optionally represented in hex, a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length limit of 36 characters[a-z0-9\-\.]{1,36}lab-report.3445
dateA date, or partial date (e.g. just year or year + month) as used in human communication. There is no time zone. Dates must be valid dates.[0-9]{4}(\-((0[1-9])|(1[0-2]))(\-((0[1-9])|([1-2][0-9])|(3[0-1])))?)?2012, 1997-09, 1972-11-30
dateTimeA date, date-time or partial date (e.g. just year or year + month) as used in human communication. If hours and minutes are specified, a time zone must be populated. Seconds may be provided but may also be ignored. Dates must be valid dates.[0-9]{4}(\-((0[1-9])|(1[0-2]))(\-((0[1-9])|([1-2][0-9])|(3[0-1]))(T(([0-1][0-9])|(2[0-3])):[0-5][0-9]:[0-5][0-9]((\+|-)(0[0-9]|1[0-4]):(0|3|4)(0|5)|Z)?)?)?)?2012-01, 2012-10-22T12:04:43

Examples

date (e.g. Date of birth):

  <x>1951-06-04</x>

1.3.3: Types

1.3.4: Attachment

This type is for containing attachments - additional data content defined in other formats. The most common use of this type is to include images or reports in some report format such as PDF. However it can be used for any data that has a mime type.

<x xmlns="http://hl7.org/fhir">
 <mimeType><!-- 1..1 code Mime type of the content --></mimeType>
 <data><!-- 0..1 base64Binary Data inline, base64ed --></data>
 <url><!-- 0..1 uri Uri where the data can be found --></url>
 <hash><!-- 0..1 base64Binary sha-256 hash of the data (base64 ) --></hash>
 <lang><!-- 0..1 code ISO 639-3 language code --></lang>
 <title><!-- 0..1 string Label to display in place of the data --></title>
</x>

Terminology Bindings

The mimeType element must always be populated. The actual content of the Attachment can be conveyed directly using the data element or a url reference can be provided. If both are provided, they must point to the same content. The reference can never be reused to point to different data (which means that the reference is version specific). The url reference must point to a location that resolves to actual data; some uris such as cid: meet this requirement.

The hash is included so that applications can verify that the contents of a location have not changed and also so that a signature of the xml content can implicitly sign the content of an image without having to include the data or reference the url in the signature. The lang element can help a consumer choose between multiple different Attachment elements.

In many cases where Attachment is used, the cardinality is >1; repeats are used to convey the same content in different mime types and languages.

Use

  • Unless the Attachment element has a dataAbsentReason flag, it must contain a data or a url (or both) (xpath: exists(@dataAbsentReason) or exists(f:data) or exists(f:url))

If neither data nor a url is provided, the value should be understood as an assertion that no content for the specified mimeType and/or lang is available for the reason stated.

The context of use may frequently make rules about the kind of attachment (and therefore, the kind of mime types) that can be used.

Examples

A PDF document:

  <x>
   <mimeType>application/pdf</mimeType>
   <data>/9j/4...KAP//Z</data> <!-- covers many lines -->
   <lang>eng</lang>
   <title>Definition of Procedure</title>
  </x>

A reference to a DICOM image:

  <x>
   <mimeType>application/dicom</mimeType>
   <url>http://10.1.2.3:1000/wado?requestType=WADO&wado details...</url>
   <hash>EQH/..AgME</hash>
  </x>

1.3.5: Identifier

An identifier defined by some external system.

<x xmlns="http://hl7.org/fhir">
 <system><!-- 0..1 uri The namespace for the identifier --></system>
 <id><!-- 0..1 string The actual identifier --></id>
</x>

The system may be either a specific application or a recognised concept for which the specific application may be implicit. The system is a URI that may be an OID (oid:) or a UUID (uuid:), a sid (a specially defined URI from the named systems list (§1.4.2)) or a URL that references a definition of the identifier. OIDs and UUIDs may be registered in the HL7 OID registry (http://hl7.org/oid) and should be if the content is shared or exchanged across institutional boundaries.

In some cases, the system may not be known - only the id is known (e.g. a simple device that scans a barcode). In this case, no useful matching may be performed using the id unless the system can be safely inferred by the context.

Note that the system defines the scheme that controls uniqueness of the id. The id must be unique within the defined system. If the id itself is actually an OID, a UUID, or a URI, then the system will be either "http://hl7.org/fhir/sid/oid", "http://hl7.org/fhir/sid/uuid" or "http://hl7.org/fhir/sid/uri" respectively and the OID, UUID or URI would be in the id element. Ids are always case sensitive. UUIDs must be represented in lower case.

Use

  • If the Identifier element is marked as mandatory, it must contain a system (xpath: f:system)
  • Unless an Identifier element has a dataAbsentReason flag, it must contain an id (xpath: exists(@dataAbsentReason) or exists(f:id))

Examples

A primary key from an application table (an OID in the space allocated by HL7 to some organisation to further sub-allocate):

  <x>
   <system>oid:2.16.840.1.113883.16.4.3.2.5</system>
   <id>123</id>
  </x>

An identifier of a patient FHIR resource on a particular system:

  <x>
   <system>http://pas-server/xxx/patient</system>
   <id>443556</id>
  </x>

A guid:

  <x>
   <system>http://hl7.org/fhir/sid/uuid</system>
   <id>a76d9bbf-f293-4fb7-ad4c-2851cac77162</id>
  </x>

A full URL as the identifier:

  <x>
   <system>http://hl7.org/fhir/sid/uri</system>
   <id>http://server.acme.com/fhir/people/@1</id>
  </x>

1.3.6: Coding

A "coding" is a representation of a defined concept using a symbol from a defined "code system" - which may be an enumeration, a list of codes, a full terminology such as SNOMED-CT or LOINC or a formal ontology.

<x xmlns="http://hl7.org/fhir">
 <code><!-- 0..1 code Symbol in syntax defined by the system --></code>
 <system><!-- 1..1 uri Identity of the terminology system  --></system>
 <display><!-- 0..1 string Representation defined by the system --></display>
</x>

There must be a system that identifies the terminology or ontology the code is defined by. The system is a URI that may be an OID (oid:) a UUID (uuid:), a specially defined URI from the named systems list (§1.4.2), a url that references a definition of the system or any other URI. OIDs and UUIDs may be registered in the HL7 OID registry (http://hl7.org/oid) and should be if the content is shared or exchanged across institutional boundaries.

If present, the code must be a syntactically correct symbol as defined by the system. In some code systems such as SNOMED-CT, the code may be an expression composed of other codes. Note that codes are case sensitive unless specified otherwise by the code system. If no code is present and there is no dataAbsentReason, the coding should be interpreted to mean that the concept cannot be encoded in the identified system. The display is a text representation of the code defined by the system and can be used to display the meaning of the code by an application that is not aware of the system.

If two Codings have the same the system and code then they have the same meaning. If either the system or the code differs, then how they are related can only be determined by consulting the definitions of the system(s) and any mappings available.

The correct value of the system for a given code system can be determined by:

Use

Unless the Coding element has a dataAbsentReason flag, it must contain a system element and it should contain a display if it contains a code.

The context of use usually makes rules about what codes and systems are allowed or required in a particular context by binding (§1.4) the element to a value set.

Examples

A simple code for headache, in ICD-10:

  <x>
    <code>G44.1</code>
    <system>http://hl7.org/fhir/sid/icd-10</system>
  </coding>
  </x>

A SNOMED-CT expression:

  <x>
    <code>128045006:{363698007=56459004}</code>
    <system>http://snomed.info</system>
  </x>

1.3.6.1: Choosing Coding vs. CodeableConcept

A Coding is a simple direct reference to a code in a code system. The following type, CodeableConcept is a complex type that may include multiple Coding and/or a text representation. The interplay between one or more coding systems and a text representation is an extremely common pattern encountered in healthcare data and the CodeableConcept caters for the general case. Accordingly, it is usually used in resources in preference to the simpler Coding. Some resource definitions use Coding directly because the interplay between text and codes is inherently part of the resource model. In such cases, these resource definitions have to make allowance for the design issues directly.

1.3.7: CodeableConcept

A CodeableConcept represents a represents a field that is usually defined by formal reference to one or more terminologies or ontologies, but may also be defined by the provision of text. This is a common pattern in healthcare data.

<x xmlns="http://hl7.org/fhir">
 <coding><!-- 0..* Coding Code defined by a terminology system  --></coding>
 <text><!-- 0..1 string Plain text representation of the concept --></text>
 <primary><!-- 0..1 idref Which code was chosen directly by the user --></primary>
</x>

Each "coding" is a representation of the concept using a symbol from a defined "code system" - which may be an enumeration, a list of codes, a full terminology such as SNOMED-CT or LOINC, or a formal ontology. The concept may be coded multiple times in different code systems (or even multiple times in the same code systems, where multiple forms are possible, such as with SNOMED-CT). The different codings may have slightly different granularity due to the differences in the definitions of the underlying codes.

Whether or not coding elements are present, the text is a human language representation of the concept as seen/selected/uttered by the user who entered the data, and/or which represents the intended meaning of the user or concept. Very often the text is the same as a display of one of the codings. One of the codings may be flagged as the primary - the code that the user actually chose directly. If present, the value of the primary element is an ID that must match an id attribute on one of the codings.

Use

  • If a primary reference is present, it must point to one of the codings (xpath: not(exists(f:primary)) or count(f:coding[@id=current()/f:primary])=1)
  • Unless the CodeableConcept has a dataAbsentReason flag, it must contain a coding with a code or a text (xpath: exists(@dataAbsentReason) or exists(f:coding/f:code) or exists(f:text))

The context of use usually makes rules about what codes and systems are allowed or required in a particular context by binding (§1.4) the element to a value set.

The ordering of Codings within a CodeableConcept is undefined. Conformant systems shall not depend on Codings appearing in a particular sequence.

Examples

A simple code for headache initially coded in SNOMED-CT and translated to ICD-10:

  <x>
    <coding>
      <code>R51</code>
      <system>http://hl7.org/fhir/sid/icd-10</system>
    </coding>
    <coding id="1">
      <code>25064002</code>
      <system>http://snomed.info</system>
    </coding>
    <text>general headache</text>
    <primary>1</primary>
  </x>

A concept represented in an institution's local coding systems for unit for which no UCUM equivalent exists:

  <x>
    <coding>
      <code>tab</code>
      <system>oid:2.16.840.1.113883.19.5.2</system>
      <display>Tablet</display>
    </coding>
    <coding>
      <system>http://unitsofmeasure.org</system>
    </coding>
  </x>

A SNOMED-CT expression:

  <x>
    <coding>
      <code>128045006:{363698007=56459004}</code>
      <system>http://snomed.info</system>
    </coding>
    <text>Cellulitis of the foot</text>
  </x>

1.3.8: Choice

A code taken from a short list of codes that are not defined in a formal code system. Choice is generally used for things like pain scales, questionnaires or formally defined assessment indexes. The possible codes may be ordered with some arbitrarily defined scale. Note: Choice is not an appropriate data type to use when the possible codes are defined as a value set from a formal code system or otherwise stored on a terminology server.

<x xmlns="http://hl7.org/fhir">
 <code><!-- 0..1 code Selected code --></code>
 <value>  <!-- 2..* List of possible code values -->
  <code><!-- 1..1 code Possible code --></code>
  <display><!-- 0..1 string Display for the code --></display>
 </value>
 <isOrdered><!-- 0..1 boolean If order of the values has meaning --></isOrdered>
</x>

The code is the selected value. A list of possible values must be provided; at least a code must be provided for each value. The selected code must be found in the list of possible codes.

If isOrdered is true, then the values have an inherent meaningful order and the list of values must be provided in the correct order.

Use

  • Unless the Choice element has a dataAbsentReason flag, it must contain a code (xpath: exists(@dataAbsentReason) or exists(f:code))

Example

The results on a urinalysis strip:

  <x>
    <code>+</code>
    <value>
      <code>neg</code>
    </value>
    <value>
      <code>trace</code>
    </value>
    <value>
      <code>+</code>
    </value>
    <value>
      <code>++</code>
    </value>
    <value>
      <code>+++</code>
    </value>
    <isOrdered>true</isOrdered>
  </x>

1.3.9: Quantity

A measured amount (or an amount that can potentially be measured).

<x xmlns="http://hl7.org/fhir">
 <value><!-- 0..1 decimal Numerical value (with implicit precision) --></value>
 <range><!-- 0..1 code Proximity of measured value to actual --></range>
 <units><!-- 0..1 string Unit representation --></units>
 <code><!-- 0..1 code Coded form of the unit --></code>
 <system><!-- 0..1 uri System that defines coded unit form --></system>
</x>

Terminology Bindings

  • Quantity.range has the definition QuantityRange: "how the Quantity should be understood and represented". Possible values:
    <The actual value is less than the given value
    <=The actual value is less than or equal to the given value
    >=The actual value is greater than or equal to the given value
    >The actual value is greater than the given value

The value contains the numerical value of the quantity, including an implicit precision. The range indicates how the value should be understood and represented. If no range is specified, the value is a point value (i.e. '='). The range element can never be ignored.

The units element must contain a displayable unit that defines what is measured. The units may additionally be coded in the code and the system, which is a URI, OID or a SID that defines the code (see CodeableConcept (§1.3.7) for further information about system).

If the units are able to be coded in UCUM and a code is provided, it SHOULD be a UCUM code. If a UCUM unit is provided in the code then a canonical value can be generated for purposes of comparison between quantities. Note that the units element will often contain text that is actually a valid UCUM unit, but it cannot be assumed that it does.

Use

  • If a code for the units is present, the system must also be present (xpath: not(exists(f:code)) or exists(f:system))
  • Unless the Quantity element has a dataAbsentReason flag, it must contain a units element (xpath: exists(@dataAbsentReason) or exists(f:units))
  • Unless the Quantity element has a dataAbsentReason flag, it must contain a value (xpath: exists(@dataAbsentReason) or exists(f:value))

The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may additionally require a code from a particular system. The context of use may also restrict the values for range.

1.3.9.1: Defined Variations on Quantity

These are used as types in resource content models, but they are really just Quantity with some rules:

Duration The unit must be an amount of time and a UCUM unit must be provided.
Distance The unit must be an amount of length and a UCUM unit must be provided.
Count The value must a whole number and the UCUM unit must be "1"
Money The unit must be a currency and the code must from ISO 4217
(system = "http://hl7.org/fhir/sid/iso-4217")

Examples

A duration:

  <x>
    <value>25</value>
    <unit>sec</unit>
    <code>s</code>
    <system>http://unitsofmeasure.org</system>
  </x>

A concentration where the value was out of range:

  <x>
    <value>40000</value>
    <range>&gt;</range>
    <unit>mcg/L</unit>
    <code>ug</code>
    <system>http://unitsofmeasure.org</system>
  </x>

An amount of prescribed medication:

  <x>
    <value>3</value>
    <unit>capsules</unit>
    <code>385049006</code>
    <system>http://snomed.info</system>
  </x>

A price:

  <x>
    <value>25.45</value>
    <unit>US$</unit>
    <code>USD</code>
    <system>http://hl7.org/fhir/sid/iso-4217</system>
  </x>

1.3.10: Range

A set of ordered Quantity values defined by a low and high limit.

A Range specifies a set of possible values; usually, one value from the range applies (e.g. "give the patient between 2 and 4 tablets").

<x xmlns="http://hl7.org/fhir">
 <low><!-- 0..1 Quantity Low limit  --></low>
 <high><!-- 0..1 Quantity High limit  --></high>
</x>

The units and code/system elements of the low or high elements must match. If the low or high elements are missing, the meaning is that the low or high boundaries are not known and therefore neither is the range. A dataAbsentReason flag must be provided on the Range in this case.

The range flag on the low or high elements cannot have the values <, <=, =>, or >. Note that the Range type should not be used to represent measurements where the range flag might be used instead.

The low and the high values are inclusive, and are assumed to have arbitrarily high precision. E.g. the range 1.5 to 2.5 includes 1.50, and 2.50 but not 1.49 or 2.51.

Use

  • Quantity values cannot have a range when used in a Range (xpath: not(exists(f:low/f:range) or exists(f:high/f:range)))
  • Unless the Range element has a dataAbsentReason flag, it must contain a low and a high (xpath: exists(@dataAbsentReason) or (exists(f:low) and exists(f:high)))

Examples

Range of Quantity (distance):

  <x>
   <low>
     <value>2.8</value>
     <unit>m</unit>
   </low>
   <high>
     <value>4.6</value>
     <unit>m</unit>
   </high>
  </x>

1.3.11: Ratio

A ratio of two Quantity values - a numerator and a denominator.

<x xmlns="http://hl7.org/fhir">
 <numerator><!-- 0..1 Quantity The numerator --></numerator>
 <denominator><!-- 0..1 Quantity The denominator --></denominator>
</x>

Common factors in the numerator and denominator are not automatically cancelled out. The Ratio data type is used for titers (e.g., "1:128") and other quantities produced by laboratories that truly represent ratios. Ratios are not simply "structured numerics" and blood pressure measurements (e.g. "120/60") are not ratios. In addition, ratios are used where common factors in the numerator and denominator do not cancel out. The most common example of this is where the ratio represents a unit cost, and the numerator is a currency.

Use

  • Unless the Ratio element has a dataAbsentReason flag, it must contain a denominator (xpath: exists(@dataAbsentReason) or exists(f:denominator))
  • Unless the Ratio element has a dataAbsentReason flag, it must contain a numerator (xpath: exists(@dataAbsentReason) or exists(f:numerator))

The context of use may require particular types of Quantity for the numerator or denominator.

Examples

Titer (Ratio of integer:integer)

  <x>
   <numerator>
     <value>1</value>
   </numerator>
   <denominator>
     <value>128</value>
   </denominator>
  </x>

Unit cost (Ratio of Money:Quantity):

  <x>
   <numerator>
     <value>103.50</value>
     <unit>US$</unit>
     <code>USD</code>
     <system>http://hl7.org/fhir/sid/iso-4217</system>
   </numerator>
   <denominator>
     <value>128</value>
     <unit>day</unit>
     <code>day</code>
     <system>http://unitsofmeasure.org</system>
   </denominator>
  </x>

1.3.12: Period

A time period defined by a start and end time.

A period specifies a range of times. The context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the period applies (e.g. "give to the patient between 2 and 4 pm").

<x xmlns="http://hl7.org/fhir">
 <start><!-- 0..1 dateTime The start of the period --></start>
 <end><!-- 0..1 dateTime The end of the period, if not ongoing --></end>
</x>

If the low or high elements are missing, the meaning is that the low or high boundaries are not known. If the low element is missing, a dataAbsentReason flag must be provided on the Period element in this case. If the high is missing, it means that the period is ongoing.

The high value includes any matching date/time. For example, the period 2011-05-23 to 2011-05-27 includes all the times of 23rd May through to the end of the 27th May.

Use

  • Unless the Period element has a dataAbsentReason flag, it must contain a start (xpath: exists(@dataAbsentReason) or exists(f:start))

Examples

23rd May 2011 to 27th May, including 27th May:

  <x>
   <low>
     <date>2011-05-23</date>
   </low>
   <high>
     <date>2011-05-27</date>
   </high>
  </x>

1.3.13: Structures

1.3.14: HumanId

An identifier that humans use. This is different from a system identifier because identifiers that humans use are regularly changed or retired due to human intervention and error. Note that a human identifier may be a system identifier on some master system, but becomes a human identifier elsewhere due to how it is exchanged between humans. Driver's license numbers are a good example of this. Also, because human mediated identifiers are often invoked as implicit links to external business processes, such identifiers are often associated with multiple different resources. Human identifiers often have some type associated with them that is important to allow the identifier to be picked as a basis for exchange elsewhere, either in other electronic interchanges or paper forms.

<x xmlns="http://hl7.org/fhir">
 <type><!-- 0..1 Coding Code for identifier type --></type>
 <identifier><!-- 0..1 Identifier Actual identifier --></identifier>
 <period><!-- 0..1 Period Time period when id was valid for use --></period>
 <assigner><!-- 0..1 Resource(Organization) Organisation that issued id --></assigner>
</x>

Terminology Bindings

  • HumanId.type has the definition IdentifierType: "The type of human identifier" (sid = urn:hl7-org:sid/fhir/CodeList). Possible values:
    accountAccount number
    creditCredit Card Number
    microchip Microchip Number
    registryA Registry Number
    insurance Insurance Scheme Member Number
    national National Healthcare Identifier
    ssn National Social Security Number (or equivalent)
    jurisdictionJurisdictional Healthcare Identifier
    patient Patient identifier
    facility Facility ID
    provider Provider number

Note that in many cases, the assigner is used to indicate what registry/state/facility/etc. assigned the identifier. Another possible source for the type of an identifier is HL7 v2 table 0203.

The resource elements often use HumanId for an identifier that may be an external human mediated reference, that may also come from a direct unambiguous reference to a resource or may be from a separate workflow, possibly human mediated. When the identifier is actually a direct resource reference, the type should be a resource type, the identifier.system should be the URL of the source system or, if a particular end point is not known, then "http://hl7.org/fhir/sid/fhir/[X]" where "[X]" is the resource name , and the identifier.id should be the resource id.

Use

  • Unless the HumanId element has a dataAbsentReason flag, it must contain an identifier with an id (xpath: exists(@dataAbsentReason) or exists(f:identifier/f:id))

If the HumanId is mandatory, then either an identifier.system or an type must be provided (In some cases, the type of the identifier will be known, but not the identifier.system. For instance, a driver's license number, where the state, province or country that issues the license identifier (or at least the appropriate system uri for a known license provider) is unknown).

The assigner.id may be replaced with assigner.text when used with the dataAbsentReason "astext".

Examples

A US SSN:

  <x>
    <type>
      <code>ssn</code>
      <system>http://hl7.org/fhir/sid/fhir/identifier-type</system>
    </type>
    <identifier>
      <system>http://hl7.org/fhir/sid/us-ssn</system>
      <id>000111111</id>
    </identifier>
  </x>

Notes:

  • US SSNs are often presented like this: 000-11-1111, the dashes are for presentation and should be removed, as specified in the definition of ssn-us (§1.4)
  • There is apparent duplication between type and system; the type says that this is a national social security identifier from some country, while the system specifically identifies the US SSN. Not all countries will have a registered system id like USA does; it might be useful to also reference the country in the assigning authority

A medical record number assigned on 5-July 2009:

  <x>
    <type>
      <code>patient</code>
      <system>http://hl7.org/fhir/sid/fhir/identifier-type</system>
    </type>
    <identifier>
      <system>oid:0.1.2.3.4.5.6.7</system>
      <id>2356</id>
    </identifier>
   <period>
     <low>2009-06-05</low>
   </period>
  </x>

1.3.15: HumanName

A name of a human with parts and usage information.

Names may be changed or repudiated. People may have different names in different contexts. Names may be divided into parts of different type that have variable significance depending on context, though the division into parts does not always matter. With personal names, the different parts may or may not be imbued with some implicit meaning; various cultures associate different importance with the name parts and the degree to which systems must care about name parts around the world varies widely.

<x xmlns="http://hl7.org/fhir">
 <use><!-- 0..1 code The use of this name --></use>
 <text><!-- 0..1 string Text representation of the full name --></text>
 <part>  <!-- 0..* A part of a name -->
  <type><!-- 0..1 code Type of name part (see below) --></type>
  <value><!-- 1..1 string The content of the name part --></value>
 </part>
 <period><!-- 0..1 Period Time period when name was/is in use --></period>
</x>

Terminology Bindings

  • HumanName.use has the definition NameUse: "The use of a human name". Possible values:
    usualKnown as/conventional/the one you normally use
    officialThe formal name as registered in an official (government) registry, but which name might not be commonly used. May be called "legal name".
    tempA temporary name. A name valid time can provide more detailed information. This may also be used for temporary names assigned at birth or in emergency situations.
    anonymousAnonymous assigned name, alias, or pseudonym (used to protect a person's identity for privacy reasons)
    oldThis name is no longer in use (or was never correct, but retained for records)
    maidenA name used prior to marriage. Marriage naming customs vary greatly around the world. This name use is for use by applications that collect and store "maiden" names. Though the concept of maiden name is often gender specific, the use of this term is not gender specific. The use of this term does not imply any particular history for a person's name, nor should the maiden name be determined algorithmically.
  • HumanName.part.type has the definition NamePartType: "Type of a part of a human name". Possible values:
    familyFamily name, this is the name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.
    givenGiven name. NOTE: Not to be called "first name" since given names do not always come first.
    suffixPart of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that comes at the end of the name
    prefixPart of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that comes at the start of the name

The text element specifies the entire name as it should be represented. This may be provided instead of or as well as specific part elements. Every part must have a value.

Note that the order of the parts within a given part type has significance and must be observed. The different part types may be re-ordered between different contexts of use and the order between part types is not expected to be meaningful.

Use

  • Either text or at least one part with a value is required unless a dataAbsentReason flag is provided on the name element (xpath: exists(@dataAbsentReason) or exists(f:part[normalize-space(f:value)!='']) or exists (f:text[normalize-space(.)!='']))

Example

Full name of Peter James Chalmers.

  <x>
    <use>usual</use>
    <part>
      <type>given</type>
      <value>Peter</value>
    </part>
    <part>
      <type>given</type>
      <value>James</value>
    </part>
    <part>
      <type>family</type>
      <value>Chalmers</value>
    </part>
  </x>

See further examples (§4.2.1.13)

1.3.16: Address

A postal address. There are a variety of postal address formats defined around the world. This format defines a superset that is the basis for addresses all around the world. Postal addresses are often used to record a location that can be visited to find a patient or person.

<x xmlns="http://hl7.org/fhir">
 <use><!-- 0..1 code The use of this address --></use>
 <text><!-- 0..1 string Text representation of the address --></text>
 <part>  <!-- 0..* -->
  <type><!-- 0..1 code Type of address part (see below) --></type>
  <value><!-- 1..1 string The content of the address part --></value>
 </part>
 <period><!-- 0..1 Period Time period when address was/is in use --></period>
</x>

Terminology Bindings

  • Address.use has the definition AddressUse: "The use of an address". Possible values:
    homeA communication address at a home
    workAn office address. First choice for business related contacts during business hours
    tempA temporary address. The period can provide more detailed information
    oldThis address is no longer in use (or was never correct, but retained for records)
  • Address.part.type has the definition AddressPartType: "Type of address part". Possible values:
    partPart of an address line (typically used with an extension that further defines the meaning of the part).
    lineA line of an address (typically used for street names & numbers, unit details, delivery hints, etc.) .
    cityThe name of the city, town, village, or other community or delivery centre.
    stateSub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes).
    countryCountry. ISO 3166 3 letter codes can be used in place of a full country name.
    zipA postal code designating a region defined by the postal service.
    dpidA value that uniquely identifies the postal address. (Often used in barcodes).

The text element specifies the entire address as it should be represented. This may be provided instead of or as well as specific part elements. Every part must have a value.

Use

  • Either text or at least one part is required unless a dataAbsentReason flag is provided on the address element (xpath: exists(@dataAbsentReason) or exists(f:part[normalize-space(f:value)!='']) or exists (f:text[normalize-space(.)!='']))

Example

HL7 office's address.

  <x>
   <use>work</use>
   <text>
       1050 W Wishard Blvd
       RG 5th floor
       Indianapolis, IN 46240
     </html>
   </text>
   <part> 
     <type>city</type>
     <value>Indianapolis</value>
   </part>
   <part> 
     <type>state</type>
     <value>IN</value>
   </part>
   <part> 
     <type>zip</type>
     <value>46240</value>
   </part>
  </x>

1.3.17: Contact

All kinds of technology-mediated contact details for a person or organisation, including telephone, email, etc.

<x xmlns="http://hl7.org/fhir">
 <system><!-- 0..1 code What kind of contact this is --></system>
 <value><!-- 0..1 string The actual contact details --></value>
 <use><!-- 0..1 code How to use this address --></use>
 <period><!-- 0..1 Period Time period when the contact was/is in use --></period>
</x>

Terminology Bindings

  • Contact.system has the definition ContactSystem: "What kind of contact this is". Possible values:
    phoneThe value is a telephone number used for voice calls. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required.
    faxThe value is a fax machine. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required.
    emailThe value is an email address
    urlThe value is a url. This is intended for various personal contacts including blogs, Twitter, Facebook, etc. Do not use for email addresses
  • Contact.use has the definition ContactUse: "How to use this address". Possible values:
    homeA communication contact at a home; attempted contacts for business purposes might intrude privacy and chances are one will contact family or other household members instead of the person one wishes to call. Typically used with urgent cases, or if no other contacts are available.
    workAn office contact. First choice for business related contacts during business hours.
    tempA temporary contact. The period can provide more detailed information.
    oldThis contact is no longer in use (or was never correct, but retained for records)
    mobileA telecommunication device that moves and stays with its owner. May have characteristics of all other use codes, suitable for urgent matters, not the first choice for routine business

If capturing a phone, fax or similar contact, the value should be a properly formatted telephone number according to ITU-T E.123 (http://www.itu.int/rec/T-REC-E.123-200102-I/e) . However, this is frequently not possible due to legacy data and/or recording methods.

Use

  • A system is required if a value is provided. (xpath: not(exists(f:value)) or exists(f:system))
  • A value is required unless a dataAbsentReason flag is provided on the contact element (xpath: exists(@dataAbsentReason) or exists(f:value))

Example

Home phone number:

  <x>
   <system>phone</system>
   <value>+15556755745</value>
   <use>home</use>
  </x>

1.3.18: Schedule

A schedule that specifies an event that may occur multiple times. Schedules are not used for recording when things did happen, but when they are expected or requested to occur. A schedule can be either a list of events - periods on which the event occurs, or a single event with repeating criteria, or just repeating criteria with no actual event.

Note: a possible enhancement to this is to have the repeat content repeat with each event. This is richer and more complex - is the added functionality useful?

<x xmlns="http://hl7.org/fhir">
 <event><!-- 0..* Period When the event occurs --></event>
 <repeat>  <!-- Only if there is none or one event -->
  <frequency><!-- 0..1 integer Event occurs frequency times per duration --></frequency>
  <when><!-- 0..1 code Event occurs duration from common life event --></when>
  <duration><!-- 1..1 Duration Repeating or event-related duration --></duration>
  <count><!-- 0..1 integer Number of times to repeat --></count>
  <end><!-- 0..1 dateTime When to stop repeats --></end>
 </repeat>
</x>

Terminology Bindings

  • Schedule.repeat.when has the definition EventTiming: "A real world event that a schedule is related to". Possible values:
    HSevent occurs duration before the hour of sleep (or trying to)
    WAKEevent occurs duration after waking
    ACevent occurs duration before a meal (from the Latin ante cibus)
    ACMevent occurs duration before breakfast (from the Latin ante cibus matutinus)
    ACDevent occurs duration before lunch (from the Latin ante cibus diurnus)
    ACVevent occurs duration before dinner (from the Latin ante cibus vespertinus)
    PCevent occurs duration after a meal (from the Latin post cibus)
    PCMevent occurs duration after breakfast (from the Latin post cibus matutinus)
    PCDevent occurs duration after lunch (from the Latin post cibus diurnus)
    PCVevent occurs duration after dinner (from the Latin post cibus vespertinus)

If events are specified, at least a low must be specified for each event. If no high is specified, the event is assumed to last a limited but unknown time as clinically relevant.

If the schedule has repeating criteria, the repeat can occur a given number of times per the specified duration or in relation to some real world event. Also, if the event repeats, a time to end the schedule can be specified, either by specifying a count number of times it can occur or a date at which to end the schedule. If no end condition is specified, the Schedule will terminate on some criteria that are expressed elsewhere.

There are 3 rules concerning the contents of a Schedule:

  1. There can only be a repeat element if there is none or one event
  2. Only one of frequency and when can be present
  3. Only one of count and end can be present

Use

  • There can only be a repeat element if there is none or one event (xpath: not(exists(f:repeat)) or count(f:event)&lt;2)
  • At most, only one of count and end can be present (xpath on /repeat: not(exists(f:count) and exists(f:end)))
  • Either frequency or when must be present, but not both (xpath on /repeat: exists(f:frequency) != exists(f:when))

Example

A series of appointments for radiotherapy:

  <x>
    <event>
      <low>2012-01-07T09:00</low>
      <high>2012-01-07T13:00</high>
    </event>
    <event>
      <low>2012-01-14T09:00</low>
      <high>2012-01-14T13:00</high>
    </event>
    <event>
      <low>2012-01-22T11:00</low>
      <high>2012-01-22T15:00</high>
    </event>
  </x>

BID (twice a day) (no start or end specified):

  <x>
   <repeat>
     <frequency>2</frequency>
     <duration>
       <value>1</value>
       <units>day</units>
       <code>d</code>
       <system>http://unitsofmeasure.org</system>
     </duration>
   </repeat>
  </x>

1/2 an hour before breakfast for 10 days from 23-Dec 2011:

  <x>
    <event>
      <low>2011-12-23</low>
    </event>
    <repeat>
      <when>ACM</when>
      <duration>
        <value>30</value>
        <units>min</units>
        <code>min</code>
        <system>http://unitsofmeasure.org</system>
      </duration>
      <end>2012-01-02</end>
    </repeat>
  </x>

Note that the end date is inclusive like the high date of a Period.

1.3.19: Schema & UML models

Data Types Schema.

With regard to the UML models, see notes about the UML Object models (§1.2.9), and particularly the note regarding the UML representation of dataAbsentReason (§1.2.11)

1.4: Terminologies: Using Codes

Many elements in the FHIR resources are assigned a type of code, Coding (§1.3.6) or CodeableConcept (§1.3.7). These elements contain codes that have defined meanings and come from sets of codes of varying sophistication and size. In many simple cases, the set of codes is a short list defined specifically for the element. In other cases, the list of codes is taken from a large and complex terminology or ontology such as SNOMED-CT or OBO.

1.4.1: Bindings

All these elements of type code, Coding (§1.3.6) or CodeableConcept (§1.3.7) are given a "binding name" that defines the set of possible codes that can be used in the element in question. In Resource Profiles (§1.6), the elements can be assigned a new binding name that defines a new set of possible codes. The set of codes defined by a profile must be a subset of the set of codes defined in the base resource and those defined by any imported profiles. Binding Names can identify sets of codes in the following ways:

value setThe binding name has an associated URL which is a reference to a Value Set Resource (§2.6) that provides a formal definition of the set of possible codes
code listThe binding name is associated with a simple list of codes and definitions from some identified code system (by SID, URI, OID or UUID). In resource definitions, the system reference may be omitted and a list of custom codes with definitions supplied (this is for status and workflow fields that applications need to know). In formal terms, this is merely a locally-defined value set.
referenceThe binding name has an associated URL which refers to some external standard or specification that defines the possible codes
specialThe binding points to a list of concepts defined as part of FHIR itself (see below for possible values (§1.4.3))

Value set and code list bindings also have two properties that govern their use - extensibility and conformance:

  • Extensibility indicates whether additional codes are expected to be needed beyond those listed. It has two values:

    complete No additional codes are to be used beyond the list provided
    extensible Some concepts won't be covered by the provided value set, so supplemental codes or plain text may be needed
  • Conformance indicates the expectations for implementers of the specification. There are three possible values:

    required Only codes in the specified set are allowed. Profiles can only specify a subset of the defined codes.
    If the strength is 'extensible', other codes may be used for concepts not covered by the value set but cannot be used for concepts covered by the bound code list, even if a profile constrains out some of those codes).
    Specifications may render this as "SHALL"
    preferred For greater interoperability, implementers are strongly encouraged to use the bound set of codes, however alternate codes may be used in profiles if necessary without being considered non-conformant.
    Specifications may render this as "SHOULD"
    example The codes in the set are an example to illustrate the meaning of the field. There is no particular preference for its use.
    Specifications may render this as "MAY"

See the second tab of this page for a full list of the binding names defined for all FHIR resources.

1.4.2: Named Systems List

This specification defines the following names (URIs) as fixed names that may be used in the system element of the Identifier (§1.3.5) Coding (§1.3.6) or CodeableConcept (§1.3.7) data types. If a URI is defined here, it must be used in preference to other identifying mechanisms such as OIDs found in the HL7 OID registry.

URI Source Comment
Code Systems
http://snomed.info SNOMED-CT: (IHTSDO (http://ihtsdo.org) ) The version, module, etc. may be appended to this uri following the IHTSDO specifications
OID=2.16.840.1.113883.6.96
http://loinc.org LOINC (LOINC.org (http://loinc.org) )

The version of LOINC may be appended to this uri like so: http://loinc.org?v=2.36

OID=2.16.840.1.113883.6.1.

http://unitsofmeasure.org UCUM: (UnitsOfMeasure.org (http://unitsofmeasure.org) ) Generally used in the Quantity Data Type
OID=2.16.840.1.113883.6.8
http://hl7.org/fhir/sid/icd-10 ICD-10 International (WHO (http://www.who.int/classifications/icd/en/) )
OID=2.16.840.1.113883.6.3
http://hl7.org/fhir/sid/icd-9 ICD-9 USA (CDC (http://www.cdc.gov/nchs/icd/icd9.htm) )
OID=2.16.840.1.113883.6.42
http://hl7.org/fhir/sid/v2-[X] Version 2 table code [X] is the 4 digit identifier for a table. e.g. http://hl7.org/fhir/sid/v2-0203
OID=2.16.840.1.113883.12.[X]
http://hl7.org/fhir/sid/iso-[X] Codes as defined in the ISO standard with the given number.
Two important ISO standards are the 2-3 letter language codes (ISO 639 (http://en.wikipedia.org/wiki/ISO_639) -3)
and the currency codes (ISO 4217 (http://en.wikipedia.org/wiki/ISO_4217) )
OID=1.0.[X](.tail as specified)
(1.0.639.3 for 3 letter language codes
http://hl7.org/fhir/sid/atc Anatomical Therapeutic Chemical Classification System (WHO (http://www.whocc.no/atc/structure_and_principles/) )
OID=2.16.840.1.113883.6.73
Identifier Systems
http://hl7.org/fhir/sid/uri URIs (W3C (http://www.w3.org) ) As defined by various applicable RFCs including X
No OID
http://hl7.org/fhir/sid/oid OIDs The identifier is an OID itself
http://hl7.org/fhir/sid/uuid UUIDs Also called GUIDs
No OID
http://hl7.org/fhir/sid/us-ssn SSN (W3C (http://www.w3.org) ) SSN for USA. Represented with dashes removed
OID=2.16.840.1.113883.4.1

Important Note: The set of sids listed above is incomplete and subject to change. Some values may be dropped and others will likely be added in the coming months as HL7 institutes a formal process for determining what code systems and identifier types should be handled in this manner rather than as OIDs or other identifiers.

1.4.3: Internal Code Systems

In addition to this, a number of code systems are defined informally through the specification. This table enumerates them and assigns sid and OID values for them, though these are not generally used directly in this specification:

Special Values (§1.4.4) http://hl7.org/fhir/sid/special-values 2.16.840.1.113883.6.305
Resource Types http://hl7.org/fhir/sid/resource-types 2.16.840.1.113883.6.306
Logical Interactions (RESTful framework) http://hl7.org/fhir/sid/rest-operations 2.16.840.1.113883.6.308
Message Events (§2.2.5) (Messaging framework) http://hl7.org/fhir/sid/message-events 2.16.840.1.113883.6.307
Data Absent Reason (§1.2.3) http://hl7.org/fhir/sid/data-absent-reasons 2.16.840.1.113883.6.309

Note that all the codes in these code systems are case sensitive and must be used in lowercase. All the codes in these code systems have their own uri of the format http://hl7.org/fhir/sid/[system]/[code]. E.g. The resource type "Person" has the full uri http://hl7.org/fhir/sid/resource-types/person.

1.4.4: Special Values

Internally defined codes useful throughout the specification where Coding (§1.3.6) or CodeableConcept (§1.3.7) is used. These are defined by the code system "http://hl7.org/fhir/sid/special-values" which has OID 2.16.840.1.113883.6.305.

trueBoolean true
falseBoolean false
traceThe content is greater than zero, but too small to be quantified (used in formulations)
sufficientThe specific quantity is not known, but is known to be non-zero and is not specified because it makes up the bulk of the material. (e.g. 'Add 10mg of ingredient X, 50mg of ingredient Y, and sufficient quantity of water to 100mL.' This code would be used to express the quantity of water. )
withdrawnThe correct value is no longer available

1.4.5: Resource Types

In several places, the resource types themselves are used as either codes or identifiers. These should be referenced with the sid "http://hl7.org/fhir/sid/fhir/resource-types". This is a formal list of the resource type codes:

Agent (§3.1)A person who represents an organisation, and is authorised to perform actions on its behalf
Animal (§3.2)An animal that has relevance to the care process -usually this is for animals that are patients.
AssessmentScale (§3.3)Assessment scales or scores combine the findings of individual values into a total score which can be interpreted more easily against a reference population
Conformance (§2.7)A conformance statement about how an application or implementation supports FHIR or the set of requirements for a desired implementation.
DocumentHeader (§2.3)A documentation of healthcare-related information that is assembled together into a single statement of meaning that establishes its own context. A document is composed of a set of resources that include both human and computer readable portions. A human may attest to the accuracy of the human readable portion, and may authenticate and/or sign the entire whole. A document may be kept as a set of logically linked resources, or they may be bundled together in an atom feed
LabReport (§3.4)The findings and interpretation of pathology tests performed on tissues and body fluids. This is typically done in a laboratory but may be done in other environments such as at the point of care
MessageHeader (§2.2)A transmission requesting action on a bundle of one or more resources or a response to such a request
Organization (§3.5)For any company/corporation/institution/government department that has relevance to the care process
Patient (§3.6)A patient is a person or animal that is receiving care
Person (§3.7)A person who is involved in the healthcare process
Prescription (§3.8)Directions provided by a prescribing practitioner for a specific medication to be administered (and possibly) supplied to an individual
Profile (§1.6)A Resource Profile - a statement of use of FHIR. May include constraints on Resources, Terminology Binding Statements and Extension Definitions
ValueSet (§2.6)Value Set - a set of defined codes from one or more code systems that may be bound to a context
Admission (Known Broken Link - needs to be resolved)Yet to be defined
AssessmentDefinition (Known Broken Link - needs to be resolved)Yet to be defined
Device (Known Broken Link - needs to be resolved)Yet to be defined
Group (Known Broken Link - needs to be resolved)Yet to be defined
InterestOfCare (Known Broken Link - needs to be resolved)Yet to be defined
Specimen (Known Broken Link - needs to be resolved)Yet to be defined

1.5: Extensibility

This exchange specification is based on generally agreed common requirements across healthcare - covering many jurisdications, domains, and different functional approaches. As such, it is common for specific implementations to have valid requirements that will not be directly included in this specification. Incorporating all of these requirements would make this specification very cumbersome and difficult to implement. Instead, this specification expects that these additional distinct requirements will be implemented as extensions.

As such, extensibility is a fundamental part of the design of this specification. Every resource includes an extension section that may be used to represent additional information that is not part of the basic definition of the resource. Conformant applications are not allowed to reject resources because they contain extensions, though they may need to reject resources because of the specific contents of the extensions.

Note that, unlike in many other specifications, there can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core simplicity for everyone.

In order to make the use of extensions safe and manageable, there is a strict governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that must be met as part of the definition of the extension.

1.5.1: Extensibility Element

Each resource includes the optional "extension" element that may be present any number of times before the narrative element at the end of the resource. This is the content model of the extension as it appears in each resource:

<x xmlns="http://hl7.org/fhir">
 <code><!-- 1..1 id Code that identifies the meaning of the extension --></code>
 <profile><!-- 1..1 uri Profile that defines the extension --></profile>
 <ref><!-- 0..1 idref Internal reference to context of the extension (xml:id) --></ref>
 <mustUnderstand><!-- 0..1 boolean Must  you recognize this extension to safely read the resource? --></mustUnderstand>
 <value[x] d?><!-- 0..1 Value of extension --></value[x]>
 <extension><!-- 0..* Extension Nested Extensions --></extension>
</x>

Notes:

  • The code identifies the meaning of the extension. The only codes that can be used are those defined using the methodology described below.
  • The source of the definition must be declared using the definition element. The definition identifies a resource profile (§1.6) that defines the meaning of the extension.
  • If present, the id in the ref element is an internal reference (§1.2.5) to a target element that is extended by the content as if it contained the extension itself. The id must point within the same resource. If id is not present, the extension applies to the root resource
  • The order that extensions appear in is significant - where multiple extensions have the same target, they extend the target element in the order in which they appear in the extension section
  • Any element defined as part of the resource content, or any repeating element inside a data type, may carry an id attribute to serve as the target of an extension
  • An extension may have a value, or nested extensions, but not both. The actual name of the value element has the type added to it in place of the [x], such as valueQuantity

As well as providing additional information, extensions may be used to qualify the meaning of other elements or even to negate the meanings of other elements. This behavior makes these kinds extensions unsafe to ignore. Such extensions must have an attribute mustUnderstand = true. Any application processing the data of a resource must check for extensions labeled "mustUnderstand". If the application does not recognise the code on an extension that is labeled "mustUnderstand", and where the extension either has no internal reference, or the reference is data processed by the application, the application SHALL either refuse to process the data, or carry a warning concerning the data along with any action or output that results from processing the data. Note that it must always be safe to show the narrative to humans; any extension that is labelled as "mustUnderstand" must be represented in the narrative. Applications are encouraged to ignore un-required extensions that they do not recognise if "mustUnderstand" is not set to true. "mustUnderstand" extensions SHALL be attached to reference points within an instance such that all data elements whose meaning may be impacted by the extension are part of the element to which the extension is attached.

The value[x] element has the [x] replaced with the name of one of the defined types, and the contents as defined for that type, or another extension. The value type may be one of the following:

Some of the primitive (§1.3.1) datatypes are not included in this list. Extensions that might wish to use one of the ommitted primitives are expected to use one of the more complex types in their place. For example, decimal and integer are handed by Quantity (§1.3.9), base64Binary by Attachment (§1.3.4), etc.

Nested extensions cannot have a ref element. The [type] element is optional unless the definitions of the extension codes make rules about it. Extensions can never have a default value.

1.5.2: Defining Extensions

Extensions may be defined by any project or jurisdication, up to and including international standards organisations such as HL7 itself, and are published as part of a Resource Profile (§1.6). Extensions are always defined against some particular context. The following are possible contexts for an extension:

Context typeContext formatExamples
A particular element (including the root) in a single resourceThe element path for that elementProfile.resource.element; Person
A particular element (including the root) in a particular data typeThe datatype name for primitive types or the element path for complex datatypesAddress.part.value; string
A particular context in one of the mapped reference modelsThe name of the reference model followed by the mapping pathRIM: Act[moodCode="EVN"]
Another extensionThe profile uri of the extension followed b the extension codehttp://myextensions.org someExtension
A set of some combination of the aboveAs above, separated by ';'Address; Contact

In addition, an extension definition might apply additional constraints with regards to particular element values of the target that make its use appropriate. Extensions SHALL only be used on a target for which they are defined.

Each extension is defined using the following fields:

CodeRequiredThe name that is used as a code in a resource to identify this extension - unique in the context of the defining profile
ContextRequiredThe context of this extension. See above. The context has two parts: a type, and a path which supplies the details
Short DefnRequiredA brief description of the extension used in the XML descriptions when the extension is referenced in a profile
DefinitionRequiredA formal statement of the meaning of the content of the field
RequirementsOptionalIdentifies the reason the extension is needed
CommentsOptionalAdditional other information about the extension, including information such as use notes
CardinalityRequiredThe cardinality of this extension.
Specifying a minimum cardinality of 1 means that if the source system declares that it conforms to an extension that declares a type including this extension, this extension must be included in the resource. Cardinality can be constrained but not loosened in profiles that reference this extension
TypeRequiredThe type(s) of the extension. This must be a valid FHIR data type as described above, or "Extension: x,y,z" which indicates that the extension codes x,y, and z will be contained in the extension
DateAbsentReason?RequiredWhether the the data absent reason is allowed on the value of the extension. (This can be further constrained in profiles that reference the extension)
XPathsOptionalOne or more XPath statements that must evaluate to true when the extension is used
Must UnderstandRequiredWhether the extension must be understood by any system reading the resource. There are 3 possible values: "true" - the extension must be understood, "false" - the extension does not need to be understood, and "sender" - the sender can decide whether the extension needs to be understood
RIM MappingConditionalThe formal mapping from this extension to the RIM. Required for HL7-defined extensions that apply to resources with RIM mappings, but may be optional in other contexts
v2 MappingOptionalMapping to a v2 segment/field/etc, if desired and appropriate.
BindingConditionalFor the types CodeableConcept and Coding. See Terminologies (§1.4)

Notes:

  • Mappings are not required to be computable (i.e. executable logic). Mappings to other specifications can also be provided.

Whenever resources containing extensions are exchanged, the definitions of the extensions must be available to all the parties that share the resources. Each extension contains a URI that references the source of the definitions as a Resource Profile. The source SHOULD be a literal reference, such as an http: url that refers to an end-point that responds with the contents of the definitions - preferably a FHIR RESTful server (§2.1) supporting the Resources Profile, or a logical reference (e.g. using a urn:) - for instance, to a national published standard.

1.5.3: Control of extensions

As well as defining the base element structure for resources, HL7 also publishes extensions. HL7 publishes data definitions as extensions rather than as part of the base resource structure in order to keep the base resource structure simple and concise, and to allow implementors not to engage with an entire world's worth of functionality up front. Note that HL7 extensions are never flagged as must-understand - if HL7 publishes resource content that must be understood, it will be part of the resource content itself, since everyone has to understand the extension anyway.

Before extensions can be used in instances, they must be published. HL7 maintains two extension registries, and users are encouraged to register their extensions there. But this is not required; all that is required is that the extension is published in a context that is available for users of the extension. So, for example, if a particular extension is used exchanged within a single institution, the definition of the extension can be placed on the instition's intranet. However since, by their nature, resources tend to travel well, it's always better to use the HL7 extension registries.

HL7 provides two extension registries. The first is for HL7 approved extensions. These have been approved by an appropriate part of the HL7 community following a review process, and have formal standing. The other registry is provided as a service to the community, and anyone can register an extension on it.

RegistrySearchSubmit
HL7 Approved[tbd][tbd]
Community[tbd][tbd]
Interimhttp://hl7connect.healthintersections.com.au/svc/fhir/profile/search http://hl7connect.healthintersections.com.au/svc/fhir/profile/upload

HL7 profiles defining extensions may be balloted alongside resource content as part of the FHIR specification or may be published as part of separate specifications. When HL7 publishes extensions as part of the FHIR specification, these extensions SHALL be used for this data whenever the data is represented in instances. Applications SHOULD use other HL7-defined extensions published to represent equivalent data in the interest of maximum interoperability. If referencing a profile that defines extensions, implementations declaring conformance with the profile SHALL use the profile-defined and imported extensions when conveying equivalent data elements.

To minimize complexity for implementers, HL7 will not elevate content defined in an HL7-approved extension to be content defined in a core resource in future versions of the resource.

In some cases, an HL7 work group or other body may publish a profile whose sole purpose is to define extensions expected to be needed by implementers in a particular context. E.g. extensions needed to map a particular set of v2 segments or a v3 model.

Implementations are encouraged to share their extensions with HL7 and register them with the HL7 extension registry. The domain committees will work to elevate the extensions into HL7 published extensions or, if adopted by a broad enough portion of the implementer community, the into the base resource structure itself.

To avoid interoperability issues, extensions SHALL NOT change their definition once published. (Small clarifications to descriptions that do not affect interoperability are permitted.) Rather than modifying an existing extension, a new extension should be introduced. Revisions to an extension may extend the set of contexts in which the extension apply but may not remove or constrain any context previously listed

1.6: Resource Definition: Profile

Status: An infrastructure resource. This is an approved resource, and its status is draft for comment

A Resource Profile - a statement of use of FHIR. May include constraints on Resources, Terminology Binding Statements and Extension Definitions.

The resource name as it appears in a RESTful URL (§2.1) is /profile/

1.6.1: Background

This specification describes a set of base resources that are used in many different contexts in healthcare. In order to make this manageable, applications and specifications need to be able to:

  • Explain how a set of resources is used in a particular context
  • Describe restrictions on the use of the elements defined as part of the resource(s)
  • Define the extensions that are used with the resources
  • Describe how resources are bound to terminology in a particular context

All these things are done by a Resource Profile, which is itself a resource that describes the usage of one or more other resources. Profiles have a metadata section that describes who published the profile, and why, as well as optional lists of resources constraints, extension definitions, and vocabulary bindings.

1.6.2: Slicing

One common operation in a resource profile is to take an element that may occur more than once, and describe a series of different constraints on the elements in the list. In this way, the list is split into a series of individual elements or sub-lists. In FHIR, this operation is known as "Slicing" a collection. Here is an example to illustrate the process:

In this example, the resource definition defines the "relationship" element which may occur multiple times. The profile for Acme, Inc. constrains the relationship element into 3 different named kinds: 1 or 2 parents, up to 6 children, and maybe a guardian. No other relationships are supported by the Acme system.

Note that in FHIR, only the resource is ever actually exchanged. The profile describes a way of using the resource, but the item profile names ("parent", etc. in this list) are never exchanged. The slicing description is more useful if it is "unambiguous": if systems are able to determine which relationships in the relationship list that is actually exchanged are parent, child, or guardian; in this particular case, the determination is allowed by fixing the value of the relationship type element. Fixing a code value is the most common way to slice a list.

1.6.3: Resource Content

UML Image

See also the Examples (§4.15) and the Definitions (§5.16).

<Profile xmlns="http://hl7.org/fhir">
 <id><!-- 1..1 id Fixed identifier for this profile --></id>
 <name><!-- 1..1 string Informal name for this profile --></name>
 <version><!-- 0..1 string Version number for external references --></version>
 <author>  <!-- (Organisation or individual) -->
  <name><!-- 1..1 string Name of the recognised author --></name>
  <reference><!-- 0..* uri Web reference to the author --></reference>
 </author>
 <description><!-- 1..1 string Natural language description of the profile --></description>
 <code><!-- 0..* Coding Assist with indexing and finding --></code>
 <status>  <!-- Current status -->
  <code><!-- 1..1 code draft | testing | review | production | withdrawn | superceded --></code>
  <date><!-- 1..1 dateTime date for given status --></date>
  <comment><!-- 0..1 string Supplemental status info --></comment>
 </status>
 <import>  <!-- 0..* External source of extensions and bindings -->
  <uri><!-- 1..1 uri Profile location --></uri>
  <prefix><!-- 0..1 string Short form for referencing --></prefix>
 </import>
 <bundle><!-- 0..1 code If this describes a bundle, the first resource in the bundle --></bundle>
 <resource>  <!-- 0..* A constraint on a profile -->
  <type><!-- 1..1 code The Type of the resource being described --></type>
  <profile><!-- 0..1 uri Resource Profile that supplies the constraints --></profile>
  <name><!-- 0..1 string Name for this Constraint Statement --></name>
  <purpose><!-- 0..1 string Human summary: why describe this resource? --></purpose>
  <element>  <!-- 0..* Definition of elements in the resource -->
   <path><!-- 1..1 string The path of the element (see the formal definitions) --></path>
   <name><!-- 0..1 string Name of constraint for slicing - see above --></name>
   <definition>  <!-- More specific definition of the element  -->
    <short><!-- 1..1 string Concise definition for xml presentation --></short>
    <formal><!-- 1..1 string Formal definition --></formal>
    <comments><!-- 0..1 string Comments about the use of this element --></comments>
    <requirements><!-- 0..1 string Why is this needed? --></requirements>
    <synonym><!-- 0..* string Other names --></synonym>
    <min><!-- 1..1 integer Minimum Cardinality --></min>
    <max><!-- 1..1 string Maximum Cardinality (a number or *) --></max>
    <type>  <!-- 0..* Type of the element -->
     <code><!-- 1..1 code Data type or Resource --></code>
     <profile><!-- 0..1 uri Profile to apply (Resource only) --></profile>
    </type>
    <nameReference><!-- 0..1 string To another element constraint (by element.name) --></nameReference>
    <value[x] d?><!-- 0..1 Fixed value: [as defined for type] --></value[x]>
    <maxLength><!-- 0..1 integer Length for strings --></maxLength>
    <dataAbsentReason><!-- 1..1 boolean If @dataAbsentReason is allowed --></dataAbsentReason>
    <condition><!-- 0..* id reference to invariant about presence --></condition>
    <constraint>  <!-- 0..* Condition that must evaluate to true -->
     <id><!-- 1..1 id Target of 'condition' reference above --></id>
     <name><!-- 0..1 string Short human label --></name>
     <severity><!-- 1..1 code error | warning --></severity>
     <human><!-- 1..1 string Human description of constraint --></human>
     <xpath><!-- 1..1 string XPath expression of constraint --></xpath>
     <ocl><!-- 0..1 string OCL expression of constraint --></ocl>
    </constraint>
    <mustSupport><!-- 0..1 boolean If the element must be usable --></mustSupport>
    <mustUnderstand><!-- 0..1 boolean If the element must be understood --></mustUnderstand>
    <binding><!-- 0..1 string Binding - see bindings below (only if coded) --></binding>
    <mapping>  <!-- 0..* Map element to another set of definitions -->
     <target><!-- 1..1 string Which mapping this is (v2, CDA, openEHR, etc.) --></target>
     <map><!-- 0..1 string Details of the mapping --></map>
    </mapping>
   </definition>
   <bundled><!-- 0..1 boolean If type is Resource, is it in the bundle? --></bundled>
   <closed><!-- 0..1 boolean If list, whether derived profiles can slice more --></closed>
  </element>
 </resource>
 <extensionDefn>  <!-- 0..* Definition of an extension -->
  <code><!-- 1..1 code identifies the extension in the instance --></code>
  <contextType><!-- 1..1 code resource | datatype | mapping | extension --></contextType>
  <context><!-- 1..* string Where the extension can be used in instances --></context>
  <definition><!-- 1..1 Content as for Profile.resource.element.definition Definition of the extension and its content --></definition>
 </extensionDefn>
 <binding>  <!-- 0..* Define code sets for coded elements -->
  <name><!-- 1..1 string binding name --></name>
  <definition><!-- 0..1 string Human explanation of the binding --></definition>
  <type><!-- 1..1 code valueset | codelist | reference | special --></type>
  <isExtensible><!-- 1..1 boolean Can additional codes be used? --></isExtensible>
  <conformance><!-- 1..1 code required | preferred | example --></conformance>
  <reference><!-- 0..1 uri Source of binding content --></reference>
  <concept>  <!-- 0..* Enumerated codes that are the binding -->
   <code><!-- 1..1 code Code to use for this concept --></code>
   <system><!-- 0..1 uri source for the code, if taken from another system --></system>
   <display><!-- 0..1 string Print name. Defaults to code if not provided --></display>
   <definition><!-- 1..1 string Meaning of the concept --></definition>
  </concept>
 </binding>
 <extension><!-- 0..* Extension  See Extensions  --></extension>
 <text><!-- 1..1 Narrative Text summary of resource profile for human interpretation --></text>
</Profile>

Alternate definitions: Schema, RDF (to do), XML, Resource Profile

Terminology Bindings

  • Profile.status.code has the definition ResourceProfileStatus: "The lifecycle status of a Resource Profile". Possible values:
    draftThis profile is still under development
    testingthis profile was authored for testing purposes (or education/evaluation/evangelisation)
    reviewThis profile is undergoing review to check that it is ready for production use
    productionThis profile is ready for use in production systems
    withdrawnThis profile has been withdrawn
    supersededThis profile was superseded by a more recent version
  • Profile.bundle and Profile.resource.type share the definition of any defined Resource Type name (§1.4.5)
  • Profile.resource.element.definition.type.code has the definition of any defined data Type name (§1.3) (including Resource (§1.2.6))
  • Profile.extensionDefn.contextType has the definition ExtensionContext: "The type of context expression applicable". Possible values:
    resourceThe context is all elements matching a particular resource element path
    datatypeThe context is all nodes matching a particular data type element path (root or repeating element) or all elements referencing a particular primitive data type (expressed as the datatype name)
    mappingThe context is all nodes whose mapping to a specified reference model corresponds to a particular mapping structure. The context identifies the mapping target. The mapping should clearly identify where such an extension could be used, though this
    extensionThe context is a particular extension from a particular profile. Expressed as uri#name, where uri identifies the profile and #name identifies the extension code
  • Profile.binding.type has the definition BindingType: "How this binding is mapped to a set of codes". Possible values:
    valuesetThe binding name has an associated URL which is a reference to a Value Set Resource that provides a formal definition of the set of possible codes
    codelistThe binding name is associated with a simple list of codes, and definitions from some identified code system (SID, URI, OID, UUID). In resource definitions, the system reference may be omitted, and a list of custom codes with definitions supplied (this is for status and workflow fields that applications need to know)
    referenceThe binding name has an associated URL which refers to some external standard or specification that defines the possible codes
    specialThe binding points to a list of concepts defined as part of FHIR itself (see below for possible values)
  • Profile.binding.conformance has the definition BindingConformance: "Must applications comply with this binding?". Possible values:
    requiredOnly codes in the specified set are allowed. If the binding is extensible, other codes may be used for concepts not covered by the bound set of codes.
    preferredFor greater interoperability, implementers are strongly encouraged to use the bound set of codes, however alternate codes may be used in profiles if necessary without being considered non-conformant.
    exampleThe codes in the set are an example to illustrate the meaning of the field. There is no particular preference for its use

Constraints

  • Provide either a profile reference or constraints on the resource elements (but not both) (xpath on /resource: exists(f:profile) != exists(f:element))
  • Bundled may only be specified if one of the allowed types for the element is a resource (xpath on /resource/element: not(exists(f:bundled)) or exists(f:definition/f:type/f:code[starts-with(., 'Resource(')]))
  • Either a name or a fixed value (but not both) is permitted (xpath on /resource/element/definition: not(exists(f:nameReference) and exists(f:*[starts-with(local-name(.), 'value')])))
  • Value may only be specified if the type consists of a single repetition that has a type corresponding to one of the primitive data types. (xpath on /resource/element/definition: not(exists(f:*[starts-with(local-name(.), 'value')])) or (count(f:type)=1 and f:type/f:code[substring(.,1,1)=lower-case(substring(.,1,1))]))
  • Binding can only be present for coded elements (xpath on /resource/element/definition: not(exists(f:binding)) or f:type/f:code=('code','Coding','CodeableConcept'))
  • Max must be a number or "*" (xpath on /resource/element/definition/max: .='*' or (normalize-space(.)!='' and normalize-space(translate(., '0123456789',''))=''))
  • Profile is only allowed if code is a resource (xpath on /resource/element/definition/type: not(exists(f:profile)) or starts-with(f:code, 'Resource('))
  • Codes must be unique in the context of a profile (xpath on /extensionDefn/code: count(ancestor::f:Profile/f:extensionDefn/f:code[.=current()])=1)
  • reference must be present and may only be present if binding type is "reference" or "valueset" (xpath on /binding: (f:type=('reference', 'valueset')) = exists(f:reference))
  • concepts must be present and may only be present if binding type is "codelist" (xpath on /binding: (f:type='codelist') = exists(f:concept))
  • Binding name must be unique in the context of a profile (xpath on /binding/name: count(ancestor::f:Profile/f:binding/f:name[.=current()])=1)

Metadata Notes:

  • The name of the profile is not required to be globally unique, but the name should have some scoping information (i.e. Acme Inc (USA), Allergy List)
  • Multiple codes may be assigned to the profile. These may either describe the template, or the focus of the template, or both. They are solely to help find the profile by searching for structured concepts
  • When importing from other profiles, only the extensions and bindings defined in the other profiles are imported. Any extensions and bindings that are defined in other resources must have import statements referencing the location of the profile.

Interpretation Notes:

  • The name of a resource constraint (Profile.resource.name) is only used as a logical target for .element.resource.profile. A reference may reference another resource constraint in same Resource Profile by Profile.resource.name as #[name]), or a different resource constraint in another profile by an absolute uri. In the case of an absolute uri, it must resolve literally or logically to a Resource Profile (§1.6) and specify a #[name] portion in the URI that references a particular constraint in the target profile by name
  • The constraint statement has a flat list of elements. The path element provides the overall structure and it must match the structure and names in the resource structure exactly
  • The condition element is used to assert that a constraint defined on another element affects the allowed cardinality of this element
  • The type is used to specify which types apply when the underlying resource allows a choice of types. When the type of the element is fixed in the underlying resource definitions, it should still be stated in the profile. The type is optional because repeating groups of elements do not have a type.
  • The definition (short, formal, comments and the mappings) for an element are provided so that the resource profile can provide a more specific definition for the field in a specific context. For instance, the underlying resource definition might be "Result value", and the more specific resource definition could be "Plasma Cholesterol Test Value". The meaning needs to be consistent with the underlying definition, but narrower - a constraint on it.
  • For an element with a maximum cardinality of 1, there can only be one entry in the value list, which is either a literal fixed type (with an element name matching the type of the fixed value), or a name, which is a reference to a named constraint pattern. If the element has a type of "list", then there can be multiple values - again, either fixed values with a type, or a named constraint. Each of these appears in the list with the order and cardinality specified. By this means, a list may be "sliced" into a series of different components
  • There can be more than one entry for each element path. The constraint specification can define multiple different constraints for any element, and then use them in different places. In practice, this is useful when slicing a list, and the differently named constraint profiles are invoked using the values element. The name of the element constraint must be unique within the constraint specification for that resource. If a constraint does not have a name, it applies to the base resource, and must be found in the correct place in the structure
  • For an extension definition, the cardinality constraints are limits on the constraints of any reference to the extension in a profile. For example, if the minimum cardinality of an extension is 1 when it is defined, then any profile that includes that extension in the instance must include it with a minimum cardinality of 1, and therefore any instance that conforms to the profile must include the extension. Note, however, that if the extension is simply directly referenced in an instance rather than applied through a profile, the minimum cardinality doesn't apply, though the maximum one still does.

TODO: Is any control over narrative required?

1.6.4: Profiled FHIR

If a profile is unambiguous, then the FHIR profile tooling (ref to be provided) is able to generate reference implementation based object models that express the profiled model natively, where the object interface does not include prohibited elements, treats declared extensions as primary properties, and slices lists according to the profile. This eases the burden on an implementer, though this object model can only be used with a sub-set of the possible resources.

The tooling is also able to generate bi-directional transforms between the normal XML format (§1.2) and an XML representation of this profiled object model, and schema for this profiled XML representation. This XML form has extensions promoted into the primary XML form by using the extension code as the XML name, and sliced lists are renamed to use the Profile.resource.element.name as the XML element name. Profiles are only suitable for this use if they ensure that there are no clashing extension names when the extension definition spaces are ignored, and that the sliced list names are appropriate.

Implementations are allowed to exchange this profiled XML format. Implementations that do so are not fully conformant to FHIR; instead they can claim to be conformant to "Profiled FHIR". Implementations should consider carefully before adopting this approach; while it will reduce the amount of work required to initially implement particular profiles, it will increase the amount of work required to exchange this data with other communities, or to re-use tooling and applications that are also used in other contexts. This cost should particularly be considered in light of the fact that the previously discussed tooling allows applications to be written as though they are dealing with "Profiled FHIR" instances when they are in fact sending and receiving fully conformant FHIR instances.

1.6.5: Search Parameters

Search Parameters for RESTful searches. The standard parameters also apply. See Searching (§2.1.12) for more information.

n : integerStarting offset of the first record to return in the search set
count : integerNumber of return records requested. The server is not bound to conform
id : tokenThe id of the resource
name : stringa portion of the name of the resource
word : texta word somewhere in the definition of the resource or the elements in the resource. (Common words - 'and', etc. - are often not supported)
author : stringname or id of the author
code : qtokena code in the format uri::code (server may choose to do subsumption)
extension : tokenan extension code (use or definition)
binding : tokena vocabulary binding code
status : tokena status of the profile
type : tokentype of resource that is constrained in the profile
resource : tokena resource constrained in a profile
reference : tokenan id of another profile referenced in the profile
date : datedate equal to the profile publication date
date-before : datedate before or equal to the profile publication date
date-after : datedate after or equal to the profile publication date

(See Searching (§2.1.12)).

2: Implementation

2.6: Implementation Details

While the FHIR Resources are designed with a simple RESTful HTTP-based implementation (§2.1) in mind, it is not necessary to use this implementation framework. This specification also defines a straight messaging based implementation framework (§2.2) for FHIR resources and a document-based framework (§2.3), as well as documenting how FHIR resources are used with hData (§2.4).

2.6.6: SOA

Alternatively, it is not necessary to use any of these approaches. Resources can be exchanged or persisted using any technical means that is appropriate to the context at hand. A common use of FHIR resources or bundles is as parameters of service interfaces. FHIR itself does not define any particular service interface. Instead, other standards and implementations define their own service interfaces and architecture that use FHIR resources. As long as the resources that are used are conformant with this specification and the rules for authoring and reading applications are followed, then the implementation can claim conformance to "FHIR Resources". Such implementations will need to resolve several issues:

  • Resource references need to be able to be resolved. There are a variety of solutions to this, from ensuring that the all the relevant resources are bundled together or that all relevant resources are passed as parameters in a service call, through to a resource repository that provides access to all referenced resources.
  • The Resource metadata (§1.2.2) items "Version Id" and "Last Modified Date" are provided for use in resolving resource versioning and concurrency issues, both from a technical and human perspective. Most contexts of use will require at least one if not both of these attributes for some uses, and the implementation framework will need to resolve how and when they are exchanged.
  • The resource metadata (§1.2.2) item "Master Location" may be useful as part of a solution towards resolving resource references and/or handling issues pertaining to distributed use and re-use of resources and implementations should describe how this data item is handled.
  • The conformance statement (§2.7) allows authoring and reading applications to describe their rules concerning the use and contents of a resource. The implementation will need to describe how this conformance statement or some other equivalent fits into the exchange/persistence context.
  • How transactional information such as data enterer, author(s), responsible party, consent and approvals is treated

The resolution to these issues should be documented and published with the service specification.

There are many ways to implement any particular workflow and there are many ways to use resources to build working systems:

  • A RESTful paradigm where resources are exchanged separately using http transactions directly as defined in this specification. Implementations can use both push and pull or a mix of the two
  • The resources can be exchanged in messages or some other SOA implementation where the resources form the contents/parameters that are exchanged
  • The resources can be "bundled" into documents that are self-contained and complete collections of linked resources and then these documents can be exchanged and/or persisted
  • The resources can be embedded in HTML pages or other web content such as content feeds

2.6.7: Implementation Support

This section contains links to content that assist implementers make FHIR work in production:

TODO: add RDF & OWL renditions, eCore definitions, ADL versions, anything anyone else asks for

2.6.7.1: Reference Implementations

These reference implementations are provided for implementer interest and assistance. They may be used in production instances, though HL7 and its contributors accept no liability for this use. All these implementations are provided under a standard OSI approved BSD license (BSD-3-Clause).

These reference implementations are limited to code for representing the resource contents in their native form and parsing & serializing them as XML and JSON. In addition, some of the implementations provide support for building, using and reasoning with resource definitions. Full blown open source implementations for FHIR, some of which use these reference implementations, are listed on the HL7 wiki (http://wiki.hl7.org/index.php?title=Open_Source_FHIR_implementations) .

It is not necessary to use these particular implementations in order to be conformant. Any other approach may be used, including code generated from the schemas.

  • Delphi: Resource Definitions and XML & JSON parsers. D5+. TODO: remove dependencies on unpublished code.
  • Java: Resource Definitions + parser (+ more todo). The java reference implementation depends on XmlPull (http://www.xmlpull.org/) and the Apache Commons Codec library (http://commons.apache.org/codec/).
  • C#: Resource definitions (+ more todo)
  • ECore: Formal Object Definitions in OCLinECore text format - under development

2.6.7.2: Icons

Any (conformant?) FHIR Implementation is allowed to use the FHIR icon in association with the FHIR implementation. The FHIR icon is available in various sizes:

2.1: RESTful HTTP Details

In addition to the set of base resources, FHIR also provides a RESTful implementation using HTTP (http://www.w3.org/Protocols/rfc2616/rfc2616.html) - an implementation of the OMG Health RESTful specification (http://www.omg.org) . Each resource type has the same set of interactions defined that can be used to manage the resources in a highly granular fashion. Applications claiming conformance to this framework claim to be conformant to "RESTful FHIR".

Note that in this RESTful framework, transactions are performed directly on the server resource using an HTTP request/response. These HTTP calls may be authenticated against a single user account (including using OAuth (http://www.oauth.org) ), but this arrangement doesn't cater for common transaction metadata such as multiple users, responsible party, reasons, consents, etc. that are commonly encountered in healthcare. Instead, use of this protocol assumes that appropriate security and logs are managed by the client (perhaps through using ATNA), and that the server trusts the client to maintain these. One implication is that this RESTful framework is only suitable for use where such trust relationships exist (e.g. in a single institution) and is not suitable where such trust does not exist (e.g. state & national EHR systems and health record systems that support disparate systems). Similarly, this simple RESTful interface has no support for explicit archiving and similar functions. These types of more sophisticated usages should consider a messaging (§2.2) or SOA-based approach (§2.6.6) or some kind of profiled REST interface, such as hData (§2.4).

The following logical interactions are supported:

Instance
read (§2.1.5)Read the current state of the resource
vread (§2.1.6)Read the state of a specific version of the resource
update (§2.1.7)Update an existing resource by its id (or create it if it is new)
delete (§2.1.8)Delete a resource
history (§2.1.9)Retrieve the update history for the resource
validate (§2.1.10)Check that the content would be acceptable as an update
Manager
updates (§2.1.11)Get a list of prior updates to resources of this type, optionally with some filter criteria
search (§2.1.12)Search the resource type based on some filter criteria
create (§2.1.13)Create a new resource with a server assigned id
System
conformance (§2.1.14)Get a conformance statement for support of this resource type

Note that while these same logical interactions are defined on all resources, applications are not required to implement all of them. Applications must provide a conformance statement (§2.7) that says what interactions are supported.

2.1.1: Service Root URL

The Service Root URL is the address where all of the resources defined by this interface are found. The Service Root URL takes the form of

http(s)://server/path

The path may end with a trailing slash or not. Each resource type defined in this specification has a manager (or "entity set") that lives at the address "/[name]" where the name is the name of the resource type in lower case. For instance, the resource manager for the type "Patient" will live at:

http://server/path/patient

All the logical operations are defined relative to the service root URL below. Note that this means that given the address of any one FHIR resource on a system, the correct address for all the other resources may be determined. However since application URLs may change and because in some uses of FHIR within internal eco-systems, local configuration may dictate that the provider of a resource is different to that claimed by any particular provider or consumer, applications may need to replace Service Root URLs.

Note: except for the Service Root Portion of the URL, all the URLs (and ids that form part of the URL) defined by this specification are case sensitive and are required to be in lowercase.

2.1.2: Resource Metadata and Versioning

Each resource has an associated set of resource metadata elements (§1.2.2). These map to the http request and response using the following fields:

Metadata ItemHTTP Response Header
Version IdThe Version Id is represented by the full canonical URL in the master location (see vread (§2.1.6) below). The Version Id may also be represented in the http ETag, but the use of ETag is not needed by this specification
Last Modified DateHTTP Last-Modified header
Master LocationHTTP Content-Location header

2.1.3: Security

For this specification, normal HTTP security and authentication rules apply. The Service Root URL will specify whether SSL is required. HTTP authentication may be required by the server, possibly including the requirement for client certificates. It is a matter of application requirements and local configuration whether all interactions run under the account of a trusted system user whether each interaction runs under the account of the individual user or whether some other arrangement is required.

OAuth (http://oauth.net/) may be used to provide security. Applications are recommended to use the variants of the OAuth protocol that do not require URL parameters, but these may be used if necessary.

2.1.4: Content Types and File Extensions

The formal mime type for FHIR resources is text/xml+fhir (still to be registered) and SHOULD be use by clients and servers. Servers are required to support the XML format of the resources defined in this specification, but may support other alternatives, including the informative JSON (§1.2.10) representation. Servers must support the content-type negotiation support described by the HTTP specification, but in order to support various implementation limitations, may choose to support the (?format=) parameter to specify alternative return formats by their mime types. For the format parameter, the mime types text/xml & text/xml+fhir must be interpreted to mean the normative XML format defined by FHIR and application/json must be interpreted to mean the informative JSON format.

2.1.5: read

The read interaction accesses the current contents of a resource. The interaction is performed by an HTTP GET operation as shown:

  GET [service-url]/[resourcetype]/{@id} (?format=mimeType) 

This returns a single instance with the content specified for the resource type. This url may be accessed by a browser. The logical id is preceded by a "@" to make parsing the url easier. The possible values for the id itself are described in the id type. Servers are required to return a content-location header with the response which is the full version specific url (see vread below) and a Last-Modified header.

2.1.6: vread

The vread interaction preforms a version specific read of the resource. The interaction is performed by an HTTP GET operation as shown:

  GET [service-url]/[resourcetype]/{@id}/history/{@vid} (?format=mimeType)

This returns a single instance with the content specified for the resource type. Servers may return a content-location header with the response which is the url requested and a Last-Modified header.

The version id is an opaque identifier that conforms to the same format requirements as a resource id. The id may have been found by performing a history operation (see below), by recording the version id from a content location returned from a read or from a version specific reference in a content model. The vread interaction should succeed even after a resource is deleted as long as a correct version identifier is provided.

2.1.7: update

The update interaction changes an existing resource or creates a new resource if it doesn't already exist. The update interaction is performed by an HTTP PUT operation as shown:

  PUT [service-url]/[resourcetype]/{@id} (?format=mimeType)

The server must return a copy of the newly updated resource (which might not be the same as that submitted) with the response, along with a Last-Modified header, and a Content-Location header that refers to the version created by the updated operation.

Servers may choose to implement version-aware updates, where the only updates that are accepted quote the current version of the resource. In this case, the client must submit the currently correct version specific URL in the Content-Location in the PUT request. If the value is incorrect, the server SHALL return a 412 Preconditions failed response. Clients SHOULD submit a proper Content-Location header and SHALL correctly understand a 412 response as an update conflict.

2.1.8: delete

The delete interaction removes an existing resource. The interaction is performed by an HTTP DELETE operation as shown:

  DELETE [service-url]/[resourcetype]/{@id} 

A delete operation means that non-version specific reads (§2.1.5) of a resource return a 410 error and that the resource is no longer found through search operations. If a server refuses to delete resources of that type on principle, then it should return the status code 405 method not allowed. If the server refuses to delete a resource because of reasons specific to that resource, such as referential integrity, it should return the status code 409 Conflict. Resources may be undeleted by PUTting an update to them subsequent to the deletion.

Many resources have a status element that overlaps with the idea of deletion. Each resource type defines what the semantics of the deletion operations are. If no documentation is provided, the deletion operation should be understood as deleting the record of the resource, with nothing about the state of the real-world corresponding resource implied.

2.1.9: history

The history interaction retrieves the history of the resource. The interaction is performed by an HTTP Get operation as shown:

  GET [service-url]/[resourcetype]/{@id}/history (?format=mimeType)

The return content is an Atom feed containing the version history for that resource, sorted with oldest versions first. ToDo: how deletions are represented.

2.1.10: validate

The validate interaction checks whether the attached content would be acceptable as an update to an existing resource. The validation operation may be the first part of a light two- phase commit process. The interaction is performed by an HTTP POST operation as shown:

  todo: harmonise these with the RLUS REST specification
  POST [service-url]/[resourcetype]/validate/{@id}

The content is first checked against the general specification and against the conformance profile that applies to the application. How much checking is performed is at the discretion of the server. Then the resource is considered as a proposed update and additional instance specific rules such as referential integrity and update logic are applied as well. The return content has status 200 OK if the content validates ok or 409 Conflict, with the following content:

 <validation xmlns="http://hl7.org/fhir">
   <error mand type="string">General error message</error>  
   <messages type="list">   <!-- Zero+ -->
     <message>
       <path opt type="string"xpath to the issue</path>
       <error mand type="string">Description of the problem</error>
     </message>
   <messages>
 </validation>

The validation operation has complex semantics and rules. Implementers wishing to use this operation should consult the full discussion of the operation in the OMG REST specification.

2.1.11: updates

The updates interaction retrieves a list of the resources of a particular type, ordered by the date of last update in reverse (most recently changed first). The interaction is performed by an HTTP Get operation as shown:

  GET [service-url]/[resourcetype] (?format=mimeType)

The return content is an Atom feed containing list of resources, sorted with oldest updates first.

The updates list can be restricted to a limited period by the Last-Modified header. Additional parameters can be used to filter the updates list using the search parameters defined by the resource type.

2.1.12: search

This interaction searches a resource type based on some filter criteria. The interaction is performed by an HTTP Get operation as shown:

  GET [service-url]/[resourcetype]/search?parameters (&format=mimeType)

Because of the way that some user agents treat POST requests, POST submissions are also allowed, though the semantics are exactly the same as a GET operation. Search operations take a series of parameters that are encoded in the URL or as an x-multi-part-form submission for a POST. Each FHIR resource type defines a set of applicable search parameters with their meanings and servers may declare additional parameters in their conformance statements. In addition, the following common search parameters apply to all resource types:

n : integerStarting offset of the first record to return in the search set
count : integerNumber of return records requested. The server is not bound to conform
id : idAn identifier associated with the resource

It is at the discretion of the server how many results to return, though the client may request a particular number with the count parameter. If the client wishes for more results, it should use the n parameter. More generally, the client uses parameters to narrow the search and increase its usefulness. Note that which parameters to support is at the discretion of the server.

The return content is an Atom feed containing the results of the search as a list of resources in a defined order. This specification does not assign any particular meaning to the order of the resources.

If more sophisticated searching is required, a FHIR-based service interface can be defined to enable the workflow and functionality desired. At this time, support for messaging-based queries is not expected to be needed in FHIR.

2.1.12.1: Search Parameter Types

integersearch parameter must be a simple whole number
stringsearch parameter is a simple string, like a name part (search usually functions on partial matches)
textsearch parameter is into a long string (i.e. a text filter type search)
datesearch parameter is onto a date (and should support -before and -after variants)
tokensearch parameter is on a fixed value string (i.e. search has an exact match)
qtokensearch parameter is a pair of fixed value strings, namespace and value, separated by a ":". The namespace is usually a uri, such as one of the defined code systems (§1.4) and is optional when searching

2.1.13: create

The create interaction creates a new resource. The interaction is performed by an HTTP POST operation as shown:

  POST [service-url]/[resourcetype] (?format=mimeType)

The server returns a copy of the newly created resource (which might not be the same as that submitted) with the acknowledgement, along with a Location: header which also contains the new location and id of the created resource:

 Location: [service-url]/[resourcetype]/{new-id} version aware.... 

The resource id element SHALL not be present. If the client wishes to specify the id of the submitted resource, then it should use the update operation instead.

2.1.14: conformance

The conformance interaction retrieves the application's conformance statement for the resource. The interaction is performed by an HTTP OPTIONS operation as shown:

  OPTIONS [service-url] (?format=mimeType)

Applications SHALL return a Conformance Resource (§2.7) that specifies which resource types and operations are supported. If a 404 Unknown is returned, FHIR is not supported on the nominated service url.

Servers may choose what content to return when they receive a GET operation on the Service Root URL. Generally some page that guides human manual interaction with the server would be appropriate.

2.1.15: Intermediaries

The HTTP protocol may be routed through an HTTP proxy such as squid. Such proxies are transparent to the applications, though implementers should be alert to the effects of rogue caching.

Interface engines may also be placed between the consumer and the provider. These differ from proxies because they actively alter the content and/or destination of the HTTP exchange and are not bound the rules that apply to HTTP proxies. Such agents are allowed, but must mark the http header to assist with troubleshooting.

Any agent that modifies an HTTP request or Response content other than under the rules for HTTP proxies must add a stamp to the HTTP headers like this:

  request-modified-[identity]: [purpose]
  response-modified-[identity]: [purpose]

The identity must a single token defined by the administrator of the agent that will sufficiently identify the agent in the context of use. The header must specify the agent's purpose in modifying the content. End point systems must not use this header for any purpose. Its aim is to assist with system troubleshooting.

2.2: Resource Definition: MessageHeader

Status: An infrastructure resource. This is an approved resource, and its status is draft for comment

A transmission requesting action on a bundle of one or more resources or a response to such a request.

This page describes how FHIR Resources can be used in a traditional messaging context, much like HL7 v2. Applications claiming conformance to this framework claim to be conformant to "FHIR messaging".

In FHIR messaging, a "request message" is sent from a source application to a destination application when an event happens. Events mostly correspond to things that happen in the real world. The request message consists of a bundle (§2.5) of resources, with the first resource in the bundle being this Message resource. The Message resource has a code - the message event - that identifies the nature of the request message and carries additional request metadata. The other resources in the bundle depend on the type of the request.

The events supported in FHIR, along with the resources that are included in them, are defined below.

The destination application processes the request and returns one or more response messages which are also a bundle (§2.5) of resources, with the first resource in the bundle being a Message (§2.2.4) resource with a response section that reports the outcome of processing the message and any additional response resources required.

2.2.1: Basic Messaging Assumptions

This specification assumes that content will be delivered from one application to another by some delivery mechanism, and then a response will be returned to the source application. The exact mechanism of transfer is irrelevant to this specification, but may include file transfer, http based transfer, LLP (HL7 minimal lower layer protocol), MQ series messaging or anything else. The only requirement for the transfer layer is that requests are sent to a known location and responses are returned to the source of the request. This specification considers the source and destination applications as logical entities, and the mapping from logical source and destination to implementation specific addresses is outside the scope of this specification.

In principle, source applications are not required to wait for a response to a transaction before issuing a new transaction. However in many case, the messages in a given stream are dependent on each other, and must be sent and processed in order. In addition, some transfer methods may require sequential delivery of messages.

This specification ignores the existence of interface engines and message transfer agents that exist between the source and destination. Either they are transparent to the message/transaction content and irrelevant to this specification, or they are actively involved in manipulating the message content. If these middleware agents are modifying the message content, then they become responsible for honoring the contract described below in both directions.

2.2.1.1: Absence of Reliable Messaging

Some of the message delivery mechanisms mentioned above are reliable delivery systems - the message is always delivered, or an appropriate error is returned to the source. However most implementations use methods which do not provide reliable messaging, and either the request or the response can get lost in transit. FHIR messaging describes a simple approach to handle this that applications must conform to, whether messaging appears to be reliable or not.

A message receiver must always check the incoming bundle identifier (atom feed.id), and check them against a store of previously received messages (going back a reasonable period in time). If it receives a duplicate message id that it has already responded to, it should assume that the original response was lost (failed to return to the request issuer), and resend the original response in a new bundle. If the source application gets no response to its request from the destination application, the source application should resend the same bundle with the same atom feed.id.

2.2.2: Conformance Statement

Applications claiming to be conformant to "FHIR messaging" may choose to publish a conformance statement that lists all the message events they support, either as sender or listener, and for each event, a profile that states which resources are bundled (sender), or are required to be bundled (listener), and any rules about the information content of the individual resources. The conformance statement is a resource with the name "Conformance" (§2.7).

2.2.3: Messaging End-points

There are two end-points defined for a RESTful server that supports Messages:

  • [baseurl]/message/: a normal RESTful end point for message resources
  • [baseurl]/mailbox: an address at which messages can be delivered

The first end-point is used for working within the message contents, for instance, for building messages piecemeal or for auditing received messages. Creating or updating Message resources to this end point does not represent the actual occurrence of any event, nor can it trigger any logic associated with the actual event. It is just for managing message resources.

The second end-point is used for actually sending messages as bundles (§2.5), to indicate that the event identified by the code has occurred. The end-point responds with a message response as defined for the particular event, or an error indicating that the attempt to process the message was unsuccessful. The functionality of this end-point is described below (§2.2.6).

Note: While the end-points above are defined for use with message resources and for delivering messages to a RESTful server, it is not necessary to use them; messages may be transported between systems using any method desired.

2.2.4: Resource Content

UML Image

See also the Examples (§4.10) and the Definitions (§5.11).

<MessageHeader xmlns="http://hl7.org/fhir">
 <id><!-- 1..1 id Master Resource Id = Message Id --></id>
 <instant><!-- 1..1 instant Instant the message was sent --></instant>
 <event><!-- 1..1 code Code for the event his message represents --></event>
 <response>  <!-- If this is a reply to prior message -->
  <id><!-- 1..1 id Id of original message --></id>
  <code><!-- 1..1 code Type of response to the message --></code>
 </response>
 <source>  <!-- Message Source Application -->
  <name><!-- 0..1 string Name of system --></name>
  <software><!-- 1..1 string Name of software running the system --></software>
  <version d?><!-- 0..1 string Version of software running --></version>
  <contact d?><!-- 0..1 Contact Human contact for problems --></contact>
  <endpoint><!-- 1..1 uri Actual message source address or id --></endpoint>
 </source>
 <destination>  <!-- Message Destination Application -->
  <name><!-- 0..1 string Name of system --></name>
  <target d?><!-- 0..1 Resource(Device) Particular delivery destination within the destination --></target>
  <endpoint><!-- 1..1 uri Actual destination address or id --></endpoint>
 </destination>
 <enterer d?><!-- 0..1 Resource(Agent) The source of the data entry --></enterer>
 <author d?><!-- 0..1 Resource(Agent) The source of the decision --></author>
 <receiver d?><!-- 0..1 Resource(Person|Organization) Intended "real-world" recipient for the data --></receiver>
 <responsible d?><!-- 0..1 Resource(Agent|Organization) Final responsibility for event --></responsible>
 <effective d?><!-- 0..1 Period Time of effect --></effective>
 <reason d?><!-- 0..1 CodeableConcept Cause of event --></reason>
 <data><!-- 0..* Resource(Any) The actual content of the message --></data>
 <extension><!-- 0..* Extension  See Extensions  --></extension>
 <text><!-- 1..1 Narrative Text summary of message, for human interpretation --></text>
</MessageHeader>

Alternate definitions: Schema, RDF (to do), XML, Resource Profile

Terminology Bindings

  • MessageHeader.event has the definition of the Event List in the messaging framework (§2.2.5)
  • MessageHeader.response.code has the definition ResponseCode: "The kind of response to a message". Possible values:
    okThe message was accepted and processed without error
    errorSome internal unexpected error occurred - wait and try again. Note - this is usually used for things like database unavailable, which may be expected to resolve, though human intervention may be required
    rejectionThe message was rejected because of some content in it. There is no point in re-sending without change. The response narrative must describe what the issue is
    rulesThe message was rejected because of some event-specific business rules, and it may be possible to modify the request and re-submit (as a different request). The response data must clarify what the change would be, as described by the event definition
    undeliverableA middleware agent was unable to deliver the message to its intended destination
  • MessageHeader.reason has the definition EventReason: "The reason for an event occurring"

Notes:

  • The resource references enterer, author and responsible may all be included in the bundle or left out on the basis that the recipient (and any intermediaries) are able to locate/resolve the resources independently. The former would be suitable for loosely coupled systems, and the latter for tightly coupled systems. The messaging conformance statement for an application may reference a profile (§1.6) that describes how the bundling occurs
  • The actual content of the data resource is specified for each message event. The data resource is always included in the bundle

2.2.5: Event List

CodeDescriptionRequestResponseNotes
admin-notifyNotification of a change to an administrative resource (either create or update). Note that there is no delete, though some administrative resources have status or period elements for this usePerson--
Animal--
Organization--
Patient--Patient Links cannot be updated using admin-notify. The links element must be empty
labreport-provideProvide a lab report, or update a previously provided lab reportLabReport
 LabReport.patient
 LabReport.patient.person
 LabReport.patient.animal
 LabReport.admission
 LabReport.requestDetail.clinicalInfo
 LabReport.specimen
 LabReport.resultGroup.specimen
--
patient-linkNotification that two patient records actually identify the same patientPatient,Patient--Follow ups: patient-unlink?
patient-unlinkNotification that previous advice that two patient records concern the same patient is now considered incorrectPatient,Patient--

2.2.6: Mailbox

The mailbox is the standard name for a service hosted on a RESTful server that accepts messages and processes them as transactions, and returns a message response appropriate for the message received. The server is under no obligation to do anything particular with the resources except as required by the semantics of the event code in the message resource. A server may choose to retain the resources and make them available on a RESTful interface, but is not required to do so. If the server returns 200 Ok, it must return a valid message that indicates what the outcome of the event processing is. An HTTP error indicates that the message was not processed successfully, and that it should be resubmitted (and doing so should not result in a duplicate message response). Repeated failures indicate either a fatal problem with the message or a problem with the receiving application.

The mail box can also be used to accept documents. In this case, the document is "accepted" (the server takes responsibility for custody of the received document), and an HTTP status of 204 No Content is returned, or an HTTP error is returned. The server is under no obligation to do anything with the document except as specific trading partner agreements dictate.

The following rules apply to the mailbox:

This simple mailbox profile can be used by any http end point that accepts FHIR messages or documents, not just FHIR RESTful servers.

2.2.7: Search Parameters

Search Parameters for RESTful searches. The standard parameters also apply. See Searching (§2.1.12) for more information.

n : integerStarting offset of the first record to return in the search set
count : integerNumber of return records requested. The server is not bound to conform
id : tokenThe id of the resource

(See Searching (§2.1.12)).

2.3: Resource Definition: DocumentHeader

Status: An infrastructure resource. This is an approved resource, and its status is draft for comment

A documentation of healthcare-related information that is assembled together into a single statement of meaning that establishes its own context. A document is composed of a set of resources that include both human and computer readable portions. A human may attest to the accuracy of the human readable portion, and may authenticate and/or sign the entire whole. A document may be kept as a set of logically linked resources, or they may be bundled together in an atom feed.

FHIR resources can be used to build clinical documents that capture information about clinical observations and services. A clinical document is a bundle (a list of resources in an atom feed) that is fixed in scope, frozen in time and authored and/or attested as a set of logically contained resources by humans, organisations and devices. Documents built in this fashion may be exchanged between systems and also persisted in document storage and management systems, including systems such as IHE XDS. Applications claiming conformance to this framework claim to be conformant to "FHIR documents".

2.3.1: Document Content

All documents have the same structure: a bundle that has a Document Header resource (below) first, followed by a series of other resources referenced from the Document header that provides guidance on how they fit together. The bundle gathers all the content of the document into a single XML document which may be signed and managed as required. The resources include both human and computer readable portions.

The document header identifies the document and its purpose, sets the context of the document and carries key information such as the subject and author. It also divides the document up into a series of sections that contain other resources identified in this specification that carry the content. Any resource referenced directly in the Document resource must be included in the bundle when the document is assembled. Other resources that these referenced resources refer to may also be included in the bundle if the document originator chooses to.

The Document.id identifies the logical document. Multiple versions of the document may exist, each with their own unique bundle identifier (Atom feed.id). The means the Document.id maps to CDA ClinicalDocument.setId and the feed.id to ClinicalDocument.id.

Document profiles (§1.6) can make additional rules about which resources must be included in the bundle along with the resources that are directly referenced in the Document resource. In addition, Document Profiles can specify what sections a document contains and what the constraints on their contents are. Applications should consider publishing conformance statements (§2.7) that identify particular documents they support.

2.3.2: Document End-Points

There are two RESTful end-points defined for Documents:

The first end-point is used for working within the document contents, for instance, for building documents piecemeal, for auditing received documents or for providing a document registry. The second end-point is used for working with whole documents, such as providing a document repository. Servers may un-bundle documents received through the /document/ end-point, and make the document resources they contain available through the /documentheader/ end-point, but are not required to do so.

RESTful systems may also accept documents through their mailbox (§2.2.6).

Note: While the end-points above are defined for use with document resources and document bundles, it is not necessary to use them. Documents may be transferred between systems using any method desired.

2.3.3: Resource Content

UML Image

See also the Examples (§4.8) and the Definitions (§5.9).

<DocumentHeader xmlns="http://hl7.org/fhir">
 <id><!-- 1..1 id Master Resource Id = document Id --></id>
 <instant><!-- 1..1 instant Document Creation Time --></instant>
 <type><!-- 1..1 CodeableConcept Kind of Document (LOINC if possible) --></type>
 <title d?><!-- 0..1 string Document Title --></title>
 <replaces><!-- 0..1 id If this document replaces another --></replaces>
 <enterer d?><!-- 0..1 Resource(Agent) The source of the data entry --></enterer>
 <subject><!-- 1..1 Resource(Patient|Group|Device) Who/what the document is about --></subject>
 <informant d?><!-- 0..1 Resource(Person) Who provided information in document --></informant>
 <author><!-- 1..* Resource(Agent) Who/what authored the final document --></author>
 <attester>  <!-- 0..* Attests to accuracy of document -->
  <mode><!-- 1..1 code Personal | professional | legal | official --></mode>
  <time d?><!-- 0..1 dateTime When document attested --></time>
  <party d?><!-- 0..1 Resource(Agent|Organization) Who attested the document --></party>
 </attester>
 <recipient d?><!-- 0..* Resource(Agent|Organization) Expected to receive a copy  --></recipient>
 <custodian><!-- 1..1 Resource(Organization) Org which maintains the document --></custodian>
 <context d?><!-- 0..1 Resource(Any) The clinical item being documented --></context>
 <encounter d?><!-- 0..1 Resource(Admission|InterestOfCare) Context of the document --></encounter>
 <stylesheet d?><!-- 0..1 Attachment Stylesheet to use when rendering the document --></stylesheet>
 <representation><!-- 0..1 Attachment Alternative representation of the document --></representation>
 <section>  <!-- 0..* Document is broken into sections -->
  <type><!-- 0..1 CodeableConcept Type of section (recommended) --></type>
  <instant d?><!-- 0..1 instant Section Creation Time --></instant>
  <author><!-- 0..1 Resource(Agent) Who/what authored the section --></author>
  <enterer d?><!-- 0..1 Resource(Agent) The source of the data entry --></enterer>
  <subject><!-- 0..1 Resource(Patient|Group|Device) If section different to document --></subject>
  <informant d?><!-- 0..1 Resource(Person) Who provided information in section --></informant>
  <content d?><!-- 0..1 Resource(Any) The actual data for the section --></content>
  <text d?><!-- 0..1 Narrative Human Readable Text Summary of the section --></text>
  <section><!-- 0..* Content as for DocumentHeader.Section Nested Section --></section>
 </section>
 <extension><!-- 0..* Extension  See Extensions  --></extension>
 <text><!-- 1..1 Narrative Text summary of document, for human interpretation --></text>
</DocumentHeader>

Alternate definitions: Schema, RDF (to do), XML, Resource Profile

Terminology Bindings

  • DocumentHeader.type has the definition DocumentType: "Type of a clinical document". If an appropriate code exists in LOINC Document Types then it should be used
  • DocumentHeader.attester.mode has the definition DocumentAuthenticationMode: "The way in which a person authenticated a document". Possible values:
    personalThe person authenticated the document in their personal capacity
    professionalThe person authenticated the document in their professional capacity
    legalThe person authenticated the document and accepted legal responsibility for its content
    officialThe organization authenticated the document as consistent with their policies and procedures
  • DocumentHeader.section.type has the definition DocumentSectionType: "Type of a clinical document section". If an appropriate code exists in LOINC Section Types then it should be used

Constraints

  • A document must have a representation, one or more sections or both (xpath: exists(f:representation) or exists(f:section))
  • A document stylesheet must have a mime type of text/css (xpath on /stylesheet: f:mimeType = 'text/css')
  • A section must have content or one or more sections, but not both. (xpath on /section: exists(f:content) != exists(f:section))

Notes:

  • The author and the attester are often the same person, but this may not be the case in some clinical workflows
  • The attester attests to the collated narrative portions of the resources
  • The author, subject, enterer and informant features are inherited in contained sections and need not be repeated. Specifying any of these in a section replaces the inherited value
  • The custodian is responsible for the maintenance of the document. Principally, they are responsible for the policy regarding persistence of the documents. They need not actually retain a copy of the document, but they should do so.

2.3.4: Presenting a Document

The human display of the Document is the collated narrative portions of following resources (in order):

  1. The Document itself
  2. The Subject resource
  3. Resources referenced in the section.content

The document narrative should summarise the important parts of the document header that are required to establish clinical context for the document (other than the subject, which is displayed in its own right). To actually build the combined narrative, simply append all the narrative <div> fragments.

2.3.4.1: Styling Documents

In addition to the basic style rules (§1.2.4.1), which must be followed, a document can contain a style sheet that contains additional styles that apply to the collated narrative. Unless otherwise agreed in local trading partner agreements, applications displaying the collated narrative should use the style sheet provided in the document. Parties entering into such a trading agreement should consider the implications it will have no their long term scope for document exchange very carefully.

2.3.5: Document Handling Obligations

The authors and users of Clinical Documents, whether human or software, have obligations that they must satisfy.

2.3.5.1: Author Obligation

A document author is an application that creates a document resource. The author may create new content resources and/or assemble already existing content resources while doing so. A document author has the following responsibilities:

  • Build a valid document header that that conforms to the Document rules explained here and that only links to other valid resources
  • Ensure that the content of the document and other resources conforms to any declared Profiles (§1.6).
  • Ensure that the presentation of the document is properly attested according to the information supplied in the attesters.

2.3.5.2: User Obligations

A document user is an application that receives or presents documents, or extracts data from them, or makes decisions because of them. The documents may be received directly from a document author or accessed via a document management system. The document user is responsible for ensuring that received documents are processed and/or rendered in accordance to this specification. A document recipient has the following obligations:

  • When storing/transmitting a document, any method may be used as long as the bundled document can be (re-)assembled with sufficient integrity to validate a digital signature (i.e. it is legitimate to unbundle the resources and store them on a FHIR RESTful server, but this is not required)
  • When presenting the narrative of the document, the rules described above must be followed
  • A user is allowed to extract resources or data from the document for other use, but such data is no longer considered to be attested by the document author
  • Wherever the data (or information derived from it) is displayed to a user, there should always be a way for the user to access a presentation of the original document
  • It must correctly determine when a document has been superseded (according the statements made in the setId, version or replaces elements of received documents or those in the source document management system) and either withdraw data extracted from superseded documents, or warn users when they view the document

2.3.6: Implementation Notes

2.3.7: RESTful support for Document Bundles

The standard RESTful endpoints (such as [baseurl]/person/@{id} for a Person resource or [baseurl]/document/@{id} for the Document resource) handle the individual resources and not bundles (though, per the RESTful spec, they serve up atom feeds for the history (§2.1.9), search (§2.1.12) and update (§2.1.7) operations). The Document (§2.3) framework defines an additional end-point for handling document bundles at [baseurl]/document/@{id}). In this context, the id is the id of the Document Header resource. The end-point supports the following operations:

Instance
readRetrieve a document bundle
vreadRetrieve a particular version of a document
updatePost a document to the server.
deleteDelete a bundle.
validateCheck that the content would be acceptable as a submission
historyReturns a history for the document.
Manager
updatesGet a list of updates to resources of this type, optionally with some filter criteria
searchSearch the document bundles based on some filter criteria. Supported search parameters
  • atom.id - an id of a document (i.e. the feed.id in the atom)
  • other parameters as for the document resource apply
createNot supported - document ids are always provided by the author, and the document must be provided as an update

Note that the history, updates and search methods all return atom feeds that contain bundles - that is, atom feeds that contain entries where the content type is another atom feed. Atom feeds are only ever nested two levels deep (i.e. one atom feed containing a series of atom feeds that are bundles that contain resources).

2.3.8: Search Parameters

Search Parameters for RESTful searches. The standard parameters also apply. See Searching (§2.1.12) for more information.

n : integerStarting offset of the first record to return in the search set
count : integerNumber of return records requested. The server is not bound to conform
id : tokenThe id of the resource
type : qtokenthe type of the document
date : datedate equal to the document creation time
date-before : datedate before or equal to the document creation time
date-after : datedate after or equal to the document creation time
subject : qtokensubject of the document
author : qtokenauthor of the document
attester : qtokenattester of the document
context : qtokencontext of the document
section-type : qtokencode of the document
section-content : qtokencontent resource of the section

(See Searching (§2.1.12)).

2.4: Using FHIR Resources with hData

hData (Known Broken Link - needs to be resolved) describes the use of a RESTful architecture to manage a set of granular resources in a coherent record structure. hData and FHIR share the same basic RESTful transport (the RESTful specification (§2.1) is a profile on the OMG hData RESTful (Known Broken Link - needs to be resolved) transport). hData builds on top of that a set of resources and addresses issues that provide the architecture to maintain a coherent record, such as a patient care record. This page documents how FHIR resources may be used for the components of an hData record architecture.

Notes:

content profile for hData for each resource
  template for a content profile - available @ hdata wiki page on hl7 wiki (ArB is going to review that)
  schema + rddl (see rddl.org)
  set link rel in atom feed on per type 

2.5: Atom Feeds

One basic operation performed with resources is to gather all a list of resources into a single XML document. In FHIR this is referred to as "bundling" the resources together. The resource bundle is not just a list of references to resources, but includes their whole content. These resource bundles are useful for a variety of different reasons, including:

  • Returning a set of resources that meet some criteria as part of a server operation
  • Storing a list of resources
  • Exchanging a set of resources as part of a message transaction
  • Grouping a self contained set of resources to act as an exchangeable and persistable group with clinical integrity (i.e. a clinical document)

Whenever resources are gethered into a list, this is done using the Atom format (http://tools.ietf.org/html/rfc4287), following this template:

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005">
  <title 1..1 type="string">text statement of purpose</title>
  <updated 1..1 type="instant">when the bundle was built</updated>
  <id 1..1 type="uri">unique uri for this bundle</id>
  <link 1..1 rel="self" href="[building application url]"/>

  <entry gd:etag="version id">    <!-- Zero+ -->
    <title 1..1 type="string">text summary of resource</title>
    <link 1..1 rel="self" href="Master Location for Resource"/>
    <id 1..1 type="uri">Master Id (uri) for this resource</id>
    <updated 1..1 type="instant">Last Updated for resource</updated>
    <published 0..1 type="instant">Time resource copied into the feed</updated>
    <author>
      <name 1..1 type="string">Name of Human or Device that authored the resource</name>
      <uri 0..1 type="uri">Link to the resource for the author</uri>
    </author>
    <category 1..1 term="[Resource Type]" scheme="http://hl7.org/fhir/sid/fhir/resource-types"/>  
    <content 1..1 type="text/xml">
      <[ResourceName] xmlns="http://hl7.org/fhir">
         <id 1..1 type="id">Resource Id (i.e. normal resource content)</id>
         <!-- Content for the resource -->
      </[ResourceName]>
    </content>
    <summary 0..1 type="xhtml">
        <div xmlns="http://www.w3.org/1999/xhtml"> <!-- Narrative from resource --></div>
    </summary>
  </entry>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" 0..1>
       <!-- Enveloped Digital Signature (see Atom section 5.1) -->
  </Signature>
</feed>

Notes:

  • Logically, a bundle is a set of resources that are prepared to send somewhere for consumption - a "feed". There is no implication that the feed is a standing arrangement (though this is not precluded)
  • The order of elements does not matter in an atom feed. The order of elements in the atom namespace as documented here does not need to be followed
  • The title for the feed and the entry are arbitary human readable content and not to be used for any automated processing. Applications may populate these in any useful way
  • Every bundle must have a unique id and that id must be a valid id. UUIDs are recommended
  • The link elements are mandatory in the atom feed format.
  • The type attribute on the content element does appear in the xml instance (it's an atom type, not a FHIR type)
  • The entry element carries the three pieces of resource metadata (§1.2.2): Version Id, Last Updated, and Master Location
  • Author is a required element by the atom element. The author of a resource is not explicit in the FHIR resource model; instead it is delegated to the infrastructure. The name is the name of a human author or a device. The uri is a link to the resource for the author
  • In a RESTful implementation, the Master Location is the URL of the resource on a system that is the master for that resource. In the absence of a known master or a RESTful implementation, some other location may be used.
  • An xml:base element may be specified on the content element, though one is not needed for FHIR resources.
  • The entire bundle can be signed with a single Enveloped Digital Signature as described in the Atom specification. See below for further comment

Readers of the resources bundles should always look through the resources in the atom feed when a resource reference (§1.2.6) is encountered. The resource reference may have the resource type and a relative url, which is the id of the target, like this:

  <institution>
    <type>Organization</type>
    <id>1145c09c-73d0-4297-9835-620e4afa9deb</id>
  </institution>

A reader trying to find the resource this institution element identifies should always look through the entries in the atom feed prior to looking anywhere else for the institution. If that organization is in the feed, it would look like this:

   .. feed ..
  <entry>
    .. 
    <id>1145c09c-73d0-4297-9835-620e4afa9deb<id>
    .. 
    <category term="Organization" scheme="http://hl7.org/fhir/sid/fhir/resource-types"/>

    <content type="text/xml">
      <Organization xmlns="http://hl7.org/fhir">
         <id>1145c09c-73d0-4297-9835-620e4afa9deb</id>
         <!-- other Content for the resource -->
      </Organization>
    </content>
  ... feed ...

It would also be possible to locate the resouce by an absolute url. In this case, the id element contains a reference to the location of the resource:

  <institution>
    <type>Organization</type>
    <id>http://acme.com/fhir/patient/@23</id>
  </institution>

A reader trying to find this institution should always look through the entries in the atom feed prior to looking anywhere else for the institution. If that patient is in the feed, it would look like this:

   .. feed ..
  <entry>
    .. 
    <link rel="self" href="http://acme.com/fhir/patient/@23"/>
    <id>23<id>
    .. 
    <category term="Patient" scheme="http://hl7.org/fhir/sid/fhir/resource-types"/>

    <content type="text/xml">
      <Patient xmlns="http://hl7.org/fhir">
         <id>23</id>
         <!-- other Content for the resource -->
      </Patient>
    </content>
  ... feed ...

If there is no resource in the atom feed with an appropriate URL, then the application may try accessing the provided URL directly or use some other implementation-specific method for resolving how to find the resource. Note that this example used a FHIR RESTful URL (§2.1), but this is not required.

2.5.1: Implementation Notes

2.6: Resource Definition: ValueSet

Status: An infrastructure resource. This is an approved resource, and its status is draft for comment

Value Set - a set of defined codes from one or more code systems that may be bound to a context.

The resource name as it appears in a RESTful URL (§2.1) is /valueset/

A value set specifies a set of codes drawn from one or more code systems. Value sets don't actually define the code themselves - they just define what codes are included or excluded from the set. Value sets are defined to control what codes or concepts can be used in a particular context.

A value set resource is directly mappable to a CTS2 value set definition and an automated transform should be possible in order to use a CTS2 server to provide value set functionality

2.6.1: Resource Content

UML Image

See also the Examples (§4.16) and the Definitions (§5.17).

<ValueSet xmlns="http://hl7.org/fhir">
 <id><!-- 1..1 id Fixed identifier for this value set resource --></id>
 <name><!-- 1..1 string Informal name for this value set --></name>
 <author>  <!-- (Organisation or individual) -->
  <name><!-- 1..1 string Name of the recognised author --></name>
  <reference><!-- 0..1 uri Author contact --></reference>
 </author>
 <description><!-- 1..1 string Human language description of the value set --></description>
 <status><!-- 1..1 code draft | testing | production | withdrawn | superseded --></status>
 <date><!-- 1..1 dateTime Date for given status --></date>
 <identifier><!-- 1..1 id Logical id to reference this value set --></identifier>
 <version><!-- 1..1 id Logical id for this version of the value set --></version>
 <restricts><!-- 0..* uri Can replace these value sets when profiling --></restricts>
 <import><!-- 0..* uri Import the contents of another value set --></import>
 <include>  <!-- 0..* Include one or more codes from a code system -->
  <system><!-- 1..1 uri The system the codes come from --></system>
  <version><!-- 0..1 string Specific version of the code system referred to --></version>
  <mode><!-- 1..1 code code | children | descendants | all --></mode>
  <code><!-- 0..* code Code or concept --></code>
  <filter>  <!-- 0..* Celect codes/concepts by their properties -->
   <property><!-- 1..1 code A property defined by the code system  --></property>
   <op><!-- 1..1 code = | is_a | is_not_a | regex --></op>
   <value><!-- 1..1 code Code from the system, or regex criteria --></value>
  </filter>
 </include>
 <exclude><!-- 0..* Content as for ValueSet.include Explicitly exclude codes --></exclude>
 <extension><!-- 0..* Extension  See Extensions  --></extension>
 <text><!-- 1..1 Narrative Text summary of value set for human interpretation --></text>
</ValueSet>

Alternate definitions: Schema, RDF (to do), XML, Resource Profile

Terminology Bindings

  • ValueSet.status has the definition ValueSetStatus: "The lifecycle status of a Value Set". Possible values:
    draftThis valueset is still under development
    testingThis valueset was authored for testing purposes (or education/evaluation/evangelisation)
    productionThis valueset is ready for use in production systems
    withdrawnThis valueset should no longer be used
    supersededThis valueset has been replaced and a different valueset should be used in its place
  • ValueSet.include.mode has the definition CodeSelectionMode: "The way in which the code is selected". Possible values:
    codeOnly this code is selected
    childrenOnly the immediate children (codes with a is_a relationship) are selected, but not this code itself
    descendantsAll descendants of this code are selected, but not this code itself
    allThis code and any descendants are selected
  • ValueSet.include.filter.op has the definition FilterOperator: "The kind of operation to perform as part of a property based filter". Possible values:
    =The property value has the concept specified by the value
    is_aThe property value has a concept that has an is_a relationship with the value
    is_not_aThe property value has a concept that does not have an is_a relationship with the value
    regexThe property value representation matches the regex specified in the value

Constraints

  • A value set with only one import must also have an include and/or an exclude (xpath: count(f:include)!=1 or exists(f:include) or exists(f:exclude))
  • A value set must have an include or an import (xpath: exists(f:include) or exists(f:import))
  • A selection criteria must have at least one code or filter (xpath on /include: count(f:code|f:filter)!=0)

Notes:

  • The content of the value set is a union of all the import and include statements and then with any excluded codes eliminated
  • A value set needs to do something. It can't simply include an existing value set without also including additional content or excluding content
  • The point of declaring that this value set restricts another is that this value set can then replace the other in a profile without changing the meaning. Declaring this explicitly allows profile tools to reason about the relationship without having to compute the relationship, which might not be possible for a profile tool
  • The identifier and version elements may be used to reference this value set in a design, a profile, a CDA template or V3 message (valueSet and valueSetVersion). These different contexts may make additional restrictions on the possible values of these elements
  • Using the property filters is only possible where the underlying code system defines appropriate properties. Note that in some cases, the underlying code system defines the logical concepts but not the literal codes for the concepts. In such cases, the literal definitions may be provided by a third party
  • Within an include or exclude criterion, multiple filters and concept selections are intersected. In other words, all the conditions specified must be true.
  • 2.6.2: Search Parameters

    Search Parameters for RESTful searches. The standard parameters also apply. See Searching (§2.1.12) for more information.

    n : integerStarting offset of the first record to return in the search set
    count : integerNumber of return records requested. The server is not bound to conform
    id : tokenThe id of the resource
    name : stringa portion of the name of the value set
    identifier : tokenthe identifier of the value set
    version : tokenthe version identifier of the value set
    status : tokenthe status of the value set
    system : tokena code system included or excluded in the value set
    code : tokena code contained in the include or exclude list of the value set (but not including descendant codes)
    restricts : tokena value set listed in the restricts list
    import : tokena value set listed in the import list

    (See Searching (§2.1.12)).

    2.7: Resource Definition: Conformance

    Status: An infrastructure resource. This is an approved resource, and its status is draft for comment

    A conformance statement about how an application or implementation supports FHIR or the set of requirements for a desired implementation..

    The resource name as it appears in a RESTful URL (§2.1) is /conformance/

    Conformance statements are used in one of three ways:

    2.7.1: Describe an actual implementation

    In this scenario, the conformance statement describes the capabilities of a deployed and configured solution available at a particular access point or set of access points. The statement describes exactly how to interface with that deployed solution and thus provides for a degree of self-configuration of software solutions.

    This is the type of profile that FHIR restful solutions are expected to make available on invocation of the conformance operation. It is also the type of statement that forms a basis for the testing, certification or commissioning of specific software installations.

    A conformance statement is identified as being an implementation statement through the presence of the implementation element.

    2.7.2: Describe software solution capabilities

    In this scenario, the conformance statement describes the generic capabilities of a software application or component solution. The solution might be available for purchase or other aquisition and might be deployed and configured at any number of independent sites. Because it is not dependent on any particular implementation, the profile cannot provide specific details such as endpoint addresses. It may also need to document various configurations in which the application can be set up or describe the degree of customizability associated with the solution.

    This type of statement may be used as a marketing tool by software and system developers to formally describe their capabilities. It can also be used as the basis for conformance testing of software solutions independent of a particular installation.

    A conformance statement is identified as being a software solution statement through the presence of the software element.

    2.7.3: Describe a desired solution

    In this scenario, the conformance statement describes the capabilities of a desired system. It might be used as part of an architectural design process to document needed system capabilities, or might be used as part of an RFP process to formally document the requirements of a requested solution and to document the criteria by which proposals will be evaluated.

    A conformance statement is identified as being a requirements statement through the presence of the proposal element.


    These three types of profiles can be used together. A requirements statement can be compared against the solution statements proferred by respondents to an RFP. A solution statement for a software package forms the starting point for the implementation statement associated with a particular installation of that software package.

    Conformance Statements provide for a degree of automatic configuration and adaptation. However, capturing absolutely every variation that could impact the interoperability of two systems, let alone keeping that detailed information up-to-date as systems evolve through maintenance and upgrades is rarely practical. Therefore, conformance statements should be seen as an interim step. They provide a degree of automation. However, they also provide a great deal of human-readable content that can minimize the need for direct communication between the operators of the systems being configured to interoperate.

    2.7.4: Resource Content

    UML Image

    See also the Examples (§4.7) and the Definitions (§5.8).

    <Conformance xmlns="http://hl7.org/fhir">
     <id><!-- 1..1 id ConformanceStatement Id --></id>
     <date><!-- 1..1 dateTime Publication Date --></date>
     <publisher>  <!-- Publisher of the statement -->
      <name><!-- 1..1 string Publishing Organization --></name>
      <address><!-- 0..1 Address Address of Organization --></address>
      <contact><!-- 0..* Contact Contacts for Organization --></contact>
     </publisher>
     <implementation>  <!-- If profile is for implementation -->
      <description><!-- 1..1 string What implementation is covered? --></description>
      <url><!-- 0..1 uri Base URL for interfaces --></url>
     </implementation>
     <software>  <!-- If profile is for software offered -->
      <name><!-- 1..1 string Name software is known by --></name>
      <version><!-- 0..1 string Version covered by this statement --></version>
      <releaseDate><!-- 0..1 dateTime Date this version released --></releaseDate>
     </software>
     <proposal>  <!-- If profile is for proposal -->
      <description><!-- 1..1 string Details of proposal or requirements document --></description>
     </proposal>
     <version><!-- 1..1 id FHIR Version --></version>
     <acceptUnknown><!-- 1..1 boolean True if application accepts unknown elements --></acceptUnknown>
     <rest>  <!-- 0..* If the endpoint is a RESTful one -->
      <mode><!-- 1..1 code client | server --></mode>
      <documentation><!-- 0..1 string Security, etc. --></documentation>
      <resource>  <!-- 1..* Resource served on the REST interface -->
       <type><!-- 1..1 code Resource type --></type>
       <profile><!-- 0..1 uri Profile describing resource support --></profile>
       <operation>  <!-- 1..* What operations are supported? -->
        <code><!-- 1..1 code read | vread | update | etc. --></code>
        <documentation><!-- 0..1 string Anything special about operation behavior --></documentation>
       </operation>
       <search>  <!-- Only if supported -->
        <documentation><!-- 0..1 string General guidance on searching --></documentation>
        <param>  <!-- 1..* Search params supported -->
         <name><!-- 1..1 string Name of search parameter --></name>
         <documentation><!-- 0..1 string contents and meaning of search parameter --></documentation>
        </param>
       </search>
      </resource>
     </rest>
     <messaging>  <!-- 0..* If messaging is supported -->
      <endpoint><!-- 0..1 uri Actual endpoint being described --></endpoint>
      <documentation><!-- 0..1 string Messaging interface behavior details --></documentation>
      <event>  <!-- 1..* Declare support for this event -->
       <code><!-- 1..1 code Event type --></code>
       <mode><!-- 1..1 code sender | receiver --></mode>
       <protocol><!-- 0..* Coding http | ftp |MLLP | etc. --></protocol>
       <focus><!-- 1..1 code Resource that's focus of message --></focus>
       <request><!-- 0..1 uri Profile that describes the request --></request>
       <response><!-- 0..1 uri Profile that describes the response --></response>
       <documentation><!-- 0..1 string Endpoint-specific event documentation --></documentation>
      </event>
     </messaging>
     <document>  <!-- 0..* document definition -->
      <mode><!-- 1..1 code producer | consumer --></mode>
      <documentation><!-- 0..1 string Description of document support --></documentation>
      <profile><!-- 1..1 uri Constraint on a resource used in the document --></profile>
     </document>
     <extension><!-- 0..* Extension  See Extensions  --></extension>
     <text><!-- 1..1 Narrative Text summary of conformance profile for human interpretation --></text>
    </Conformance>
    

    Alternate definitions: Schema, RDF (to do), XML, Resource Profile

    Terminology Bindings

    • Conformance.rest.mode has the definition RestfulConformanceMode: "The mode of a restful conformance statement". Possible values:
      clientThe application acts as a server for this resource
      serverThe application acts as a client for this resource
    • Conformance.rest.resource.type and Conformance.messaging.event.focus share the definition of any defined Resource Type name (§1.4.5)
    • Conformance.rest.resource.operation.code has the definition RestfulOperation: "Operations supported by REST". Possible values:
      readRead the current state of the resource
      vreadRead the state of a specific version of the resource
      updateUpdate an existing resource by its id (or create it if it is new)
      deleteDelete a resource
      historyRetrieve the update history for the resource
      validateCheck that the content would be acceptable as an update
      updatesGet a list of prior updates to resources of this type, optionally with some filter criteria
      createCreate a new resource with a server assigned id
    • Conformance.messaging.event.code has the definition of the Event List in the messaging framework (§2.2.5)
    • Conformance.messaging.event.mode has the definition ConformanceEventMode: "The mode of a message conformance statement". Possible values:
      senderThe application sends requests and receives responses
      receiverThe application receives requests and sends responses
    • Conformance.messaging.event.protocol has the definition MessageTransport: "How messages are delivered" (sid = urn:hl7-org:sid/fhir/CodeList). Possible values:
      httpThe application sends or receives messages using HTTP POST (may be over http or https)
      ftpThe application sends or receives messages using File Transfer Protocol
      mllpThe application sends or receivers messages using HL7's Minimal Lower Level Protocol
    • Conformance.document.mode has the definition DocumentMode: "Whether the application produces or consumes documents". Possible values:
      producerThe application produces documents of the specified type
      consumerThe application consumes documents of the specified type

    Constraints

    • Must have one and only one of software, implementation or proposal (xpath: count(f:software | f:implementation | f:proposal) = 1)
    • A Conformance profile must have at least one of rest, messaging, or document (xpath: exists(f:rest) or exists(f:messaging) or exists(f:document))
    • Messaging end point is required (and is only permitted) when statement is for an implementation (xpath on /messaging: exists(f:endpoint) = exists(parent::f:Conformance/f:implementation))

    Notes:

    • This conformance resource provides for an application to describe its use of the RESTful paradigm messaging events, or FHIR documents. Usually, an application would only describe one, but more than one may be described
    • RESTful conformance rules:
      • RESTful servers are required to provide this resource on demand (§2.1.14). Servers SHALL specify what resource types and operations are supported, and SHOULD also specify profiles for each resource type.
      • RESTful clients SHOULD publish a conformance statement
      • Resource Types or operations that are not listed are not supported
    • Messaging conformance rules:
      • The interpretation of request and resource depends on the mode. If the mode is sender, then request specifies what the application sends, and response specifies what it accepts. If the mode is "receiver", then this is reversed
      • If a request or response is not specified for an event, then no rules are made for it
      • Events that are not listed are not supported
    • Document conformance rules:
      • Ideally, the criteria in different document profile should be able to distinguish between multiple document profiles, so that there is no ambiguity concerning which profile any given document conforms to. However this is not always possible

    2.7.5: Search Parameters

    Search Parameters for RESTful searches. The standard parameters also apply. See Searching (§2.1.12) for more information.

    n : integerStarting offset of the first record to return in the search set
    count : integerNumber of return records requested. The server is not bound to conform
    id : tokenThe id of the resource
    publisher : stringpart of a publisher name
    software : stringpart of a the name of a software application
    version : tokenthe version of FHIR
    resource : tokenname of a resource mentioned in a conformance profile
    event : qtokenevent code in a conformance statement
    mode : tokenmode - restful (server/client) or messaging (sender/receiver)
    profile : qtokena profile id invoked in a conformance statement
    date : datedate equal to the conformance statement publication date
    date-before : datedate before or equal to the conformance statement publication date
    date-after : datedate after or equal to the conformance statement publication date

    (See Searching (§2.1.12)).

    3: Resources

    3.7: Resources

    The FHIR specification presently defines the following resources:

    Resources Concept Map

    Of these, only the Infrastructure resources have undergone any degree of vetting. The remaining administrative and clinical resources exist to provide a sense of what such resources will look like eventually. Over the coming months, the number of resources and the number of those that have been vetted by HL7 committees will grow. A list of hypothesized list of resources can be found on the HL7 wiki (http://wiki.hl7.org/index.php?title=FHIR_Resource_Types) . Feel free to add any you feel are missing or engage with one of the HL7 Work Groups (http://www.hl7.org/Special/committees/index.cfm) to submit a proposal (http://wiki.hl7.org/index.php?title=Category:FHIR_Resource_Proposal) to define a resource of particular interest.

    PersonIdentifies a person, the languages and qualifications, and other people who are related to them by birth, social or employment context
    AnimalIdentifies an animal and charactersistics such as species as well as other animals or people that are related to it by birth or ownership arrangements
    OrganizationIdentifies an organization, its formal accreditations and sub, super and partner organizations
    PatientSubject A (person/animal) is under the care of Organization B
    AgentPerson A fills role R for Organization B
    LabReportLab A provides a report (text and/or structured data with analysis and specimen details) concerning Patient B as requested by Agent C for reason D
    AssessmentScaleAgent A reports a score (outcome, method reference, and supporting data) for Patient B at a specific time
    PrescriptionAgent A prescribes a medication (code and/or ingredients) to patient B with administration instructions and optionally dispensing instructions for Agent of Organization C

    3.1: Resource Definition: Agent

    Status: A domain resource developed as an examplar. Not an approved resource. Under consideration by the Patient Admin work group

    A person who represents an organisation, and is authorised to perform actions on its behalf.

    The resource name as it appears in a RESTful URL (§2.1) is /agent/

    3.1.1: Resource Content

    UML Image

    See also the Examples (§4.4) and the Definitions (§5.5).

    <Agent xmlns="http://hl7.org/fhir">
     <id><!-- 1..1 id Master Resource Id, always first in all resources --></id>
     <person><!-- 1..1 Resource(Person) The person who is the agent --></person>
     <organization><!-- 1..1 Resource(Organization) The represented organization --></organization>
     <role><!-- 1..* CodeableConcept A role the agent has --></role>
     <period d?><!-- 0..1 Period The period for which this agency applies (date only) --></period>
     <identifier d?><!-- 0..* HumanId A Human identifier for the person as this agent --></identifier>
     <address d?><!-- 0..* Address An address that applies for the person as this agent --></address>
     <contact d?><!-- 0..* Contact A contact that applies for the person as this agent --></contact>
     <extension><!-- 0..* Extension  See Extensions  --></extension>
     <text><!-- 1..1 Narrative Text summary of the agent, for human interpretation --></text>
    </Agent>
    

    Alternate definitions: Schema, RDF (to do), XML, Resource Profile

    Terminology Bindings

    • Agent.role has the definition AgentRole: "The role a person plays representing an organization"

    Notes:

    • Any person can represent the same organisation in multiple different ways. This may be represented as a single agent resource with multiple role codes, or multiple agent resources. Which is correct depends on whether the combined roles share other attributes, such as identifiers and time periods.
    • The person and organization references are mandatory, so must be a full resource reference by identifier

    3.1.2: Search Parameters

    Search Parameters for RESTful searches. The standard parameters also apply. See Searching (§2.1.12) for more information.

    n : integerStarting offset of the first record to return in the search set
    count : integerNumber of return records requested. The server is not bound to conform
    id : tokenThe id of the resource
    person : qtokenThe identity of a person
    organization : qtokenThe identity of an organization

    (See Searching (§2.1.12)).

    3.2: Resource Definition: Animal

    Status: A domain resource developed as an examplar. Not an approved resource. Under consideration by the Patient Admin work group

    An animal that has relevance to the care process -usually this is for animals that are patients..

    The resource name as it appears in a RESTful URL (§2.1) is /animal/

    3.2.1: Resource Content

    UML Image

    See also the Examples (§4.5) and the Definitions (§5.6).

    <Animal xmlns="http://hl7.org/fhir">
     <id><!-- 1..1 id Master Resource Id, always first in all resources --></id>
     <identifier d?><!-- 0..* HumanId Human identifiers for this animal --></identifier>
     <name d?><!-- 0..* HumanName A name associated with the animal --></name>
     <dob d?><!-- 0..1 dateTime The birth date for the animal --></dob>
     <species d?><!-- 0..1 CodeableConcept Species for the Animal --></species>
     <strain d?><!-- 0..1 CodeableConcept Strain for the Animal --></strain>
     <gender d?><!-- 0..1 CodeableConcept Gender for the Animal --></gender>
     <relatedEntity>  <!-- 0..* Kin, owner, care giver etc -->
      <identifier d?><!-- 0..1 HumanId Identifier for the entity --></identifier>
      <role><!-- 1..1 CodeableConcept Type of relationship --></role>
      <name d?><!-- 0..1 HumanName Name of the related entity --></name>
      <address d?><!-- 0..* Address An address (usually human, but may be kin) --></address>
      <contact d?><!-- 0..* Contact Contact details (usually for humans) --></contact>
     </relatedEntity>
     <extension><!-- 0..* Extension  See Extensions  --></extension>
     <text><!-- 1..1 Narrative Text summary of animal, fall back for human interpretation --></text>
    </Animal>
    

    Alternate definitions: Schema, RDF (to do), XML, Resource Profile

    Terminology Bindings

    • Animal.species has the definition AnimalSpecies: "The species of an animal"
    • Animal.strain has the definition AnimalStrain: "The strain of an animal"
    • Animal.gender has the definition AnimalGender: "The gender of an animal"
    • Animal.relatedEntity.role has the definition AnimalRelationship: "The relationship of an animal to another entity (person, corporation, or other animal)"

    Notes:

    • Animals are assigned human names, since humans tend to assign names using human patterns.
    • Related entities include owners, and care givers, as well as the kin of the animal should that be relevant.
    • The organization references are all optional, so can be replaced by simple text rather than a full resource reference
    • The organization references are all optional, so can be replaced by simple text rather than a full resource reference
    • A related entity can be either reference to another resource using the id, or can provide what is known about the entity directly

    3.2.2: Search Parameters

    Search Parameters for RESTful searches. The standard parameters also apply. See Searching (§2.1.12) for more information.

    n : integerStarting offset of the first record to return in the search set
    count : integerNumber of return records requested. The server is not bound to conform
    id : tokenThe id of the resource
    name : stringa portion of name in any name part
    species : qtokenthe species, including by subsumption if the coding supports this
    phonetic : stringa portion of name using some kind of phonetic matching algorithm
    related : stringa portion of any part of a related entity's name
    identifier : qtokenan identifier for the animal

    (See Searching (§2.1.12)).

    3.3: Resource Definition: AssessmentScale

    Status: A domain resource being developed in association with the Patient Care work group to investigate FHIR. Not an approved resource

    Assessment scales or scores combine the findings of individual values into a total score which can be interpreted more easily against a reference population.

    The resource name as it appears in a RESTful URL (§2.1) is /assessmentscale/

    3.3.1: Resource Content

    UML Image

    See also the Examples (§4.6) and the Definitions (§5.7).

    <AssessmentScale xmlns="http://hl7.org/fhir">
     <id><!-- 1..1 id Master Id, first in all resources --></id>
     <subject><!-- 1..1 Resource(Patient) Who the assessment score is about --></subject>
     <performer><!-- 1..1 Resource(Agent|Person) Who performed the assessment --></performer>
     <time><!-- 1..1 dateTime When the assessment was finalized --></time>
     <definition d?><!-- 0..1 Resource(AssessmentDefinition) Details of how assessment was performed --></definition>
     <interpretation d?><!-- 0..* CodeableConcept What the value of the assessment means --></interpretation>
     <score>  <!-- The actual score -->
      <code><!-- 1..1 CodeableConcept Indicates the type of assessment --></code>
      <value[x]><!-- 0..1 Quantity|CodeableConcept|Choice|boolean Outcome of the assessment --></value[x]>
      <score d?><!-- 0..* Content as for AssessmentScale.score Nested Score elements --></score>
      <measure>  <!-- 0..* Data from which the score is derived -->
       <code><!-- 0..1 CodeableConcept What this value represents --></code>
       <value[x] d?><!-- 0..1 Quantity|CodeableConcept|Choice|boolean actual value --></value[x]>
       <time d?><!-- 0..1 dateTime when the value was measured --></time>
       <source d?><!-- 0..1 Resource(Any) source reference for further information --></source>
      </measure>
     </score>
     <reason d?><!-- 0..1 string why the assessment was performed --></reason>
     <extension><!-- 0..* Extension  See Extensions  --></extension>
     <text><!-- 1..1 Narrative Text summary of [template] for human interpretation --></text>
    </AssessmentScale>
    

    Alternate definitions: Schema, RDF (to do), XML, Resource Profile

    Terminology Bindings

    • AssessmentScale.score.code has the definition AssessmentScaleType: "A code that identifies the assessment scale that was performed". A good candidate for codes is Loinc Observables that identify scales
    • AssessmentScale.score.measure.code has the definition AssessmentScaleMeasure: "Identifies the type of measure". A good candidate for codes is Loinc Observables

    Constraints

    • A score may have a value and/or one (and only one) of measure or sub-scores (xpath on /score: (exists(f:*[starts-with(local-name(.), 'value')]) or exists(f:measure) != exists(f:score)) and not (exists(f:measure) and exists(f:score)))

    Notes:

    • Note here

    3.3.2: Search Parameters

    Search Parameters for RESTful searches. The standard parameters also apply. See Searching (§2.1.12) for more information.

    n : integerStarting offset of the first record to return in the search set
    count : integerNumber of return records requested. The server is not bound to conform
    id : tokenThe id of the resource
    subject : qtokenwho the assessment is about
    date : datedate equal to the date the assessment was performed
    date-before : datedate before or equal to the date the assessment was performed
    date-after : datedate after or equal to the date the assessment was performed
    code : qtokencode for the assessment type (full scale or a measure)
    value : stringthe value of the assessment
    reason : texta word or phrase in the reason element

    (See Searching (§2.1.12)).

    3.4: Resource Definition: LabReport

    Status: A domain resource developed as an exmplar - based on the NEHTA peEHR model (Australia) (= openEHR archetype for lab report). Not an approved resource. Under consideration by the Orders and Observations work group

    The findings and interpretation of pathology tests performed on tissues and body fluids. This is typically done in a laboratory but may be done in other environments such as at the point of care.

    The resource name as it appears in a RESTful URL (§2.1) is /labreport/

    3.4.1: Resource Content

    UML Image

    See also the Examples (§4.9) and the Definitions (§5.10).

    <LabReport xmlns="http://hl7.org/fhir">
     <id><!-- 1..1 id Master Resource Id, always first in all resources --></id>
     <status><!-- 1..1 code registered|interim|final|amended|cancelled|withdrawn --></status>
     <issued><!-- 1..1 instant date issed for current status --></issued>
     <patient><!-- 1..1 Resource(Patient) The patient the report is about --></patient>
     <admission d?><!-- 0..1 Resource(Admission) Admission Context --></admission>
     <laboratory><!-- 1..1 Resource(Organization) Responsible Laboratory --></laboratory>
     <reportId><!-- 0..1 Identifier Id for external references to this report --></reportId>
     <requestDetail>  <!-- 0..* What was requested -->
      <requestOrderId d?><!-- 0..1 Identifier Id assigned by requester --></requestOrderId>
      <receiverOrderId d?><!-- 0..1 Identifier Receiver's Id for the request --></receiverOrderId>
      <requestTest d?><!-- 0..* CodeableConcept Test Requested --></requestTest>
      <requester d?><!-- 0..1 Resource(Agent|Organization) Responsible for request --></requester>
      <clinicalInfo d?><!-- 0..1 Resource(Any) Clinical information provided --></clinicalInfo>
     </requestDetail>
     <reportName><!-- 1..1 CodeableConcept Name for the entire report --></reportName>
     <service d?><!-- 0..1 CodeableConcept Biochemistry, Haematology etc --></service>
     <diagnosticTime><!-- 1..1 dateTime Effective time of diagnostic report --></diagnosticTime>
     <specimen d?><!-- 0..* Resource(Specimen) Specimen (incl. time of collection) --></specimen>
     <resultGroup>  <!-- 0..* Results grouped by specimen/kind/category -->
      <name d?><!-- 0..1 CodeableConcept What defines the group --></name>
      <specimen d?><!-- 0..1 Resource(Specimen) Specimen details --></specimen>
      <result>  <!-- 1..* A particular result -->
       <name><!-- 0..1 CodeableConcept Name or code of the result --></name>
       <value[x] d?><!-- 0..1 Quantity|CodeableConcept|Attachment|
                  Ratio|Choice|Period|string Result. [x] = type name --></value[x]>
       <flag><!-- 0..1 code + | ++ | +++ | - | -- | ---  --></flag>
       <status><!-- 1..1 code Registered|Interim|Final|Amended|Cancelled|Withdrawn --></status>
       <comments d?><!-- 0..1 string Comments about result --></comments>
       <referenceRange>  <!-- 0..* Guide for interpretation -->
        <meaning d?><!-- 0..1 CodeableConcept The meaning of this range --></meaning>
        <range[x]><!-- 1..1 Quantity|Range|string Reference --></range[x]>
       </referenceRange>
      </result>
     </resultGroup>
     <conclusion d?><!-- 0..1 string Clinical Interpretation of test results --></conclusion>
     <codedDiagnosis d?><!-- 0..* CodeableConcept Codes for the conclusion --></codedDiagnosis>
     <representation><!-- 0..* Attachment Entire Report as issued --></representation>
     <extension><!-- 0..* Extension  See Extensions  --></extension>
     <text><!-- 1..1 Narrative Text summary of report, for human interpretation --></text>
    </LabReport>
    

    Alternate definitions: Schema, RDF (to do), XML, Resource Profile

    Terminology Bindings

    • LabReport.status and LabReport.resultGroup.result.status share the definition LabReportStatus: "The status of a report or result item". Possible values:
      registeredThe existence of the result is registered, but there is no result yet available
      interimThis is an initial or interim result: data may be missing or verification not been performed
      finalThe result is complete and verified by the responsible pathologist
      amendedThe result has been modified subsequent to being Final, and is complete and verified by the responsible pathologist
      cancelledThe result is unavailable because the test was not started or not completed (also sometimes called "aborted")
      withdrawnThe result has been withdrawn following previous Final release
    • LabReport.requestDetail.requestTest has the definition LabRequests: "codes for requestable tests"
    • LabReport.reportName has the definition LabReportNames: "codes for report names". If an appropriate code exists in LOINC Panel Names then it should be used
    • LabReport.service has the definition LabServices: "codes for laboratory services". If an appropriate code exists in HL7 v2 table 0074 then it should be used
    • LabReport.resultGroup.name has the definition LabResultGroupNames: "codes for result groups". If an appropriate code exists in LOINC Panel Names then it should be used
    • LabReport.resultGroup.result.name has the definition LabResultNames: "codes for results". If an appropriate code exists in LOINC Result names then it should be used
    • LabReport.resultGroup.result.value[x] has the definition (Error!!!)
    • LabReport.resultGroup.result.flag has the definition LabResultFlag: "codes for result flags". Possible values:
      -
      --
      ---
      +
      ++
      +++
      RResistent
      SModerately Susceptible
      SSVery Susceptible
    • LabReport.resultGroup.result.referenceRange.meaning has the definition LabReferenceRanges: "Code for the meaning of a reference range"
    • LabReport.codedDiagnosis has the definition LabDiagnosisCodes: "Codes for laboratory diagnoses". A good candidate for codes is SNOMED-CT Diagnoses

    Notes:

    • About naming: a laboratory produces "reports" that is a collection of "tests" that produce "results". Clinical consumers call the whole collection "the results". There is much potential confusion around these names. The confusion is worsened because "the report" is sometimes a document which entirely contains narrative, sometimes it is purely atomic data results, and sometimes it's a mix of both.
    • The scope of this resource is the laboratory reporting process. While this resource includes some elements that relate to the ordering cycle, these are only included to the degree that it is useful for the final report to refer back to the orders. Different resources are required for supporting the ordering cycle.
    • This laboratory report model provides a 3 level structure for the results - a report contains a list of groups, each of which contains a list of results. Results are grouped by either a specimen or a code that indicates that nature of the grouping (e.g. organism isolate/sensitivity or antibody functional testing). While many common lab reports don't need or benefit directly from the group structure, this lab report model imposes the group structure anyway. This means that these lab reports have a single group which has no code on it, and which contains all the results. The advantage of this model is that all the results are found at the same point in the heirarchy, and there is a single point on the heirarchy - the group - that may influence the meaning of the test.
    • The element that contains the actual value of the result has a variable name depending on the type. The name is "value" + the type name, ignoring parameters, with a capital on the first letter, e.g. valueInterval or valueString
    • The clinical information associated with a request can be a simple text summary, or a reference to another resource
    • The diagnosticTime can be inferred from the specimens, if they are provided, but specimen details are often not provided, and the value of diagnosticTime is always important. The value of the diagnosticTime element must be consistent with the speciment collection times
    • Applications consuming lab reports must take careful note of updates to lab reports, and particularly note withdrawn reports. A report shouldn't be final until all the results are final or amended. If a report is withdrawn, all the results must be withdrawn by replacing every result value with the Concept "withdrawn" in the internal terminology "Special values" (§1.4) (sid = "http://hl7.org/fhir/sid/fhir/special-values"), and setting the conclusion (if provided) and the text narrative to some text like "This report has been withdrawn". A reason may be provided in the narrative.

    Relationship between results, narrative, and synoptic reports

    One difficult aspect of the design of this resource can be captured with a simple question: "just what is a result?" There is a wide range of variation in the answers to this question; some respond that a result is inherently measurement based, while others focus on the clinical utility of the data item.

    Some practical examples:

    • Tumour dimensions in synoptic reports
    • Injection volumes in radiology reports
    • Phenotypes and genotypes in pathology reports
    • Images (Scatter plots, electrophoresis photos, slide photos, chromatograms)

    Which of these are results? For this resource, we have chosen to take an inclusive view; any of these things can be a result, as long as they have a formal code or name that has a clinical meaning, and some kind of (possible) value then they can be a result.

    3.4.2: Search Parameters

    Search Parameters for RESTful searches. The standard parameters also apply. See Searching (§2.1.12) for more information.

    n : integerStarting offset of the first record to return in the search set
    count : integerNumber of return records requested. The server is not bound to conform
    id : tokenThe id of the resource
    test : qtokenthe name or code of either a requested test, the report or a report group
    result : qtokenthe name or code or result value of a result or result group
    specimen : qtokenEither of the specimens
    patient : qtokenThe identity of a patient
    laboratory : qtokenThe identity of an laboratory
    status : tokenThe status of the lab report
    request : qtokenA test requested
    diagnosis : qtokencode of a diagnosis

    (See Searching (§2.1.12)).

    3.5: Resource Definition: Organization

    Status: A domain resource developed as an examplar. Not an approved resource. Under consideration by the Patient Admin work group

    For any company/corporation/institution/government department that has relevance to the care process.

    The resource name as it appears in a RESTful URL (§2.1) is /organization/

    3.5.1: Resource Content

    UML Image

    See also the Examples (§4.11) and the Definitions (§5.12).

    <Organization xmlns="http://hl7.org/fhir">
     <id><!-- 1..1 id Master Resource Id, always first in all resources --></id>
     <identifier d?><!-- 0..* HumanId Identifier for this organization --></identifier>
     <name>  <!-- 0..* name used for the organisation -->
      <value><!-- 1..1 string A name associated with the organization --></value>
      <period d?><!-- 0..1 Period When this name is/was in use (date only) --></period>
     </name>
     <address d?><!-- 0..* Address An address for the organization --></address>
     <contact d?><!-- 0..* Contact A contact detail for the organization --></contact>
     <code d?><!-- 0..1 CodeableConcept kind of organisation --></code>
     <industryCode d?><!-- 0..1 CodeableConcept kind of industry --></industryCode>
     <accreditation>  <!-- 0..* formal certifications that convey authority -->
      <identifier d?><!-- 0..1 Identifier Identifier for the accreditation --></identifier>
      <code d?><!-- 0..1 CodeableConcept What kind of accreditation --></code>
      <institution d?><!-- 0..1 Resource(Organization) Who conferred it --></institution>
      <period d?><!-- 0..1 Period When the accreditation is valid (date only) --></period>
     </accreditation>
     <relatedOrganization>  <!-- 0..* sub-, super-, and partner organisations -->
      <identifier d?><!-- 0..1 HumanId Identifier for the organization --></identifier>
      <code><!-- 1..1 CodeableConcept How the organizations are related --></code>
      <name d?><!-- 0..1 string Name of the organization --></name>
      <address d?><!-- 0..* Address An address for the organization --></address>
      <contact d?><!-- 0..* Contact General contact details for the organization --></contact>
      <period d?><!-- 0..1 Period When the organizations were related (date only) --></period>
     </relatedOrganization>
     <extension><!-- 0..* Extension  See Extensions  --></extension>
     <text><!-- 1..1 Narrative Text summary of organization, fall back for human interpretation --></text>
    </Organization>
    

    Alternate definitions: Schema, RDF (to do), XML, Resource Profile

    Terminology Bindings

    • Organization.code has the definition OrganisationType: "The type of an organisation". A good candidate for codes is SNOMED-CT Organisation codes and the HL7 v3 Entity Code table
    • Organization.industryCode has the definition Industry: "Code for the type of industry". If an appropriate code exists in HL7 v3 OrganizationIndustryClass value set then it should be used
    • Organization.accreditation.code has the definition Accreditation: "Accreditations an organization may be granted"
    • Organization.relatedOrganization.code has the definition OrganizationRelationship: "The relationship an organization has to the subject, including sub and super organizations, and other kind of relationships such as partner organisations"

    Notes:

    • The organization references are all optional, so can be replaced by simple text rather than a full resource reference

    3.5.2: Search Parameters

    Search Parameters for RESTful searches. The standard parameters also apply. See Searching (§2.1.12) for more information.

    n : integerStarting offset of the first record to return in the search set
    count : integerNumber of return records requested. The server is not bound to conform
    id : tokenThe id of the resource
    name : stringa portion of name in any name part
    phonetic : stringa portion of name using some kind of phonetic matching algorithm
    code : qtokencode for the type of organization
    identifier : qtokenan identifier for the organization

    (See Searching (§2.1.12)).

    3.6: Resource Definition: Patient

    Status: A domain resource developed as an examplar. Not an approved resource. Under consideration by the Patient Admin work group

    A patient is a person or animal that is receiving care.

    The resource name as it appears in a RESTful URL (§2.1) is /patient/

    3.6.1: Resource Content

    UML Image

    See also the Examples (§4.12) and the Definitions (§5.13).

    <Patient xmlns="http://hl7.org/fhir">
     <id><!-- 1..1 id Master Resource Id, always first in all resources --></id>
     <link><!-- 0..* Resource(Patient) Other patients linked to this resource --></link>
     <active><!-- 1..1 boolean Whether this patient record is active (in use) --></active>
     <subject><!-- 1..1 Resource(Person|Animal) The person or animal that is the patient --></subject>
     <provider><!-- 1..1 Resource(Organization) Organization managing the patient --></provider>
     <identifier d?><!-- 0..* HumanId An identifier for the person as this patient --></identifier>
     <diet d?><!-- 0..1 CodeableConcept Dietary restrictions for the patient --></diet>
     <confidentiality d?><!-- 0..1 CodeableConcept Confidentiality of the patient records --></confidentiality>
     <recordLocation d?><!-- 0..1 CodeableConcept Where the paper record is --></recordLocation>
     <extension><!-- 0..* Extension  See Extensions  --></extension>
     <text><!-- 1..1 Narrative Text summary of person, for human interpretation --></text>
    </Patient>
    

    Alternate definitions: Schema, RDF (to do), XML, Resource Profile

    Terminology Bindings

    • Patient.diet has the definition PatientDiet: "casual dietary restrictions associated with this patient"
    • Patient.confidentiality has the definition PatientConfidentiality: "The confidentiality of the records associated with this patient"
    • Patient.recordLocation has the definition PaperRecordLocation: "A physical location for a record. (Usually site specific)"

    Notes:

    • Links: linking patient records is an assertion that they both are about the same actual person. If any patient record is linked to another, then the other must be linked back to the source record. Ensuring that the links are in agreement across the patient resources in a RESTful contexts is the responsibility of the server: it must modify the referenced resources whenever a change the links on any patient is updated. In a messaging context, patient links SHALL only be updated though the link/unlink events
    • The patient may be a person or an animal (in order to support vetinary medicine). Either a person or an animal resource link must be provided, but not both.
    • The dietary restrictions are not for specifying medical diets, but for casual dietary restrictions such as vegetarian, diary-free, nut-free, etc

    3.6.2: Managing Patient Registration

    Managing Patient registration is a well known difficult problem. Around 2% of registrations are in error, mostly duplicate records. Sometimes the duplicate record is caught fairly quickly and retired before much data is accumulated. In other cases, substantial amounts of data may accumulate. For these and other reasons, the identifiers associated with a patient may change over time.

    The master identifier for the Patient Resource can never change. For this reason the identifiers with which humans are concerned (often called MRN - Medical Record Number, or UR - Unit Record) should not be used as the master identifier. Instead they should be represented in the Patient.identifier list where they can be managed. This is also useful for the case of institutions that have acquired multiple numbers because of mergers of patient record systems over time.

    In this specification, patient records are never merged. If multiple patient records are found to be duplicates, they are linked. In a RESTful context, this is done using the "link patients" transaction described below. In other contexts, equivalent functionality will be needed. When patient resources are linked, one may be chosen as the "master" - the correct record. In this case, the active status of all the other resources is set to false, and all the content is moved to the active record by updating it directly.

    Patient records may only be in one of two statuses: active and retired. A normal record is active - it is in use. The status retired is used when a record is created in error. Once the error is discovered, it can either be retired or deleted. A record does not need to be linked to be retired.

    3.6.3: RESTful Transactions

    The patient resource type defines one special transaction provided by the patient manager: "Link" for linking resources. The reason is that linking records is effectively a transaction that involves at least two resources, and all or none must change. Since the transaction involves multiple resources, it is implemented on the resource manager as a POST to [todo]

    There is no content model for the response, except for an HTTP status code.

    3.6.4: Search Parameters

    Search Parameters for RESTful searches. The standard parameters also apply. See Searching (§2.1.12) for more information.

    n : integerStarting offset of the first record to return in the search set
    count : integerNumber of return records requested. The server is not bound to conform
    id : tokenThe id of the resource
    subject : qtokenThe identity of the subject
    provider : qtokenThe identity of an organization
    identifier : qtokenA patient identifier

    (See Searching (§2.1.12)).

    3.7: Resource Definition: Person

    Status: A domain resource developed as an examplar. Not an approved resource. Under consideration by the Patient Admin work group

    A person who is involved in the healthcare process.

    The resource name as it appears in a RESTful URL (§2.1) is /person/

    3.7.1: Resource Content

    UML Image

    See also the Examples (§4.13) and the Definitions (§5.14).

    <Person xmlns="http://hl7.org/fhir">
     <id><!-- 1..1 id Master Resource Id, always first in all resources --></id>
     <identifier d?><!-- 0..* HumanId A Human identifier for this person --></identifier>
     <name d?><!-- 0..* HumanName A name associated with the person --></name>
     <address d?><!-- 0..* Address An address for the person --></address>
     <contact d?><!-- 0..* Contact A contact detail for the person --></contact>
     <dob d?><!-- 0..1 dateTime The birth date for the person --></dob>
     <gender d?><!-- 0..1 CodeableConcept Administrative Gender --></gender>
     <religion d?><!-- 0..1 CodeableConcept Religion of the person --></religion>
     <race d?><!-- 0..* CodeableConcept The race of a person --></race>
     <qualification>  <!-- 0..* Qualifications, Accreditations, Certifications -->
      <identifier d?><!-- 0..1 Identifier Identifier for the qualification --></identifier>
      <code d?><!-- 0..1 CodeableConcept A code for the qualification --></code>
      <institution d?><!-- 0..1 Resource(Organization) Who conferred it --></institution>
      <period d?><!-- 0..1 Period When the qualification is valid (date only) --></period>
     </qualification>
     <language>  <!-- 0..* language (with proficiency) -->
      <code><!-- 1..1 code ISO 639-3 code for language --></code>
      <use d?><!-- 0..1 code How well the language is used --></use>
     </language>
     <relatedPerson>  <!-- 0..* Kin, Guardians, Agents, Caregivers -->
      <identifier d?><!-- 0..1 HumanId Identifier for the person --></identifier>
      <role><!-- 1..1 CodeableConcept Type of relationship --></role>
      <name d?><!-- 0..1 HumanName Name of the person --></name>
      <contact d?><!-- 0..* Contact Contact details for the person --></contact>
     </relatedPerson>
     <extension><!-- 0..* Extension  See Extensions  --></extension>
     <text><!-- 1..1 Narrative Text summary of person, for human interpretation --></text>
    </Person>
    

    Alternate definitions: Schema, RDF (to do), XML, Resource Profile

    Terminology Bindings

    • Person.gender has the definition AdministrativeGender: "The gender of a person used for administrative purposes "
    • Person.religion has the definition Religion: "The denomination to which a person professes affiliation "
    • Person.race has the definition Race: "The race of the person". If an appropriate code exists in HL7 v2 table 0200 then it should be used
    • Person.qualification.code has the definition Qualifications: "Formal qualifications, accreditations, and Certifications acquired by a person "
    • Person.language.code has the definition Language: "A human language". For example values, see ISO 639-3 (http://www.sil.org/iso639-3/codes.asp)
    • Person.language.use has the definition LanguageUse: "How well a person speaks a language". Possible values:
      noneThe person does not speak the language at all
      poorThe person has minimal functional capability in the language
      useableThe person can use the language, but may not be full conversant, particularly with regards to health concepts
      fluentThe person is fully capable of using the language
    • Person.relatedPerson.role has the definition PersonRelationship: "The relationship a person has to the subject, including familial, marital, financial, legal, and casual relationships "

    Notes:

    • There are various types of people of interest - patients, employees, etc. Different types of people might come from different service end points.
    • The administrative gender of the patient is that one that matters for the record. This may match the gendor of birth or the current socially-reported gender.
    • Qualifications covers both formal education gained in the past, and ongoing certification and accreditation often associated with healthcare providers.
    • Various jurisdictions define their own qualification and/or codes, and some care about this more than others.
    • The organization references are all optional, so can be replaced by simple text rather than a full resource reference
    • A related person can be either reference to another resource using the id, or can provide what is known about the person directly

    3.7.2: Search Parameters

    Search Parameters for RESTful searches. The standard parameters also apply. See Searching (§2.1.12) for more information.

    n : integerStarting offset of the first record to return in the search set
    count : integerNumber of return records requested. The server is not bound to conform
    id : tokenThe id of the resource
    identifier : qtokenA patient Identifier
    name : stringa portion of name in any name part
    phonetic : stringa portion of name using some kind of phonetic matching algorithm
    contact : qtokenthe value in any kind of contact
    address : stringan address in any kind of address/part
    gender : qtokengender of the person
    language : qtokenlanguage code (irrespective of use value)
    related : stringportion of name or id in a related person
    dob : datedate equal to the patient's date of birth
    dob-before : datedate before or equal to the patient's date of birth
    dob-after : datedate after or equal to the patient's date of birth

    (See Searching (§2.1.12)).

    3.8: Resource Definition: Prescription

    Status: A domain resource developed as an exmplar - based on the NICTIZ national model(The Netherlands). Not an approved resource. Under consideration by the pharmacy work group

    Directions provided by a prescribing practitioner for a specific medication to be administered (and possibly) supplied to an individual.

    The resource name as it appears in a RESTful URL (§2.1) is /prescription/

    3.8.1: Resource Content

    UML Image

    See also the Examples (§4.14) and the Definitions (§5.15).

    <Prescription xmlns="http://hl7.org/fhir">
     <id><!-- 1..1 id Master Resource Id, always first in all resources --></id>
     <identifier><!-- 0..* HumanId Prescription identification --></identifier>
     <status><!-- 1..1 code Status: Active|Completed --></status>
     <patient><!-- 1..1 Resource(Patient) Patient receiving medicine --></patient>
     <prescriber><!-- 1..1 Resource(Agent) Prescribing doctor --></prescriber>
     <prescribed><!-- 1..1 dateTime Date/time prescribed --></prescribed>
     <dispense>  <!-- Details of included dispense request -->
      <repeats><!-- 0..1 integer Number of repeats --></repeats>
      <quantity><!-- 1..1 Quantity Quantity per repeat --></quantity>
      <dispenser d?><!-- 0..1 Resource(Agent|Organization) Person to fullfil the requested dispense --></dispenser>
     </dispense>
     <medicine>  <!-- Prescribed medicine -->
      <identification d?><!-- 0..1 CodeableConcept Test and/or code(s) for medicine --></identification>
      <activeIngredient>  <!-- 0..* Active substance -->
       <identification d?><!-- 1..1 CodeableConcept Text and/or Code(s) for active ingredient --></identification>
       <quantity[x] d?><!-- 0..1 Ratio|code Relative quantity of active ingredient --></quantity[x]>
      </activeIngredient>
      <inactiveIngredient>  <!-- 0..* Inactive substance -->
       <identification d?><!-- 1..1 CodeableConcept Text and/or Code(s) for inactive ingredient --></identification>
       <quantity[x] d?><!-- 0..1 Ratio|code Relative quantity of inactive ingredient --></quantity[x]>
      </inactiveIngredient>
     </medicine>
     <administrationRequest>  <!-- Instructions for use -->
      <description d?><!-- 0..1 string Textual instructions for use --></description>
      <totalPeriodicDosis d?><!-- 0..1 Ratio Total periodic dosis --></totalPeriodicDosis>
      <start d?><!-- 0..1 dateTime Startdate for administration --></start>
      <end d?><!-- 0..1 dateTime Enddate for administration --></end>
      <duration d?><!-- 0..1 Quantity Total duration of administration --></duration>
      <numberOfAdministrations d?><!-- 0..1 integer Maximum number of separate administrations --></numberOfAdministrations>
      <dosageInstruction>  <!-- 1..* Dosage instruction -->
       <precondition d?><!-- 0..* CodeableConcept Precondition for starting administration --></precondition>
       <prn><!-- 0..1 boolean Pro re nate: Yes|No --></prn>
       <additionalInstruction d?><!-- 0..* CodeableConcept Additional instructions --></additionalInstruction>
       <route d?><!-- 0..1 CodeableConcept Route of administration --></route>
       <dose[x]><!-- 1..1 Quantity|Range Dose per administration --></dose[x]>
       <rate d?><!-- 0..1 Quantity Flow-rate for IV --></rate>
       <schedule><!-- 1..* Schedule Schedule for administration --></schedule>
      </dosageInstruction>
     </administrationRequest>
     <reason d?><!-- 0..1 CodeableConcept Reason for prescription --></reason>
     <extension><!-- 0..* Extension  See Extensions  --></extension>
     <text><!-- 1..1 Narrative Text summary of the prescription, for human interpretation --></text>
    </Prescription>
    

    Alternate definitions: Schema, RDF (to do), XML, Resource Profile

    Terminology Bindings

    • Prescription.status has the definition PrescriptionStatus: "The status of a prescription". Possible values:
      activePatient is using the prescribed medicine
      completedPrescription is no longer current
    • Prescription.medicine.identification, Prescription.medicine.activeIngredient.identification and Prescription.medicine.inactiveIngredient.identification share the definition MedicationKind: "The kind of medication, vaccine or therapeutic material". If an appropriate code exists in G-Standaard (Netherlands), AMT (Australie) then it should be used
    • Prescription.administrationRequest.dosageInstruction.precondition has the definition AdministrationPrecondition: "Precondition for administering medication". If an appropriate code exists in NHG Table 25b then it should be used
    • Prescription.administrationRequest.dosageInstruction.additionalInstruction has the definition AdministrationInstruction: "Instructions for administering medication". If an appropriate code exists in NHG Table 25b then it should be used
    • Prescription.administrationRequest.dosageInstruction.route has the definition AdministrationRoute: "Route by which a medication is administered". If an appropriate code exists in G-Standaard subtable 0007 then it should be used
    • Prescription.reason has the definition PrescriptionReason: "Medical reason for prescribing a medicine". If an appropriate code exists in ICD-10 or ICPC-1 then it should be used

    Constraints

    • Restrictions on the combinations of Duration, Start and End are as follows: Duration may be specified alone or with Start. Alternatively, Start may be specified if End is specified. No other combinations are allowed. (xpath on /administrationRequest: (exists(f:duration) and not (exists(f:start) or exists(f:end))) or (exists(f:start) and exists(f:duration)) != (exists(f:start)))

    Notes:

    • TODO

    3.8.2: RESTful Transactions

    TODO

    There is no content model for the response, except for an HTTP status code.

    3.8.3: Search Parameters

    Search Parameters for RESTful searches. The standard parameters also apply. See Searching (§2.1.12) for more information.

    n : integerStarting offset of the first record to return in the search set
    count : integerNumber of return records requested. The server is not bound to conform
    id : tokenThe id of the resource
    patient : qtokenThe identity of a patient to list prescriptions for
    prescriber : qtokenThe identity of a prescriber to list prescriptions from
    startdate : datedate equal to Return only prescriptions made starting from this date (inclusive) (prescribed)
    startdate-before : datedate before or equal to Return only prescriptions made starting from this date (inclusive) (prescribed)
    startdate-after : datedate after or equal to Return only prescriptions made starting from this date (inclusive) (prescribed)
    enddate : datedate equal to Return only prescriptions made before this date (inclusive) (prescribed)
    enddate-before : datedate before or equal to Return only prescriptions made before this date (inclusive) (prescribed)
    enddate-after : datedate after or equal to Return only prescriptions made before this date (inclusive) (prescribed)
    status : tokenstatus of the prescription
    medicine : qtokencode or text in medicine or ingredient
    reason : qtokencode or text in reason for prescription

    (See Searching (§2.1.12)).

    4: Examples

    4.1.1: Resource Format Examples

    This page includes additional examples of the resource format, based on common usages and questions

    Todo

    4.2.1: Data Type Examples

    This page includes additional examples of the data types, based on common usages and questions

    Data Types Concept Map

    4.2.1.1: Primitive Types

    4.2.1.2: String Patterns

    4.2.1.3: Attachment

    4.2.1.4: Identifier

    4.2.1.5: Coding

    4.2.1.6: CodeableConcept

    4.2.1.7: Choice

    4.2.1.8: Quantity

    4.2.1.9: Range

    4.2.1.10: Ratio

    4.2.1.11: Period

    4.2.1.12: HumanId

    4.2.1.13: HumanName

    A Simple example

    <name>
      <part>
        <type>given</type>
        <value>Adam</value>
      </part>
      <part>
        <type>given</type>
        <value>A.</value>
      </part>
      <part>
        <type>family</type>
        <value>Everyman</value>
      </part>
    </name>
    

    Composite names

    <name>
      <part>
        <type>given</type>
        <value>Mary Jane</value>
      </part>
      <part>
        <type>family</type>
        <value>Contrata</value>
      </part>
    </name>
    

    These cases can be quite ambiguous - is "Mary Jane" one name, or two? Different systems, and data enterers may treat this differently, and the person themselves may not know. Parts are allowed to contain spaces, but systems should consider how to treat these cases. Composite names separated by "-" should be treated as a single name part.

    A common pattern: a person is called by a name other than that expected from their official name (first given name in most cultures).

    <name>
      <use>official</use>
      <part>
        <type>given</type>
        <value>Peter</value>
      </part>
      <part>
        <type>given</type>
        <value>James</value>
      </part>
      <part>
        <type>family</type>
        <value>Chalmers</value>
      </part>
    </name>
    <name>
      <use>usual</use>
      <part>
        <type>given</type>
        <value>Jim</value>
      </part>
    </name>
    

    This same pattern is often encountered with immigrants, who retains their real name for official use, but adopt a localised name for everyday use:

    <name>
      <use>official</use>
      <part>
        <type>given</type>
        <value>Piotr</value>
      </part>
      <part>
        <type>given</type>
        <value>Andre</value>
      </part>
      <part>
        <type>family</type>
        <value>Sczypinski</value>
      </part>
    </name>
    <name>
      <use>usual</use>
      <part>
        <type>given</type>
        <value>Jim</value>
      </part>
      <part>
        <type>family</type>
        <value>Skipper</value>
      </part>
    </name>
    

    Complex example from Germany: Dr.phil. Regina Johanna Maria Gräfin Hochheim-Weilenfels, NCFSA. This example shows extensive use of multiple given names, prefixes, suffixes, for academic degrees, nobility titles, and professional designations.

    <name>
      <use>official</use>  
      <part id="n1">
        <type>prefix</type>
        <value>Dr. phil..</value>
      </part>
      <part>
        <type>given</type>
        <value>Regina</value>
      </part>
      <part>
        <type>given</type>
        <value>Johanna</value>
      </part>
      <part>
        <type>given</type>
        <value>Maria</value>
      </part>
      <part id="n2">
        <type>prefix</type>
        <value>Gräfin</value>
      </part>
      <part>
        <type>family</type>
        <value>Hochheim-Weilenfels</value>
      </part>
      <part>
        <type>suffix</type>
        <value>NCFSA</value>
      </part>
    </name>
    <name>
      <use>maiden</use>  
      <part>
        <type>given</type>
        <value>Hochheim</value>
      </part>
    </name>
    <!-- ... -->
    <extension>
      <code>name-qualifier</code>
      <definition>http://hl7.org/fhir/profile/@iso-20190</definition>
      <ref>n1</ref>
      <valueCoding>
        <code>AC</code>
        <system>oid:2.16.840.1.113883.5.1122</system>
      </valueCoding>
    <extension>
    <extension>
      <code>name-qualifier</code>
      <definition>http://hl7.org/fhir/profile/@iso-20190</definition>
      <ref>n2</ref>
      <valueCoding>
        <code>NB</code>
        <system>oid:2.16.840.1.113883.5.1122</system>
      </valueCoding>
    <extension>
    

    This example makes use of the ISO 21090 extensions to carry the rare ISO 21090 qualifier attributes "AC" and "NB".

    Japanese example in the three forms: ideographic (Kanji), syllabic (Hiragana) and alphabetic (Romaji).

    <name>
      <part>
        <type>family</type>
        <value>木村</value>
      </part>
      <part>
        <type>given</type>
        <value>通男</value>
      </part>
    </name>
    <name>
      <part>
        <type>family</type>
        <value>きむら;</value>
      </part>
      <part>
        <type>given</type>
        <value>みちお</value>
      </part>
    </name>
    <name>
      <part>
        <type>family</type>
        <value>KIMURA</value>
      </part>
      <part>
        <type>given</type>
        <value>MICHIO</value>
      </part>
    </name>
    

    The three forms are differentiated by the character subset each contains.

    Russian example in the two forms: cyrillic, and latin:

    <name>
      <part>
        <type>family</type>
        <value>ЕМЕЛИН</value>
      </part>
      <part>
        <type>given</type>
        <value>ИВАН</value>
      </part>
      <part>
        <type>given</type>
        <value>ВЛАДИМИРОВИЧ</value>
      </part>
    </name>
    <name>
      <part>
        <type>family</type>
        <value>EMELIN</value>
      </part>
      <part>
        <type>given</type>
        <value>IVAN</value>
      </part>
    </name>
    

    In Russian usage, these names are known as the domestic and foreign names respectively. The two forms are differentiated by the character subset each contains.

    Scandinavian example: Erikson is the family name. Jan Erik are the given names, and Östlund the family name of the mother, which is taken as a Mellannamn.

    <name>
      <use>official</use>  
      <part>
        <type>given</type>
        <value>Jan</value>
      </part>
      <part>
        <type>given</type>
        <value>Erik</value>
      </part>
      <part id="n1">
        <type>given</type>
        <value>Östlund</value>
      </part>
      <part>
        <type>family</type>
        <value>Erikson</value>
      </part>
    </name>
    <!-- ... -->
    <extension>
      <code>name-qualifier</code>
      <definition>http://hl7.org/fhir/profile/@iso-20190</definition>
      <ref>n1</ref>
      <valueCoding>
        <code>MID</code>
        <system>oid:2.16.840.1.113883.5.1122</system>
      </valueCoding>
    </extension>
    

    This example makes use of the ISO 21090 extension to carry the culture specific ISO 21090 qualifier attribute "MID" for the Mellannamn.

    Then Jan Erikson has a daughter, Karin, with his wife Margrete Hansen. The first communications of the new born name is "Margrete Jente" (Margrete's Girl) and the mother's family name, not the given name (Karin). The father's Family name is not used at all. This is a known temporary name assigned directly after the birth of the child.

    <name>
      <use>temp</use>  
      <!—- use could be OR+OLD, depends how record keeping is done -->
      <part>
        <type>given</type>
        <value>Margrete Jente</value>
      </part>
      <part>
        <type>family</type>
        <value>Hansen</value>
      </part>
    </name>
    

    The baby's name is subsequently changed to the fathers' family name, and to use the mother's name as mellomnamn.

    <name>
      <use>official</use>  
      <part>
        <type>given</type>
        <value>Karin</value>
      </part>
      <part id="n1">
        <type>given</type>
        <value>Hansen</value>
      </part>
      <part>
        <type>family</type>
        <value>Erikson</value>
      </part>
    </name>
    <!-- ... -->
    <extension>
      <code>name-qualifier</code>
      <definition>http://hl7.org/fhir/profile/@iso-20190</definition>
      <ref>n1</ref>
      <valueCoding>
        <code>MID</code>
        <system>oid:2.16.840.1.113883.5.1122</system>
      </valueCoding>
    </extension>
    

    Later, Karin gets married to Per Berg, and decides to adopts Berg as her family name, and also decides to use Erikson as the mellom navn. (Note: Karin could have chosen to use another mellom navn, e.g. the family name of her mother, her father or other family names as specified by naming laws of the country in question).

    <name>
      <use>old</use>  
      <part>
        <type>given</type>
        <value>Karin</value>
      </part>
      <part id="n1">
        <type>given</type>
        <value>Hansen</value>
      </part>
      <part>
        <type>family</type>
        <value>Erikson</value>
      </part>
    </name>
    <name>
      <use>official</use>  
      <part>
        <type>given</type>
        <value>Karin</value>
      </part>
      <part id="n2">
        <type>given</type>
        <value>Erikson</value>
      </part>
      <part>
        <type>family</type>
        <value>Berg</value>
      </part>
    </name>
    <name>
      <use>usual</use>  
      <part>
        <type>given</type>
        <value>Karin</value>
      </part>
      <part>
        <type>family</type>
        <value>Berg</value>
      </part>
    </name>
    <!-- ... -->
    <extension>
      <code>name-qualifier</code>
      <definition>http://hl7.org/fhir/profile/@iso-20190</definition>
      <ref>n1</ref>
      <valueCoding>
        <code>MID</code>
        <system>oid:2.16.840.1.113883.5.1122</system>
      </valueCoding>
    </extension>
    <extension>
      <code>name-qualifier</code>
      <definition>http://hl7.org/fhir/profile/@iso-20190</definition>
      <ref>n2</ref>
      <valueCoding>
        <code>MID</code>
        <system>oid:2.16.840.1.113883.5.1122</system>
      </valueCoding>
    </extension>
    

    4.2.1.14: Address

    4.2.1.15: Contact

    4.2.1.16: Schedule

    4.3.1: Person - Examples

    This page contains two examples that demonstrate how to use extensions

    4.3.1.1: Patient Name Parts

    ISO 21090 (Healthcare Data Types) defines a concept called a "name part qualifier" that contains extra information about how a particular name part should be used or interpreted. In practice, this field is used rarely, except in particular cultural contexts, where certain part qualifiers are used as a matter of practice. Following the FHIR design policy (§1.5), such a field is not included in the overall definition of the core name data type, instead is it added as an extension.

    In order to use an extension, there is a three step process:

    1. Define the extension
    2. Register the extension
    3. Use it in the instance

    In practice, for cases such as these in ISO 21090, HL7 provides common extensions, and these are defined at [location still to be finalised].

    Define the Extension

    For each extension, the first thing to do is to fill out the definitional properties of the extension (§1.5.2):

    Code"name-qualifier"
    ContextThis extension can be used anywhere a HumanName.part appears
    Short Defn(one of the codes) AD | SP | BR | CL | IN | LS | MID | PFX | SFX
    DefinitionA set of codes each of which specifies a certain subcategory of the name part in addition to the main name part type
    CommentsUsed to indicate additional information about the name part and how it should be used
    Cardinality0..* (this is always optional, but more than one can be used if required)
    Typecode
    dataAbsentReason?No. (If the qualifier isn't known, don't include it)
    XPathsN/A
    Must UnderstandNo (Qualifiers are not required to be understood)
    RIM MappingENXP.qualifier
    v2 MappingN/A
    BindingBound to a subset of the codes specified for EntityNamePartQualifierR2 in ISO 21090 (http://www.hl7.org/v3ballot/html/infrastructure/vocabulary/EntityNamePartQualifierR2.html)

    Not all the codes of the EntityNamePartQualifierR2 are required in this context, because prefix and suffix are explicitly part of the name types. Rather than simply refer to the OID for EntityNamePartQualifierR2 (2.16.840.1.113883.5.1122), in this case we enumerate the available codes, and set the type of the extension to code. The type of "code" is only allowed if the profile itself defines the codes that can be used. Here is a table of the codes (see the EntityNamePartQualifierR2 (http://www.hl7.org/v3ballot/html/infrastructure/vocabulary/EntityNamePartQualifierR2.html) reference for the full definitions):

    LSLegal status For organizations a suffix...
    ACAcademicIndicates that a prefix like "D...
    NBNobilityIn Europe and Asia, there are s...
    PRProfessionalPrimarily in the British Im...
    HONHonorificAn honorific such as 'The Rig...
    BRBirthA name that a person was given at ...
    ADAcquiredA name part a person acquired. ...
    SPSpouseThe name assumed from the partner...
    MIDMiddle NameIndicates that the name par...
    CLCall meCallme is used to indicate which...
    INInitialIndicates that a name part is ju...

    This is all then represented formally in a profile. Such profiles do not need to include constraint statements of resources; instead, they include just extension declarations and their associated bindings. In this case, the profile looks like this:

    <Profile xmlns="http://hl7.org/fhir">
      <id>iso-21090</id>
      <-- snip other metadata -->
      <extensionDefn>
        <code>name-qualifier</code>
        <context>HumanName.part</context>
        <contextType>datatype</contextType>
        <definition>
          <short>AD | SP | BR | CL | IN | LS | MID | PFX | SFX</short>
          <formal>A set of codes each of which specifies a certain subcategory 
              of the name part in addition to the main name part type</formal>
          <comments>Used to indicate additional information about the 
                 name part and how it should be used</comments>
          <min>0</min>
          <max>*</max>
          <type>code</type>
          <dataAbsentReason>false</dataAbsentReason>
          <mustSupport>false</mustSupport>
          <mustUnderstand>false</mustUnderstand>
          <binding>EntityNamePartQualifier</binding>
          <mapping>
            <target>ENXP.qualifier</target>
            <map>RIM</map>
          </mapping>
        </definition>
      </extensionDefn>
    
      <binding>
        <name>EntityNamePartQualifier</name>
        <definition>A set of codes each of which specifies a certain subcategory 
            of the name part in addition to the main name part type</definition>
        <type>codelist</type>
        <strength>required</strength>
        <reference>#name-part-qualifier</reference>
        <concept>
          <code>LS</code>
          <system>oid:2.16.840.1.113883.5.1122</system>
          <display>Legal status</display>
          <definition>For ... <-- snip definition --></definition>
        </concept>
        <-- snip other codes -->
      </binding>
      <-- snip narrative -->
    </Profile>  
      
    

    Note that usually you would build the actual profile using some tool. This example was built from a spreadsheet definition by the FHIR build tooling.

    Register the Extension

    For this example, it is registered at http://hl7connect.healthintersections.com.au/svc/fhir/profile/@iso-21090 (http://hl7connect.healthintersections.com.au/svc/fhir/profile/@iso-21090?format=text/html) . This is the url that will appear in the definition element when the extension is used.

    Use it in the instance

    To using the extension in an instance, you firstly mark the name part that is being extended with an id attribute, so that the extension can be connected to it:

    <name>
      <use>official</use>  
      <part id="n1">
        <type>given</type>
        <value>Östlund</value>
      <part>
    </name>
    

    Then, in the extensions section of the resource, you add an extension. The code and the definition have been defined above; all that is needed is the idref to the part above, and the actual value.

    <extension>
      <code>name-qualifier</code>
      <profile>http://hl7connect.healthintersections.com.au/svc/fhir/profile/@iso-21090</profile>
      <ref>n1</ref>
      <valueCode>MID</valueCode>
    <extension>
    

    This particular example is a Scandavian mellannamn. See Datatypes examples for additional examples (§4.2.1).

    4.4: Examples: Agent

    Examples for the Agent (§3.1) resource.

    4.4.0.2: General

    Example of agent

    Example of agent

    <Agent xmlns="http://hl7.org/fhir">
      <id>1</id>
      
      <person>
        <type>Person</type>
        <id>32344</id>  
      </person> 
      <organization>
        <type>Organization</type>
        <id>3</id>  
      </organization> 
    
      <!--   Referring Provider for the first 3 months of 2012   -->
      <role>
        <coding>
          <code>RP</code>
          <system>http://hl7.org/fhir/sid/v2-0286</system>
        </coding>
      </role>
      
      <period>
        <start>2012-01-01</start>
        <end>2012-03-31</end>
      </period>
      
      <identifier>
        <identifier>  
          <system>htp://www.acme.org/providers</system>
          <id>23</id>
        </identifier>
      </identifier>
    
      <text>
        <status>generated</status>
        <div xmlns="http://www.w3.org/1999/xhtml">
          <p>Dr Adam Careful is a Referring Provider for Acme Hospital from 1-Jan 2012 to 31-Mar 2012</p>
        </div>
      </text>
    </Agent>

    4.5: Examples: Animal

    Examples for the Animal (§3.2) resource.

    4.5.0.3: General

    Example of animal

    Example of animal

    <Animal xmlns="http://hl7.org/fhir">
      <id>wer234fwde234</id>
      
      <!--   Dog tag, under Maroondah City council   -->
      <identifier>
        <type>
          <code>microchip</code>
          <system>http://hl7.org/fhir/sid/fhir/identifier-type</system>
        </type>
        <identifier>
          <system>http://www.maroondah.vic.gov.au/AnimalRegFees.aspx</system>
          <id>1234123123312332</id>      
        </identifier>
        <period>
          <start>2010-05-31</start>
        </period>
    <!--   todo: this is currently broken, and needs to be fixed.
        
          Maroondah City Council
        
          -->
      </identifier>
    
      <!--   Dog's name: Kenzi   -->
      <name>
        <use>usual</use>
        <part>
          <type>given</type>
          <value>Kenzi</value>
        </part>
      </name>
        
      <dob>2010-03-23</dob> 
      <!--   todo: how do you code a species?   -->
      <species>
        <coding>
          <code>Canis lupus familiaris</code>
          <system>http://en.wikipedia.org/wiki/Biological_classification</system>
        </coding>
      </species>
      <strain>
        <coding>
          <code>58108001</code>              
          <system>http://snomed.info</system>
          <display>Golden retriever</display>  
        </coding>      
      </strain>
      <gender>
        <coding>
          <code>F</code>
          <system>http://hl7.org/fhir/sid/v2-0001</system>
        </coding>
      </gender>
      
      <!--   owner   -->
      <relatedEntity>
        <role>
          <coding>
            <code>OWN</code>
            <system>http://hl7.org/fhir/sid/v2-0063</system>
            <display>Owner</display>
          </coding>
        </role>
        <name>
          <use>official</use>
          <part>
            <type>given</type>
            <value>Peter</value>
          </part>
          <part>
            <type>given</type>
            <value>James</value>
          </part>
          <part>
            <type>family</type>
            <value>Chalmers</value>
          </part>
        </name>
        <address>
          <use>home</use>
          <part>
            <type>line</type>
            <value>534 Erewhon St</value>
          </part>
          <part>
            <type>city</type>
            <value>PleasantVille</value>
          </part>
          <part>
            <type>state</type>
            <value>Vic</value>
          </part>
          <part>
            <type>zip</type>
            <value>3999</value>
          </part>
        </address>
        <contact dataAbsentReason="unknown">
          <use>home</use>
        </contact>
        <contact>
          <system>phone</system>
          <value>(03) 5555 6473</value>
          <use>work</use>
        </contact>
      </relatedEntity>
       
      <text>
        <status>generated</status>
        <div xmlns="http://www.w3.org/1999/xhtml">
          <table>
            <tbody>
              <tr>
                <td>Id</td>
                <td>Kenzi (Dog: Golden Retriever)</td>
              </tr>
              <tr>
                <td>Owner</td>
                <td>Peter Chalmers, 534 Erewhon, Pleasantville, Vic, 3999</td>
              </tr>
              <tr>
                <td>Contacts</td>
                <td>Home: unknown. Work: (03) 5555 6473</td>
              </tr>
              <tr>
                <td>Id</td>
                <td>Microchip: 1234123123312332 (Maroondah City Council)</td>
              </tr>
            </tbody>
          </table>
        </div>
      </text>
    </Animal>

    4.6: Examples: AssessmentScale

    Examples for the AssessmentScale (§3.3) resource.

    4.6.0.4: General

    Example of assessmentscale

    Example of assessmentscale

    <AssessmentScale xmlns="http://hl7.org/fhir">
      <id>2342342134134</id>
      <subject>
        <type>Patient</type>
        <id>25bd34</id>
      </subject>
      <performer>
        <type>Agent</type>
        <id>1</id>
      </performer>
      <time>2012-05-23T07:43:00</time>
      <interpretation>
        <coding>
          <code>263654008</code>
          <system>http://snomed.info</system>
          <display>Abnormal</display>
        </coding>
      </interpretation>
      <interpretation>
        <coding>
          <code>248342006</code>
          <system>http://snomed.info</system>
          <display>Underweight</display>
        </coding>
      </interpretation>
      <score>
        <code>  
          <coding>
            <code>39156-5</code>
            <system>http://loinc.org</system>
            <display>Body mass index</display>
          </coding>
          <coding>
            <code>60621009</code>
            <system>http://snomed.info</system>
            <display>Body mass index</display>
          </coding>
        </code>
        <valueQuantity>
          <value>18</value>
          <units>kg/m2</units>
        </valueQuantity>
        <!--   todo - fill out measures   -->
      </score>
      <reason>?Anorexia Nervosa</reason>
      <text>
        <status>generated</status>
        <div xmlns="http://www.w3.org/1999/xhtml">
          Fill this out....
        </div>
      </text>
    </AssessmentScale>

    4.7: Examples: Conformance

    Examples for the Conformance (§2.7) resource.

    4.7.0.5: General

    Example of conformance

    Example of conformance

    <Conformance xmlns="http://hl7.org/fhir">
      <id>6cb96d2f-cfa5-4da9-a5a6-d1a087da0baf</id>
      <date>2012-01-04</date>
      <publisher>
        <name>ACME Corporation</name>
        <contact>
          <system>email</system>
          <value>wile@acme.org</value>
        </contact>
      </publisher>
      <software>
        <name>EHR</name>
        <version>0.00.020.2134</version>
      </software>
    
      <!--   while the FHIR infrastructure is turning over prior to development, a version is required. Note that this may be rescinded later?   -->
      <version>0.02</version>
      <acceptUnknown>true</acceptUnknown>
      
      <!--   in a real conformance statement, it's unlikely that a single conformance statement would declare conformance 
       for REST, messaging, and documents, though it is legal. This example does so in order to show all the parts of a  
       conformance statement   -->
      <rest>
        <!--   this is a server conformance statement. Note that servers are required to provide one of these. 
         It can easily be edited by hand - copy this, replace the metadata above, delete the messaging and 
         document stuff below, and then replace the details appropriately.   -->
        <mode>server</mode>
        <!--   zero or more of these - declaration of support for a resource   -->
        <resource>
          <type>Person</type>
          <!--   let's assume that HL7 has stood up a profile registry at http://fhir.hl7.org/fhir - it's likely to have a registry, 
               though this is not decided, nor is a URL decided. This application simply uses a profile registered directly 
               with HL7. For the simplest case of a FHIR REST Server, just delete this profile reference. Profile 
               references do not need to be a UUID, though a profile registry could insist that they are   -->
          <profile>http://fhir.hl7.org/base/profile/@7896271d-57f6-4231-89dc-dcc91eab2416</profile>
          <operation>
            <code>read</code>
          </operation>
          <operation>
            <code>vread</code>
          </operation>
          <operation>
            <code>update</code>
          </operation>
          <operation>
            <code>history</code>
          </operation>
          <operation>
            <code>create</code>
          </operation>
          <operation>
            <code>updates</code>
          </operation>
          <search>
            <!--   this list is incomplete - there's more parameters than name, but this suffices for an example   -->
            <param>
              <name>name</name>
              <documentation>Search for a person by name (any part of their name)</documentation>
            </param>
          </search>
        </resource>
      </rest>
    
      <!--   a messaging conformance statemnt. Applications are not required to make a conformance statement with regard to 
        messaging, though there is active argument that they should.    -->
      <messaging>
        <!--   how to tell whether this llp is a server or a client?   -->
        <event>
          <code>admin-notify</code>
          <mode>receiver</mode> <!--   this a a receiver - i.e. answers. Not necessariy a server   -->
          <focus>Person</focus>
          <!--   specify a profile for the request person. Very often there's no point profiling the response, it's not interesting   -->
          <request>http://fhir.hl7.org/base/profile/@7896271d-57f6-4231-89dc-dcc91eab2416</request>
        </event>
      </messaging>
      
      <!--   a document conformance statement   -->
      <document>
        <mode>consumer</mode>
        <documentation>Basic rules for all documents in the EHR system</documentation>
        <!--   this is the important element: a reference to a published document profile 
           note that this is a version specific reference.
            -->
        <profile>http://fhir.hl7.org/base/profile/@bc054d23-75e1-4dc6-aca5-838b6b1ac81d/history/@b5fdd9fc-b021-4ea1-911a-721a60663796</profile>
      </document>  
      <text>
      
        <status>generated</status>
        <div xmlns="http://www.w3.org/1999/xhtml">
          <p>The EHR Server supports the following transactions for the resource &quot;Person&quot;: read, vread, update, history, search(name,gender), create, and updates.</p>
          <p>The EHR System supports the following message: admin-notify::Person.</p>
          <p>The EHR Application has a <a href="http://fhir.hl7.org/base/profile/@bc054d23-75e1-4dc6-aca5-838b6b1ac81d/history/@b5fdd9fc-b021-4ea1-911a-721a60663796">general document profile</a>.</p>
        </div>
      </text>
    </Conformance>

    4.8: Examples: DocumentHeader

    Examples for the DocumentHeader (§2.3) resource.

    4.8.0.6: General

    Example of documentheader

    Example of documentheader

    <DocumentHeader xmlns="http://hl7.org/fhir">
      <id>1cbdfb97-5859-48a4-8301-d54eab818d68</id>
      <instant>2012-01-04T09:10:14Z</instant>
      <type>
        <coding>
          <code>11488-4</code>
          <system>http://loinc.org</system>
          <display>Consultation note</display>
        </coding>
      </type>
      <subject>
        <type>Patient</type>
        <id>12.123.451.23.1.23</id>
        <text>Henry Levin the 7th</text>
      </subject>
      <author>
        <type>Person</type>
        <id>233123</id>
        <text>Robert Dolin MD</text>
      </author>
      <attester>
        <mode>legal</mode>
        <party>
          <type>Person</type>
          <id>233123</id>
          <text>Robert Dolin MD</text>
        </party>
      </attester>
      <custodian>
        <type>Organization</type>
        <id>2.16.840.1.113883.19.5</id>
        <text>Good Health Clinic</text>
      </custodian>
      <section>
        <type>
          <coding>
            <code>10164-2</code>
            <system>http://loinc.org</system>
          </coding>
        </type>
        <content>
          <!--   we really need a different resource here, but it's not yet defined   -->
          <type>Prescription</type> 
          <id>34124</id>
        </content>
      </section>
      <text>
        <status>generated</status>
        <div xmlns="http://www.w3.org/1999/xhtml">
          <p>Consultation note for Henry Levin the 7th</p>
        </div>
      </text>
    </DocumentHeader>

    4.9: Examples: LabReport

    Examples for the LabReport (§3.4) resource.

    4.9.0.7: General

    General Lab Report Example

    General Lab Report Example

    <LabReport xmlns="http://hl7.org/fhir">
      <id>1</id>
      <!--   first, various administrative/context stuff   -->
      <status>final</status> <!--   all this report is final   -->
      <issued>2011-03-04T11:45:33+11:00</issued>
      <patient>
        <type>Patient</type>
        <id>23453</id>
      </patient>
      <laboratory>
        <type>Organization</type>
        <id>1832473e-2fe0-452d-abe9-3cdb9879522f</id>
        <text>Acme Laboratory, Inc</text>
      </laboratory>
      <reportId>
        <system>http://acme.com/lab/reports</system>
        <id>5234342</id>
      </reportId>
      <reportName>
        <coding>
          <code>15430-2</code>
          <system>http://loinc.org</system>
          <display>FULL BLOOD EXAMINATION</display>
        </coding>
        <coding>
          <code>CBC</code>
          <system>http://www.nata.asn.au/accreditation</system>
          <display>MASTER FULL BLOOD COUNT</display>
        </coding>
      </reportName>
      <service>
        <coding>
          <code>HM</code>
          <system>http://hl7.org/fhir/sid/v2-0074</system>
        </coding>
      </service>
      <diagnosticTime>2011-03-04T08:30:00+11:00</diagnosticTime>
      
      <!--   now the atomic results   -->
      <resultGroup>
        <!--   null group, so no name or speciment   -->
        <result>
          <name>
            <coding>
              <code>718-7</code>
              <system>http://loinc.org</system>
              <display>Haemoglobin</display>
            </coding>
          </name>
          <valueQuantity>
            <value>176</value>
            <units>g/L</units>
            <code>g/L</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <status>final</status>
          <referenceRange>
            <rangeRange>
              <low>
                <value>135</value>
                <units>g/L</units>
                <code>g/L</code>
                <system>http://unitsofmeasure.org</system>
              </low>
              <high>
                <value>180</value>
                <units>g/L</units>
                <code>g/L</code>
                <system>http://unitsofmeasure.org</system>
              </high>
            </rangeRange>
          </referenceRange>
        </result>
    
        <result>
          <name>
            <coding>
              <code>789-8</code>
              <system>http://loinc.org</system>
              <display>Red Cell Count</display>
            </coding>
          </name>
          <valueQuantity>
            <value>5.9</value>
            <units>x10*12/L</units>
            <code>10*12/L</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <status>final</status>
          <referenceRange>
            <rangeRange>
              <low>
                <value>4.2</value>
                <units>x10*12/L</units>
                <code>10*12/L</code>
                <system>http://unitsofmeasure.org</system>
              </low>
              <high>
                <value>6.0</value>
                <units>x10*12/L</units>
                <code>10*12/L</code>
                <system>http://unitsofmeasure.org</system>
              </high>
            </rangeRange>
          </referenceRange>
        </result>
    
        <result>
          <name>
            <coding>
              <code>4544-3</code>
              <system>http://loinc.org</system>
              <display>Haematocrit</display>
            </coding>
          </name>
          <valueQuantity>
            <value>55</value>
      <units>%</units>
          </valueQuantity>
          <flag>+</flag>
          <status>final</status>
          <referenceRange>
            <rangeRange>
              <low>
                <value>38</value>
             <units>%</units>
              </low>
              <high>
                <value>52</value>
                <units>%</units>
              </high>
            </rangeRange>
          </referenceRange>
        </result>
    
        <result>
          <name>
            <coding>
              <code>787-2</code>
              <system>http://loinc.org</system>
              <display>Mean Cell Volume</display>
            </coding>
          </name>
          <valueQuantity>
            <value>99</value>
            <units>fL</units>
            <code>fL</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <flag>+</flag>
          <status>final</status>
          <referenceRange>
            <rangeRange>
              <low>
                <value>80</value>
                <units>fL</units>
                <code>fL</code>
                <system>http://unitsofmeasure.org</system>
              </low>
              <high>
                <value>98</value>
                <units>fL</units>
                <code>fL</code>
                <system>http://unitsofmeasure.org</system>
              </high>
            </rangeRange>
          </referenceRange>
        </result>
    
        <result>
          <name>
            <coding>
              <code>785-6</code>
              <system>http://loinc.org</system>
              <display>Mean Cell Haemoglobin</display>
            </coding>
          </name>
          <valueQuantity>
            <value>36</value>
            <units>pg</units>
            <code>pg</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <flag>+</flag>
          <status>final</status>
          <referenceRange>
            <rangeRange>
              <low>
                <value>27</value>
                <units>pg</units>
                <code>pg</code>
                <system>http://unitsofmeasure.org</system>
              </low>
              <high>
                <value>35</value>
                <units>pg</units>
                <code>pg</code>
                <system>http://unitsofmeasure.org</system>
              </high>
            </rangeRange>
          </referenceRange>
        </result>
    
        <result>
          <name>
            <coding>
              <code>777-3</code>
              <system>http://loinc.org</system>
              <display>Platelet Count</display>
            </coding>
          </name>
          <valueQuantity>
            <value>444</value>
            <units>x10*9/L</units>
            <code>10*9/L</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <status>final</status>
          <referenceRange>
            <rangeRange>
              <low>
                <value>150</value>
                <units>x10*9/L</units>
                <code>10*9/L</code>
                <system>http://unitsofmeasure.org</system>
              </low>
              <high>
                <value>450</value>
                <units>x10*9/L</units>
                <code>10*9/L</code>
                <system>http://unitsofmeasure.org</system>
              </high>
            </rangeRange>
          </referenceRange>
        </result>
    
        <result>
          <name>
            <coding>
              <code>6690-2</code>
              <system>http://loinc.org</system>
              <display>White Cell Count</display>
            </coding>
          </name>
          <valueQuantity>
            <value>4.6</value>
            <units>x10*9/L</units>
            <code>10*9/L</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <status>final</status>
          <referenceRange>
            <rangeRange>
              <low>
                <value>4.0</value>
                <units>x10*9/L</units>
                <code>10*9/L</code>
                <system>http://unitsofmeasure.org</system>
              </low>
              <high>
                <value>11.0</value>
                <units>x10*9/L</units>
                <code>10*9/L</code>
                <system>http://unitsofmeasure.org</system>
              </high>
            </rangeRange>
          </referenceRange>
        </result>
    
        <result>
          <name>
            <coding>
              <code>770-8</code>
              <system>http://loinc.org</system>
              <display>Neutrophils</display>
            </coding>
          </name>
          <valueQuantity>
            <value>20</value>
            <units>%</units>
            <code>%</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <status>final</status>
        </result>
    
        <result>
          <name>
            <coding>
              <code>751-8</code>
              <system>http://loinc.org</system>
              <display>Neutrophils</display>
            </coding>
          </name>
          <valueQuantity>
            <value>0.9</value>
            <units>x10*9/L</units>
            <code>10*9/L</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <flag>---</flag>
          <status>final</status>
          <referenceRange>
            <rangeRange>
              <low>
                <value>2.0</value>
                <units>x10*9/L</units>
                <code>10*9/L</code>
                <system>http://unitsofmeasure.org</system>
              </low>
              <high>
                <value>7.5</value>
                <units>x10*9/L</units>
                <code>10*9/L</code>
                <system>http://unitsofmeasure.org</system>
              </high>
            </rangeRange>
          </referenceRange>
        </result>
    
        <result>
          <name>
            <coding>
              <code>736-9</code>
              <system>http://loinc.org</system>
              <display>Lymphocytes</display>
            </coding>
          </name>
          <valueQuantity>
            <value>20</value>
            <units>%</units>
            <code>%</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <status>final</status>
        </result>
    
        <result>
          <name>
            <coding>
              <code>731-0</code>
              <system>http://loinc.org</system>
              <display>Lymphocytes</display>
            </coding>
          </name>
          <valueQuantity>
            <value>0.9</value>
            <units>x10*9/L</units>
            <code>10*9/L</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <flag>-</flag>
          <status>final</status>
          <referenceRange>
            <rangeRange>
              <low>
                <value>1.1</value>
                <units>x10*9/L</units>
                <code>10*9/L</code>
                <system>http://unitsofmeasure.org</system>
              </low>
              <high>
                <value>4.0</value>
                <units>x10*9/L</units>
                <code>10*9/L</code>
                <system>http://unitsofmeasure.org</system>
              </high>
            </rangeRange>
          </referenceRange>
        </result>
    
        <result>
          <name>
            <coding>
              <code>5905-5</code>
              <system>http://loinc.org</system>
              <display>Monocytes</display>
            </coding>
          </name>
          <valueQuantity>
            <value>20</value>
            <units>%</units>
            <code>%</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <status>final</status>
        </result>
    
        <result>
          <name>
            <coding>
              <code>742-7</code>
              <system>http://loinc.org</system>
              <display>Monocytes</display>
            </coding>
          </name>
          <valueQuantity>
            <value>0.9</value>
            <units>x10*9/L</units>
            <code>10*9/L</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <status>final</status>
          <referenceRange>
            <rangeRange>
              <low>
                <value>0.2</value>
                <units>x10*9/L</units>
                <code>10*9/L</code>
                <system>http://unitsofmeasure.org</system>
              </low>
              <high>
                <value>1.0</value>
                <units>x10*9/L</units>
                <code>10*9/L</code>
                <system>http://unitsofmeasure.org</system>
              </high>
            </rangeRange>
          </referenceRange>
        </result>
    
        <result>
          <name>
            <coding>
              <code>713-8</code>
              <system>http://loinc.org</system>
              <display>Eosinophils</display>
            </coding>
          </name>
          <valueQuantity>
            <value>20</value>
            <units>%</units>
            <code>%</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <status>final</status>
        </result>
    
        <result>
          <name>
            <coding>
              <code>711-2</code>
              <system>http://loinc.org</system>
              <display>Eosinophils</display>
            </coding>
          </name>
          <valueQuantity>
            <value>0.92</value>
            <units>x10*9/L</units>
            <code>10*9/L</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <flag>++</flag>
          <status>final</status>
          <referenceRange>
            <rangeRange>
              <low>
                <value>0.04</value>
                <units>x10*9/L</units>
                <code>10*9/L</code>
                <system>http://unitsofmeasure.org</system>
              </low>
              <high>
                <value>0.40</value>
                <units>x10*9/L</units>
                <code>10*9/L</code>
                <system>http://unitsofmeasure.org</system>
              </high>
            </rangeRange>
          </referenceRange>
        </result>
    
        <result>
          <name>
            <coding>
              <code>706-2</code>
              <system>http://loinc.org</system>
              <display>Basophils</display>
            </coding>
          </name>
          <valueQuantity>
            <value>20</value>
            <units>%</units>
            <code>%</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <status>final</status>
        </result>
    
        <result>
          <name>
            <coding>
              <code>704-7</code>
              <system>http://loinc.org</system>
              <display>Basophils</display>
            </coding>
          </name>
          <valueQuantity>
            <value>0.92</value>
            <units>x10*9/L</units>
            <code>10*9/L</code>
            <system>http://unitsofmeasure.org</system>
          </valueQuantity>
          <status>final</status>
          <referenceRange>
            <rangeQuantity>
              <value>0.21</value>
              <range>&lt;</range>
              <units>x10*9/L</units>
              <code>10*9/L</code>
              <system>http://unitsofmeasure.org</system>
            </rangeQuantity>
          </referenceRange>
        </result>      
        
      </resultGroup>
    
      <representation>
        <mimeType>application/pdf</mimeType>
        <data>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PSdodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvJz48cGRmOlByb2R1Y2VyPkdQTCBHaG9zdHNjcmlwdCA5LjA0PC9wZGY6UHJvZHVjZXI+CjxwZGY6S2V5d29yZHM+KCk8L3BkZjpLZXl3b3Jkcz4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSdlOTA4ODRhMy0zYzlhLTExZTEtMDAwMC02NDI2MDMzYWE1MCYjODsnIHhtbG5zOnhtcD0naHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyc+PHhtcDpNb2RpZnlEYXRlPjIwMTItMDEtMDlUMDg6MjU6NTQrMTE6MDA8L3htcDpNb2RpZnlEYXRlPgo8eG1wOkNyZWF0ZURhdGU+MjAxMi0wMS0wOVQwODoyNTo1NCsxMTowMDwveG1wOkNyZWF0ZURhdGU+Cjx4bXA6Q3JlYXRvclRvb2w+UERGQ3JlYXRvciBWZXJzaW9uIDEuMi4zPC94bXA6Q3JlYXRvclRvb2w+PC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSdlOTA4ODRhMy0zYzlhLTExZTEtMDAwMC02NDI2MDMzYWE1MCYjODsnIHhtbG5zOnhhcE1NPSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vJyB4YXBNTTpEb2N1bWVudElEPSd1dWlkOmU5MDg4NGEzLTNjOWEtMTFlMS0wMDAwLTY0MjYwMzNhYTUwJiMxMzg7pyYjMTU3O+7SYyYjMzE7JiMxNjsnLz4KPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J2U5MDg4NGEzLTNjOWEtMTFlMS0wMDAwLTY0MjYwMzNhYTUwJiM4OycgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJyBkYzpmb3JtYXQ9J2FwcGxpY2F0aW9uL3BkZic+PGRjOnRpdGxlPjxyZGY6QWx0PjxyZGY6bGkgeG1sOmxhbmc9J3gtZGVmYXVsdCc+Q0JDIFJlcG9ydCBmb3IgV2lsZS4gRS4gQ09ZT1RFIChNUk46IDIzNDUzKSBpc3N1ZWQgMy1NYXIgMjAxMSAxMTo0NTwvcmRmOmxpPjwvcmRmOkFsdD48L2RjOnRpdGxlPjxkYzpjcmVhdG9yPjxyZGY6U2VxPjxyZGY6bGk+R3JhaGFtZTwvcmRmOmxpPjwvcmRmOlNlcT48L2RjOmNyZWF0b3I+PGRjOmRlc2NyaXB0aW9uPjxyZGY6U2VxPjxyZGY6bGk+KCk8L3JkZjpsaT48L3JkZjpTZXE+PC9kYzpkZXNjcmlwdGlvbj48L3JkZjpEZXNjcmlwdGlvbj4KPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSd3Jz8+CmVuZHN0cmVhbQplbmRvYmoKMiAwIG9iago8PC9Qcm9kdWNlcihHUEwgR2hvc3RzY3JpcHQgOS4wNCkKL0NyZWF0aW9uRGF0ZShEOjIwMTIwMTA5MDgyNTU0KzExJzAwJykKL01vZERhdGUoRDoyMDEyMDEwOTA4MjU1NCsxMScwMCcpCi9UaXRsZShcMzc2XDM3N1wwMDBDXDAwMEJcMDAwQ1wwMDAgXDAwMFJcMDAwZVwwMDBwXDAwMG9cMDAwclwwMDB0XDAwMCBcMDAwZlwwMDBvXDAwMHJcMDAwIFwwMDBXXDAwMGlcMDAwbFwwMDBlXDAwMC5cMDAwIFwwMDBFXDAwMC5cMDAwIFwwMDBDXDAwME9cMDAwWVwwMDBPXDAwMFRcMDAwRVwwMDAgXDAwMFwoXDAwME1cMDAwUlwwMDBOXDAwMDpcMDAwIFwwMDAyXDAwMDNcMDAwNFwwMDA1XDAwMDNcMDAwXClcMDAwIFwwMDBpXDAwMHNcMDAwc1wwMDB1XDAwMGVcMDAwZFwwMDAgXDAwMDNcMDAwLVwwMDBNXDAwMGFcMDAwclwwMDAgXDAwMDJcMDAwMFwwMDAxXDAwMDFcMDAwIFwwMDAxXDAwMDFcMDAwOlwwMDA0XDAwMDUpCi9DcmVhdG9yKFwzNzZcMzc3XDAwMFBcMDAwRFwwMDBGXDAwMENcMDAwclwwMDBlXDAwMGFcMDAwdFwwMDBvXDAwMHJcMDAwIFwwMDBWXDAwMGVcMDAwclwwMDBzXDAwMGlcMDAwb1wwMDBuXDAwMCBcMDAwMVwwMDAuXDAwMDJcMDAwLlwwMDAzKQovQXV0aG9yKFwzNzZcMzc3XDAwMEdcMDAwclwwMDBhXDAwMGhcMDAwYVwwMDBtXDAwMGUpCi9LZXl3b3JkcygpCi9TdWJqZWN0KCk+PmVuZG9iagp4cmVmCjAgMjEKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAyMTM3IDAwMDAwIG4gCjAwMDAwNjg3OTMgMDAwMDAgbiAKMDAwMDAwMjA3OCAwMDAwMCBuIAowMDAwMDAxOTM2IDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMTkxNiAwMDAwMCBuIAowMDAwMDAyNjU2IDAwMDAwIG4gCjAwMDAwMDQ2ODEgMDAwMDAgbiAKMDAwMDAwMzQ3OSAwMDAwMCBuIAowMDAwMDIxNTc3IDAwMDAwIG4gCjAwMDAwMDQzMjkgMDAwMDAgbiAKMDAwMDA0MTMwNyAwMDAwMCBuIAowMDAwMDAyMjAyIDAwMDAwIG4gCjAwMDAwMDQ5MDUgMDAwMDAgbiAKMDAwMDAyMTc5MyAwMDAwMCBuIAowMDAwMDQxNTI5IDAwMDAwIG4gCjAwMDAwMDIyNTIgMDAwMDAgbiAKMDAwMDAwMjk0OCAwMDAwMCBuIAowMDAwMDAzODMxIDAwMDAwIG4gCjAwMDAwNjcwODggMDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSAyMSAvUm9vdCAxIDAgUiAvSW5mbyAyIDAgUgovSUQgWzw4RDdGNzc5QTAwQzcwOTc5NTg3MDQyRjA5MkJBQjhDNj48OEQ3Rjc3OUEwMEM3MDk3OTU4NzA0MkYwOTJCQUI4QzY+XQo+PgpzdGFydHhyZWYKNjk0ODUKJSVFT0YK</data>
        <title>HTML Report</title>
      </representation>
    
      <text>
        <status>generated</status>
        <div xmlns="http://www.w3.org/1999/xhtml"> 
          <h3>CBC Report for Wile. E. COYOTE (MRN: 23453) issued 3-Mar 2011 11:45</h3>      
          <!--   you could use a table here, but laboratories are still back in the dark ages using fixed text tables...   -->
          <pre>
    Test                  Units        Value       Reference Range
    Haemoglobin           g/L         176         135 - 180
    Red Cell Count        x10*12/L    5.9         4.2 - 6.0
    Haematocrit                       0.55+       0.38 - 0.52
    Mean Cell Volume      fL          99+         80 - 98
    Mean Cell Haemoglobin pg          36+         27 - 35
    Platelet Count        x10*9/L     444         150 - 450
    White Cell Count      x10*9/L     4.6         4.0 - 11.0
    Neutrophils           %           20 
    Neutrophils           x10*9/L     0.9---      2.0 - 7.5
    Lymphocytes           %           20  
    Lymphocytes           x10*9/L     0.9-        1.1 - 4.0
    Monocytes             %           20 
    Monocytes             x10*9/L     0.9         0.2 - 1.0
    Eosinophils           %           20 
    Eosinophils           x10*9/L     0.92++      0.04 - 0.40
    Basophils             %           20 
    Basophils             x10*9/L     0.92+++     &lt;0.21
          </pre>
          <p>Acme Laboratory, Inc signed: Dr Pete Pathologist</p>
        </div>
      </text>
    </LabReport>

    4.10: Examples: MessageHeader

    Examples for the MessageHeader (§2.2) resource.

    4.10.0.8: General

    Example of messageheader

    Example of messageheader

    <MessageHeader xmlns="http://hl7.org/fhir">
      <id>1cbdfb97-5859-48a4-8301-d54eab818d68</id>
      <instant>2012-01-04T09:10:14Z</instant>
      <event>admin-update</event>
      <response>
        <id>5015fe84-8e76-4526-89d8-44b322e8d4fb</id>
        <code>ok</code>
      </response>
      <source>
        <name>Acme Central Patient Registry</name>
        <software>FooBar Patient Manager</software>
        <version>3.1.45.AABB</version>
        <contact>
          <system>phone</system>
          <value>+1 (555) 123 4567</value>
        </contact>
        <endpoint>llp:10.11.12.13:5432</endpoint>
      </source>
      <destination>
        <name>Acme Message Gateway</name>
        
        <!--   this is to indicate to the Acme Message Gateway that this particular message 
           is intended for Person 34 - usually it would make sense for the resource for 
           Person 34 to be included in the bundle of the message as well, in case 
           the Acme Message Gateway doesn't know who person 34 is. 
    
           Of course, it doesn't make sense to send a person update message to a particular 
           person, but it might very well make sense to do this with targetted clinical content   -->
        <target>
          <type>Person</type>
          <id>34</id>
        </target>
        <endpoint>llp:10.11.12.14:5432</endpoint>
      </destination>
      <author>
        <type>Person</type>
        <id>3455bc23</id>
      </author>
      
      <!--   Here's the payload, the resource that this admin-update concerns   -->
      <data>
        <type>Person</type>
        <id>342356</id>
      </data>
      
      <text>
        <status>generated</status>
        <div xmlns="http://www.w3.org/1999/xhtml">
          <p>Update Person resource for Peter James CHALMERS (&quot;Jim&quot;), MRN: 12345 (Acme Healthcare)</p>
        </div>
      </text>
    </MessageHeader>

    4.11: Examples: Organization

    Examples for the Organization (§3.5) resource.

    4.11.0.9: General

    Example of organization

    Example of organization

    <Organization xmlns="http://hl7.org/fhir">
      <id>34234</id>
    
      <!--   Clinical Team "Gastroenterology" at Acme Hospital   -->
      <identifier>
        <identifier>
          <system>http://www.acme.org.au/units</system>
          <id>Gastro</id>
        </identifier>
    <!--  
        
          Acme Healthcare
        
          -->
      </identifier>
    
      <name>
        <value>Gastroenterology</value>
      </name>
      
      <contact>
        <system>phone</system>
        <value>+1 555 234 3523</value>
        <use>mobile</use>
      </contact>
      <contact>
        <system>email</system>
        <value>gastro@acme.org</value>
        <use>work</use>
      </contact>
      
      <relatedOrganization>
        <code>  
          <coding>
            <code>TERR</code>
            <system>oid:2.16.840.1.113883.5.110</system>
          </coding>
        </code>
        <name>Acme Hospital</name>
      </relatedOrganization>
      
      <text>
        <status>generated</status>
        <div xmlns="http://www.w3.org/1999/xhtml">
          <p>Gastroenterology @ Acme Hospital. ph: +1 555 234 3523, email: <a href="mailto:gastro@acme.org">gastro@acme.org</a></p>
        </div>
      </text>
    </Organization>

    4.12: Examples: Patient

    Examples for the Patient (§3.6) resource.

    4.12.0.10: General

    General Person Example

    General Person Example

    <Patient xmlns="http://hl7.org/fhir">
      <id>1.2.36.146595217.4.19.1</id>
    
      <link>
        <type>Patient</type>
        <id>25bd34</id>
      </link>
    
      <active>true</active>
      
      <subject>
        <type>Person</type>
        <id>35623</id>
        <text>Donald DUCK, Male, 3-April 1951</text>
      </subject> 
      <provider>
        <type>Organization</type>
        <id>3</id>  
        <text>ACME Healthcare, Inc</text>
      </provider> 
      <identifier>
        <type>
          <code>MR</code>
          <system>http://hl7.org/fhir/sid/v2-0203</system>
        </type>
        <identifier>
          <system>oid:0.1.2.3.4.5.6.7</system>
          <id>123456</id>
        </identifier>
      </identifier>
    
      <text>
        <status>generated</status>
        <div xmlns="http://www.w3.org/1999/xhtml">
          <p>Patient Donald DUCK @ Acme Healthcare, Inc. MR = 123456</p>
        </div>
      </text>
    </Patient>

    4.13: Examples: Person

    Examples for the Person (§3.7) resource.

    4.13.0.11: General

    General Person Example

    General Person Example

    <Person xmlns="http://hl7.org/fhir">
      <id>34234</id>
      
      <!--   MRN assigned by ACME healthcare on 6-May 2001   -->
      <identifier>
        <type>
          <code>MR</code>
          <system>http://hl7.org/fhir/sid/v2-0203</system>
        </type>
        <identifier>
          <system>oid:1.2.36.146.595.217.0.1</system>
          <id>12345</id>      
        </identifier>
        <period>
          <start>2001-05-06</start>
        </period>
        <!--   commented pending decision on dataAbsentReason on assigner
        
          Acme Healthcare
        
          -->
      </identifier>
    
      <!--   Peter James Chalmers, but called "Jim"   -->
      <name>
        <use>official</use>
        <part>
          <type>given</type>
          <value>Peter</value>
        </part>
        <part>
          <type>given</type>
          <value>James</value>
        </part>
        <part>
          <type>family</type>
          <value>Chalmers</value>
        </part>
      </name>
      <name>
        <use>usual</use>
        <part>
          <type>given</type>
          <value>Jim</value>
        </part>
      </name>
      
      
      <address>
        <use>home</use>
        <part>
          <type>line</type>
          <value>534 Erewhon St</value>
        </part>
        <part>
          <type>city</type>
          <value>PleasantVille</value>
        </part>
        <part>
          <type>state</type>
          <value>Vic</value>
        </part>
        <part>
          <type>zip</type>
          <value>3999</value>
        </part>
      </address>
    
      <contact dataAbsentReason="unknown">
        <use>home</use>
      </contact>
      <contact>
        <system>phone</system>
        <value>(03) 5555 6473</value>
        <use>work</use>
      </contact>
    
      <dob>1974-12-25</dob> 
      
      <race>
        <coding id="a25">
          <code>EUR</code>
          <system>urn:hl7.org::v2/0200</system>
          <display>European</display>
        </coding>
        <primary>a25</primary>
      </race>
      <text>
        <status>generated</status>
        <div xmlns="http://www.w3.org/1999/xhtml">
          <table>
            <tbody>
              <tr>
                <td>Name</td>
                <td>Peter James <b>Chalmers</b> (&quot;Jim&quot;)</td>
              </tr>
              <tr>
                <td>Address</td>
                <td>534 Erewhon, Pleasantville, Vic, 3999</td>
              </tr>
              <tr>
                <td>Contacts</td>
                <td>Home: unknown. Work: (03) 5555 6473</td>
              </tr>
              <tr>
                <td>Id</td>
                <td>MRN: 12345 (Acme Healthcare)</td>
              </tr>
            </tbody>
          </table>
        </div>
      </text>
    </Person>

    4.14: Examples: Prescription

    Examples for the Prescription (§3.8) resource.

    4.14.0.12: General

    Example of prescription

    Example of prescription

    <Prescription xmlns="http://hl7.org/fhir">
      <id>1.2.36.146595217.4.19.1.3141</id>
    
      <identifier>
        <type>
          <code>MR</code>
          <system>http://hl7.org/fhir/sid/v2-0203</system>
        </type>
        <identifier>
          <system>oid:0.1.2.3.4.5.6.7</system>
          <id>123456</id>
        </identifier>
      </identifier>
    
      <status>active</status>
    
      <patient>
        <type>Patient</type>
        <id>23453</id>
      </patient>
    
      <prescriber>
        <type>Agent</type>
        <id>567</id>
      </prescriber>
    
      <prescribed>2011-03-04T11:45:33+01:00</prescribed>
    
      <dispense>
        <repeats>2</repeats>
        <quantity>
          <value>50</value>
          <units>ml</units>
        </quantity>
        <dispenser>
          <type>Organization</type>
          <id>567111</id>
        </dispenser>
      </dispense>
    
      <medicine>
        <identification>
          <text>Penicillin VK oral suspension, 125mg/5ml</text>
        </identification>
        <activeIngredient>
          <identification>
            <coding>
              <code>XXXXX</code>
              <system>urn:hl7.org:sid/atc</system>
              <display>Penicillin</display>
            </coding>
          </identification>      
          <quantityRatio>
            <numerator>
              <value>125</value>
              <units>mg</units>
              <code>mg</code>
              <system>http://unitsofmeasure.org</system>
            </numerator>
            <denominator>
              <value>5</value>
              <units>ml</units>
              <code>ml</code>
              <system>http://unitsofmeasure.org</system>
            </denominator>
          </quantityRatio>
        </activeIngredient>
        <inactiveIngredient>
          <identification>
            <coding>
              <code>YYYYY</code>
              <system>urn:hl7.org:sid/atc</system>
              <display>Water</display>
            </coding>  
          </identification>
          <quantityCode>sufficient</quantityCode>
        </inactiveIngredient>
      </medicine>
    
      <administrationRequest>
        <description>250 mg po tid x 10 days</description>
       
        <totalPeriodicDosis>
          <numerator>
            <value>750</value>
            <units>mg</units>
            <code>mg</code>
            <system>http://unitsofmeasure.org</system>
          </numerator>
          <denominator>
            <value>1</value>
            <units>day</units>
            <code>d</code>
            <system>http://unitsofmeasure.org</system>
          </denominator>
        </totalPeriodicDosis>
        
        <duration>
          <value>10</value>
          <units>days</units>
          <code>d</code>
          <system>http://unitsofmeasure.org</system>
        </duration>
        
        <dosageInstruction>
          <route>
            <coding>
              <code>363743006</code>
              <system>http://snomed.info</system>
              <display>oral administration of treatment</display>
            </coding>          
          </route>
          <doseQuantity>
            <value>250</value>
            <units>mg</units>
            <code>mg</code>
            <system>http://unitsofmeasure.org</system>
          </doseQuantity>
          <schedule>
            <repeat>
              <frequency>3</frequency>
              <duration>
                <value>1</value>
                <units>day</units>
                <code>d</code>
                <system>http://unitsofmeasure.org</system>
              </duration>
            </repeat>
          </schedule>
        </dosageInstruction>
      </administrationRequest>
    
      <reason>
        <coding>
          <code>G44.1</code>
          <system>http://hl7.org/fhir/sid/icd-10</system>
        </coding>
        <text>general headache</text>
      </reason>
      
      <text>
        <status>generated</status>
        <div xmlns="http://www.w3.org/1999/xhtml">
          <p>Penicillin VK oral suspension, 125mg/5ml, 250 mg po tid x 10 days</p>
        </div>
      </text>
    </Prescription>

    4.15: Examples: Profile

    Examples for the Profile (§1.6) resource.

    4.15.0.13: General

    General Profile Example

    General Profile Example

    <Profile xmlns="http://hl7.org/fhir">
      <id>15046b9c-2da0-4b80-82ef-c6af6fcfd2bf</id>
      <name>Lipid Profile</name>
      <author>
        <name>Grahame Grieve</name>
        <reference>grahame@healthintersections.com.au</reference>
      </author>
      <description>Describes how the lab report is used for a standard Lipid Profile - Cholesterol, Triglyceride, and Cholesterol fractions. Uses LOINC codes</description>
      <status>
        <code>testing</code>
        <date>2012-05-12</date>
        <comment>Sample, never intended for real use</comment>
      </status>
      <resource>
        <type>Resource</type>
        <name>Lipids</name>
        <element>
          <path>LabReport</path>
          <name>Lipids</name>
          <definition>
            <short>Lipid Lab Report</short>
            <formal>The findings and interpretation of a general lipd lab profile</formal>
            <comments>Not to be used for reporting on non-pathology test results e.g. diagnostic imaging, ECG or respiratory function tests. Not to be used to represent an entire cumulative report. This Pathology test result archetype represents only one of the result sets that is usually viewed as a vertical in a cumulative test report. A cumulative report is a view that is constructed from the results represented by multiple OBSERVATION archetypes. This archetype is suitable for representation of general pathology test results, but not intended to cover full synoptic reports. For these, additional resources are required to represent the data properly</comments>
            <min>1</min>
            <max>1</max>
            <type>
              <code>Resource</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.id</path>
          <definition>
            <short>Master Resource Id, always first in all resources</short>
            <formal>Master Resource Id, always first in all resources</formal>
            <min>1</min>
            <max>1</max>
            <type>
              <code>id</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.status</path>
          <definition>
            <short>registered|interim|final|amended|cancelled|withdrawn</short>
            <formal>The status of the pathology test result as a whole</formal>
            <min>1</min>
            <max>1</max>
            <type>
              <code>code</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
            <binding>LabReportStatus</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.issued</path>
          <definition>
            <short>date issed for current status</short>
            <formal>The date and/or time that the result was issued from the source for the recorded Test result status</formal>
            <comments>May be different from LabReport.updated, because that is the status of this record, not the report the record is about</comments>
            <min>1</min>
            <max>1</max>
            <type>
              <code>instant</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.patient</path>
          <definition>
            <short>The patient the report is about</short>
            <formal>The patient about who the report is about</formal>
            <min>1</min>
            <max>1</max>
            <type>
              <code>Resource(Patient)</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.admission</path>
          <definition>
            <short>Admission Context</short>
            <formal>The admission that this diagnostic investigation is associated with</formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>Resource(Admission)</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.laboratory</path>
          <definition>
            <short>Responsible Laboratory</short>
            <formal>The laboratory service that issued the report</formal>
            <comments>This is not necessarily the source of the atomic reports - it's the lab that takes responsibility for the clinical report</comments>
            <min>1</min>
            <max>1</max>
            <type>
              <code>Resource(Organization)</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.reportId</path>
          <definition>
            <short>Id for external references to this report</short>
            <formal>The local ID assigned to the report by the order filler, usually by the Laboratory Information System (LIS).</formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>Identifier</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.requestDetail</path>
          <definition>
            <short>What was requested</short>
            <formal>Details concerning a single pathology test requested.</formal>
            <comments>Note: Usually there is one test request for each result, however in some circumstances multiple test requests may be represented using a single Pathology test result resource</comments>
            <min>0</min>
            <max>*</max>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.requestDetail.requestOrderId</path>
          <definition>
            <short>Id assigned by requester</short>
            <formal>The local ID assigned to the order by the order requester.</formal>
            <comments>Equivalent to the Placer Order Identifier</comments>
            <min>0</min>
            <max>1</max>
            <type>
              <code>Identifier</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.requestDetail.receiverOrderId</path>
          <definition>
            <short>Receiver's Id for the request</short>
            <formal>The local ID assigned to the test order by the order filler, usually by the Laboratory Information System (LIS).</formal>
            <comments>Usually equivalent to the DICOM Accession Number and the Filler Order Identifier.</comments>
            <min>0</min>
            <max>1</max>
            <type>
              <code>Identifier</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.requestDetail.requestTest</path>
          <definition>
            <short>Test Requested</short>
            <formal>Identification of pathology test requested,</formal>
            <comments>Useful where the test requested differs from the test actually performed.</comments>
            <min>0</min>
            <max>*</max>
            <type>
              <code>CodeableConcept</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
            <binding>LabRequests</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.requestDetail.requester</path>
          <definition>
            <short>Responsible for request</short>
            <formal>Details of the clinician or organisation requesting the laboratory test.</formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>Resource(Agent|Organization)</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.requestDetail.clinicalInfo</path>
          <definition>
            <short>Clinical information provided</short>
            <formal>Details of the clinical information provided to the laboratory along with the original request</formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>Resource(Any)</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.reportName</path>
          <definition>
            <short>Loinc Code for Lipid Report with LDL</short>
            <formal>Loinc Code for Lipid Report with LDL</formal>
            <comments>Loinc code includes &quot;direct&quot; LDL - does this mean LDL derived by measuring VLDL by ultracentrifugation? This panel includes both measured and calculated LDL</comments>
            <min>1</min>
            <max>1</max>
            <type>
              <code>CodeableConcept</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
            <binding>LabReportNames</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.service</path>
          <definition>
            <short>Biochemistry, Haematology etc</short>
            <formal>The diagnostic service that performs the examination e.g. biochemistry, haematology.</formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>CodeableConcept</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
            <binding>LabServices</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.diagnosticTime</path>
          <definition>
            <short>Effective time of diagnostic report</short>
            <formal>The diagnostically relevant time for this report</formal>
            <comments>The diagnostically relevant time can be derived from the specimen collection times, but the specimen information is not always available, and the exact relationship is not always automatic</comments>
            <min>1</min>
            <max>1</max>
            <type>
              <code>dateTime</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.specimen</path>
          <definition>
            <short>Specimen (incl. time of collection)</short>
            <formal>Details about the specimen if all individual test results are derived from the same specimen</formal>
            <comments>If the specimen is sufficiently specified with a code in the Test result name, then this additional data may be redundant. If there are multiple specimens, these may be represented per 'Result group'</comments>
            <min>0</min>
            <max>*</max>
            <type>
              <code>Resource(Specimen)</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup</path>
          <definition>
            <short>All the results in one group</short>
            <formal>All the lipid panel results</formal>
            <comments>Many (most) lab reports don't really have a meaningful group. In these cases, just create a single group with no specimen or name</comments>
            <min>1</min>
            <max>1</max>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.name</path>
          <definition>
            <short>No name needed for the result group</short>
            <formal>No name needed for the result group</formal>
            <comments>For example, the antibody code for a goup of antibody related test, or the organism code for a group of isolate/sensitivities. Leave blank if there is no particular meaning associated with the group</comments>
            <min>0</min>
            <max>0</max>
            <type>
              <code>CodeableConcept</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
            <binding>LabResultGroupNames</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.specimen</path>
          <definition>
            <short>Specimen details</short>
            <formal>Details about the individual specimen to which these Result group test results refer, where testing of multiple specimens is required.</formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>Resource(Specimen)</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result</path>
          <name>Cholesterol Group</name>
          <definition>
            <short>Cholesterol Result</short>
            <formal>Group of elements for Cholesterol result</formal>
            <min>1</min>
            <max>1</max>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.name</path>
          <definition>
            <short>Cholesterol</short>
            <formal>Cholesterol</formal>
            <comments>results are fundamentally a name - value pair with additional clarifying information</comments>
            <min>1</min>
            <max>1</max>
            <type>
              <code>CodeableConcept</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
            <binding>LabResultNames</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.value[x]</path>
          <definition>
            <short>Cholesterol value</short>
            <formal>Cholesterol value. If a result is not available, use the comments field</formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>Quantity</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.flag</path>
          <definition>
            <short>+ | ++ | +++ | - | -- | --- </short>
            <formal>+ | ++ | +++ | - | -- | --- </formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>code</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
            <binding>LabResultFlag</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.status</path>
          <definition>
            <short>Registered|Interim|Final|Amended|Cancelled|Withdrawn</short>
            <formal>The status of the result value</formal>
            <min>1</min>
            <max>1</max>
            <type>
              <code>code</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
            <binding>LabReportStatus</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.comments</path>
          <definition>
            <short>Comments about result</short>
            <formal>May include statements about significant, unexpected or unreliable. values, or information about the source of the value where this may be relevant to the interpretation of the result.</formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>string</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.referenceRange</path>
          <definition>
            <short>Guide for interpretation</short>
            <formal>Guide for interpretation</formal>
            <comments>Most results only have one reference range. Some non-numerical results don't have a reference range</comments>
            <min>1</min>
            <max>1</max>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.referenceRange.meaning</path>
          <definition>
            <short>Range is a recommended range</short>
            <formal>Range is a recommended range</formal>
            <comments>yeah, so I suppose it should be coded, right? But coded how? No publically available terminologies include an appropriate code…</comments>
            <min>0</min>
            <max>0</max>
            <type>
              <code>CodeableConcept</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
            <binding>LabReferenceRanges</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.referenceRange.range[x]</path>
          <definition>
            <short>Reference</short>
            <formal>&lt;4.5 mmol/L</formal>
            <comments>Per Australian NHF Recommendations</comments>
            <min>1</min>
            <max>1</max>
            <type>
              <code>Quantity</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result</path>
          <name>Triglyceride Group</name>
          <definition>
            <short>Triglyceride Result</short>
            <formal>Group of elements for Triglyceride result</formal>
            <min>1</min>
            <max>1</max>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.name</path>
          <definition>
            <short>Triglyceride</short>
            <formal>Triglyceride</formal>
            <comments>results are fundamentally a name - value pair with additional clarifying information</comments>
            <min>1</min>
            <max>1</max>
            <type>
              <code>CodeableConcept</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
            <binding>LabResultNames</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.value[x]</path>
          <definition>
            <short>Triglyceride value</short>
            <formal>Triglyceride value. If a result is not available, use the comments field</formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>Quantity</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.flag</path>
          <definition>
            <short>+ | ++ | +++ | - | -- | --- </short>
            <formal>+ | ++ | +++ | - | -- | --- </formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>code</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
            <binding>LabResultFlag</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.comments</path>
          <definition>
            <short>Comments about result</short>
            <formal>Comments about result</formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>string</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.referenceRange</path>
          <definition>
            <short>Guide for interpretation</short>
            <formal>Guide for interpretation</formal>
            <comments>Most results only have one reference range. Some non-numerical results don't have a reference range</comments>
            <min>1</min>
            <max>1</max>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.referenceRange.meaning</path>
          <definition>
            <short>Range is a recommended range</short>
            <formal>Range is a recommended range</formal>
            <comments>see note above</comments>
            <min>0</min>
            <max>0</max>
            <type>
              <code>CodeableConcept</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
            <binding>LabReferenceRanges</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.referenceRange.range[x]</path>
          <definition>
            <short>Reference</short>
            <formal>&lt;2.0 mmol/L</formal>
            <comments>Per Australian NHF Recommendations</comments>
            <min>1</min>
            <max>1</max>
            <type>
              <code>Quantity</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result</path>
          <name>HDL Cholesteral Group</name>
          <definition>
            <short>HDL Cholesterol Result</short>
            <formal>Group of elements for HDL Cholesterol result</formal>
            <min>1</min>
            <max>1</max>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.name</path>
          <definition>
            <short>HDL Cholesterol</short>
            <formal>HDL Cholesterol</formal>
            <comments>results are fundamentally a name - value pair with additional clarifying information</comments>
            <min>1</min>
            <max>1</max>
            <type>
              <code>CodeableConcept</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
            <binding>LabResultNames</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.value[x]</path>
          <definition>
            <short>HDL Cholesterol value</short>
            <formal>HDL Cholesterol value. If a result is not available, use the comments field</formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>Quantity</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.flag</path>
          <definition>
            <short>+ | ++ | +++ | - | -- | --- </short>
            <formal>+ | ++ | +++ | - | -- | --- </formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>code</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
            <binding>LabResultFlag</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.comments</path>
          <definition>
            <short>Comments about result</short>
            <formal>Comments about result</formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>string</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.referenceRange</path>
          <definition>
            <short>Guide for interpretation</short>
            <formal>Guide for interpretation</formal>
            <comments>Most results only have one reference range. Some non-numerical results don't have a reference range</comments>
            <min>1</min>
            <max>1</max>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.referenceRange.meaning</path>
          <definition>
            <short>Range is a recommended range</short>
            <formal>Range is a recommended range</formal>
            <comments>See note above</comments>
            <min>0</min>
            <max>0</max>
            <type>
              <code>CodeableConcept</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
            <binding>LabReferenceRanges</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.referenceRange.range[x]</path>
          <definition>
            <short>Reference</short>
            <formal>&gt;1.5 mmol/L</formal>
            <comments>Per Australian NHF Recommendations</comments>
            <min>1</min>
            <max>1</max>
            <type>
              <code>Quantity</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result</path>
          <name>LDL Cholesteral Group</name>
          <definition>
            <short>LDL Cholesterol result, if reported</short>
            <formal>LDL Cholesterol result, if reported</formal>
            <min>0</min>
            <max>1</max>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.name</path>
          <definition>
            <short>LDL Cholesterol. LOINC code defines measured or calc</short>
            <formal>Group of elements for LDL Cholesterol. Loinc code defines whether LDL is measured or calculated</formal>
            <comments>results are fundamentally a name - value pair with additional clarifying information</comments>
            <min>1</min>
            <max>1</max>
            <type>
              <code>CodeableConcept</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
            <binding>Loinc 35198-1 | Loinc 13457-7</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.value[x]</path>
          <definition>
            <short>LDL Cholesterol value</short>
            <formal>LDL Cholesterol value. If a result is not available, use the comments field</formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>Quantity</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.flag</path>
          <definition>
            <short>+ | ++ | +++ | - | -- | --- </short>
            <formal>+ | ++ | +++ | - | -- | --- </formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>code</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
            <binding>LabResultFlag</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.comments</path>
          <definition>
            <short>Comments about result</short>
            <formal>Comments about result</formal>
            <min>0</min>
            <max>1</max>
            <type>
              <code>string</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.referenceRange</path>
          <definition>
            <short>Guide for interpretation</short>
            <formal>Guide for interpretation</formal>
            <comments>Most results only have one reference range. Some non-numerical results don't have a reference range</comments>
            <min>1</min>
            <max>1</max>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.referenceRange.meaning</path>
          <definition>
            <short>Range is a recommended range</short>
            <formal>Range is a recommended range</formal>
            <comments>See Note above</comments>
            <min>0</min>
            <max>0</max>
            <type>
              <code>CodeableConcept</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
            <binding>LabReferenceRanges</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.resultGroup.result.referenceRange.range[x]</path>
          <definition>
            <short>Reference</short>
            <formal>&lt;3.0 mmol/L</formal>
            <comments>Per Australian NHF Recommendations</comments>
            <min>1</min>
            <max>1</max>
            <type>
              <code>Quantity</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.conclusion</path>
          <definition>
            <short>Clinical Interpretation of Lipid Panel</short>
            <formal>May include diagnosis or suggestions for follow up testing</formal>
            <comments>common reports don't have a conclusion, but some do</comments>
            <min>0</min>
            <max>1</max>
            <type>
              <code>Narrative</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>true</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.codedDiagnosis</path>
          <definition>
            <short>Codes for the conclusion</short>
            <formal>Codes for the conclusion</formal>
            <min>0</min>
            <max>0</max>
            <type>
              <code>CodeableConcept</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
            <binding>LabDiagnosisCodes</binding>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.representation</path>
          <definition>
            <short>Entire Report as issued</short>
            <formal>Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they must be semantically equivalent.</formal>
            <comments>Possible formats: text/html, text/plain, text/rtf, application/msword, application/pdf, application/rtf, application/vnd.oasis.opendocument.text, application/vnd.openxmlformats-officedocument.wordprocessingml.document</comments>
            <min>0</min>
            <max>*</max>
            <type>
              <code>Attachment</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.extension</path>
          <definition>
            <short>See Extensions</short>
            <formal>See Extensions</formal>
            <min>0</min>
            <max>*</max>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
        <element>
          <path>LabReport.text</path>
          <definition>
            <short>Text summary of report, for human interpretation</short>
            <formal>Text summary of report, for human interpretation</formal>
            <min>1</min>
            <max>1</max>
            <type>
              <code>Narrative</code>
            </type>
            <dataAbsentReason>false</dataAbsentReason>
            <mustSupport>false</mustSupport>
            <mustUnderstand>false</mustUnderstand>
          </definition>
          <closed>false</closed>
        </element>
      </resource>
      <text>
        <status>generated</status>
        <div xmlns="http://www.w3.org/1999/xhtml">
          <pre>
    &lt;<a class="dict" href="#LabReport" title="The findings and interpretation of a general lipd lab profile">
              <b>LabReport</b>
            </a> xmlns=&quot;http://hl7.org/fhir&quot;&gt;
     <i class="inherited">&lt;<a class="dict" href="#LabReport.id" title="Master Resource Id, always first in all resources">
                <b>id</b>
              </a>&gt;<span style="color: Gray">&lt;!--</span>
              <span style="color: brown">
                <b>1..1</b>
              </span>
              <span style="color: darkgreen">
                <a href="datatypes.htm#id">id</a>
              </span>
              <span style="color: navy">Master Resource Id, always first in all resources</span>
              <span style="color: Gray"> --&gt;</span>&lt;/id&gt;</i>
            <i class="inherited">&lt;<a class="dict" href="#LabReport.status" title="The status of the pathology test result as a whole">
                <b>status</b>
              </a>&gt;<span style="color: Gray">&lt;!--</span>
              <span style="color: brown">
                <b>1..1</b>
              </span>
              <span style="color: darkgreen">
                <a href="datatypes.htm#code">code</a>
              </span>
              <span style="color: navy">registered|interim|final|amended|cancelled|withdrawn</span>
              <span style="color: Gray"> --&gt;</span>&lt;/status&gt;</i>
            <i class="inherited">&lt;<a class="dict" href="#LabReport.issued" title="The date and/or time that the result was issued from the source for the recorded ‘Test result status">
                <b>issued</b>
              </a>&gt;<span style="color: Gray">&lt;!--</span>
              <span style="color: brown">
                <b>1..1</b>
              </span>
              <span style="color: darkgreen">
                <a href="datatypes.htm#instant">instant</a>
              </span>
              <span style="color: navy">date issed for current status</span>
              <span style="color: Gray"> --&gt;</span>&lt;/issued&gt;</i>
            <i class="inherited">&lt;<a class="dict" href="#LabReport.patient" title="The patient about who the report is about">
                <b>patient</b>
              </a>&gt;<span style="color: Gray">&lt;!--</span>
              <span style="color: brown">
                <b>1..1</b>
              </span>
              <span style="color: darkgreen">
                <a href="xml.htm#Resource">Resource</a>(<a href="Patient.htm#Patient">Patient</a>)</span>
              <span style="color: navy">The patient the report is about</span>
              <span style="color: Gray"> --&gt;</span>&lt;/patient&gt;</i>
            <i class="inherited">&lt;<a class="dict" href="#LabReport.admission" title="The admission that this diagnostic investigation is associated with">
                <b>admission</b>
              </a>&gt;<span style="color: Gray">&lt;!--</span>
              <span style="color: brown">
                <b>0..1</b>
              </span>
              <span style="color: darkgreen">
                <a href="xml.htm#Resource">Resource</a>(<a href="Admission.htm#Admission">Admission</a>)</span>
              <span style="color: navy">Admission Context</span>
              <span style="color: Gray"> --&gt;</span>&lt;/admission&gt;</i>
            <i class="inherited">&lt;<a class="dict" href="#LabReport.laboratory" title="The laboratory service that issued the report">
                <b>laboratory</b>
              </a>&gt;<span style="color: Gray">&lt;!--</span>
              <span style="color: brown">
                <b>1..1</b>
              </span>
              <span style="color: darkgreen">
                <a href="xml.htm#Resource">Resource</a>(<a href="Organization.htm#Organization">Organization</a>)</span>
              <span style="color: navy">Responsible Laboratory</span>
              <span style="color: Gray"> --&gt;</span>&lt;/laboratory&gt;</i>
            <i class="inherited">&lt;<a class="dict" href="#LabReport.reportId" title="The local ID assigned to the report by the order filler, usually by the Laboratory Information System (LIS).">
                <b>reportId</b>
              </a>&gt;<span style="color: Gray">&lt;!--</span>
              <span style="color: brown">
                <b>0..1</b>
              </span>
              <span style="color: darkgreen">
                <a href="datatypes.htm#Identifier">Identifier</a>
              </span>
              <span style="color: navy">Id for external references to this report</span>
              <span style="color: Gray"> --&gt;</span>&lt;/reportId&gt;</i>
            <i class="inherited">&lt;<a class="dict" href="#LabReport.requestDetail" title="Details concerning a single pathology test requested.">
                <b>requestDetail</b>
              </a>&gt;  <span style="color: Gray">&lt;!-- <span style="color: brown">
                  <b>0..*</b>
                </span> What was requested --&gt;</span>
              <i class="inherited">&lt;<a class="dict" href="#LabReport.requestDetail.requestOrderId" title="The local ID assigned to the order by the order requester.">
                  <b>requestOrderId</b>
                </a>&gt;<span style="color: Gray">&lt;!--</span>
                <span style="color: brown">
                  <b>0..1</b>
                </span>
                <span style="color: darkgreen">
                  <a href="datatypes.htm#Identifier">Identifier</a>
                </span>
                <span style="color: navy">Id assigned by requester</span>
                <span style="color: Gray"> --&gt;</span>&lt;/requestOrderId&gt;</i>
              <i class="inherited">&lt;<a class="dict" href="#LabReport.requestDetail.receiverOrderId" title="The local ID assigned to the test order by the order filler, usually by the Laboratory Information System (LIS).">
                  <b>receiverOrderId</b>
                </a>&gt;<span style="color: Gray">&lt;!--</span>
                <span style="color: brown">
                  <b>0..1</b>
                </span>
                <span style="color: darkgreen">
                  <a href="datatypes.htm#Identifier">Identifier</a>
                </span>
                <span style="color: navy">Receiver's Id for the request</span>
                <span style="color: Gray"> --&gt;</span>&lt;/receiverOrderId&gt;</i>
              <i class="inherited">&lt;<a class="dict" href="#LabReport.requestDetail.requestTest" title="Identification of pathology test requested,">
                  <b>requestTest</b>
                </a>&gt;<span style="color: Gray">&lt;!--</span>
                <span style="color: brown">
                  <b>0..*</b>
                </span>
                <span style="color: darkgreen">
                  <a href="datatypes.htm#CodeableConcept">CodeableConcept</a>
                </span>
                <span style="color: navy">Test Requested</span>
                <span style="color: Gray"> --&gt;</span>&lt;/requestTest&gt;</i>
              <i class="inherited">&lt;<a class="dict" href="#LabReport.requestDetail.requester" title="Details of the clinician or organisation requesting the laboratory test.">
                  <b>requester</b>
                </a>&gt;<span style="color: Gray">&lt;!--</span>
                <span style="color: brown">
                  <b>0..1</b>
                </span>
                <span style="color: darkgreen">
                  <a href="xml.htm#Resource">Resource</a>(<a href="Agent.htm#Agent">Agent</a>|<a href="Organization.htm#Organization">Organization</a>)</span>
                <span style="color: navy">Responsible for request</span>
                <span style="color: Gray"> --&gt;</span>&lt;/requester&gt;</i>
              <i class="inherited">&lt;<a class="dict" href="#LabReport.requestDetail.clinicalInfo" title="Details of the clinical information provided to the laboratory along with the original request">
                  <b>clinicalInfo</b>
                </a>&gt;<span style="color: Gray">&lt;!--</span>
                <span style="color: brown">
                  <b>0..1</b>
                </span>
                <span style="color: darkgreen">
                  <a href="xml.htm#Resource">Resource</a>(<a href="Any.htm#Any">Any</a>)</span>
                <span style="color: navy">Clinical information provided</span>
                <span style="color: Gray"> --&gt;</span>&lt;/clinicalInfo&gt;</i>
     &lt;/requestDetail&gt;</i>
     &lt;<a class="dict" href="#LabReport.reportName" title="Loinc Code for Lipid Report with LDL (this element must be supported or understood)">
              <span style="text-decoration: underline">reportName</span>
            </a>&gt;
       &lt;coding&gt;
         &lt;code&gt;57698-3&lt;/code&gt;
         &lt;system&gt;http://loinc.org&lt;/system&gt;
         &lt;display&gt;Lipid panel with direct LDL&lt;/display&gt;
       &lt;/coding&gt;
     &lt;reportName/&gt;
     <i class="inherited">&lt;<a class="dict" href="#LabReport.service" title="The diagnostic service that performs the examination e.g. biochemistry, haematology.">
                <b>service</b>
              </a>&gt;<span style="color: Gray">&lt;!--</span>
              <span style="color: brown">
                <b>0..1</b>
              </span>
              <span style="color: darkgreen">
                <a href="datatypes.htm#CodeableConcept">CodeableConcept</a>
              </span>
              <span style="color: navy">Biochemistry, Haematology etc</span>
              <span style="color: Gray"> --&gt;</span>&lt;/service&gt;</i>
            <i class="inherited">&lt;<a class="dict" href="#LabReport.diagnosticTime" title="The diagnostically relevant time for this report">
                <b>diagnosticTime</b>
              </a>&gt;<span style="color: Gray">&lt;!--</span>
              <span style="color: brown">
                <b>1..1</b>
              </span>
              <span style="color: darkgreen">
                <a href="datatypes.htm#dateTime">dateTime</a>
              </span>
              <span style="color: navy">Effective time of diagnostic report</span>
              <span style="color: Gray"> --&gt;</span>&lt;/diagnosticTime&gt;</i>
            <i class="inherited">&lt;<a class="dict" href="#LabReport.specimen" title="Details about the specimen if all individual test results are derived from the same specimen">
                <b>specimen</b>
              </a>&gt;<span style="color: Gray">&lt;!--</span>
              <span style="color: brown">
                <b>0..*</b>
              </span>
              <span style="color: darkgreen">
                <a href="xml.htm#Resource">Resource</a>(<a href="Specimen.htm#Specimen">Specimen</a>)</span>
              <span style="color: navy">Specimen (incl. time of collection)</span>
              <span style="color: Gray"> --&gt;</span>&lt;/specimen&gt;</i>
     &lt;<a class="dict" href="#LabReport.resultGroup" title="All the lipid panel results (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>resultGroup</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;  <span style="color: Gray">&lt;!-- All the results in one group --&gt;</span>
      &lt;<a class="dict" href="#LabReport.resultGroup.name" title="No name needed for the result group (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>name</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..0</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#CodeableConcept">CodeableConcept</a>
            </span>
            <span style="color: navy">No name needed for the result group</span>
            <span style="color: Gray"> --&gt;</span>&lt;/name&gt;
      <i class="inherited">&lt;<a class="dict" href="#LabReport.resultGroup.specimen" title="Details about the individual specimen to which these ‘Result group’ test results refer, where testing of multiple specimens is required.">
                <b>specimen</b>
              </a>&gt;<span style="color: Gray">&lt;!--</span>
              <span style="color: brown">
                <b>0..1</b>
              </span>
              <span style="color: darkgreen">
                <a href="xml.htm#Resource">Resource</a>(<a href="Specimen.htm#Specimen">Specimen</a>)</span>
              <span style="color: navy">Specimen details</span>
              <span style="color: Gray"> --&gt;</span>&lt;/specimen&gt;</i>
      &lt;<a class="dict" href="#LabReport.resultGroup.result" title="Group of elements for Cholesterol result (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>result</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt; <span style="color: Gray">&lt;!--</span>
            <span style="color: blue">&quot;Cholesterol Group&quot;</span>
            <span style="color: Gray"> --&gt;</span>
            <span style="color: Gray">&lt;!-- Cholesterol Result --&gt;</span>
       &lt;<a class="dict" href="#LabReport.resultGroup.result.name" title="Cholesterol (this element must be supported or understood)">
              <span style="text-decoration: underline">name</span>
            </a>&gt;
         &lt;coding&gt;
           &lt;code&gt;35200-5&lt;/code&gt;
           &lt;system&gt;http://loinc.org&lt;/system&gt;
           &lt;display&gt;Cholesterol&lt;/display&gt;
         &lt;/coding&gt;
       &lt;name/&gt;
       &lt;<a class="dict" href="#LabReport.resultGroup.result.valueQuantity" title="Cholesterol value. If a result is not available, use the comments field (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>valueQuantity</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..1</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#Quantity">Quantity</a>
            </span>
            <span style="color: navy">Cholesterol value</span>
            <span style="color: Gray"> --&gt;</span>&lt;/valueQuantity&gt;
       &lt;<a class="dict" href="#LabReport.resultGroup.result.flag" title="+ | ++ | +++ | - | -- | ---  (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>flag</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..1</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#code">code</a>
            </span>
            <span style="color: navy">+ | ++ | +++ | - | -- | --- </span>
            <span style="color: Gray"> --&gt;</span>&lt;/flag&gt;
       <i class="inherited">&lt;<a class="dict" href="#LabReport.resultGroup.result.status" title="The status of the result value">
                <b>status</b>
              </a>&gt;<span style="color: Gray">&lt;!--</span>
              <span style="color: brown">
                <b>1..1</b>
              </span>
              <span style="color: darkgreen">
                <a href="datatypes.htm#code">code</a>
              </span>
              <span style="color: navy">Registered|Interim|Final|Amended|Cancelled|Withdrawn</span>
              <span style="color: Gray"> --&gt;</span>&lt;/status&gt;</i>
       &lt;<a class="dict" href="#LabReport.resultGroup.result.comments" title="May include statements about significant, unexpected or unreliable. values, or information about the source of the value where this may be relevant to the interpretation of the result. (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>comments</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..1</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#string">string</a>
            </span>
            <span style="color: navy">Comments about result</span>
            <span style="color: Gray"> --&gt;</span>&lt;/comments&gt;
       &lt;<a class="dict" href="#LabReport.resultGroup.result.referenceRange" title="Guide for interpretation (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>referenceRange</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;  <span style="color: Gray">&lt;!-- Guide for interpretation --&gt;</span>
        &lt;<a class="dict" href="#LabReport.resultGroup.result.referenceRange.meaning" title="Range is a recommended range">
              <b>meaning</b>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..0</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#CodeableConcept">CodeableConcept</a>
            </span>
            <span style="color: navy">Range is a recommended range</span>
            <span style="color: Gray"> --&gt;</span>&lt;/meaning&gt;
        &lt;<a class="dict" href="#LabReport.resultGroup.result.referenceRange.rangeQuantity" title="<4.5 mmol/L">rangeQuantity</a>&gt;
          &lt;value&gt;4.5&lt;/value&gt;
          &lt;status&gt;&amp;lt;&lt;/status&gt;
          &lt;units&gt;mmol/L&lt;/units&gt;
          &lt;code&gt;mmol/L&lt;/code&gt;
          &lt;system&gt;http://unitsofmeasure.org&lt;/system&gt;
        &lt;rangeQuantity/&gt;
       &lt;/referenceRange&gt;
      &lt;/result&gt;
      &lt;<a class="dict" href="#LabReport.resultGroup.result" title="Group of elements for Triglyceride result (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>result</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt; <span style="color: Gray">&lt;!--</span>
            <span style="color: blue">&quot;Triglyceride Group&quot;</span>
            <span style="color: Gray"> --&gt;</span>
            <span style="color: Gray">&lt;!-- Triglyceride Result --&gt;</span>
       &lt;<a class="dict" href="#LabReport.resultGroup.result.name" title="Triglyceride (this element must be supported or understood)">
              <span style="text-decoration: underline">name</span>
            </a>&gt;
         &lt;coding&gt;
           &lt;code&gt;35217-9&lt;/code&gt;
           &lt;system&gt;http://loinc.org&lt;/system&gt;
           &lt;display&gt;Triglyceride&lt;/display&gt;
         &lt;/coding&gt;
       &lt;name/&gt;
       &lt;<a class="dict" href="#LabReport.resultGroup.result.valueQuantity" title="Triglyceride value. If a result is not available, use the comments field (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>valueQuantity</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..1</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#Quantity">Quantity</a>
            </span>
            <span style="color: navy">Triglyceride value</span>
            <span style="color: Gray"> --&gt;</span>&lt;/valueQuantity&gt;
       &lt;<a class="dict" href="#LabReport.resultGroup.result.flag" title="+ | ++ | +++ | - | -- | ---  (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>flag</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..1</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#code">code</a>
            </span>
            <span style="color: navy">+ | ++ | +++ | - | -- | --- </span>
            <span style="color: Gray"> --&gt;</span>&lt;/flag&gt;
       &lt;<a class="dict" href="#LabReport.resultGroup.result.comments" title="Comments about result (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>comments</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..1</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#string">string</a>
            </span>
            <span style="color: navy">Comments about result</span>
            <span style="color: Gray"> --&gt;</span>&lt;/comments&gt;
       &lt;<a class="dict" href="#LabReport.resultGroup.result.referenceRange" title="Guide for interpretation (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>referenceRange</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;  <span style="color: Gray">&lt;!-- Guide for interpretation --&gt;</span>
        &lt;<a class="dict" href="#LabReport.resultGroup.result.referenceRange.meaning" title="Range is a recommended range">
              <b>meaning</b>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..0</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#CodeableConcept">CodeableConcept</a>
            </span>
            <span style="color: navy">Range is a recommended range</span>
            <span style="color: Gray"> --&gt;</span>&lt;/meaning&gt;
        &lt;<a class="dict" href="#LabReport.resultGroup.result.referenceRange.rangeQuantity" title="<2.0 mmol/L">rangeQuantity</a>&gt;
          &lt;value&gt;2.0&lt;/value&gt;
          &lt;status&gt;&amp;lt;&lt;/status&gt;
          &lt;units&gt;mmol/L&lt;/units&gt;
          &lt;code&gt;mmol/L&lt;/code&gt;
          &lt;system&gt;http://unitsofmeasure.org&lt;/system&gt;
        &lt;rangeQuantity/&gt;
       &lt;/referenceRange&gt;
      &lt;/result&gt;
      &lt;<a class="dict" href="#LabReport.resultGroup.result" title="Group of elements for HDL Cholesterol result (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>result</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt; <span style="color: Gray">&lt;!--</span>
            <span style="color: blue">&quot;HDL Cholesteral Group&quot;</span>
            <span style="color: Gray"> --&gt;</span>
            <span style="color: Gray">&lt;!-- HDL Cholesterol Result --&gt;</span>
       &lt;<a class="dict" href="#LabReport.resultGroup.result.name" title="HDL Cholesterol (this element must be supported or understood)">
              <span style="text-decoration: underline">name</span>
            </a>&gt;
         &lt;coding&gt;
           &lt;code&gt;2085-9&lt;/code&gt;
           &lt;system&gt;http://loinc.org&lt;/system&gt;
           &lt;display&gt;Cholesterol.in HDL&lt;/display&gt;
         &lt;/coding&gt;
       &lt;name/&gt;
       &lt;<a class="dict" href="#LabReport.resultGroup.result.valueQuantity" title="HDL Cholesterol value. If a result is not available, use the comments field (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>valueQuantity</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..1</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#Quantity">Quantity</a>
            </span>
            <span style="color: navy">HDL Cholesterol value</span>
            <span style="color: Gray"> --&gt;</span>&lt;/valueQuantity&gt;
       &lt;<a class="dict" href="#LabReport.resultGroup.result.flag" title="+ | ++ | +++ | - | -- | ---  (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>flag</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..1</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#code">code</a>
            </span>
            <span style="color: navy">+ | ++ | +++ | - | -- | --- </span>
            <span style="color: Gray"> --&gt;</span>&lt;/flag&gt;
       &lt;<a class="dict" href="#LabReport.resultGroup.result.comments" title="Comments about result (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>comments</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..1</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#string">string</a>
            </span>
            <span style="color: navy">Comments about result</span>
            <span style="color: Gray"> --&gt;</span>&lt;/comments&gt;
       &lt;<a class="dict" href="#LabReport.resultGroup.result.referenceRange" title="Guide for interpretation (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>referenceRange</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;  <span style="color: Gray">&lt;!-- Guide for interpretation --&gt;</span>
        &lt;<a class="dict" href="#LabReport.resultGroup.result.referenceRange.meaning" title="Range is a recommended range">
              <b>meaning</b>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..0</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#CodeableConcept">CodeableConcept</a>
            </span>
            <span style="color: navy">Range is a recommended range</span>
            <span style="color: Gray"> --&gt;</span>&lt;/meaning&gt;
        &lt;<a href="#LabReport.resultGroup.result.referenceRange.rangeQuantity" title="">1.5 mmol/L&quot; class=&quot;dict&quot;&gt;rangeQuantity</a>&gt;
          &lt;value&gt;1.5&lt;/value&gt;
          &lt;status&gt;&gt;&lt;/status&gt;
          &lt;units&gt;mmol/L&lt;/units&gt;
          &lt;code&gt;mmol/L&lt;/code&gt;
          &lt;system&gt;http://unitsofmeasure.org&lt;/system&gt;
        &lt;rangeQuantity/&gt;
       &lt;/referenceRange&gt;
      &lt;/result&gt;
      &lt;<a class="dict" href="#LabReport.resultGroup.result" title="LDL Cholesterol result, if reported (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>result</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt; <span style="color: Gray">&lt;!--</span>
            <span style="color: blue">&quot;LDL Cholesteral Group&quot;</span>
            <span style="color: Gray"> --&gt;</span>
            <span style="color: Gray">&lt;!-- LDL Cholesterol result, if reported --&gt;</span>
       &lt;<a class="dict" href="#LabReport.resultGroup.result.name" title="Group of elements for LDL Cholesterol. Loinc code defines whether LDL is measured or calculated (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>name</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>1..1</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#CodeableConcept">CodeableConcept</a>
            </span>
            <span style="color: navy">LDL Cholesterol. LOINC code defines measured or calc</span>
            <span style="color: Gray"> --&gt;</span>&lt;/name&gt;
       &lt;<a class="dict" href="#LabReport.resultGroup.result.valueQuantity" title="LDL Cholesterol value. If a result is not available, use the comments field (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>valueQuantity</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..1</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#Quantity">Quantity</a>
            </span>
            <span style="color: navy">LDL Cholesterol value</span>
            <span style="color: Gray"> --&gt;</span>&lt;/valueQuantity&gt;
       &lt;<a class="dict" href="#LabReport.resultGroup.result.flag" title="+ | ++ | +++ | - | -- | ---  (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>flag</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..1</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#code">code</a>
            </span>
            <span style="color: navy">+ | ++ | +++ | - | -- | --- </span>
            <span style="color: Gray"> --&gt;</span>&lt;/flag&gt;
       &lt;<a class="dict" href="#LabReport.resultGroup.result.comments" title="Comments about result (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>comments</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..1</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#string">string</a>
            </span>
            <span style="color: navy">Comments about result</span>
            <span style="color: Gray"> --&gt;</span>&lt;/comments&gt;
       &lt;<a class="dict" href="#LabReport.resultGroup.result.referenceRange" title="Guide for interpretation (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>referenceRange</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;  <span style="color: Gray">&lt;!-- Guide for interpretation --&gt;</span>
        &lt;<a class="dict" href="#LabReport.resultGroup.result.referenceRange.meaning" title="Range is a recommended range">
              <b>meaning</b>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..0</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#CodeableConcept">CodeableConcept</a>
            </span>
            <span style="color: navy">Range is a recommended range</span>
            <span style="color: Gray"> --&gt;</span>&lt;/meaning&gt;
        &lt;<a class="dict" href="#LabReport.resultGroup.result.referenceRange.rangeQuantity" title="<3.0 mmol/L">rangeQuantity</a>&gt;
          &lt;value&gt;3.0&lt;/value&gt;
          &lt;status&gt;&amp;lt;&lt;/status&gt;
          &lt;units&gt;mmol/L&lt;/units&gt;
          &lt;code&gt;mmol/L&lt;/code&gt;
          &lt;system&gt;http://unitsofmeasure.org&lt;/system&gt;
        &lt;rangeQuantity/&gt;
       &lt;/referenceRange&gt;
      &lt;/result&gt;
     &lt;/resultGroup&gt;
     &lt;<a class="dict" href="#LabReport.conclusion" title="May include diagnosis or suggestions for follow up testing (this element must be supported or understood)">
              <span style="text-decoration: underline">
                <b>conclusion</b>
              </span>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..1</b>
            </span>
            <span style="color: darkgreen">
              <a href="Narrative.htm#Narrative">Narrative</a>
            </span>
            <span style="color: navy">Clinical Interpretation of Lipid Panel</span>
            <span style="color: Gray"> --&gt;</span>&lt;/conclusion&gt;
     &lt;<a class="dict" href="#LabReport.codedDiagnosis" title="Codes for the conclusion">
              <b>codedDiagnosis</b>
            </a>
            <span style="color: red" title="dataAbsentReason attribute is allowed">d?</span>&gt;<span style="color: Gray">&lt;!--</span>
            <span style="color: brown">
              <b>0..0</b>
            </span>
            <span style="color: darkgreen">
              <a href="datatypes.htm#CodeableConcept">CodeableConcept</a>
            </span>
            <span style="color: navy">Codes for the conclusion</span>
            <span style="color: Gray"> --&gt;</span>&lt;/codedDiagnosis&gt;
     <i class="inherited">&lt;<a class="dict" href="#LabReport.representation" title="Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they must be semantically equivalent.">
                <b>representation</b>
              </a>&gt;<span style="color: Gray">&lt;!--</span>
              <span style="color: brown">
                <b>0..*</b>
              </span>
              <span style="color: darkgreen">
                <a href="datatypes.htm#Attachment">Attachment</a>
              </span>
              <span style="color: navy">Entire Report as issued</span>
              <span style="color: Gray"> --&gt;</span>&lt;/representation&gt;</i>
            <i class="inherited">&lt;<a class="dict" href="#LabReport.extension" title="See Extensions">
                <b>extension</b>
              </a>&gt;<span style="color: Gray">&lt;!--</span>
              <a href="extensibility.htm">
                <span style="color: navy">See Extensions</span>
              </a>
              <span style="color: Gray"> --&gt;</span>&lt;/extension&gt;</i>
            <i class="inherited">&lt;<a class="dict" href="#LabReport.text" title="Text summary of report, for human interpretation">
                <b>text</b>
              </a>&gt;<span style="color: Gray">&lt;!--</span>
              <span style="color: brown">
                <b>1..1</b>
              </span>
              <span style="color: darkgreen">
                <a href="Narrative.htm#Narrative">Narrative</a>
              </span>
              <span style="color: navy">Text summary of report, for human interpretation</span>
              <span style="color: Gray"> --&gt;</span>&lt;/text&gt;</i>
    &lt;/LabReport&gt;
    </pre>
        </div>
      </text>
    </Profile>

    4.16: Examples: ValueSet

    Examples for the ValueSet (§2.6) resource.

    4.16.0.14: General

    Example of valueset

    Example of valueset

    <ValueSet xmlns="http://hl7.org/fhir">
    <!--   set of loinc codes for cholesterol for LONC 2.36   -->  
      <id>5830aab7-b0c4-461f-9521-344000d51191</id>
      <name>Loinc Codes for Cholesterol</name>
      <author>
        <name>FHIR project team (example)</name>
        <reference>http://hl7.org/fhir</reference>
      </author>
      <description>This is an example value set that includes 
          all the LOINC codes for serum cholesterol from v2.36</description>
      <status>testing</status>
      <date>2012-06-13</date>
    
      <!--   this example, we elected to use a UUID. We could have used 
         an OID, or a URI - depends on how it will be used.   -->
      <identifier>256a5231-a2bb-49bd-9fea-f349d428b70d</identifier>
    
      <!--   for version, we are going to simply use the day of publication. This is also 
        arbitrary - whatever is here is what people use to refer to the version. 
        Could also be a UUID too   -->
      <version>20120613</version>
    
      <!--   we claim that this value set is a constraint on this other value set 
        this actual URL is a reference to a fictitious value set definition on a 
        fictitious FHIR value set registry. We claim here, simply for illustrative 
        purposes, that the value set referred to here is all LOINC codes for serum
        tests, and that this value set is therefor a constraint on that one   -->
      <restricts>http://hl7.org/svc/fhir/valueset/@03acace4-5206-4c8f-a8b4-df27a4c18b09</restricts>
      
      <!--   given that this value set is small, it doesn't make 
       sense to import another one - what would it say? But if that made sense, 
       we'd do it like this: 
      http://hl7.org/svc/fhir/valueset/@f0f65621-ae8c-4c57-9f96-5326c2acefe3   -->
      
      <!--   you could have multiple includes, if you wanted to include codes from more than
         one code system, or include codes with different modes. we don't, in this case   -->
      <include>
        <system>http://loinc.org</system>
        <version>2.36</version>
        <!--   for LOINC, we simply include the listed codes - no subsumption in LOINC   -->
        <mode>code</mode>
        <!--   these were selected by hand   -->
        <code>14647-2</code>
        <code>2093-3</code>
        <code>35200-5</code>
        <code>9342-7</code>
      </include>
      <text>
        <status>generated</status>
        <div xmlns="http://www.w3.org/1999/xhtml">
         <p>Value set &quot;Loinc Codes for Cholesterol&quot;: This is an example value set that includes 
            all the LOINC codes for serum cholesterol from v2.36. 
            Developed by: FHIR project team (example)</p>
         <p>Published for testing on 13-June 2012</p>
         <p>This is a restriction on
    <a href="http://hl7.org/svc/fhir/valueset/@03acace4-5206-4c8f-a8b4-df27a4c18b09?format=text/html">
            the value set &quot;all serum test codes&quot;</a>, and contains the following LOINC codes:</p>
         <ul>
          <li>14647-2</li>
          <li>2093-3</li>
          <li>35200-5</li>
          <li>9342-7</li>   
        </ul>
        </div>
      </text>
    </ValueSet>

    5: Formal Definitions

    5.1.1: Terminologies: Binding Names Registry

    This table contains a list of all the binding names that are bound directly to their own codes. Each implicitly represents a code system with the full URI http://hl7.org/fhir/sid/[system] and where each individual code has the uri http://hl7.org/fhir/sid/[system]/[ccde].

    AddressPartType
    http://hl7.org/fhir/sid/address-part-type
    Required codes:
    partPart of an address line (typically used with an extension that further defines the meaning of the part).
    lineA line of an address (typically used for street names & numbers, unit details, delivery hints, etc.) .
    cityThe name of the city, town, village, or other community or delivery centre.
    stateSub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes).
    countryCountry. ISO 3166 3 letter codes can be used in place of a full country name.
    zipA postal code designating a region defined by the postal service.
    dpidA value that uniquely identifies the postal address. (Often used in barcodes).
    AddressUse
    http://hl7.org/fhir/sid/address-use
    Required codes:
    homeA communication address at a home
    workAn office address. First choice for business related contacts during business hours
    tempA temporary address. The period can provide more detailed information
    oldThis address is no longer in use (or was never correct, but retained for records)
    BindingConformance
    http://hl7.org/fhir/sid/binding-conformance
    Required codes:
    requiredOnly codes in the specified set are allowed. If the binding is extensible, other codes may be used for concepts not covered by the bound set of codes.
    preferredFor greater interoperability, implementers are strongly encouraged to use the bound set of codes, however alternate codes may be used in profiles if necessary without being considered non-conformant.
    exampleThe codes in the set are an example to illustrate the meaning of the field. There is no particular preference for its use
    BindingType
    http://hl7.org/fhir/sid/binding-type
    Required codes:
    valuesetThe binding name has an associated URL which is a reference to a Value Set Resource that provides a formal definition of the set of possible codes
    codelistThe binding name is associated with a simple list of codes, and definitions from some identified code system (SID, URI, OID, UUID). In resource definitions, the system reference may be omitted, and a list of custom codes with definitions supplied (this is for status and workflow fields that applications need to know)
    referenceThe binding name has an associated URL which refers to some external standard or specification that defines the possible codes
    specialThe binding points to a list of concepts defined as part of FHIR itself (see below for possible values)
    BooleanYesNo
    http://hl7.org/fhir/sid/boolean-yes-no
    Required codes:
    yesTRUE
    noFALSE
    CodeSelectionMode
    http://hl7.org/fhir/sid/code-selection-mode
    Required codes:
    codeOnly this code is selected
    childrenOnly the immediate children (codes with a is_a relationship) are selected, but not this code itself
    descendantsAll descendants of this code are selected, but not this code itself
    allThis code and any descendants are selected
    ConformanceEventMode
    http://hl7.org/fhir/sid/message-conformance-event-mode
    Required codes:
    senderThe application sends requests and receives responses
    receiverThe application receives requests and sends responses
    ConstraintSeverity
    http://hl7.org/fhir/sid/constraint-severity
    Required codes:
    errorIf the constraint is violated, the resource is not conformant
    warningIf the constraint is violated, the resource is conformant, but it is not necessarily following best practice.
    ContactSystem
    http://hl7.org/fhir/sid/contact-system
    Required codes:
    phoneThe value is a telephone number used for voice calls. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required.
    faxThe value is a fax machine. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required.
    emailThe value is an email address
    urlThe value is a url. This is intended for various personal contacts including blogs, Twitter, Facebook, etc. Do not use for email addresses
    ContactUse
    http://hl7.org/fhir/sid/contact-use
    Required codes:
    homeA communication contact at a home; attempted contacts for business purposes might intrude privacy and chances are one will contact family or other household members instead of the person one wishes to call. Typically used with urgent cases, or if no other contacts are available.
    workAn office contact. First choice for business related contacts during business hours.
    tempA temporary contact. The period can provide more detailed information.
    oldThis contact is no longer in use (or was never correct, but retained for records)
    mobileA telecommunication device that moves and stays with its owner. May have characteristics of all other use codes, suitable for urgent matters, not the first choice for routine business
    DataAbsentReason
    http://hl7.org/fhir/sid/data-absent-reason
    Required codes:
    unknownThe value is not known
    askedThe source human does not know the value
    tempThere is reason to expect (from the workflow) that the value may become known
    notaskedThe workflow didn't lead to this value being known
    maskedThe information is not available due to security, privacy or related reasonsUsing masked may be breach of security or confidentiality, but there are times when its use is required to support alternate workflows for gaining access to denied information.
    unsupportedThe source system wasn't capable of supporting this element
    astextThe content of the data is represented as text
    errorSome system or workflow process error means that the information is not available
    DocumentAuthenticationMode
    http://hl7.org/fhir/sid/document-authentication-mode
    Required codes:
    personalThe person authenticated the document in their personal capacity
    professionalThe person authenticated the document in their professional capacity
    legalThe person authenticated the document and accepted legal responsibility for its content
    officialThe organization authenticated the document as consistent with their policies and procedures
    DocumentMode
    http://hl7.org/fhir/sid/document-mode
    Required codes:
    producerThe application produces documents of the specified type
    consumerThe application consumes documents of the specified type
    EntityNamePartQualifier
    http://hl7.org/fhir/sid/name-part-qualifier
    Required codes:
    LSFor organizations a suffix indicating the legal status, e.g., Inc., "Co.", "AG", "GmbH", "B.V." "S.A.", "Ltd." Etc.
    ACIndicates that a prefix like "Dr." or a suffix like "M.D." or "Ph.D." is an academic title.
    NBIn Europe and Asia, there are still people with nobility titles (aristocrats). German "von" is generally a nobility title, not a mere voorvoegsel. Others are "Earl of" or "His Majesty King of..." etc. Rarely used nowadays, but some systems do keep track of this.
    PRPrimarily in the British Imperial culture people tend to have an abbreviation of their professional organization as part of their credential suffices
    HONAn honorific such as "The Right Honourable" or "Weledelgeleerde Heer".
    BRA name that a person was given at birth or established as a consequence of adoption. NOTE: This is not used for temporary names assigned at birth such as 'Baby of Smith' – which is just a name with a use code of TEMP
    ADA name part a person acquired. The name part may be acquired by adoption, or the person may have chosen to use the name part for some other reason. NOTE This differs from an other/psuedonym/alias in that an acquired name part is acquired on a formal basis rather than an informal one (e.g. registered as part of the official name)
    SPThe name assumed from the partner in a marital relationship. Usually the spouse‘s family name. No inference about gender may be made from the existence of spouse names
    MIDIndicates that the name part is a middle name. In general, the English "middle name" concept is all of the given names after the first. This qualifier may be used to explicitly indicate which given names are considered to be middle names. The middle name qualifier may also be used with family names. This is a Scandinavian use case, matching the concept of "mellomnavn"/"mellannamn". There are specific rules that indicate what names may be taken as a mellannamnin different Scandinavian countries
    CLCallme is used to indicate which of the various name parts is used when interacting with the person
    INIndicates that a name part is just an initial. Initials do not imply a trailing period since this would not work with non-Latin scripts. Initials may consist of more than one letter, e.g., "Ph." could stand for "Philippe" or "Th." for "Thomas"
    EventTiming
    http://hl7.org/fhir/sid/event-timing
    Required codes:
    HSevent occurs duration before the hour of sleep (or trying to)
    WAKEevent occurs duration after waking
    ACevent occurs duration before a meal (from the Latin ante cibus)
    ACMevent occurs duration before breakfast (from the Latin ante cibus matutinus)
    ACDevent occurs duration before lunch (from the Latin ante cibus diurnus)
    ACVevent occurs duration before dinner (from the Latin ante cibus vespertinus)
    PCevent occurs duration after a meal (from the Latin post cibus)
    PCMevent occurs duration after breakfast (from the Latin post cibus matutinus)
    PCDevent occurs duration after lunch (from the Latin post cibus diurnus)
    PCVevent occurs duration after dinner (from the Latin post cibus vespertinus)
    ExtensionContext
    http://hl7.org/fhir/sid/extension-context
    Required codes:
    resourceThe context is all elements matching a particular resource element path
    datatypeThe context is all nodes matching a particular data type element path (root or repeating element) or all elements referencing a particular primitive data type (expressed as the datatype name)
    mappingThe context is all nodes whose mapping to a specified reference model corresponds to a particular mapping structure. The context identifies the mapping target. The mapping should clearly identify where such an extension could be used, though this
    extensionThe context is a particular extension from a particular profile. Expressed as uri#name, where uri identifies the profile and #name identifies the extension code
    FilterOperator
    http://hl7.org/fhir/sid/filter-operator
    Required codes:
    =The property value has the concept specified by the value
    is_aThe property value has a concept that has an is_a relationship with the value
    is_not_aThe property value has a concept that does not have an is_a relationship with the value
    regexThe property value representation matches the regex specified in the value
    IdentifierType
    http://hl7.org/fhir/sid/identifier-type
    Preferred codes:
    accountAccount number
    creditCredit Card Number
    microchip Microchip Number
    registryA Registry Number
    insurance Insurance Scheme Member Number
    national National Healthcare Identifier
    ssn National Social Security Number (or equivalent)
    jurisdictionJurisdictional Healthcare Identifier
    patient Patient identifier
    facility Facility ID
    provider Provider number
    LabReportStatus
    http://hl7.org/fhir/sid/lab-report-status
    Required codes:
    registeredThe existence of the result is registered, but there is no result yet available
    interimThis is an initial or interim result: data may be missing or verification not been performed
    finalThe result is complete and verified by the responsible pathologist
    amendedThe result has been modified subsequent to being Final, and is complete and verified by the responsible pathologist
    cancelledThe result is unavailable because the test was not started or not completed (also sometimes called "aborted")
    withdrawnThe result has been withdrawn following previous Final release
    LabResultFlag
    http://hl7.org/fhir/sid/lab-result-flag
    Required codes:
    -
    --
    ---
    +
    ++
    +++
    RResistent
    SModerately Susceptible
    SSVery Susceptible
    LanguageUse
    http://hl7.org/fhir/sid/language-use
    Required codes:
    noneThe person does not speak the language at all
    poorThe person has minimal functional capability in the language
    useableThe person can use the language, but may not be full conversant, particularly with regards to health concepts
    fluentThe person is fully capable of using the language
    MessageTransport
    http://hl7.org/fhir/sid/message-transport
    Required codes:
    httpThe application sends or receives messages using HTTP POST (may be over http or https)
    ftpThe application sends or receives messages using File Transfer Protocol
    mllpThe application sends or receivers messages using HL7's Minimal Lower Level Protocol
    NamePartType
    http://hl7.org/fhir/sid/name-part-type
    Required codes:
    familyFamily name, this is the name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.
    givenGiven name. NOTE: Not to be called "first name" since given names do not always come first.
    suffixPart of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that comes at the end of the name
    prefixPart of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that comes at the start of the name
    NameUse
    http://hl7.org/fhir/sid/name-use
    Required codes:
    usualKnown as/conventional/the one you normally use
    officialThe formal name as registered in an official (government) registry, but which name might not be commonly used. May be called "legal name".
    tempA temporary name. A name valid time can provide more detailed information. This may also be used for temporary names assigned at birth or in emergency situations.
    anonymousAnonymous assigned name, alias, or pseudonym (used to protect a person's identity for privacy reasons)
    oldThis name is no longer in use (or was never correct, but retained for records)
    maidenA name used prior to marriage. Marriage naming customs vary greatly around the world. This name use is for use by applications that collect and store "maiden" names. Though the concept of maiden name is often gender specific, the use of this term is not gender specific. The use of this term does not imply any particular history for a person's name, nor should the maiden name be determined algorithmically.
    NarrativeMapSource
    http://hl7.org/fhir/sid/narrative-map-source
    Required codes:
    textThe text is the original data
    dataThe data is the original data
    NarrativeStatus
    http://hl7.org/fhir/sid/narrative-status
    Required codes:
    generatedThe contents of the narrative are entirely generated from the structured data in the resource.
    extensionsThe contents of the narrative are entirely generated from the structured data in the resource and some of the content is generated from extensions
    additionalThe contents of the narrative contain additional information not found in the structured data
    PrescriptionStatus
    http://hl7.org/fhir/sid/prescription-status
    Required codes:
    activePatient is using the prescribed medicine
    completedPrescription is no longer current
    QuantityRange
    http://hl7.org/fhir/sid/quantity-range
    Required codes:
    <The actual value is less than the given value
    <=The actual value is less than or equal to the given value
    >=The actual value is greater than or equal to the given value
    >The actual value is greater than the given value
    ResourceProfileStatus
    http://hl7.org/fhir/sid/resource-profile-status
    Required codes:
    draftThis profile is still under development
    testingthis profile was authored for testing purposes (or education/evaluation/evangelisation)
    reviewThis profile is undergoing review to check that it is ready for production use
    productionThis profile is ready for use in production systems
    withdrawnThis profile has been withdrawn
    supersededThis profile was superseded by a more recent version
    ResponseCode
    http://hl7.org/fhir/sid/response-code
    Required codes:
    okThe message was accepted and processed without error
    errorSome internal unexpected error occurred - wait and try again. Note - this is usually used for things like database unavailable, which may be expected to resolve, though human intervention may be required
    rejectionThe message was rejected because of some content in it. There is no point in re-sending without change. The response narrative must describe what the issue is
    rulesThe message was rejected because of some event-specific business rules, and it may be possible to modify the request and re-submit (as a different request). The response data must clarify what the change would be, as described by the event definition
    undeliverableA middleware agent was unable to deliver the message to its intended destination
    RestfulConformanceMode
    http://hl7.org/fhir/sid/restful-conformance-mode
    Required codes:
    clientThe application acts as a server for this resource
    serverThe application acts as a client for this resource
    RestfulOperation
    http://hl7.org/fhir/sid/restful-operation
    Required codes:
    readRead the current state of the resource
    vreadRead the state of a specific version of the resource
    updateUpdate an existing resource by its id (or create it if it is new)
    deleteDelete a resource
    historyRetrieve the update history for the resource
    validateCheck that the content would be acceptable as an update
    updatesGet a list of prior updates to resources of this type, optionally with some filter criteria
    createCreate a new resource with a server assigned id
    ValueSetStatus
    http://hl7.org/fhir/sid/valueset-status
    Required codes:
    draftThis valueset is still under development
    testingThis valueset was authored for testing purposes (or education/evaluation/evangelisation)
    productionThis valueset is ready for use in production systems
    withdrawnThis valueset should no longer be used
    supersededThis valueset has been replaced and a different valueset should be used in its place

    This table contains a list of all the binding names that reference value sets or simply provide definitions.

    AccreditationDefinition: Accreditations an organization may be granted
    AdministrationInstructionPreferred codes: Value Set NHG Table 25b
    AdministrationPreconditionPreferred codes: Value Set NHG Table 25b
    AdministrationRoutePreferred codes: Value Set G-Standaard subtable 0007
    AdministrativeGenderDefinition: The gender of a person used for administrative purposes
    AgentRoleDefinition: The role a person plays representing an organization
    AnimalGenderDefinition: The gender of an animal
    AnimalRelationshipDefinition: The relationship of an animal to another entity (person, corporation, or other animal)
    AnimalSpeciesDefinition: The species of an animal
    AnimalStrainDefinition: The strain of an animal
    AssessmentScaleMeasureSuggested codes: Value Set Loinc Observables
    AssessmentScaleTypeSuggested codes: Value Set Loinc Observables that identify scales
    DataType
    http://hl7.org/fhir/sid/DataType
    Any defined data Type name (§1.3) (including Resource (§1.2.6))
    DocumentSectionTypePreferred codes: Value Set LOINC Section Types
    DocumentTypePreferred codes: Value Set LOINC Document Types
    EventReasonDefinition: The reason for an event occurring
    IndustryPreferred codes: Value Set HL7 v3 OrganizationIndustryClass value set
    LabDiagnosisCodesSuggested codes: Value Set SNOMED-CT Diagnoses
    LabReferenceRangesDefinition: Code for the meaning of a reference range
    LabReportNamesPreferred codes: Value Set LOINC Panel Names
    LabRequestsDefinition: codes for requestable tests
    LabResultGroupNamesPreferred codes: Value Set LOINC Panel Names
    LabResultNamesPreferred codes: Value Set LOINC Result names
    LabServicesPreferred codes: Value Set HL7 v2 table 0074
    LanguageSee http://www.sil.org/iso639-3/codes.asp
    MediaTypeSee http://www.rfc-editor.org/bcp/bcp13.txt
    MedicationKindPreferred codes: Value Set G-Standaard (Netherlands), AMT (Australie)
    MessageEvent
    http://hl7.org/fhir/sid/MessageEvent
    See the Event List (§2.2.5)in the messaging framework
    OrganisationTypeSuggested codes: Value Set SNOMED-CT Organisation codes and the HL7 v3 Entity Code table
    OrganizationRelationshipDefinition: The relationship an organization has to the subject, including sub and super organizations, and other kind of relationships such as partner organisations
    PaperRecordLocationDefinition: A physical location for a record. (Usually site specific)
    PatientConfidentialityDefinition: The confidentiality of the records associated with this patient
    PatientDietDefinition: casual dietary restrictions associated with this patient
    PersonRelationshipDefinition: The relationship a person has to the subject, including familial, marital, financial, legal, and casual relationships
    PrescriptionReasonPreferred codes: Value Set ICD-10 or ICPC-1
    QualificationsDefinition: Formal qualifications, accreditations, and Certifications acquired by a person
    RacePreferred codes: Value Set HL7 v2 table 0200
    ReligionDefinition: The denomination to which a person professes affiliation
    ResourceType
    http://hl7.org/fhir/sid/ResourceType
    See the list of defined Resource Types (§1.4.5)

    5.2.1: Resource Format - Formal Definitions

    Narrative
    DefinitionA human readable formatted text, including images
    Control1..1
    RIM MappingN/A
    Narrative.status
    DefinitionThe status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data
    Control1..1
    Typecode from NarrativeStatus
    Must Understandtrue
    RIM MappingN/A
    Narrative.div
    DefinitionThe actual narrative content, a stripped down version of XHTML
    Control1..1
    Typexhtml
    Must Understandtrue
    CommentsThe contents of the html element are an XHTML fragment containing only the basic html formatting elements described in chapters 7-11 and 15 of the HTML 4.0 standard, <a> elements (either name or href), images, and internally contained stylesheets. The XHTML content may not contain a head, a body, external stylesheet references, scripts, forms, base/link/xlink, frames, iframes, and objects.
    RIM MappingN/A
    Narrative.image
    DefinitionAn image referred to directly in the xhtml
    Control0..*
    Must Understandtrue
    RequirementsAllows image content to be conveyed inline
    RIM MappingN/A
    Narrative.image.mimeType
    DefinitionMime type of image
    Control1..1
    Typecode from MediaType
    Must Understandtrue
    RIM MappingN/A
    Narrative.image.content
    Definitionbase64 image data
    Control1..1
    Typebase64Binary
    Must Understandtrue
    RIM MappingN/A
    Narrative.map
    DefinitionA map from the narrative contents to the resource elements - an assertion that the text describes the some content as the data item describes
    Control0..*
    RequirementsAllows linking between discrete data in the resource and content within the text
    RIM MappingN/A
    Narrative.map.text
    DefinitionThe narrative end of the mapping
    Control1..1
    Typeidref
    RIM MappingN/A
    Narrative.map.data
    DefinitionThe resource element end of the mapping
    Control1..1
    Typeidref
    RIM MappingN/A
    Narrative.map.source
    DefinitionWhich end of the mapping is the source
    Control1..1
    Typecode from NarrativeMapSource
    RIM MappingN/A
    ResourceReference
    DefinitionA reference from one resource to another
    Control1..1
    RIM MappingN/A
    ResourceReference.type
    DefinitionThe name of one of the resource types defined in this specification to identify the type of the resource being referenced
    Control0..1
    Typecode from ResourceType
    Must Understandtrue
    CommentsWhether or not the type of the resource reference is fixed for a particular element, the reference includes the resource type
    RIM MappingN/A
    ResourceReference.id
    DefinitionA literal URL that resolves to the location of the resource. The URL may be relative or absolute. Relative Ids contain the logical id of the resource. This reference is version independent - it points to the latest version of this resource
    Control0..1
    Typeuri
    Must Understandtrue
    CommentsUsing absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach
    RIM MappingN/A
    ResourceReference.version
    DefinitionA literal URL that resolves to the location of a particular version of the resource. The URL may be relative or absolute. Relative Ids contain the logical version id of the resource.
    Control0..1
    Typeuri
    CommentsVersion Specific references are generally used for audit trail purposes, or when building attested content. The uniqueness of the version id may be scoped by the logical id
    RIM MappingN/A
    ResourceReference.text
    DefinitionPlain text narrative that describes the resource in addition to the resource reference
    Control0..1
    Typestring
    CommentsMay be used in place of the actual reference if a dataAbsentReason is allowed. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.
    RIM MappingN/A

    5.3.1: Data Type Formal Definitions

    This page provides the formal definitions for the data types

    Data Types Concept Map

    5.3.1.1: Attachment

    Attachment
    DefinitionFor referring to data content defined in other formats.
    Control1..1
    RequirementsMany models need to include data defined in other specifications that is complex and opaque to the healthcare model. This includes documents, media recordings, structured data, etc.
    RIM MappingED
    Attachment.mimeType
    DefinitionIdentifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data
    Control1..1
    Typecode from MediaType
    Must Understandtrue
    RequirementsProcessors of the data need to be able to tell what the data is
    RIM Mapping./mediaType
    Attachment.data
    DefinitionThe actual data of the attachment - a sequence of bytes. In XML, represented using base64
    Control0..1
    Typebase64Binary
    Must Understandtrue
    RequirementsThe data needs to able to be transmitted inline
    CommentsThe base64-encoded data must be expressed in the same character set as the base resource XML
    RIM Mapping./data
    To DoShould this be handled by an extension? How common is it?
    Attachment.url
    DefinitionAn alternative location where the data can be accessed
    Control0..1
    Typeuri
    Must Understandtrue
    RequirementsThe data needs to be transmitted by reference
    CommentsIf both data and url are provided, the url must point to the same content as the data contains. Urls may be relative references or may be made to transient locations such as a wrapping envelope using cid: though this has ramifications for using signatures. If a URL is provided, it must resolve to actual data.
    RIM Mapping./reference/literal
    To DoSort out relative URL references
    Attachment.hash
    DefinitionThe calculated hash of the data using SHA-256. In XML, represented using base64
    Control0..1
    Typebase64Binary
    RequirementsIncluded so that applications can verify that the contents of a location have not changed, and also so that a signature of the xml content can implicitly sign the content of an image without having to include the data in the instance or reference the url in the signature
    RIM Mapping.integrityCheck[parent::ED/integrityCheckAlgorithm="SHA-256"]
    Attachment.lang
    DefinitionThe language that the attachment is in
    Control0..1
    Typecode from Language
    RequirementsMay need to be able to pick the right language to render for a particular person from a list of attachments in different languages
    Commentsnote that the v3 lang is ISO 639-2, and this is ISO 639-3
    RIM Mapping./language
    Attachment.title
    DefinitionA label or set of text to display in place of the data
    Control0..1
    Typestring
    RequirementsApplications need a label to display to a human user in place of the actual data if the data cannot be rendered or perceived by the viewer.
    RIM Mapping./title/data

    5.3.1.2: Identifier

    Identifier
    DefinitionA technical identifier - identifies some entity uniquely and unambiguously
    Control1..1
    RequirementsNeed to be able to identify things with confidence and be sure that the identification is not subject to misinterpretation
    Commentsthe Identifier class is a little looser than II because it allows URIs as well as registered OIDs or GUIDs
    RIM MappingII
    Identifier.system
    DefinitionEstablishes the namespace in which set of possible id values is unique.
    Control0..1
    Typeuri
    Must Understandtrue
    RequirementsThere are many sequences of identifiers. To perform matching, we need to know what sequence we're dealing with.
    RIM MappingII.root
    Identifier.id
    DefinitionThe portion of the identifier typically displayed to the user and which is unique within the context of the system.
    Control0..1
    Typestring
    Must Understandtrue
    RIM MappingII.extension or II.root if system indicates OID or GUID

    5.3.1.3: Coding

    Coding
    DefinitionA reference to a code defined by a terminology system
    Control1..1
    RequirementsReferring to codes is a ubiquitous task in healthcare models
    CommentsCodes may defined very casually in enumerations or code lists, up to very formal definitions such as SNOMED-CT - see the v3 core principles for more information
    RIM MappingCV
    Coding.code
    DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system
    Control0..1
    Typecode
    Must Understandtrue
    RequirementsNeed to refer to a particular code in the system
    RIM Mapping./code
    Coding.system
    DefinitionThe identification of the system that defines the meaning of the symbol in the code. Can be a simple list of enumerations, a list of codes with meanings or all the way to a complex semantic web such as SNOMED-CT, whether classification, terminology, or ontology
    Control1..1
    Typeuri
    Must Understandtrue
    RequirementsNeed to be unambiguous about the source of the definition of the symbol
    CommentsThe identity is a uri. It may be an OID or a UUID, which must be references to the HL7 OID registry, or a URI which either comes from the list of FHIR defined special URIs, or from some system defined elsewhere, in which case the URI should de-reference to establish the system unambiguously
    RIM Mapping./codeSystem
    Coding.display
    DefinitionA representation of the meaning of the code in the system, following the rules laid out by the system.
    Control0..1
    Typestring
    RequirementsNeed to be able to carry a human readable meaning of the code for readers that do not recognise the system
    RIM MappingCV.displayName
    To Dolanguage?

    5.3.1.4: CodeableConcept

    CodeableConcept
    DefinitionA concept that may be defined by a formal reference to a terminology or ontology or may be provided by text
    Control1..1
    RequirementsThis is a common pattern in healthcare - a concept that may be defined by one or more codes from formal definitions including LOINC and SNOMED-CT, and/or defined by the provision of text that captures a human sense of the concept
    CommentsNot all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations, and the relationship between elements and pre- and post-coordination
    RIM MappingCD
    CodeableConcept.coding
    DefinitionA reference to a code defined by a terminology system
    Control0..*
    TypeCoding
    Must Understandtrue
    RequirementsAllows for translations and alternate encodings within a code system. Also supports communication of the same instance to systems requiring different encodings.
    CommentsCodes may defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED-CT - see the v3 core principles for more information. Ordering of codings is undefined and must not be used to infer meaning.
    RIM Mappingunion(., ./translation)
    CodeableConcept.text
    DefinitionA human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user or concept
    Control0..1
    Typestring
    Must Understandtrue
    RequirementsThe codes from the terminologies do not always capture the correct meaning with all the nuances of the human, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source
    CommentsVery often the text is the same as a displayName of one of the codings
    RIM Mapping./originalText[mediaType/code="text/plain"]/data
    CodeableConcept.primary
    DefinitionIndicates which of the codes in the codings was chosen by a user, if one was chosen directly
    Control0..1
    Typeidref
    RequirementsWhere a user picks an actual code directly, it is useful to note that this is the primary input. It's also the most appropriate starting point for new translations (unless re-coding directly from 'text').
    RIM Mappingspecial("The id assigned to the coding that corresponds to the root code of the CD")

    5.3.1.5: Choice

    Choice
    DefinitionA code taken from a short list of codes that are not defined in a formal code system
    Control1..1
    RequirementsQuestionnaires and the like - assessment scales. There's no formal terminology underlying them, yet the possible choices affect the interpretation of the code. Because the choice can be quite dynamic, the price of setting up formal infrastructure to carry the choices out of band is expensive
    CommentsChoice is generally used for things like pain scales, questionnaires or formally defined assessment indexes. The possible codes may be ordered with some arbitrarily defined scale. Choice does not fit all assessment scales - the more combinatorial the value is, the less likely that Choice will be an appropriate data type
    RIM MappingCD
    Choice.code
    DefinitionThe code or value that the user selected from the list of possible codes
    Control0..1
    Typecode
    Must Understandtrue
    CommentsThe "code" might be a numerical choice in a pain scale, for instance, 1 where the choices are 1-5 with associated words for severity of pain
    RIM MappingCD.code
    Choice.value
    DefinitionA list of possible values for the code
    Control2..*
    Must Understandtrue
    RequirementsNeed to know the possible codes the user could have chosen
    RIM MappingExpansion of CD.valueSet to list of CDs
    Choice.value.code
    DefinitionA possible code or value that the user could have chosen
    Control1..1
    Typecode
    Must Understandtrue
    RequirementsNeed to know the possible codes the user could have chosen
    RIM MappingCD.code
    Choice.value.display
    DefinitionA set of words associated with the code to give it meaning and displayed to the user
    Control0..1
    Typestring
    RequirementsSometimes the codes have associated words that give it more meaning
    CommentsThe code itself may convey sufficient meaning
    RIM MappingCD.displayName
    Choice.isOrdered
    DefinitionWhether the order of the values has an assigned meaning
    Control0..1
    Typeboolean
    Must Understandtrue
    RequirementsThe Choice may come from an ordered scale such as a pain scale or a an assessment scale, or it may be just a random set of choices that have no particular order
    RIM MappingN/A

    5.3.1.6: Quantity

    Quantity
    DefinitionA measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies
    Control1..1
    RequirementsNeed to able to capture all sorts of measured values, even if the measured value are not precisely quantified. Values include exact measures such as 3.51g, customary units such as 3 tablets, currencies such as $100.32USD
    CommentsThe context of use may frequently define what kind of quantity this is, and therefore what kind of units can be used. The context of use may also restrict the values for status
    RIM MappingPQ, IVL<PQ>, MO, CO, depending on the values
    Quantity.value
    DefinitionThe value of the measured amount. The value includes an implicit precision in the presentation of the value
    Control0..1
    Typedecimal
    Must Understandtrue
    RequirementsPrecision is handled implicitly in almost all cases of measurement
    CommentsThe implicit precision should always be honored. Currency has its own rules for handling precision
    RIM MappingPQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
    Quantity.range
    DefinitionHow the value should be understood and represented - whether the actual value is greater or less than the measure due to measurement issues
    Control0..1
    Typecode from QuantityRange
    Must Understandtrue
    RequirementsNeed a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.
    RIM MappingIVL properties
    Quantity.units
    DefinitionA human readable form of the units
    Control0..1
    Typestring
    Must Understandtrue
    RequirementsThere are lots of representations for the units and in many contexts, particular representations are fixed and required. i.e. mcg for micrograms, and not ug
    RIM MappingN/A
    Quantity.code
    DefinitionA computer processable form of the units in some unit representation system
    Control0..1
    Typecode
    Must Understandtrue
    RequirementsNeed a computable form of the units that is fixed across all forms. UCUM provides this for quantities, but SNOMED-CT provides many arbitrary units of interest
    CommentsThe preferred system is UCUM, but SNOMED-CT can also be used (for customary units), or ISO 4217 for currency. The context of use may additionally require a code from a particular system (Unless the Quantity element has a dataAbsentReason flag)
    RIM MappingPQ.code, MO.currency, PQ.translation.code
    Quantity.system
    DefinitionThe identification of the system that provides the coded form of the unit
    Control0..1
    Typeuri
    Must Understandtrue
    RequirementsNeed to know the system that defines the coded form of the unit
    RIM MappingCO.codeSystem, PQ.translation.codeSystem

    5.3.1.7: Range

    Range
    DefinitionA set of ordered Quantities defined by a low and high limit.
    Control1..1
    RequirementsNeed to be able to specify ranges of values or time periods
    CommentsThe stated low and high value are assumed to have arbitrarily high precision when it comes to determining which values are in the range. i.e. 1.99 is not in the range 2 -> 3
    RIM MappingIVL<QTY[not(type="TS")]> [lowClosed="true" and highClosed="true"]or URG<QTY[not(type="TS")]>
    Range.low
    DefinitionThe low limit. The boundary is inclusive.
    Control0..1
    TypeQuantity
    Must Understandtrue
    CommentsIf the low element is missing, the meaning is that the low boundary is not known.
    RIM Mapping./low
    Range.high
    DefinitionThe high limit. The boundary is inclusive.
    Control0..1
    TypeQuantity
    Must Understandtrue
    CommentsIf the high element is missing, the meaning is that the high boundary is not known.
    RIM Mapping./high

    5.3.1.8: Ratio

    Ratio
    DefinitionA ratio of two Quantity values - a numerator and a denominator.
    Control1..1
    RequirementsNeed to able to capture ratios for some measurements (titers) and some rates (costs)
    RIM MappingRTO
    Ratio.numerator
    DefinitionThe numerator
    Control0..1
    TypeQuantity
    Must Understandtrue
    RIM MappingRTO.numerator
    Ratio.denominator
    DefinitionThe denominator
    Control0..1
    TypeQuantity
    Must Understandtrue
    RIM MappingRTO.denominator

    5.3.1.9: Period

    Period
    DefinitionA time period defined by a start and end time.
    Control1..1
    CommentsNot a duration - that's a measure of time (a separate type), but a duration that occurs at a fixed value of time. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). If a duration might be required, specify the type as Interval|Duration
    RIM MappingIVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
    Period.start
    DefinitionThe start of the period. The boundary is inclusive.
    Control0..1
    TypedateTime
    Must Understandtrue
    CommentsIf the low element is missing, the meaning is that the low boundary is not known.
    RIM Mapping./low
    Period.end
    DefinitionThe end of the period. If the high is missing, it means that the period is ongoing
    Control0..1
    TypedateTime
    Must Understandtrue
    CommentsThe high value includes any matching date/time. i.e. 2012-02-03T10:00:00 is in a period that has a end value of 2012-02-03
    RIM Mapping./high

    5.3.1.10: HumanId

    HumanId
    DefinitionAn identifier that humans use. This is different from a system identifier because identifiers that humans use are regularly changed or retired due to human intervention and error. Note that a human identifier may be a system identifier on some master system but becomes a human identifier elsewhere due to how it is exchanged between humans. Driver's license numbers are a good example of this. Also, because human mediated identifiers are often invoked as implicit links to external business processes, such identifiers are often associated with multiple different resources.
    Control1..1
    RequirementsNeed to be able to work with the many vagaries of human identifiers - that is, identifiers that humans use for things, with the attendant uncertainty and correction features
    HumanId.type
    DefinitionThe type of the identifier - to allow a particular identifier to be selected elsewhere
    Control0..1
    TypeCoding from IdentifierType
    RequirementsHuman identifiers often have some type associated with them that is important to allow the identifier to be picked as a basis for exchange elsewhere, either in other electronic interchanges, or paper forms
    HumanId.identifier
    DefinitionThe identifier itself
    Control0..1
    TypeIdentifier
    Must Understandtrue
    RequirementsAllows for matching of objects
    HumanId.period
    DefinitionTime period during which identifier was valid for use
    Control0..1
    TypePeriod
    HumanId.assigner
    DefinitionOrganisation that issued/manages the identifier
    Control0..1
    TypeResource(Organization)
    CommentsThe reference may be just a text description of the assigner

    5.3.1.11: HumanName

    HumanName
    DefinitionA human's name with the ability to identify parts and usage
    Control1..1
    RequirementsNeed to be able to record names, along with notes about their use
    CommentsNames may be changed, or repudiated, or people may have different names in different contexts. Names may be divided into parts of different type that have variable significance depending on context, though the division into parts does not always matter. With personal names, the different parts may or may not be imbued with some implicit meaning; various cultures associate different importance with the name parts, and the degree to which systems must care about name parts around the world varies widely.
    RIM MappingEN
    HumanName.use
    DefinitionIdentifies the purpose for this name
    Control0..1
    Typecode from NameUse
    Must Understandtrue
    RequirementsAllows the appropriate name for a particular context of use to be selected from among a set of names
    RIM Mappingunique(./use)
    HumanName.text
    Definitiona full text representation of the name
    Control0..1
    Typestring
    Must Understandtrue
    RequirementsA renderable, unencoded form
    CommentsCan provide both a text representation, and parts
    RIM Mapping./formatted
    HumanName.part
    DefinitionSubdivision of the name at a level of granularity useful for analysis, sorting, matching or other purposes.
    Control0..*
    Must Understandtrue
    RequirementsBreaks a name into parts for matching, validation and analysis
    CommentsCan provide both a text representation, and parts
    RIM Mapping./part
    HumanName.part.type
    DefinitionType of name part
    Control0..1
    Typecode from NamePartType
    Must Understandtrue
    RIM Mapping./type
    HumanName.part.value
    DefinitionThe content of the name part
    Control1..1
    Typestring
    Must Understandtrue
    RIM Mapping./value
    HumanName.period
    DefinitionIndicates the period of time when this name was valid for the named person.
    Control0..1
    TypePeriod
    RequirementsAllows names to be placed in historical context
    RIM Mapping./usablePeriod[type="IVL<TS>"]

    5.3.1.12: Address

    Address
    DefinitionThere is a variety of postal address formats defined around the world. This format defines a superset that is the basis for addresses all around the world
    Control1..1
    RequirementsNeed to be able to record postal addresses, along with notes about their use
    CommentsNote: address is for postal addresses, not physical locations
    RIM MappingAD
    Address.use
    DefinitionIdentifies the intended purpose of this address
    Control0..1
    Typecode from AddressUse
    Must Understandtrue
    RequirementsAllows an appropriate address to be chosen from a list of many
    RIM Mappingunique(./use)
    Address.text
    Definitiona full text representation of the address
    Control0..1
    Typestring
    Must Understandtrue
    RequirementsA renderable, unencoded form
    CommentsCan provide both a text representation, and parts
    RIM Mapping./formatted
    Address.part
    DefinitionA part of an address
    Control0..*
    Must Understandtrue
    RequirementsBreaks an address into parts for matching, validation and analysis
    CommentsCan provide both a text representation, and parts
    RIM Mapping./item
    Address.part.type
    DefinitionType of address part (see below)
    Control0..1
    Typecode from AddressPartType
    Must Understandtrue
    RIM Mapping./partType
    Address.part.value
    DefinitionThe content of the address part
    Control1..1
    Typestring
    Must Understandtrue
    RIM Mapping./data
    Address.period
    DefinitionTime period when address was/is in use
    Control0..1
    TypePeriod
    RequirementsAllows addresses to be placed in historical context
    RIM Mapping./usablePeriod[type="IVL<TS>"]

    5.3.1.13: Contact

    Contact
    DefinitionAll kinds of technology mediated contact details for a person or organisation, including telephone, email, etc.
    Control1..1
    RequirementsNeed to track phone, fax, mobile, sms numbers, email addresses, twitter tags, etc.
    RIM MappingTEL
    Contact.system
    DefinitionWhat kind of contact this is - what communications system is required to make use of the contact
    Control0..1
    Typecode from ContactSystem
    Must Understandtrue
    RIM Mapping./scheme
    Contact.value
    DefinitionThe actual contact details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).
    Control0..1
    Typestring
    Must Understandtrue
    RequirementsNeed to support legacy numbers that are not in a tightly controlled format
    Commentsadditional out of band data such as extensions, or notes about use of the contact are sometimes included in the value
    RIM Mapping./url
    Contact.use
    DefinitionIdentifies the context for the address
    Control0..1
    Typecode from ContactUse
    Must Understandtrue
    RequirementsNeed to track the way a person uses this contact, so a user can choose which is appropriate for their purpose
    RIM Mappingunique(./use)
    Contact.period
    DefinitionTime period when the contact was/is in use
    Control0..1
    TypePeriod
    RIM Mapping./useablePeriod[type="IVL<TS>"]

    5.3.1.14: Schedule

    Schedule
    DefinitionA schedule that specifies an event that may occur multiple times. Schedules are not used for recording when things did happen, but when they are expected or requested to occur.
    Control1..1
    RequirementsNeed to able to track schedules. There are several different ways to do scheduling: one or more specified times, a simple rules like three times a day, or to say, x before/after meals, or something like that
    Comments A schedule can be either a list of events - intervals on which the event occurs, or a single event with repeating criteria or just repeating criteria with no actual event.
    RIM MappingGTS
    Schedule.event
    DefinitionIdentifies specific time periods when the event should occur
    Control0..*
    TypePeriod
    Must Understandtrue
    RequirementsSome schedules are just explicit lists of times
    Schedule.repeat
    DefinitionIdentifies a repeating pattern to the intended time periods.
    Control0..1
    Must Understandtrue
    RequirementsMany schedules are determined by regular repetitions
    CommentsIf present, the Schedule.event indicates the time of the first occurrence.
    Schedule.repeat.frequency
    DefinitionIndicates how often the event should occur.
    Control0..1
    Typeinteger
    Must Understandtrue
    Schedule.repeat.when
    DefinitionIdentifies the occurrence of daily life that determine timing
    Control0..1
    Typecode from EventTiming
    Must Understandtrue
    RequirementsTimings are frequently determined by occurrences such as waking, eating and sleep
    Schedule.repeat.duration
    DefinitionHow long each repetition should last
    Control1..1
    TypeDuration
    Must Understandtrue
    RequirementsSome activities are not instantaneous and need to be maintained for a period of time
    Schedule.repeat.count
    DefinitionA total count of the desired number of repetitions
    Control0..1
    Typeinteger
    Must Understandtrue
    RequirementsRepetitions may be limited by end time or total occurrences
    CommentsAn end need not be specified
    Schedule.repeat.end
    DefinitionWhen to stop repeats
    Control0..1
    TypedateTime
    Must Understandtrue
    RequirementsRepetitions may be limited by end time or total occurrences
    CommentsAn end need not be specified

    5.4.1: Extensibility - Definitions

    Extension
    DefinitionOptional Extensions Element - found in all resources
    Control1..1
    RequirementsThe ability to add extensions in a structured way is what keeps FHIR resources simple
    RIM MappingN/A
    Extension.code
    DefinitionThe code that identifies the meaning of the extension by reference to the definitions
    Control1..1
    Typeid
    CommentsThe only codes that can be used are those defined using the approved extensibility definitions.
    RIM MappingN/A
    Extension.profile
    DefinitionSource of the definition for the extension code - a namespace or a URL
    Control1..1
    Typeuri
    RequirementsEveryone needs to be able to define extensions, but they also must be governed properly
    CommentsThe definition may point directly to a computable or human readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition should be version specific. This will ideally be the URI for the Resource Profile defining the extension.
    RIM MappingN/A
    Extension.ref
    DefinitionInternal reference to context of the extension - a pointer to an xml:id in the same resource
    Control0..1
    Typeidref
    CommentsThe order that extensions appear in is significant - where multiple extensions have the same ref id, they extend the target element in the order in which they appear in the extensions
    RIM MappingN/A
    Extension.mustUnderstand
    DefinitionIf this element is set to true, then the containing resource element and its children are only safe to process if the reader understands this extension.
    Control0..1
    Typeboolean
    Must Understandtrue
    CommentsThis value should be set to true if the value of the extension qualifies or negates data in other content
    RIM MappingN/A
    Extension.value[x]
    DefinitionValue of extension - may be a resource or one of a constraint set of the data types (see Extensibility in the spec for list)
    Control0..1
    Type*
    RIM MappingN/A
    Extension.extension
    DefinitionNested Extensions - further extensions that are part of the extension
    Control0..*
    TypeExtension
    RIM MappingN/A

    5.5: Resource Formal Definitions: Agent

    The formal definitions for the Agent (§3.1) resource.

    Agent
    DefinitionA person who represents an organisation, and is authorised to perform actions on its behalf
    Control1..1
    RequirementsNeed to track doctors, staff, locums etc for both healthcare providers, funders, etc.
    RIM MappingRole
    v2 MappingPRD (as one example)
    Agent.id
    DefinitionMaster Resource Id, always first in all resources
    Control1..1
    Typeid
    RIM Mapping.id(scope=OBJ)
    Agent.person
    DefinitionThe person who acts as the agent
    Control1..1
    TypeResource(Person)
    Must Understandtrue
    RequirementsNeed to be able to track the person who represents the organisation separately
    v2 MappingPRD-2
    Agent.organization
    DefinitionThe organisation that is being represented
    Control1..1
    TypeResource(Organization)
    Must Understandtrue
    RequirementsNeed to be able to track the represented organisation separately
    v2 MappingPRD-10 (-> 14)
    Agent.role
    DefinitionThe way in which the person represents the organisation - what role do they have?
    Control1..*
    TypeCodeableConcept from AgentRole
    Must Understandtrue
    RequirementsNeed to know what authority the agent has - what can they do?
    CommentsA person may have more than one role. At least one role is required - why have an agent who isn't actually an agent?
    v2 MappingPRD-1
    Agent.period
    DefinitionThe time period during which the agent was/is authorised to represent the organisation.
    Control0..1
    TypePeriod
    RequirementsAgencies are often for a limited period of time, and can be revoked. Even after the agencies is revoked, the fact that it existed must still be recorded
    v2 MappingPRD-8/9
    Agent.identifier
    DefinitionAn identifier that applies to this person in this role
    Control0..*
    TypeHumanId
    Must Understandtrue
    RequirementsOften, specific identifies are assigned for the agent
    CommentsThe identifier changes when a new/different person steps into the same role
    v2 MappingPRD-7
    Agent.address
    DefinitionA postal address for this person playing this role
    Control0..*
    TypeAddress
    Commentsi.e. the address is not their personal address. For many agents, this is the same as their work address
    v2 MappingPRD-3
    To DoWhat about place? (PRD-4)
    Agent.contact
    DefinitionA contact detail address for this person playing this role
    Control0..*
    TypeContact
    Commentsi.e. the contact is not their personal contact. For many agents, this is the same as their work contacts. Note that a person may choose to use a personal mobile phone (for instance) for their contact in a given role - in this case, the contact detail will be repeated in the agent resource
    v2 MappingPRD-5
    Agent.extension
    DefinitionSee Extensions
    Control0..*
    TypeExtension
    Agent.text
    DefinitionText summary of the agent, for human interpretation
    Control1..1
    TypeNarrative

    5.6: Resource Formal Definitions: Animal

    The formal definitions for the Animal (§3.2) resource.

    Animal
    DefinitionAn animal that has relevance to the care process -usually this is for animals that are patients.
    Control1..1
    RequirementsNeed to be able to track animals - vetinary medicine is an active user of HL7 standards
    CommentsAnimals differ because you need to track species and strain, and also different kind of relationships - owners
    RIM MappingNonPersonLivingSubject(classCode=ANM, determinerCode=INST)
    Animal.id
    DefinitionMaster Resource Id, always first in all resources
    Control1..1
    Typeid
    Must Understandtrue
    To Do.id(scope=OBJ)
    Animal.identifier
    DefinitionIdentifier for the animal that is used to identify the person across multiple disparate systems and also for face to face identification of the person
    Control0..*
    TypeHumanId
    Must Understandtrue
    RequirementsAnimals are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the animal
    RIM Mapping.scopes[Role](classCode=IDENT)
    Animal.name
    DefinitionA name associated with the animal. The use code maiden does not apply.
    Control0..*
    TypeHumanName
    Must Understandtrue
    RequirementsSome animals have names, which are assigned by humans for human reasons, and follow human naming patterns
    RIM Mapping.name
    Animal.dob
    DefinitionThe birth date for the animal
    Control0..1
    TypedateTime
    Must Understandtrue
    RequirementsAge of the animal drives many clinical processes.
    RIM Mapping.dateOfBirth
    To DoRIM change to support human date (time only - but is this needed in this context?)
    Animal.species
    DefinitionSpecies for the animal
    Control0..1
    TypeCodeableConcept from AnimalSpecies
    Must Understandtrue
    RequirementsNeed to know what kind of animal
    RIM Mapping.code
    Animal.strain
    DefinitionStrain for the animal
    Control0..1
    TypeCodeableConcept from AnimalStrain
    Must Understandtrue
    RequirementsMay need to know the specific kind within the species
    RIM Mapping.strainText
    To DoNot sure why this is ED in the RIM. Should probably change to SC.
    Animal.gender
    DefinitionGender for the Animal
    Control0..1
    TypeCodeableConcept from AnimalGender
    Must Understandtrue
    RequirementsFor managing the animal
    CommentsNote that some animals have additional gender not encountered in humans?
    RIM Mapping.administrativeGenderCode
    Animal.relatedEntity
    DefinitionKin, owner, care giver etc
    Control0..*
    Animal.relatedEntity.identifier
    DefinitionIdentifier for the entity
    Control0..1
    TypeHumanId
    Animal.relatedEntity.role
    DefinitionType of relationship
    Control1..1
    TypeCodeableConcept from AnimalRelationship
    Animal.relatedEntity.name
    DefinitionName of the related entity
    Control0..1
    TypeHumanName
    Animal.relatedEntity.address
    DefinitionAn address (usually human, but may be kin)
    Control0..*
    TypeAddress
    Animal.relatedEntity.contact
    DefinitionContact details (usually for humans)
    Control0..*
    TypeContact
    Animal.extension
    DefinitionSee Extensions
    Control0..*
    TypeExtension
    RIM Mapping[varies]
    Animal.text
    Definition
    Control1..1
    TypeNarrative
    To Do.text

    5.7: Resource Formal Definitions: AssessmentScale

    The formal definitions for the AssessmentScale (§3.3) resource.

    AssessmentScale
    DefinitionAssessment scales or scores combine the findings of individual values into a total score which can be interpreted more easily against a reference population
    Control1..1
    AssessmentScale.id
    DefinitionMaster Id, first in all resources
    Control1..1
    Typeid
    AssessmentScale.subject
    DefinitionThe patient on which the assessment was performed
    Control1..1
    TypeResource(Patient)
    Must Understandtrue
    AssessmentScale.performer
    DefinitionThe identity of the person who performed the clinical assessment - who takes responsibility for the final assessment
    Control1..1
    TypeResource(Agent|Person)
    RequirementsNeed to be able to track who is responsible for the assessment
    CommentsMany individuals may contribute to the process of the assessment, but only one person accepts final responsibility
    AssessmentScale.time
    DefinitionThe time that the assessment score was finalized
    Control1..1
    TypedateTime
    RequirementsNeed to track the time in order to know when this score was relevant
    CommentsPerforming an assessment takes place over a period of time, but only the end fo that time - when the score is finalised and becomes relevant to patient care - is recorded
    AssessmentScale.definition
    DefinitionInformation of how the assessment was performed.
    Control0..1
    TypeResource(AssessmentDefinition)
    CommentsTo allow comparison between institutions. The details can be text, in place of the reference, or a reference to a formal definition
    AssessmentScale.interpretation
    DefinitionInterpretations of the outcome of the assesment scale by the performer
    Control0..*
    TypeCodeableConcept
    AssessmentScale.score
    DefinitionA group that represents the actual score value
    Control1..1
    AssessmentScale.score.code
    DefinitionA code that identifies the assessment scale that was performed
    Control1..1
    TypeCodeableConcept from AssessmentScaleType
    Must Understandtrue
    AssessmentScale.score.value[x]
    DefinitionThe outcome of the assessment - some sort of score, or coded value outcome
    Control0..1
    TypeQuantity|CodeableConcept|Choice|boolean
    Must Understandtrue
    AssessmentScale.score.score
    DefinitionNested Scores - sub-scores that contribute to the overall score. A score is an aggregate based on a series of data
    Control0..*
    Type@AssessmentScale.score
    CommentsThere is no formal limit on the levels of nesting, but no subscores are expected to contain more than 3 levels
    AssessmentScale.score.measure
    DefinitionThe actual data items from which the score is derived. Each score must have at least one data item on which it is based
    Control0..*
    AssessmentScale.score.measure.code
    DefinitionIdentifies the type of measure
    Control0..1
    TypeCodeableConcept from AssessmentScaleMeasure
    AssessmentScale.score.measure.value[x]
    Definitionthe value of the measure
    Control0..1
    TypeQuantity|CodeableConcept|Choice|boolean
    AssessmentScale.score.measure.time
    Definitionwhen the value was measured
    Control0..1
    TypedateTime
    AssessmentScale.score.measure.source
    DefinitionReference to the actual measure in it's original context where additional information may be found
    Control0..1
    TypeResource(Any)
    CommentsIt's not necessary for measures to have an additional source; they may be made as part of the assessment sale directly. However it is common for scales to draw in data definitely sourced elsewhere, such as from diagnostic reports
    AssessmentScale.reason
    DefinitionThe reason that the assessment was performed
    Control0..1
    Typestring
    AssessmentScale.extension
    DefinitionSee Extensions
    Control0..*
    TypeExtension
    AssessmentScale.text
    DefinitionText summary of [template] for human interpretation
    Control1..1
    TypeNarrative

    5.8: Resource Formal Definitions: Conformance

    The formal definitions for the Conformance (§2.7) resource.

    Conformance
    DefinitionA conformance statement about how an application or implementation supports FHIR or the set of requirements for a desired implementation.
    Control1..1
    RIM MappingN/A
    To DoNeed to capture wire format (XML vs. JSON) and character set. Probably separately for each rest, messaging & document repetition.
    Conformance.id
    DefinitionIdentifier for this specific conformance statement.
    Control1..1
    Typeid
    RIM MappingN/A
    Conformance.date
    DefinitionDate that the conformance statement is published
    Control1..1
    TypedateTime
    RIM MappingN/A
    Conformance.publisher
    DefinitionThe organization that publishes this conformance statement
    Control1..1
    RIM MappingN/A
    Conformance.publisher.name
    DefinitionName of Organization
    Control1..1
    Typestring
    RIM MappingN/A
    Conformance.publisher.address
    DefinitionAddress of Organization
    Control0..1
    TypeAddress
    RIM MappingN/A
    Conformance.publisher.contact
    DefinitionContacts for Organization relevant to this conformance statement. May be website, email, phone numbers, etc.
    Control0..*
    TypeContact
    RIM MappingN/A
    Conformance.implementation
    DefinitionDescribes the implementation that is covered by this conformance statement. Used when the profile describes the capabilities of a specific implementation instance.
    Control0..1
    RIM MappingN/A
    Conformance.implementation.description
    DefinitionInformation about the specific implementation
    Control1..1
    Typestring
    RIM MappingN/A
    Conformance.implementation.url
    DefinitionThe base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces.
    Control0..1
    Typeuri
    RIM MappingN/A
    Conformance.software
    DefinitionDescribes the software that is covered by this conformance statement. Used when the profile describes the capabilities of a particular software version, independent of an installation.
    Control0..1
    RIM MappingN/A
    Conformance.software.name
    DefinitionName software is known by
    Control1..1
    Typestring
    RIM MappingN/A
    Conformance.software.version
    DefinitionVersion covered by this statement
    Control0..1
    Typestring
    CommentsIf possible, version should be specified, as statements are likely to be different for different versions of software
    RIM MappingN/A
    Conformance.software.releaseDate
    DefinitionDate this version of the software released
    Control0..1
    TypedateTime
    RIM MappingN/A
    Conformance.proposal
    DefinitionDescribes the proposed solution described by this conformance statement. Used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.
    Control0..1
    RIM MappingN/A
    Conformance.proposal.description
    DefinitionProvides details about the intention and scope of the proposal
    Control1..1
    Typestring
    RIM MappingN/A
    Conformance.version
    DefinitionThe version of the FHIR specification on which this conformance profile is based
    Control1..1
    Typeid
    RIM MappingN/A
    Conformance.acceptUnknown
    DefinitionWhether the application accepts unknown non-"must understand" elements as part of a resource. This does not include extensions, but genuine new additions to a resource
    Control1..1
    Typeboolean
    RIM MappingN/A
    Conformance.rest
    DefinitionDefines the restful capabilities of the solution, if any
    Control0..*
    CommentsMultiple repetitions allow definition of both client and server behaviors or possibly behaviors under different configuration settings (for software or requirements statements)
    RIM MappingN/A
    Conformance.rest.mode
    DefinitionIdentifies whether this portion of the statement is describing ability to initiate or receive restful operations
    Control1..1
    Typecode from RestfulConformanceMode
    RIM MappingN/A
    Conformance.rest.documentation
    DefinitionProvides documentation about the system's restful capabilities that apply across all applications, such as security
    Control0..1
    Typestring
    To DoDo we need something more formal for security capabilities?
    Conformance.rest.resource
    DefinitionIdentifies the restful capabilities of the solution for a specific resource type
    Control1..*
    CommentsMax of one repetition per resource type
    RIM MappingN/A
    Conformance.rest.resource.type
    DefinitionIdentifies the resource exposed via the restful interface
    Control1..1
    Typecode from ResourceType
    RIM MappingN/A
    Conformance.rest.resource.profile
    DefinitionIdentifies the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations
    Control0..1
    Typeuri
    RIM MappingN/A
    Conformance.rest.resource.operation
    DefinitionIdentifies a restful operation supported by the solution
    Control1..*
    CommentsThe 'search' operation is handled separately
    RIM MappingN/A
    Conformance.rest.resource.operation.code
    DefinitionIdentifies which operation is supported
    Control1..1
    Typecode from RestfulOperation
    RIM MappingN/A
    Conformance.rest.resource.operation.documentation
    DefinitionProvides guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'
    Control0..1
    Typestring
    RequirementsREST allows a degree of variability in the implementation of RESTful solutions that is useful for exchange partners to be aware of.
    RIM MappingN/A
    Conformance.rest.resource.search
    DefinitionIf present, indicates that search operations are supported on the resource and describes the search capabilities.
    Control0..1
    RIM MappingN/A
    Conformance.rest.resource.search.documentation
    DefinitionProvides solution-specific information on searching that isn't tied to a single parameter. For example, security requirements for executing search, allowed combinations of parameters, etc.
    Control0..1
    Typestring
    RIM MappingN/A
    Conformance.rest.resource.search.param
    DefinitionIdentifies all of the search parameters supported, including standard ones as well as those specific to this solution.
    Control1..*
    RIM MappingN/A
    Conformance.rest.resource.search.param.name
    DefinitionCorresponds to the name of the standard or custom search parameter
    Control1..1
    Typestring
    CommentsCustom parameters cannot overlap with standard parameter names
    RIM MappingN/A
    To DoMay need to add profile uri if profiles are allowed to define search parameters
    Conformance.rest.resource.search.param.documentation
    DefinitionFor standard parameters, provides additional information on how the parameter is used in this solution. For custom parameters, provides a description of what the parameter does
    Control0..1
    Typestring
    CommentsThis must be provided if the parameter is a custom parameter
    RIM MappingN/A
    Conformance.messaging
    DefinitionDescribes the messaging capabilities of the solution
    Control0..*
    CommentsMultiple repetitions allow the documentation of multiple endpoints per solution
    RIM MappingN/A
    Conformance.messaging.endpoint
    DefinitionThe address to which messages and/or replies are to be sent.
    Control0..1
    Typeuri
    CommentsCan be just an identifier for solutions that do not use network addresses for routing.
    RIM MappingN/A
    Conformance.messaging.documentation
    DefinitionProvides documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner.
    Control0..1
    Typestring
    Conformance.messaging.event
    DefinitionDescribes the solution's support for an event at this end point.
    Control1..*
    CommentsThe same event may be listed up to two times - once as sender and once as receiver.
    RIM MappingN/A
    To DoNeed to add follow-ups and need to do more to flesh out messaging dynamic model
    Conformance.messaging.event.code
    DefinitionIdentifies the supported messaging event
    Control1..1
    Typecode from MessageEvent
    RIM MappingN/A
    To DoMay need profile id as well if profiles can define message events
    Conformance.messaging.event.mode
    DefinitionThe mode of this event declaration - whether application is sender or receiver
    Control1..1
    Typecode from ConformanceEventMode
    RIM MappingN/A
    Conformance.messaging.event.protocol
    DefinitionIdentifies the messaging transport protocol(s) supported by this endpoint
    Control0..*
    TypeCoding from MessageTransport
    To DoLoosen this to "extensible" once tooling supports that.
    Conformance.messaging.event.focus
    DefinitionIdentifies the resource associated with the event. This is the resource that defines the event.
    Control1..1
    Typecode from ResourceType
    CommentsThis must be provided if the event type supports multiple different resource types
    RIM MappingN/A
    Conformance.messaging.event.request
    DefinitionInformation about the request for this event
    Control0..1
    Typeuri
    RIM MappingN/A
    Conformance.messaging.event.response
    DefinitionInformation about the response for this event
    Control0..1
    Typeuri
    RIM MappingN/A
    Conformance.messaging.event.documentation
    DefinitionGuidance on how this event is handled, such as internal system trigger points, business rules, etc.
    Control0..1
    Typestring
    Conformance.document
    DefinitionA document definition
    Control0..*
    RIM MappingN/A
    Conformance.document.mode
    DefinitionThe mode of this event declaration - whether application is sender or receiver
    Control1..1
    Typecode from DocumentMode
    RIM MappingN/A
    Conformance.document.documentation
    DefinitionDescribes how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc.
    Control0..1
    Typestring
    RIM MappingN/A
    Conformance.document.profile
    DefinitionConstraint on a resource used in the document
    Control1..1
    Typeuri
    CommentsThe first resource is the document resource
    RIM MappingN/A
    Conformance.extension
    DefinitionSee Extensions
    Control0..*
    TypeExtension
    RIM MappingN/A
    Conformance.text
    DefinitionText summary of conformance profile for human interpretation
    Control1..1
    TypeNarrative
    RIM MappingN/A

    5.9: Resource Formal Definitions: DocumentHeader

    The formal definitions for the DocumentHeader (§2.3) resource.

    DocumentHeader
    DefinitionA documentation of healthcare-related information that is assembled together into a single statement of meaning that establishes its own context. A document is composed of a set of resources that include both human and computer readable portions. A human may attest to the accuracy of the human readable portion, and may authenticate and/or sign the entire whole. A document may be kept as a set of logically linked resources, or they may be bundled together in an atom feed
    Control1..1
    RequirementsFor document based framework
    CommentsWhile the focus of this specification is on patient-specific clinical documents, this resource can also apply to other healthcare-related documents such as study protocol designs, healthcare invoices and other activities that are not necessarily patient-specific or clinical
    RIM MappingDocument[classCode="DOC" and moodCode="EVN" and isNormalAct()]
    To DoConfidentiality? Language? Consent? Signatures
    DocumentHeader.id
    DefinitionThe unique system identifier of the document
    Control1..1
    Typeid
    Must Understandtrue
    RequirementsEach document needs a unique identifier so that other documents and underlying infrastructure can reference it
    CommentsMust be globally unique. UUIDs are recommended
    RIM Mappingunique(./id[isNormalDatatype() and displayable="false" and scope="OBJ" and reliability="ISS"])
    DocumentHeader.instant
    Definitionthe document creation time, when the document first came into being. Where the CDA document is a transform from an original document in some other format, the ClinicalDocument.effectiveTime is the time the original document is created.
    Control1..1
    Typeinstant
    Must Understandtrue
    RequirementsCreation time is used for tracking, organizing versions and searching.
    RIM Mapping./effectiveTime[type="TS"]
    DocumentHeader.type
    DefinitionSpecifying the particular kind of document (e.g. History and Physical, Discharge Summary, Progress Note)
    Control1..1
    TypeCodeableConcept from DocumentType
    Must Understandtrue
    RequirementsKey metadata element describing the document, used in searching/filtering.
    RIM Mapping./code
    DocumentHeader.title
    DefinitionOfficial human-readable label for the document
    Control0..1
    Typestring
    RequirementsHelps humans to assess whether the document is of interest
    CommentsIt's commonly the case that clinical documents do not have a title and are collectively referred to by the display name of Document.type (e.g. a "consultation" or "progress note"). Where these display names are rendered to the clinician or where the document has a unique title, the Document.title value should be used
    RIM Mapping./title
    DocumentHeader.replaces
    DefinitionIdentifies the document this document supersedes, if any.
    Control0..1
    Typeid
    Must Understandtrue
    RequirementsUsed to establish relationships between documents to determine which is the most current/authoritative.
    RIM Mappingunique(highest(./outboundRelationship[typeCode="RPLC and isNormalActRelationship()], priorityNumber)/target[classCode="DOC" and moodCode="EVN" and isNormalAct]/id[isNormalDatatype() and displayable="false" and scope="OBJ" and reliability="ISS"])
    DocumentHeader.enterer
    DefinitionThe person or device that performed the data entry leading to this document. Where there is more than one candidate, pick the most proximal to the document creation or capture on a per-section basis.
    Control0..1
    TypeResource(Agent)
    RequirementsIdentifies who is responsible for the entry of the data.
    CommentsCan provide other enterers in extensions
    RIM Mappingunique(highest(./participation[typeCode="INT" and isNormalParticipation], priorityNumber)/role[classCode="ASSIGNED" and isNormalRole]/player[determinerCode="INST" and classCode=("DEV", "PSN") and isNormalEntity()])
    DocumentHeader.subject
    DefinitionIdentifies the primary subject of the document.
    Control1..1
    TypeResource(Patient|Group|Device)
    Must Understandtrue
    RequirementsEssential metadata for searching for the document, identifies who the document applies to
    CommentsFor clinical documents, this is usually the patient.
    RIM Mappingunique(./participation[typeCode="SBJ" and isNormalParticipation]/role[typeCode="PAT"]) or unique(./participation[typeCode="SBJ" and isNormalParticipation]/role[typeCode="IDENT"]/player[determinerCode="INST" and classCode=("DEV", "ORG") and isNormalEntity()])
    To DoNeed to extend this to support documents with other types of subjects. Also rationalize with encounter & context elements
    DocumentHeader.informant
    DefinitionIdentifies the source that recounted the information recorded
    Control0..1
    TypeResource(Person)
    RequirementsProvides context as to the potential accuracy of the information
    CommentsGenerally used if information is sourced from a non-clinician (patient, relative, etc.)
    RIM Mappingunique(highest(./participation[typeCode="INF" and isNormalParticipation], priorityNumber)/role[classCode="ASSIGNED" and isNormalRole]/player[determinerCode="INST" and classCode=("DEV", "PSN") and isNormalEntity()])
    DocumentHeader.author
    DefinitionIdentifies who is responsible for the information in the document. (Not necessarily who typed it in.)
    Control1..*
    TypeResource(Agent)
    RequirementsIdentifies who is responsible for the content.
    RIM Mapping./participation[typeCode="AUT" and isNormalParticipation]/role[classCode="ASSIGNED" and isNormalRole()]
    DocumentHeader.attester
    DefinitionA participant who has attested to the accuracy of the document
    Control0..*
    RequirementsIdentifies responsibility for the accuracy of the document content.
    RIM Mapping./participation[typeCode="AUTHEN" and isNormalParticipation]
    DocumentHeader.attester.mode
    DefinitionThe type of attestation the authenticator offers
    Control1..1
    Typecode from DocumentAuthenticationMode
    RequirementsIndicates the level of officialness of the attestation.
    RIM Mappingunique(./modeCode)
    DocumentHeader.attester.time
    DefinitionWhen document was attested by the party
    Control0..1
    TypedateTime
    RequirementsIdentifies when the information in the document was deemed accurate. (Things may have changed since then.)
    RIM Mapping./time[type="TS" and isNormalDatatype()]
    DocumentHeader.attester.party
    DefinitionWho attested the document in the specified way
    Control0..1
    TypeResource(Agent|Organization)
    RequirementsIdentifies who has taken on the responsibility for accuracy of the document content.
    RIM Mapping./role[classCode="ASSIGNED" and isNormalRole]/player[determinerCode="INST" and classCode=("DEV", "PSN") and isNormalEntity()] or ./role[classCode="ASSIGNED" and isNormalRole and not(player)]/scoper[determinerCode="INST" and classCode="ORG" and isNormalEntity()]
    DocumentHeader.recipient
    DefinitionIdentifies the people and organisations for whom the document is intended
    Control0..*
    TypeResource(Agent|Organization)
    RequirementsUsed for routing and also provides context as to intended audience.
    RIM Mapping./participation[typeCode="RCV" and isNormalParticipation]/role[classCode="ASSIGNED" and isNormalRole] or ./participation[typeCode="RCV" and isNormalParticipation]/role[classCode="ASSIGNED" and isNormalRole and not (player)]/scoper[classCode="ORG" and determinerCode="INST" and isNormalEntity()]
    DocumentHeader.custodian
    DefinitionIdentifies the organization or group who is responsible for ongoing maintenance of and access to the document.
    Control1..1
    TypeResource(Organization)
    RequirementsIdentifies where to go to find the current version, where to report issues, etc.
    RIM Mapping./participation[typeCode="RCV" and isNormalParticipation]/role[classCode="CUST" and isNormalRole and not (player)]/scoper[classCode="ORG" and determinerCode="INST" and isNormalEntity()]
    DocumentHeader.context
    DefinitionThe main Act, such as a colonoscopy or an appendectomy, being documented
    Control0..1
    TypeResource(Any)
    RequirementsProvides context for the document and creates a linkage between a resource describing an event and the document created describing the event.
    CommentsThe event needs to be consistent with the type element, though can provide further information if desired
    RIM Mappingunique(highest(./outboundRelationship[typeCode="SUBJ" and isNormalActRelationship()], priorityNumber)/target[moodCode="EVN" and isNormalAct])
    DocumentHeader.encounter
    DefinitionDescribes the clinical encounter or type of care this document is associated with.
    Control0..1
    TypeResource(Admission|InterestOfCare)
    RequirementsProvides context for the document and supports searching.
    RIM Mappingunique(highest(./outboundRelationship[typeCode="SUBJ" and isNormalActRelationship()], priorityNumber)/target[moodCode="EVN" and classCode=("ENC", "PCPR") and isNormalAct])
    DocumentHeader.stylesheet
    DefinitionA fixed stylesheet to use when rendering the documents
    Control0..1
    TypeAttachment
    RIM MappingN/A
    DocumentHeader.representation
    DefinitionAn alternative representation of the document that can be used in place of the html based rendering
    Control0..1
    TypeAttachment
    RequirementsSupport for CDA level 1
    CommentsTypically, this is application/pdf
    DocumentHeader.section
    DefinitionIdentifies a main topic within the document's table of contents
    Control0..*
    RequirementsAdds organization and human navigability to the information in the document.
    RIM Mapping./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
    DocumentHeader.section.type
    DefinitionA code identifying the kind of content contained within the section
    Control0..1
    TypeCodeableConcept from DocumentSectionType
    RequirementsProvides computable standardized labels to topics within the document.
    RIM Mapping./code
    DocumentHeader.section.instant
    DefinitionIdentifies when the content of the section was created
    Control0..1
    Typeinstant
    CommentsSections are often re-used in several documents, thus the creation time of a section may differ from that of the document
    RIM Mapping./effectiveTime[type="TS" and isNormalDatatype()]
    DocumentHeader.section.author
    DefinitionIdentifies who is responsible for the information in the section. (Not necessarily who typed it in.)
    Control0..1
    TypeResource(Agent)
    RequirementsIdentifies who is responsible for the content.
    RIM Mapping./participation[typeCode="AUT" and isNormalParticipation]/role[classCode="ASSIGNED" and isNormalRole]/player[determinerCode="INST" and classCode=("DEV", "PSN") and isNormalEntity()]
    DocumentHeader.section.enterer
    DefinitionThe person or device that performed the data entry leading to this section. Where there is more than one candidate, pick the most proximal to the document creation.
    Control0..1
    TypeResource(Agent)
    RequirementsIdentifies who is responsible for the entry of the data.
    CommentsCan provide other enterers in extensions
    RIM Mappingunique(highest(./participation[typeCode="INT" and isNormalParticipation], priorityNumber)/role[classCode="ASSIGNED" and isNormalRole]/player[determinerCode="INST" and classCode=("DEV", "PSN") and isNormalEntity()])
    DocumentHeader.section.subject
    DefinitionIdentifies the primary subject of the section.
    Control0..1
    TypeResource(Patient|Group|Device)
    Must Understandtrue
    RequirementsSubjects can vary, for example mother/baby, patient & relatives, etc.
    RIM Mappingunique(./participation[typeCode="SBJ" and isNormalParticipation]/role[typeCode="PAT"]) or unique(./participation[typeCode="SBJ" and isNormalParticipation]/role[typeCode="IDENT"]/player[determinerCode="INST" and classCode=("DEV", "ORG") and isNormalEntity()])
    DocumentHeader.section.informant
    DefinitionIdentifies the source that recounted the information recorded
    Control0..1
    TypeResource(Person)
    RequirementsProvides context as to the potential accuracy of the information
    CommentsGenerally used if information is sourced from a non-clinician (patient, relative, etc.)
    RIM Mappingunique(highest(./participation[typeCode="INF" and isNormalParticipation], priorityNumber)/role[classCode="ASSIGNED" and isNormalRole]/player[determinerCode="INST" and classCode=("DEV", "PSN") and isNormalEntity()])
    DocumentHeader.section.content
    DefinitionIdentifies the discrete data that provides the content for the section.
    Control0..1
    TypeResource(Any)
    Must Understandtrue
    RequirementsConveys the discrete data associated with the document.
    CommentsBecause documents represent point-in-time snapshots, resource references should generally be to a specific version.
    RIM Mappingunique(./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode!="DOCSECT" and isNormalAct])
    To DoThis may need to be 0..*. May need to consider adding text here to to account for missing resources.
    DocumentHeader.section.text
    DefinitionProvides the text view of the section.
    Control0..1
    TypeNarrative
    CommentsThis will most commonly be used when there is no "content" resource or when the content resource does not provide a "text" element.
    RIM Mapping./text[mimeType="text/xhtml"]
    DocumentHeader.section.section
    DefinitionIdentifies a subtopic within the section as part of the document's table of contents
    Control0..*
    Type@DocumentHeader.Section
    RequirementsAllows more complex document structures
    RIM Mapping./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
    DocumentHeader.extension
    DefinitionSee Extensions
    Control0..*
    TypeExtension
    RIM MappingN/A
    DocumentHeader.text
    Definition
    Control1..1
    TypeNarrative
    Must Understandtrue
    RIM Mapping./text[mimeType="text/plain"]

    5.10: Resource Formal Definitions: LabReport

    The formal definitions for the LabReport (§3.4) resource.

    LabReport
    DefinitionThe findings and interpretation of pathology tests performed on tissues and body fluids. This is typically done in a laboratory but may be done in other environments such as at the point of care
    Control1..1
    RequirementsUse to record any pathology test result, including the result of a test on a specimen taken as part of a composite procedure or operation.
    CommentsNot to be used for reporting on non-pathology test results e.g. diagnostic imaging, ECG or respiratory function tests. Not to be used to represent an entire cumulative report. This Pathology test result archetype represents only one of the result sets that is usually viewed as a vertical in a cumulative test report. A cumulative report is a view that is constructed from the results represented by multiple OBSERVATION archetypes. This archetype is suitable for representation of general pathology test results, but not intended to cover full synoptic reports. For these, additional resources are required to represent the data properly
    RIM MappingObservation[isNormalAct() and subsumesCode("ActClass#OBS", classCode) and moodCode="EVN" and domainMember("LabObservationType", code)]
    LabReport.id
    DefinitionMaster Resource Id, always first in all resources
    Control1..1
    Typeid
    RIM Mappingunique(./id[isNormalDatatype() and displayable="false" and scope="OBJ" and reliability="ISS"])
    LabReport.status
    DefinitionThe status of the pathology test result as a whole
    Control1..1
    Typecode from LabReportStatus
    Must Understandtrue
    RequirementsLabs routinely issue provisional/incomplete reports, or withdraw previously released reports
    RIM Mappingregistered: ./statusCode[isNormalDatatype()]="new"; interim: ./statusCode[isNormalDatatype()]="active"; final: ./statusCode[isNormalDatatype()]="complete" and not(./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseLabOrder", code) and isNormalAct()]); amended: ./statusCode[isNormalDatatype()]="complete" and ./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseLabOrder", code) and isNormalAct() and statusCode="completed"]; cancelled: ./statusCode[isNormalDatatype()]="aborted"; withdrawn: ./statusCode[isNormalDatatype()]="obsolete"
    LabReport.issued
    DefinitionThe date and/or time that the result was issued from the source for the recorded ‘Test result status
    Control1..1
    Typeinstant
    Must Understandtrue
    RequirementsClinicians need to be able to check the date that the report was released
    CommentsMay be different from LabReport.updated, because that is the status of this record, not the report the record is about
    RIM MappingfirstOf(unique(./participation[isHighest(priorityCode) and typeCode="VRF" and isNormalParticipation()]/time[type="TS"]), unique(./participation[isHighest(priorityCode) and typeCode="AUT" and isNormalParticipation()]/time[type="TS"]))
    LabReport.patient
    DefinitionThe patient about who the report is about
    Control1..1
    TypeResource(Patient)
    Must Understandtrue
    RequirementsMust know the patient context
    RIM Mappingunique(./participation[isHighest(priorityCode) and typeCode="SBJ" and isNormalParticipation()]/role[classCode="PAT"])
    To Doneed to check the wording -is it about, upon, for?
    LabReport.admission
    DefinitionThe admission that this diagnostic investigation is associated with
    Control0..1
    TypeResource(Admission)
    RequirementsSome institutions track and file diagnostic reports under a specific admission
    RIM Mappingunique(./inboundRelationship[isHighest(priorityCode) and typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#ENC", code) and moodCode="EVN" and isNormalAct()])
    To DoReckon this is not 80%
    LabReport.laboratory
    DefinitionThe laboratory service that issued the report
    Control1..1
    TypeResource(Organization)
    RequirementsNeed to know how to contact if there are queries about the results. Also may need to track the source of reports for secondary data analysis
    CommentsThis is not necessarily the source of the atomic reports - it's the lab that takes responsibility for the clinical report
    RIM Mappingunique(./participation[isHighest(priorityCode) and typeCode="AUT" and isNormalParticipation()]/role[subsumesCode("RoleClass#ASSIGN", classCode)]/scoper[subsumesCode("EntityClass#ORG", classCode) and determinerCode="INSTANCE"])
    LabReport.reportId
    DefinitionThe local ID assigned to the report by the order filler, usually by the Laboratory Information System (LIS).
    Control0..1
    TypeIdentifier
    RequirementsNeed to know what identifier to use when making queries about this report from the source laboratory
    RIM Mappingunique(./id[displayable="true" and scope="OBJ"])
    LabReport.requestDetail
    DefinitionDetails concerning a single pathology test requested.
    Control0..*
    RequirementsNeed to be able to track completion of requests based on reports issued, and also to report what diagnostic test swere requested (not always the same as what is delivered)
    CommentsNote: Usually there is one test request for each result, however in some circumstances multiple test requests may be represented using a single Pathology test result resource
    RIM Mappingunique(./outboundRelationship[typeCode="FLFS" and isNormalActRelationship()]/target[subsumesCode("ActClass#OBS", classCode) and subsumes("ActMood#PRMS", moodCode) and isNormalAct()])
    LabReport.requestDetail.requestOrderId
    DefinitionThe local ID assigned to the order by the order requester.
    Control0..1
    TypeIdentifier
    RequirementsNeed to be able to track completion of requests based on reports issued
    CommentsEquivalent to the Placer Order Identifier
    RIM Mappingunique(./outboundRelationship[typeCode="FLFS" and isNormalActRelationship()]/target[subsumesCode("ActClass#OBS", classCode) and subsumes("ActMood#RQO", moodCode) and isNormalAct()]/id[scope="OBJ" and displayable="true"])
    To DoReckon this is not 80%
    LabReport.requestDetail.receiverOrderId
    DefinitionThe local ID assigned to the test order by the order filler, usually by the Laboratory Information System (LIS).
    Control0..1
    TypeIdentifier
    RequirementsNeed to be able to track completion of requests based on reports issued
    CommentsUsually equivalent to the DICOM Accession Number and the Filler Order Identifier.
    RIM Mappingunique(./id[scope="OBJ" and displayable="true"])
    To DoReckon this is not 80%
    LabReport.requestDetail.requestTest
    DefinitionIdentification of pathology test requested,
    Control0..*
    TypeCodeableConcept from LabRequests
    RequirementsNeed to be able to report what diagnostic test swere requested (not always the same as what is delivered)
    CommentsUseful where the test requested differs from the test actually performed.
    RIM Mapping./code
    LabReport.requestDetail.requester
    DefinitionDetails of the clinician or organisation requesting the laboratory test.
    Control0..1
    TypeResource(Agent|Organization)
    RequirementsThe requesting clinician may need to be contacted concerning the interpretation of the lab report
    RIM MappingAgent: unique(./participation[isHighest(priorityCode) and typeCode="AUT" and isNormalParticipation()]/role[subsumesCode("RoleClass#ASSIGN", classCode)] Organization: unique(./participation[isHighest(priorityCode) and typeCode="AUT" and isNormalParticipation()]/role[subsumesCode("RoleClass#ASSIGN", classCode)]/scoper[subsumesCode("EntityClass#ORG", classCode) and determinerCode="INSTANCE" and code[isNormalDatatype]])
    LabReport.requestDetail.clinicalInfo
    DefinitionDetails of the clinical information provided to the laboratory along with the original request
    Control0..1
    TypeResource(Any)
    RequirementsKnowing the clinical information may influence the interpretation of the result
    RIM Mapping./outboundRelationship[typeCode="PERT" and isNormalActRelationship()]/target
    To DoThis isn't really *ANY* resource. You can't send a drug or an Animal or a bunch of other things. What you really want here are "acts", and I suspect there's a constraint that the subject of the LabReport must have participated in them as subject or perhaps in some other way.
    LabReport.reportName
    DefinitionIdentification of the pathology test performed, sometimes including specimen type.
    Control1..1
    TypeCodeableConcept from LabReportNames
    Must Understandtrue
    RequirementsNeed to know what report this is, so clinicians can filter/find the reports they are looking for
    CommentsA test result may be for a single analyte, or a group of items, including panel tests.
    RIM Mapping./code
    LabReport.service
    DefinitionThe diagnostic service that performs the examination e.g. biochemistry, haematology.
    Control0..1
    TypeCodeableConcept from LabServices
    RequirementsHelp clinicians filter/find the reports they are looking for
    RIM Mappingunique(./inboundRelationship[typeCode="COMP" and isNormalActRelationship()]/source[subsumesCode("ActClass#LIST", classCode) and moodCode="EVN" and inDomain(code,"Lab Service") and isNormalAct()]/code
    To DoI'm not sure this is in the 80%.
    LabReport.diagnosticTime
    DefinitionThe diagnostically relevant time for this report
    Control1..1
    TypedateTime
    Must Understandtrue
    RequirementsNeed to know where in the patient history to file/present this report
    CommentsThe diagnostically relevant time can be derived from the specimen collection times, but the specimen information is not always available, and the exact relationship is not always automatic
    RIM Mapping./effectiveTime[type="TS"]
    LabReport.specimen
    DefinitionDetails about the specimen if all individual test results are derived from the same specimen
    Control0..*
    TypeResource(Specimen)
    RequirementsNeed to be able to report information about the collected specimens on which the report is based
    CommentsIf the specimen is sufficiently specified with a code in the Test result name, then this additional data may be redundant. If there are multiple specimens, these may be represented per 'Result group'
    RIM Mappingunique(./participation[typeCode="SUBJ" and isNormalParticipation()]/role[subsumesCode("RoleClass#SPEC", classCode)])
    LabReport.resultGroup
    DefinitionA group of results. Results may be grouped by specimen, or by some value in LabReport.resultGroup.name to describe what binds all the results together.
    Control0..*
    Must Understandtrue
    RequirementsNeed to be able to report groups of results, where the result grouping is arbitrary, but meaningful
    CommentsMany (most) lab reports don't really have a meaningful group. In these cases, just create a single group with no specimen or name
    RIM Mapping./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[isNormalAct() and subsumesCode("ActClass#OBS", classCode) and moodCode="EVN" and fromDomain(code, "LabObservationBattery")]
    LabReport.resultGroup.name
    DefinitionA code or name that describes the group of results
    Control0..1
    TypeCodeableConcept from LabResultGroupNames
    Must Understandtrue
    CommentsFor example, the antibody code for a goup of antibody related test, or the organism code for a group of isolate/sensitivities. Leave blank if there is no particular meaning associated with the group
    RIM Mapping./code
    LabReport.resultGroup.specimen
    DefinitionDetails about the individual specimen to which these ‘Result group’ test results refer, where testing of multiple specimens is required.
    Control0..1
    TypeResource(Specimen)
    RequirementsNeed to be able to report information about the collected specimens on which the report is based
    RIM Mappingunique(./participation[typeCode="SBJ" and isNormalParticipation()]/role[subsumesCode("RoleClass#SPEC", classCode)])
    LabReport.resultGroup.result
    DefinitionSpecific detailed result, including both the value of the result item, and additional information that may be useful for clinical interpretation. Results include whatever specific data items pathology labs report as part of the clinical service; it is not confined to measurements.
    Control1..*
    Must Understandtrue
    RequirementsNeed to report results with information that assist with interpretation
    RIM Mapping./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[subsumesCode("ActClass#OBS", classCode) and moodCode="EVN" and isNormalAct() and fromDomain(code, "LabObservationResult")]
    LabReport.resultGroup.result.name
    DefinitionIdentifies the meaning of the value
    Control0..1
    TypeCodeableConcept from LabResultNames
    Must Understandtrue
    RequirementsNeed to know what the result is about
    Commentsresults are fundamentally a name - value pair with additional clarifying information
    RIM Mapping./code
    LabReport.resultGroup.result.value[x]
    DefinitionActual value of the result. Most result values will be numerical measurements, but others may be coded concepts, free text, or multimedia images
    Control0..1
    TypeQuantity|CodeableConcept|Attachment|Ratio|Choice|Period|string from *unbound*
    Must Understandtrue
    RequirementsNeed a value for the result
    RIM Mapping./value
    LabReport.resultGroup.result.flag
    DefinitionFlag indicating the abnormal status of the result
    Control0..1
    Typecode from LabResultFlag
    Must Understandtrue
    RIM Mapping./interpretationCode
    To DoThe proposed set of codes are too narrow (and doesn't map well to v3.)
    LabReport.resultGroup.result.status
    DefinitionThe status of the result value
    Control1..1
    Typecode from LabReportStatus
    Must Understandtrue
    RequirementsNeed to track the status of individual results - some results are finalised before the whole report is finalised
    RIM Mapping(as per LabReport.status)
    LabReport.resultGroup.result.comments
    DefinitionMay include statements about significant, unexpected or unreliable. values, or information about the source of the value where this may be relevant to the interpretation of the result.
    Control0..1
    Typestring
    Must Understandtrue
    RequirementsNeed to be able to provide free text additional information
    RIM Mappingunique(./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#OBS", classCode) and moodCode="EVN" and mapsTo(code, "LOINC# 48767-8") and isNormalAct()]/value[type="ST"])
    LabReport.resultGroup.result.referenceRange
    DefinitionGuidance on how to interpret the value by comparison to a normal or recommended range
    Control0..*
    Must Understandtrue
    RequirementsNeed to be able to provide multiple reference ranges
    CommentsMost results only have one reference range. Some non-numerical results don't have a reference range
    RIM Mapping./outboundRelationship[typeCode="REFV" and isNormalActRelationship()]/target[subsumesCode("ActClass#OBS", classCode) and moodCode="EVN" and isCriterionInd="true" and isNormalAct()]
    To DoAre multiple reference ranges in the 80%?
    LabReport.resultGroup.result.referenceRange.meaning
    DefinitionCode for the meaning of the reference range
    Control0..1
    TypeCodeableConcept from LabReferenceRanges
    RequirementsNeed to be able to say what kind of reference range this is - normal, recommended, therapeutic, or perhaps what state this reference range applies to (i.e. hormonal cycles)
    RIM Mapping./interpretationCode
    LabReport.resultGroup.result.referenceRange.range[x]
    DefinitionActual value of the reference range. May be a quantity (<20mg/L), an range (10-20 umol/L), or some text
    Control1..1
    TypeQuantity|Range|string
    RequirementsNeed to be able to report numerical or text reference ranges, and handle legacy data
    CommentsText reference ranges are typically used in endocrinology, or for legacy data with string reference ranges
    RIM Mapping./value[type=("PQ", "IVL_PQ", "ST")]
    LabReport.conclusion
    DefinitionConcise and clinically contextualised narrative interpretation of the pathology test results.
    Control0..1
    Typestring
    Must Understandtrue
    RequirementsNeed to be able to provide a conclusion that is not lost amongst the basic result data
    Commentscommon reports don't have a conclusion, but some do
    RIM Mappingunique(./inboundRelationship[typeCode="SPRT" and isNormalActRelationship()]/source[subsumesCode("ActClass#OBS", classCode) and moodCode="EVN" and mapsTo(code, "LOINC# 48767-8") and isNormalAct()]/value[type="ST"])
    To DoIs this in the 80%?
    LabReport.codedDiagnosis
    DefinitionCodes for the conclusion
    Control0..*
    TypeCodeableConcept from LabDiagnosisCodes
    RIM Mappingunique(./inboundRelationship[typeCode="SPRT" and isNormalActRelationship()]/source[subsumesCode("ActClass#OBS", classCode) and moodCode="EVN" and subsumesCode(code, "LOINC# 54531-9") and isNormalAct()]/value[type="CD"])
    LabReport.representation
    DefinitionRich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they must be semantically equivalent.
    Control0..*
    TypeAttachment
    Must Understandtrue
    RequirementsLaboratory needs to be able to provide it's own fully formatted report for clinical fidelity
    CommentsPossible formats: text/html, text/plain, text/rtf, application/msword, application/pdf, application/rtf, application/vnd.oasis.opendocument.text, application/vnd.openxmlformats-officedocument.wordprocessingml.document
    RIM Mapping./text[type="ED"]
    LabReport.extension
    DefinitionSee Extensions
    Control0..*
    TypeExtension
    RIM MappingN/A
    LabReport.text
    DefinitionText summary of report, for human interpretation
    Control1..1
    TypeNarrative
    RIM Mappingunique(./text[type="ST"])

    5.11: Resource Formal Definitions: MessageHeader

    The formal definitions for the MessageHeader (§2.2) resource.

    MessageHeader
    DefinitionA transmission requesting action on a bundle of one or more resources or a response to such a request
    Control1..1
    RequirementsMany implementations are not prepared to use REST, and need a message based infrastructure
    RIM MappingMessage
    v2 MappingMSH
    MessageHeader.id
    DefinitionUnique identifier for this message instance
    Control1..1
    Typeid
    Must Understandtrue
    RequirementsEach message needs a unique identifier so other messages and underlying infrastructure can reference it. Also allows safe detection of duplicates.
    Commentsmust be unique within a channel, but should be globally unique. UUIDs are recommended. Only repeated if retransmitting an identical instance (when suspecting the first transmission was lost).
    RIM Mappingunique(./id[isNormalDatatype() and displayable="false" and scope="OBJ" and reliability="ISS"])
    v2 MappingMSH.10
    MessageHeader.instant
    DefinitionInstant the message was sent
    Control1..1
    Typeinstant
    Must Understandtrue
    RequirementsAllows limited detection of out-of-order and delayed transmission. Also supports audit.
    RIM Mapping./creationTime[isNormalDatatype()]
    v2 MappingMSH.7
    MessageHeader.event
    DefinitionCode that identifies the event this message represents, and connects it with the event definition in the FHIR specification
    Control1..1
    Typecode from MessageEvent
    Must Understandtrue
    RequirementsDrives the behavior associated with this message
    RIM Mapping./payload[classCode="CACT" and moodCode="EVN" and isNormalAct()]/code[isNormalDatatype()]/code
    v2 MappingMSH.9.2
    To DoConsider changing to Coding to support profile-defined events
    MessageHeader.response
    DefinitionInformation about the message that this message is a response to. Only present if this message is a response.
    Control0..1
    Must Understandtrue
    RIM Mapping./conveyedAcknowledgement
    v2 MappingMSA
    MessageHeader.response.id
    DefinitionThe id of the message that this a response to
    Control1..1
    Typeid
    Must Understandtrue
    RequirementsAllows receiver to know what message is being responded to
    RIM Mapping./acknowledges.id[isNormalDatatype()]
    v2 MappingMSA.2
    MessageHeader.response.code
    DefinitionCode that identifies the type of response to the message - whether it was successful or not, and whether it should be resent or not
    Control1..1
    Typecode from ResponseCode
    Must Understandtrue
    RequirementsAllows the sender of the acknowledge message to know if the request was successful or if action is needed.
    CommentsThis is a generic response to the request MessageHeader. Specific data for the response will be found in MessageHeader.data
    RIM Mapping./typeCode[isNormalDatatype()]
    v2 MappingMSA.1 |
    MessageHeader.source
    DefinitionThe source application from which this message originated
    Control1..1
    RequirementsAllows replies, supports audit.
    RIM Mappingunique(./communicationFunction[typeCode="SND"])
    v2 MappingNA
    MessageHeader.source.name
    DefinitionHuman readable name for the target system
    Control0..1
    Typestring
    RequirementsMay be used to support audit
    RIM Mappingunique(./entity[determinerCode="INST" and classCode="DEV"]/name[type='ST' and isNormalDatatype()])
    v2 Mapping(Not supported)
    MessageHeader.source.software
    DefinitionMay include configuration or other information useful in debugging.
    Control1..1
    Typestring
    RequirementsSupports audit and possibly interface engine behavior
    RIM Mappingunique(./entity[determinerCode="INST" and classCode="DEV"]/softwareName[isNormalDatatype()])
    v2 MappingSFT.3
    MessageHeader.source.version
    DefinitionCan convey versions of multiple systems in situations where a message passes through multiple hands.
    Control0..1
    Typestring
    RequirementsSupports audit and possibly interface engine behavior
    RIM Mapping(Not supported)
    v2 MappingSFT.4
    MessageHeader.source.contact
    DefinitionAn e-mail, phone, website or other contact point to use to resolve issues with message communications.
    Control0..1
    TypeContact
    RequirementsAllows escalation of technical issues.
    RIM Mappingunique(./entity[determinerCode="INST" and classCode="DEV"]/scopesRole[normalRole() and classCode="CON" and layer[classCode="PSN"]/telecom[isNormalDatatype()])
    v2 Mapping(Not supported)
    MessageHeader.source.endpoint
    DefinitionIdentifies the routing target to send acknowledgements to.
    Control1..1
    Typeuri
    RequirementsIdentifies where to send responses, may influence security permissions
    CommentsThe id may be a non-resolvable URI for systems that do not use standard network-based addresses
    RIM Mapping./telecom[isNormalDatatype()]
    v2 Mapping(Not supported)
    MessageHeader.destination
    DefinitionThe destination application which the message is intended for
    Control1..1
    RequirementsIndicates where message is to be sent to for routing purposes. Allows verification of "am I the intended recipient"
    RIM Mapping./communicationFunction[typeCode="RCV"]
    v2 MappingNA
    MessageHeader.destination.name
    DefinitionHuman readable name for the source system
    Control0..1
    Typestring
    RequirementsMay be used for routing of response and/or to support audit
    RIM Mappingunique(./entity[determinerCode="INST" and (classCode=("DEV", "PSN", "ORG"]/name[type='ST' and isNormalDatatype()])
    v2 Mapping(Not supported)
    MessageHeader.destination.target
    DefinitionIdentifies the target end system in situations where the initial message transmission is to an intermediary system.
    Control0..1
    TypeResource(Device)
    RequirementsSupports multi-hop routing
    RIM Mappingunique(./entity[determinerCode="INST" and (classCode=("DEV", "PSN", "ORG"]
    v2 Mappingvaries
    MessageHeader.destination.endpoint
    DefinitionIndicates where the message should be routed to.
    Control1..1
    Typeuri
    RequirementsIdentifies where to route the message
    CommentsThe id may be a non-resolvable URI for systems that do not use standard network-based addresses
    RIM Mapping./telecom
    v2 Mapping(Not supported)
    MessageHeader.enterer
    DefinitionThe person or device that performed the data entry leading to this MessageHeader. Where there is more than one candidate, pick the most proximal to the MessageHeader. Can provide other enterers in extensions
    Control0..1
    TypeResource(Agent)
    RequirementsNeed to know for audit/traceback requirements and possibly for authorization.
    CommentsUsually only for the request, but can be used in a response
    RIM Mappingunique(./controlAct[classCode="CACT" and classCode="EVN" and isNormalAct()]/participation[typeCode="ENT" and isNormalParticipation]/role[classCode="ASSIGNED" and isNormalRole()]/player[isNormalEntity() and classCode=("DEV", "PSN") and determinerCode="INST"])
    v2 MappingROL where ROL.3 is EP or ORC.10
    MessageHeader.author
    DefinitionThe logical author of the message - the person or device that decided the described event should happen. Where there is more than one candidate, pick the most proximal to the MessageHeader. Can provide other authors in extensions
    Control0..1
    TypeResource(Agent)
    RequirementsNeed to know for audit/traceback requirements and possibly for authorization.
    CommentsUsually only for the request, but can be used in a response
    RIM Mappingunique(./controlAct[classCode="CACT" and classCode="EVN" and isNormalAct()]/participation[isHighest(priorityCode) and typeCode="AUT" and isNormalParticipation]/role[classCode="ASSIGNED" and isNormalRole()]/player[isNormalEntity() and classCode=("DEV", "PSN") and determinerCode="INST"])
    v2 MappingROL where ROL.3 is IP or ORC.12
    MessageHeader.receiver
    DefinitionAllows data conveyed by a message to be addressed to a particular person or department when routing to a specific application isn't sufficient.
    Control0..1
    TypeResource(Person|Organization)
    RequirementsAllows routing beyond just to the application level
    MessageHeader.responsible
    DefinitionThe person or organization that accepts overall responsibility for the contents of the MessageHeader. The implication is that the message event happened under the policies of the responsible party
    Control0..1
    TypeResource(Agent|Organization)
    RequirementsNeed to know for audit/traceback requirements and possibly for authorization.
    CommentsUsually only for the request, but can be used in a response
    RIM Mappingunique(./controlAct[classCode="CACT" and classCode="EVN" and isNormalAct()]/participation[isHighest(priorityCode) and typeCode="RESP" and isNormalParticipation]/role[classCode="ASSIGNED" and isNormalRole()]/player[isNormalEntity() and classCode="PSN" and determinerCode="INST"] or ./controlAct[classCode="CACT" and classCode="EVN" and isNormalAct()]/participation[isHighest(priorityCode) and typeCode="RESP" and isNormalParticipation]/role[classCode="ASSIGNED" and isNormalRole()]/scoper[isNormalEntity() and classCode="ORG" and determinerCode="INST"])
    v2 MappingROL where ROL.3 is RO or ORC.11
    MessageHeader.effective
    DefinitionThe effective time - the real world time of the event that the message represents. Usually this is just a starting time, but some message events also have an end time (do x for period y)
    Control0..1
    TypePeriod
    RequirementsNeed to know for understanding the content of the message, may govern receiver's behavior.
    CommentsUsually only for the request, but can be used in a response
    RIM Mappingunique(./controlAct[classCode="CACT" and classCode="EVN" and isNormalAct()]/effectiveTime[isNormalDatatype() and type="IVL_TS"])
    v2 MappingEVN.3 or EVN.6 or ORC.15
    To DoGrahame thinks this is not 80/20. Also, that it really should be domain modeled, not tucked away here
    MessageHeader.reason
    DefinitionThe cause of the event - a reason for the event that is a focus of this message occurred
    Control0..1
    TypeCodeableConcept from EventReason
    RequirementsNeed to be able to track why resources are being changed and report in the audit log / history of the resource. May affect authorization.
    RIM Mappingunique(./controlAct[classCode="CACT" and classCode="EVN" and isNormalAct()]/reasonCode[isNormalDatatype()])
    v2 MappingEVN.4 or ORC.16
    MessageHeader.data
    DefinitionThe actual data of the message - a reference to the root/focus class of the event.
    Control0..*
    TypeResource(Any)
    Must Understandtrue
    RequirementsEvery message event is about actual data, a single resource, that is identified in the definition of the event, and perhaps some or all linked resources
    CommentsThe data is defined where the transaction type is defined. The transaction data is always included in the bundle that is the full message. Only the root resource is specified. The tree of referenced resources conveyed in the atom feed is determined by navigating the tree and consulting the "bundled" property of the profile, not by listing all resources here. Multiple repetitions are provided for merges and other situations with multiple focal targets
    RIM Mappingunique(./controlAct[classCode="CACT" and classCode="EVN" and isNormalAct()]/participation[typeCode="SUBJ" and isNormalParticipation]/role or ./controlAct[classCode="CACT" and classCode="EVN" and isNormalAct()]/outboundRelationship[typeCode="SBJ" and isNormalActRelatoinship]/target)
    v2 Mappingvaries
    MessageHeader.extension
    DefinitionSee Extensions
    Control0..*
    TypeExtension
    RIM Mappingvaries
    v2 Mappingvaries
    MessageHeader.text
    Definition
    Control1..1
    TypeNarrative
    RIM Mapping(Not supported)
    v2 Mapping(Not supported)

    5.12: Resource Formal Definitions: Organization

    The formal definitions for the Organization (§3.5) resource.

    Organization
    DefinitionFor any company/corporation/institution/government department that has relevance to the care process
    Control1..1
    RIM MappingOrganization(classCode=ORG, determinerCode=INST)
    Organization.id
    DefinitionMaster Resource Id, always first in all resources
    Control1..1
    Typeid
    RIM Mapping.id(scope=OBJ)
    Organization.identifier
    DefinitionIdentifier for the organization that is used to identify the organization across multiple disparate systems
    Control0..*
    TypeHumanId
    Must Understandtrue
    RequirementsOrganizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization.
    RIM Mapping.scopes[Role](classCode=IDENT)
    Organization.name
    DefinitionA name associated with the organization
    Control0..*
    Must Understandtrue
    RequirementsNeed to use the name as the label of the organization
    CommentsDon't use HumanName since that has many non-organization things in it
    RIM Mapping.name
    Organization.name.value
    DefinitionThe actual name of the organization
    Control1..1
    Typestring
    Must Understandtrue
    RIM Mapping.part[1](type=NULL,qualifier=NULL).value
    Organization.name.period
    DefinitionThe period that this name was in use by the organization
    Control0..1
    TypePeriod
    RequirementsOrganizations have a habit of renaming themselves, and the current and past names are required
    RIM Mapping.validTime
    To DoThis is 80%??
    Organization.address
    DefinitionAn address for the organization
    Control0..*
    TypeAddress
    RequirementsMay need to keep track of the organizations addresses for contacting, billing or reporting requirements
    CommentsOrganization may have multiple addresses with different uses or applicable periods. The use code home is not to be used
    RIM Mapping.address
    Organization.contact
    DefinitionA contact detail for the organization
    Control0..*
    TypeContact
    RequirementsHuman contact for the organization
    CommentsThe use code home is not to be used. Note that these contacts are not the contact details of people who are employed by or represent the organization, but official contacts for the organization itself
    RIM Mapping.telecom
    Organization.code
    DefinitionThe kind of organization that this is
    Control0..1
    TypeCodeableConcept from OrganisationType
    RequirementsNeed to be able to track the kind of organization that this is - different organization types have different uses
    CommentsOrganizations can be corporations, wards, sections, clinical teams, government departments, etc. Note that code is generally a classifier of the type of organization; in many applications, codes are used to identity a particular organization (say, ward) as opposed to another of the same type - these are identifiers, not codes
    RIM Mapping.code
    To DoName code is too RIM-like. Should be typeCode or type.
    Organization.industryCode
    DefinitionThe industry that this organization is involved in
    Control0..1
    TypeCodeableConcept from Industry
    RequirementsFor some organization types, an industry code is required for statistical reporting requirements
    RIM Mapping.standardIndustryClassCode
    To DoIs this really in the 80%??
    Organization.accreditation
    DefinitionThe qualifications/certifications an organisation has, including format educational achievements, accreditations, and current certifications. All these qualifications may be used to determine what roles the organisation may play in a healthcare environment
    Control0..*
    RequirementsFor many persons in healthcare, it is necessary to track the qualifications a person has - formal.
    RIM Mapping.plays[Role](classCode='QUAL')
    To DoNot sure if qualified & accredited are the same. Could potentially propose a new classCode
    Organization.accreditation.identifier
    DefinitionThe identifier of the accreditation
    Control0..1
    TypeIdentifier
    RequirementsAllows a link back to a accreditation registry, if one exists
    RIM Mapping.identifier
    To DoNot a humanId?
    Organization.accreditation.code
    DefinitionThe type of the accreditation
    Control0..1
    TypeCodeableConcept from Accreditation
    Requirementscommonly used to determine the roles an organization may perform
    RIM Mapping.code
    Organization.accreditation.institution
    DefinitionThe organization that confered/confers the accreditation
    Control0..1
    TypeResource(Organization)
    RequirementsMay determine the significance of the qualification, and allows a link back to a qualification registry, if one exists
    RIM Mapping.scopedBy[Organization]
    To DoDo we need jurisdiction as well? (The jurisdiction is often more relevant than the accrediting org.)
    Organization.accreditation.period
    DefinitionThe period for which the accreditation is held
    Control0..1
    TypePeriod
    RequirementsMost accreditations are only conferred for a limited time period and must be re-acquired or forfeited
    RIM Mapping.effectiveTime[IVL<TS>]
    Organization.relatedOrganization
    DefinitionOther organizations who are related to this person. The relationship might be one of several types: sub- or super- orgnizations (i.e. ward in a hospital, owning corporation of a hospital) or partner organizations (i.e. the operating corporation for a hospital)
    Control0..*
    RequirementsNeed to be able to track many kinds of organizational relationships and use to determine roles and mediate workflows
    To DoThere's no reason why this wouldn't point to another resource. Will map when updated accordingly.
    Organization.relatedOrganization.identifier
    DefinitionIdentifier the related organization - may be a full link to an Organization resource, or some other kind of identifier
    Control0..1
    TypeHumanId
    Requirementsmay have an identifier for the organization that can be used to source contact details
    Organization.relatedOrganization.code
    DefinitionCode that specifies how this organization is related to the subject. A code is required.
    Control1..1
    TypeCodeableConcept from OrganizationRelationship
    RequirementsNeed to know how the organization is related
    Organization.relatedOrganization.name
    DefinitionA name should be specified for the related organization
    Control0..1
    Typestring
    Organization.relatedOrganization.address
    DefinitionPostal addresses may be provided for the related organization
    Control0..*
    TypeAddress
    Organization.relatedOrganization.contact
    DefinitionContact details (phone, email etc) may be provided for the related organization
    Control0..*
    TypeContact
    Organization.relatedOrganization.period
    DefinitionThe period during which the organizations were related in this fashion
    Control0..1
    TypePeriod
    RequirementsOrganization relationships are changing all the time
    Organization.extension
    DefinitionSee Extensions
    Control0..*
    TypeExtension
    RIM Mapping[varies]
    Organization.text
    DefinitionText summary of organization, fall back for human interpretation
    Control1..1
    TypeNarrative
    To Do.text

    5.13: Resource Formal Definitions: Patient

    The formal definitions for the Patient (§3.6) resource.

    Patient
    DefinitionA patient is a person or animal that is receiving care
    Control1..1
    RequirementsTracking patient is the center of the healthcare process
    RIM MappingPatient
    Patient.id
    DefinitionMaster Resource Id, always first in all resources
    Control1..1
    Typeid
    To Do.id(scope=OBJ)
    Patient.link
    DefinitionA linked patient record is a record that concerns the same patient. Records are linked after it is realised that at least one was created in error.
    Control0..*
    TypeResource(Patient)
    Must Understandtrue
    RequirementsDue to the clerical errors associated with the difficulties of identifying humans consistently, duplicate patient records are frequently created in error
    CommentsMore then two patient records may be linked. Note that there is a special transaction for linking patient records in the RESTful context, as record linking consistency must be maintained
    Patient.active
    DefinitionWhether the patient record is in use, or has been removed from active use
    Control1..1
    Typeboolean
    Must Understandtrue
    RequirementsNeed to be able to mark a patient record as not to be used because it was created in error
    CommentsIf a record is inactive, and linked to an active record, then future patient/person/record updates should occur on the other patient
    Patient.subject
    DefinitionThe person or animal that this patient record is about
    Control1..1
    TypeResource(Person|Animal)
    Must Understandtrue
    RequirementsNeed to link this patient record to a known and identifiable person or animal
    Patient.provider
    DefinitionThe provider for whom this is a patient record
    Control1..1
    TypeResource(Organization)
    Must Understandtrue
    RequirementsNeed to know who recognises this patient record
    To DoBut is thie same as institution above?
    Patient.identifier
    DefinitionAn identifier that applies to this person as a patient
    Control0..*
    TypeHumanId
    Must Understandtrue
    RequirementsPatients are almos always assigned specific numerical identifiers
    Patient.diet
    DefinitionDietary restrictions for the patient
    Control0..1
    TypeCodeableConcept from PatientDiet
    RequirementsTrack patients reported dietary restrictions to help with catering requirements
    Commentsnot for specifying medical diets, but for casual dietary restrictions such as vegetarian, diary-free, nut-free, etc
    Patient.confidentiality
    DefinitionConfidentiality of the patient records
    Control0..1
    TypeCodeableConcept from PatientConfidentiality
    RequirementsNeed to be able to track which patient records are particularly sensitive
    CommentsConfidentiality tracking also occurs at more detailed points in the medical record
    Patient.recordLocation
    DefinitionThe location of the paper record for the patient, if there is one
    Control0..1
    TypeCodeableConcept from PaperRecordLocation
    RequirementsTrack old paper records where these are still in use
    Patient.extension
    DefinitionSee Extensions
    Control0..*
    TypeExtension
    Patient.text
    DefinitionText summary of person, for human interpretation
    Control1..1
    TypeNarrative

    5.14: Resource Formal Definitions: Person

    The formal definitions for the Person (§3.7) resource.

    Person
    DefinitionA person who is involved in the healthcare process
    Control1..1
    RequirementsNeed to track persons across multiple roles
    RIM MappingPerson(classCode="PSN" and determinerCode="INST" and quantity="1")
    Person.id
    DefinitionMaster Resource Id, always first in all resources
    Control1..1
    Typeid
    RIM Mappingunique(./id[isNormalDatatype() and displayable="false" and scope="OBJ" and reliability="ISS"])
    Person.identifier
    DefinitionIdentifier for the person that is used to identify the person across multiple disparate systems and also for face to face identification of the person
    Control0..*
    TypeHumanId
    Must Understandtrue
    RequirementsPeople are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the patient.
    RIM Mapping.plays:Role(classCode='IDENT').id
    v2 MappingPID-3
    Person.name
    DefinitionA name associated with the person
    Control0..*
    TypeHumanName
    Must Understandtrue
    RequirementsNeed to be able to track the person by multiple names
    CommentsPerson may have multiple names with different uses or applicable periods
    RIM Mapping./name
    v2 MappingPID-5, PID-9
    Person.address
    DefinitionAn address for the person
    Control0..*
    TypeAddress
    RequirementsMay need to keep track of persons addresses for contacting, billing or reporting requirements and also to help with identification
    CommentsPerson may have multiple addresses with different uses or applicable periods
    RIM Mapping./addr
    v2 MappingPID-11
    Person.contact
    DefinitionA contact detail for the person
    Control0..*
    TypeContact
    RequirementsMay need to have options for contacting the person urgently, and also to help with identification
    CommentsPerson may have multiple contacts with different uses or applicable periods
    RIM Mapping./telecom
    v2 MappingPID-13, PID-14
    Person.dob
    DefinitionThe birth date for the person
    Control0..1
    TypedateTime
    Must Understandtrue
    RequirementsAge of person drives many clinical processes.
    CommentsAt least a estimated year should be provided as a guess if the real dob is unknown
    RIM Mapping./birthTime
    Person.gender
    DefinitionAdministrative Gender
    Control0..1
    TypeCodeableConcept from AdministrativeGender
    Must Understandtrue
    RequirementsPatient Identification, and also for managing the patient
    RIM Mapping.administrativeGender
    Person.religion
    DefinitionThe religious denomination to which a person professes affiliation
    Control0..1
    TypeCodeableConcept from Religion
    RequirementsThe religion of a person may influence ancilliary processes around the provision of healthcare, and may provide general advice with regard to diet, etc
    CommentsNot all people have a formal religious affiliation
    RIM Mapping.religiousAffiliationCode
    Person.race
    Definitionblah balh
    Control0..*
    TypeCodeableConcept from Race
    RequirementsThis is added because many jurisdictions insisted on it
    CommentsSome places do not use this!
    RIM Mapping.raceCode
    Person.qualification
    DefinitionThe qualifications a person has, including formal educational achievements, accreditations, and current certifications. All these qualifications may be used to determine what roles a person may play in a healthcare environment
    Control0..*
    RequirementsFor many persons in healthcare, it is necessary to track the qualifications a person has - formal.
    RIM Mapping.plays:Role(classCode='QUAL')
    Person.qualification.identifier
    DefinitionThe identifier of a qualification
    Control0..1
    TypeIdentifier
    RequirementsAllows a link back to a qualification registry, if one exists
    RIM Mapping.identifier
    Person.qualification.code
    DefinitionThe type of the qualification
    Control0..1
    TypeCodeableConcept from Qualifications
    Requirementscommonly used to determine the roles a person may play
    RIM Mapping.code
    Person.qualification.institution
    DefinitionThe organisation that confered/confers the qualification
    Control0..1
    TypeResource(Organization)
    RequirementsMay determine the significance of the qualification, and allows a link back to a qualification registry, if one exists
    RIM Mapping.scopedBy:Organization
    Person.qualification.period
    DefinitionThe period for which a qualification is held
    Control0..1
    TypePeriod
    RequirementsSome qualifications are only conferred for a limited time period and must be re-acquired or forfeited
    CommentsFormal degrees may have a known start date, but no end date
    RIM Mapping.effectiveTime:IVL_TS
    Person.language
    DefinitionA language spoken by the person, with proficiency
    Control0..*
    RequirementsIf a patient does not speak the local language, interpreters may be required, so languages spoken and profiency is an important things to keep track of both for patient and other persons of interest
    CommentsIf no language is specified, this *implies* that the default local language is spoken
    RIM Mapping.LanguageCommunicationCode
    Person.language.code
    DefinitionA code that identifies the language
    Control1..1
    Typecode from Language
    CommentsSo just ISO 639-3? Not allowing ENG-CA or something?
    RIM Mapping.languageCode
    Person.language.use
    DefinitionA code the describes how well the language is spoken
    Control0..1
    Typecode from LanguageUse
    CommentsNo differentiation is made between spoken and written functionality here
    RIM Mapping.proficiencyLanguageCode
    Person.relatedPerson
    DefinitionOther persons who are related to this person. The relationship might be one of several types: kin (familial or marital), financial or legal (such as guardian), biological (e.g. donor, donation-recipient) or casual (i.e. friend).
    Control0..*
    RequirementsNeed to be able to track next of kin, or other people who may need to contacted/consulting regarding the patient's healthcare status or who might otherwise influence their treatment
    RIM Mapping.plays:Role(classCode='REL')
    Person.relatedPerson.identifier
    DefinitionIdentifier the related person - may be a full link to a Person resource, or some other kind of identifier
    Control0..1
    TypeHumanId
    Requirementsmay have an identifier for the person that can be used to source contact details
    RIM Mapping.scopedBy:Person.identifier
    Person.relatedPerson.role
    DefinitionCode that specifies how this person is related to the subject. A code is required.
    Control1..1
    TypeCodeableConcept from PersonRelationship
    RequirementsNeed to know how the person is related
    RIM Mapping.code
    Person.relatedPerson.name
    DefinitionA name should be specified for the related person
    Control0..1
    TypeHumanName
    RIM Mapping.scopedBy:Person.name
    Person.relatedPerson.contact
    DefinitionContact details (phone, email etc) should be provided for the person
    Control0..*
    TypeContact
    RIM Mapping.scopedBy:Person.telecom
    Person.extension
    DefinitionSee Extensions
    Control0..*
    TypeExtension
    Person.text
    DefinitionText summary of person, for human interpretation
    Control1..1
    TypeNarrative

    5.15: Resource Formal Definitions: Prescription

    The formal definitions for the Prescription (§3.8) resource.

    Prescription
    DefinitionDirections provided by a prescribing practitioner for a specific medication to be administered (and possibly) supplied to an individual
    Control1..1
    RequirementsUsed to record details about the prescribed medication, administration schedule, dosage and dispensing.
    RIM MappingSubstanceAdministration
    Prescription.id
    DefinitionMaster Resource Id, always first in all resources
    Control1..1
    Typeid
    Prescription.identifier
    DefinitionA identifier used in an external system and associated with this medication
    Control0..*
    TypeHumanId
    Must Understandtrue
    RequirementsPrescriptions are almost always assigned specific numerical identifiers
    RIM Mapping.id
    Prescription.status
    DefinitionActual status of the prescription
    Control1..1
    Typecode from PrescriptionStatus
    Must Understandtrue
    RIM Mapping.statusCode
    Prescription.patient
    DefinitionThe patient the prescription is prescribing medicine for
    Control1..1
    TypeResource(Patient)
    Must Understandtrue
    Prescription.prescriber
    DefinitionThe clinician or doctor prescribing the medication
    Control1..1
    TypeResource(Agent)
    Prescription.prescribed
    DefinitionDate/time on which the prescription was written
    Control1..1
    TypedateTime
    Prescription.dispense
    DefinitionDetails of the dispense as requested by the prescriber
    Control0..1
    Prescription.dispense.repeats
    DefinitionRequested number of repeats
    Control0..1
    Typeinteger
    CommentsDefault is "1"
    Prescription.dispense.quantity
    DefinitionRequested quantity per repeat
    Control1..1
    TypeQuantity
    Prescription.dispense.dispenser
    DefinitionPerson to fullfil the requested dispense
    Control0..1
    TypeResource(Agent|Organization)
    Prescription.medicine
    DefinitionThe one single medicatine, vaccine or therapeutic good prescribed in this prescription.
    Control1..1
    Prescription.medicine.identification
    DefinitionText and or Code(s) that identify the medicine
    Control0..1
    TypeCodeableConcept from MedicationKind
    Must Understandtrue
    To DoConformance should be "Required", not "Optional"
    Prescription.medicine.activeIngredient
    DefinitionThe substance in the medication formulation that is pharmaceutically active and is responsible for the medication's therapeutic effect
    Control0..*
    Prescription.medicine.activeIngredient.identification
    DefinitionCoded representation of active ingredient
    Control1..1
    TypeCodeableConcept from MedicationKind
    Prescription.medicine.activeIngredient.quantity[x]
    DefinitionQuantity of active ingredient expressed in relation to the whole of the prepared medicine
    Control0..1
    TypeRatio|code
    To DoBind to QuantityExceptions when tool supports polymorphic bindings
    Prescription.medicine.inactiveIngredient
    DefinitionIngredients in the medication that are not active
    Control0..*
    Prescription.medicine.inactiveIngredient.identification
    DefinitionCoded representation of the inactive ingredient
    Control1..1
    TypeCodeableConcept from MedicationKind
    Prescription.medicine.inactiveIngredient.quantity[x]
    DefinitionQuantity of inactive ingredient expressed in relation to the whole of the prepared medicine
    Control0..1
    TypeRatio|code
    To DoBind to QuantityExceptions when tool supports polymorphic bindings
    Prescription.administrationRequest
    DefinitionInstructions for the use of the medication. Includes details about the timing schedule, dosis amounts and additional usage instructions.
    Control1..1
    Prescription.administrationRequest.description
    DefinitionTextual description of the use of the medication.
    Control0..1
    Typestring
    CommentsCan contain more details than the structured information under this element, but must be in accordance with it. May not contain information about the medicine itself.
    Prescription.administrationRequest.totalPeriodicDosis
    DefinitionTotal dose per day/week or other period when more specific information is missing or cannot be expressed using the timing specifications.
    Control0..1
    TypeRatio
    RequirementsIt should be possible, as a last resort, to specify e.g. a daily dosis, even if more specific details are unknown
    Prescription.administrationRequest.start
    DefinitionFirst moment on which medication should be taken
    Control0..1
    TypedateTime
    Prescription.administrationRequest.end
    DefinitionLast moment on which medication should be taken
    Control0..1
    TypedateTime
    Prescription.administrationRequest.duration
    DefinitionTotal duration of administration
    Control0..1
    TypeQuantity
    Prescription.administrationRequest.numberOfAdministrations
    DefinitionMaximum number of separate administrations before the instruction ends.
    Control0..1
    Typeinteger
    Prescription.administrationRequest.dosageInstruction
    DefinitionSpecification of dose and schedule for administration
    Control1..*
    CommentsThe can be >1 dosage instruction to support administration of varying doses, resulting in 1 instruction per fixed dose.
    Prescription.administrationRequest.dosageInstruction.precondition
    DefinitionPrecondition for starting the administration specified in this instruction
    Control0..*
    TypeCodeableConcept from AdministrationPrecondition
    Prescription.administrationRequest.dosageInstruction.prn
    DefinitionPro re nate, "If necessary": Specifies whether administration depens on the state and symptoms of the patient
    Control0..1
    Typeboolean
    CommentsDefault is "false"
    Prescription.administrationRequest.dosageInstruction.additionalInstruction
    DefinitionAdditional details to guide administration. Especially relevant for medicine administered by patient
    Control0..*
    TypeCodeableConcept from AdministrationInstruction
    Prescription.administrationRequest.dosageInstruction.route
    DefinitionRoute of administration (oral, nasal, intravenous)
    Control0..1
    TypeCodeableConcept from AdministrationRoute
    CommentsSince the route of administration is generally determined by the choice of medication, it is not necessary to provide a value in route
    Prescription.administrationRequest.dosageInstruction.dose[x]
    DefinitionDose per administration, expressed in units of the (prepared) product
    Control1..1
    TypeQuantity|Range
    CommentsDose may be an interval, "2-3 tablets per 4 hours"
    Prescription.administrationRequest.dosageInstruction.rate
    DefinitionFlow-rate for IV
    Control0..1
    TypeQuantity
    Prescription.administrationRequest.dosageInstruction.schedule
    DefinitionSchedule for administration. If multiple are given, they are considered to be active in parrallel
    Control1..*
    TypeSchedule
    CommentsWill submit proposal to change Schedule type.
    Prescription.reason
    DefinitionDiagnosis which is the reason for prescribing this medicine
    Control0..1
    TypeCodeableConcept from PrescriptionReason
    Prescription.extension
    DefinitionSee Extensions
    Control0..*
    TypeExtension
    Prescription.text
    DefinitionText summary of the prescription, for human interpretation
    Control1..1
    TypeNarrative

    5.16: Resource Formal Definitions: Profile

    The formal definitions for the Profile (§1.6) resource.

    Profile
    DefinitionA Resource Profile - a statement of use of FHIR. May include constraints on Resources, Terminology Binding Statements and Extension Definitions
    Control1..1
    CommentsOften called a clinical template
    Profile.id
    DefinitionIdentifier for this profile
    Control1..1
    Typeid
    Must Understandtrue
    Profile.name
    DefinitionA free text natural language name identifying the Profile
    Control1..1
    Typestring
    CommentsNot expected to be globally unique
    Profile.version
    DefinitionThe official version of this profile - for external version specific references
    Control0..1
    Typestring
    RequirementsWhen communicating about the profile, a more semantically pleasing label may be needed.
    CommentsNote that if this is missing, the default version identifier for the profile is the version identifier for the resource that represents the profile itself
    Profile.author
    DefinitionDetails of the author who accepts responsibility for publishing the profile
    Control1..1
    RequirementsHelps establish the "authority/credibility" of the profile. May also allow for contact.
    CommentsUsually an organisation, but may be an individual
    Profile.author.name
    DefinitionThe name of the author
    Control1..1
    Typestring
    Profile.author.reference
    DefinitionReference to the author to assist a user in finding and communicating with the author
    Control0..*
    Typeuri
    Commentsmay be a web site, an email address, a telephone number (tel:), etc.
    Profile.description
    DefinitionA free text natural language description of the profile and its use
    Control1..1
    Typestring
    CommentsThis field can be used for things such as why the profile was written, comments about mis-use, instructions for clinical use and interpretation, literature references, examples from the paper world, etc.
    Profile.code
    DefinitionA set of terms from external terminologies that may be used to assist with indexing and searching of templates.
    Control0..*
    TypeCoding
    RequirementsAssist in searching for appropriate profiles
    Profile.status
    DefinitionIndicates where the profile exists in its overall life-cycle
    Control1..1
    Must Understandtrue
    RequirementsAllows filtering of profiles that are appropriate for use vs. not
    Profile.status.code
    DefinitionA coded value for the position of the profile within its life-cycle
    Control1..1
    Typecode from ResourceProfileStatus
    Must Understandtrue
    Profile.status.date
    DefinitionThe date that the current value for status was applied to the profile
    Control1..1
    TypedateTime
    Profile.status.comment
    DefinitionAdditional commentary related to the profile's status
    Control0..1
    Typestring
    Profile.import
    DefinitionOther profiles that define extensions and bindings that are used in this profile
    Control0..*
    Profile.import.uri
    DefinitionThe identifier for the profile, ideally the URL it can be retrieved from.
    Control1..1
    Typeuri
    CommentsAny resource definitions from these other profiles are not imported
    Profile.import.prefix
    DefinitionThe short label used for display of the profile when uniquely identifying imported extensions
    Control0..1
    Typestring
    CommentsProfile instances are always conveyed using full URIs - the prefix is solely for use by entry and rendering tools.
    Profile.bundle
    DefinitionIf this profile describes a bundle, the first resource in the bundle (usually a MessageHeader or a DocumentHeader)
    Control0..1
    Typecode from ResourceType
    Profile.resource
    DefinitionA constraint statement about what contents a profile may have
    Control0..*
    To DoConsider adding elements to support capturing events and/or search criteria
    Profile.resource.type
    DefinitionThe Type of the resource being described
    Control1..1
    Typecode from ResourceType
    To DoConsider allowing data type here too
    Profile.resource.profile
    DefinitionReference to a resource profile that includes the constraint statement that applies to this resource
    Control0..1
    Typeuri
    Profile.resource.name
    DefinitionThe name of this resource constraint statement (to refer to it from other resource constraints)
    Control0..1
    Typestring
    CommentsThis field is the target for a resource.profile
    Profile.resource.purpose
    DefinitionHuman summary: why describe this resource?
    Control0..1
    Typestring
    Profile.resource.element
    DefinitionCaptures constraints on each element within the resource
    Control0..*
    Profile.resource.element.path
    DefinitionThe path identifies the element
    Control1..1
    Typestring
    Profile.resource.element.name
    DefinitionA unique name referring to a specific set of constraints applied to this element.
    Control0..1
    Typestring
    CommentsThe name must be unique within the profile and all imported profiles within the context of the constrained resource element. (Though to avoid confusion, uniqueness across all elements is recommended.)
    Profile.resource.element.definition
    DefinitionDefinition of the content of the element to provide a more specific definition than that contained for the element in the base resource.
    Control1..1
    CommentsThe definition must be a proper constraint on the definition of the base resource.
    Profile.resource.element.definition.short
    DefinitionA concise definition that is shown in the concise XML format that summarises profiles
    Control1..1
    Typestring
    CommentsMay change the term to provide language more appropriate to the context of the profile or to reflect slicing.
    Profile.resource.element.definition.formal
    Definition The definition must be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource
    Control1..1
    Typestring
    RequirementsTo allow a user to clarify the usage of an element in a particular context
    CommentsIt is easy for a different definition to change the meaning of an element and this can have nasty downstream consequences. Please be careful when providing definitions
    Profile.resource.element.definition.comments
    DefinitionComments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc.
    Control0..1
    Typestring
    Profile.resource.element.definition.requirements
    DefinitionExplains why this element is needed and why it's been constrained as it has
    Control0..1
    Typestring
    Profile.resource.element.definition.synonym
    DefinitionIdentifies additional names by which this element might also be known
    Control0..*
    Typestring
    RequirementsAllows for better easier recognition of the element by multiple communities, including international communities.
    Profile.resource.element.definition.min
    DefinitionThe minimum number of times this element must appear in the instance
    Control1..1
    Typeinteger
    Profile.resource.element.definition.max
    DefinitionThe maximum number of times this element is permitted to appear in the instance
    Control1..1
    Typestring
    Profile.resource.element.definition.type
    DefinitionThe data type or resource that the value of this element is permitted to be
    Control0..*
    RequirementsThe Type of the element can be left blank, in which case the type is inherited from the resource. The type can only be listed in this field if it is an allowed option in the base resource.
    Profile.resource.element.definition.type.code
    DefinitionData type or Resource
    Control1..1
    Typecode from DataType
    Profile.resource.element.definition.type.profile
    DefinitionIdentifies a profile that must hold for resources referenced as the type of this element.
    Control0..1
    Typeuri
    CommentsThe reference might be a simple name in the form #[name], which is a reference to another named constraint in a resource - where the resource contains more than one constraint, or a URL which is a reference to a resource Profile
    To DoConsider relaxing the constraint that this can only apply to resources
    Profile.resource.element.definition.nameReference
    DefinitionIdentifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element
    Control0..1
    Typestring
    CommentsIf child components of this element are defined, they act as constraints on the referenced slice.
    Profile.resource.element.definition.value[x]
    DefinitionSpecifies a value that must hold for this element in the instance.
    Control0..1
    Type*
    CommentsTo specify a fixed value for a complex data type, include the child elements for the type and specify fixed values for each property independently.
    To DoAdd 10 as an additional invariant when tooling supports it.
    Profile.resource.element.definition.maxLength
    DefinitionIndicates the shortest length that must be supported by conformant instances without truncation.
    Control0..1
    Typeinteger
    CommentsIf not specified, there is no conformance expectation for length support.
    To DoNeed to flesh this out more - leverage v2 approach
    Profile.resource.element.definition.dataAbsentReason
    DefinitionIf true then the dataAbsentReason attribute is permitted, otherwise not
    Control1..1
    Typeboolean
    Profile.resource.element.definition.condition
    DefinitionA reference to an invariant that may make additional statements about the cardinality in the instance
    Control0..*
    Typeid
    Profile.resource.element.definition.constraint
    DefinitionFormal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance.
    Control0..*
    CommentsConstraints should be declared on the "context" element - the lowest element in the hierarchy that is common to all nodes referenced by the constraint
    Profile.resource.element.definition.constraint.id
    DefinitionAllows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality.
    Control1..1
    Typeid
    Profile.resource.element.definition.constraint.name
    DefinitionUsed to label the constraint in OCL or in short displays incapable of displaying the full human description
    Control0..1
    Typestring
    Profile.resource.element.definition.constraint.severity
    DefinitionIdentifies the impact constraint violation has on the conformance of the instance.
    Control1..1
    Typecode
    Profile.resource.element.definition.constraint.human
    DefinitionThis is the text that describes the constraint in messages identifying that the constraint has been violated
    Control1..1
    Typestring
    CommentsShould be expressed in business terms as much as possible.
    Profile.resource.element.definition.constraint.xpath
    DefinitionXPath expression of constraint
    Control1..1
    Typestring
    RequirementsUsed in Schematron tests of the validity of the resource.
    CommentsElements must use "f" as the namespace prefix and must not use any other prefixes.
    Profile.resource.element.definition.constraint.ocl
    DefinitionOCL expression of constraint
    Control0..1
    Typestring
    Profile.resource.element.definition.mustSupport
    DefinitionIf true, conformant resource authors must be capable of providing a value for the element and resource consumers must be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported.
    Control0..1
    Typeboolean
    RequirementsAllows a profile to set expectations for system capabilities beyond merely respecting cardinality constraints.
    Comments"Something useful" is context dependent. Key test is what would a reasonable observer expect of a system that explicitly claims to "support" this element
    Profile.resource.element.definition.mustUnderstand
    DefinitionIf true, the element cannot be ignored by systems unless they recognize the element and a pre-determination has been made that it is not relevant to their particular system.
    Control0..1
    Typeboolean
    RequirementsAllows elements to be introduced into a specification that can't safely be ignored by applications that don't recognize them
    CommentsMustUnderstand elements can be ignored by applications that recognize the element and know that the element is not relevant in the context of their system.
    Profile.resource.element.definition.binding
    DefinitionIdentifies the set of codes that applies to this element if a data type supporting codes is used.
    Control0..1
    Typestring
    Profile.resource.element.definition.mapping
    DefinitionIdentifies a concept from an external specification that roughly corresponds to this element.
    Control0..*
    RequirementsProvides guidance to implementers familiar with or converting content from other specifications.
    CommentsMappings are not necessarily specific enough for safe translation.
    Profile.resource.element.definition.mapping.target
    DefinitionThe name of the specification is mapping is being expressed to.
    Control1..1
    Typestring
    CommentsHL7 will provide guidelines for the name strings to use for common specifications.
    Profile.resource.element.definition.mapping.map
    DefinitionExpresses what part of the target specification corresponds to this element
    Control0..1
    Typestring
    CommentsFor most mappings, the syntax is undefined. A syntax will be provided for mappings to the RIM. Multiple mappings may be possible and may include constraints on other resource elements that identify when a particular mapping applies.
    Profile.resource.element.bundled
    DefinitionWhether the Resource that is the value for this element is included in the bundle, if the profile is specifying a bundle
    Control0..1
    Typeboolean
    CommentsIf context includes bundling
    Profile.resource.element.closed
    DefinitionIndicates whether the set of slices defined is "exhaustive". I.e. Have all the possible variants for the repeating element been defined? If true, then no new slices can be created off the base element in derived profiles - though existing slices can be further sliced if they are defined as repeating elements.
    Control0..1
    Typeboolean
    Profile.extensionDefn
    DefinitionAn extension defined as part of the profile
    Control0..*
    Profile.extensionDefn.code
    DefinitionA unique code (within the profile) used to identify the extension.
    Control1..1
    Typecode
    Profile.extensionDefn.contextType
    DefinitionIdentifies the type of context to which the extension applies
    Control1..1
    Typecode from ExtensionContext
    Profile.extensionDefn.context
    DefinitionIdentifies the types of resource or data type elements to which the extension can be applied.
    Control1..*
    Typestring
    Profile.extensionDefn.definition
    DefinitionDefinition of the extension and its content
    Control1..1
    Type@Profile.resource.element.definition
    Profile.binding
    DefinitionDefines a linkage between a vocabulary binding name used in the profile (or expected to be used in profile importing this one) and a value set or code list.
    Control0..*
    Profile.binding.name
    DefinitionThe name to be associated with this set of codes.
    Control1..1
    Typestring
    CommentsMust be unique within the profile. If the same name as an imported profile, will override the imported binding (and must be a proper constraint on the imported binding)
    Profile.binding.definition
    DefinitionDescribes the intended use of this particular set of codes
    Control0..1
    Typestring
    Profile.binding.type
    DefinitionIdentifies how the set of codes for this binding is being defined.
    Control1..1
    Typecode from BindingType
    Profile.binding.isExtensible
    DefinitionIf true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone.
    Control1..1
    Typeboolean
    Profile.binding.conformance
    DefinitionIndicates the degree of conformance expectations associated with this binding
    Control1..1
    Typecode from BindingConformance
    Profile.binding.reference
    DefinitionPoints to the value set or external definition that identifies the set of codes to be used.
    Control0..1
    Typeuri
    CommentsFor value sets, this should point to a ValueSet resource. The reference may be version-specific or not.
    Profile.binding.concept
    DefinitionIdentifies the codes forming the code list for the binding
    Control0..*
    Profile.binding.concept.code
    DefinitionIdentifies the code referenced or being defined as part of the binding
    Control1..1
    Typecode
    Profile.binding.concept.system
    DefinitionIdentifies the system in which the referenced code is defined.
    Control0..1
    Typeuri
    CommentsIf no system is specified, then the id for the profile is combined with the binding name to determine an implicit system uri.
    Profile.binding.concept.display
    DefinitionIdentifies the text to be displayed to the user for this code. If none provided, then the code itself is displayed.
    Control0..1
    Typestring
    Profile.binding.concept.definition
    DefinitionA free-text description of the meaning of this code
    Control1..1
    Typestring
    CommentsDefinition should not overlap with that of any other concepts in the code list
    Profile.extension
    DefinitionSee Extensions
    Control0..*
    TypeExtension
    Profile.text
    DefinitionText summary of resource profile for human interpretation
    Control1..1
    TypeNarrative

    5.17: Resource Formal Definitions: ValueSet

    The formal definitions for the ValueSet (§2.6) resource.

    ValueSet
    DefinitionValue Set - a set of defined codes from one or more code systems that may be bound to a context
    Control1..1
    RIM MappingN/A
    ValueSet.id
    DefinitionIdentifier for this resource that represents the value set
    Control1..1
    Typeid
    Must Understandtrue
    RIM MappingN/A
    ValueSet.name
    DefinitionA free text natural language name identifying the value set
    Control1..1
    Typestring
    RequirementsSupport human navigation
    CommentsNot expected to be unique
    RIM MappingN/A
    ValueSet.author
    DefinitionDetails of the author who accepts responsibility for publishing the value set
    Control1..1
    RequirementsIdentifies responsibility
    CommentsUsually an organisation, but may be an individual
    RIM MappingN/A
    ValueSet.author.name
    DefinitionThe name of the author
    Control1..1
    Typestring
    RIM MappingN/A
    ValueSet.author.reference
    DefinitionSome way of reaching or finding the author.
    Control0..1
    Typeuri
    RequirementsAllow a user to find and communicate with the author
    CommentsMay be a web site, an email address, a telephone number
    RIM MappingN/A
    ValueSet.description
    DefinitionA free text natural language description of the value set - contents, reason for definition, conditions of use, etc.
    Control1..1
    Typestring
    RequirementsHuman understandibility
    RIM MappingN/A
    ValueSet.status
    DefinitionThe status of the value set
    Control1..1
    Typecode from ValueSetStatus
    Must Understandtrue
    RequirementsIdentify when/if the value set should be used.
    RIM MappingN/A
    ValueSet.date
    DefinitionThe date that the value set status was last changed
    Control1..1
    TypedateTime
    RequirementsNeed to know when a value set was first legal for use or became withdrawn or replaced.
    CommentsNote that this is not the same as the resource last-modified-date, since the resource may be a secondary representation of the value set
    RIM MappingN/A
    ValueSet.identifier
    DefinitionThe identifier that is used to identify this value set when it is referenced in a specification, model, design or an instance
    Control1..1
    Typeid
    CommentsThis is not the same as the resource id because the resource may not be the definitive representation of the value set. If the resource is the definitive representation, this may have the same value as the .id. There may be multiple versions of the value set that have this same identifier
    RIM MappingN/A
    ValueSet.version
    DefinitionThe identifier that is used to identify this version of the value set when it is referenced in a specification, model, design, or instance
    Control1..1
    Typeid
    RIM MappingN/A
    ValueSet.restricts
    DefinitionAn assertion that this value set is a restriction on another value set - that it only includes codes that are part of the other value set. The value set itself must ensure that this is true - the contents of the value set are not automatically bounded by the contents of any value set identified here. This allows profile tooling to reason about the relationships between value sets without having to determine the value set contents
    Control0..*
    Typeuri
    CommentsIn most cases, the claim of restriction could be validated in a particular context of use, but it is not necessary to do so
    RIM MappingN/A
    ValueSet.import
    DefinitionIncludes the contents of the referenced value set as part of the contents of this value set
    Control0..*
    Typeuri
    RIM MappingN/A
    ValueSet.include
    DefinitionInclude one or more codes from a code system
    Control0..*
    RIM MappingN/A
    ValueSet.include.system
    DefinitionThe code system from which the selected codes come from
    Control1..1
    Typeuri
    CommentsSee [[Coding.system]] for further documentation
    RIM MappingN/A
    ValueSet.include.version
    DefinitionThe version of the code system that the codes are selected from
    Control0..1
    Typestring
    CommentsThis is used when selecting the descendents of a concept - they may change between versions. If no version is specified, then the exact contents of the value set may not be known until a context of use binds it to a particular version
    RIM MappingN/A
    ValueSet.include.mode
    DefinitionThe mode of selection - whether the code itself, and/or its descendants are being selected
    Control1..1
    Typecode from CodeSelectionMode
    CommentsIt is an error to include codes that are marked "abstract" in a value set that is used directly in a specification, but not an error to include an abstract code in a value set not destined for this use
    RIM MappingN/A
    ValueSet.include.code
    DefinitionSpecifies a code or concept to be included or excluded as specified by the mode from the value set
    Control0..*
    Typecode
    Commentsexpressions are allowed if defined by the underlying code system
    RIM MappingN/A
    ValueSet.include.filter
    DefinitionSelect concepts by specify a matching criteria based on the properties defined by the system. If multiple filters are specified, they must all be true
    Control0..*
    CommentsSelecting codes by specifying filters based on properties is only possible where the underlying code system defines appropriate properties. Note that in some cases, the underlying code system defines the logical concepts but not the literal codes for the concepts. In such cases, the literal definitions may be provided by a third party
    RIM MappingN/A
    ValueSet.include.filter.property
    DefinitionA code that identifies a property defined in the code system
    Control1..1
    Typecode
    RIM MappingN/A
    ValueSet.include.filter.op
    DefinitionThe kind of operation to perform as part of the filter criteria
    Control1..1
    Typecode from FilterOperator
    RIM MappingN/A
    ValueSet.include.filter.value
    DefinitionThe match value may be either a code defined by the system, or a string value which is used a regex match on the literal string of the property value
    Control1..1
    Typecode
    CommentsUse regex matching with care - full regex matching on every SNOMED-CT term is prohibitive, for example
    RIM MappingN/A
    ValueSet.exclude
    DefinitionExclude one or more codes from the value set
    Control0..*
    Type@ValueSet.include
    Commentsusually this is used to selectively exclude codes that were included by subsumption in the inclusions
    RIM MappingN/A
    ValueSet.extension
    DefinitionSee Extensions
    Control0..*
    TypeExtension
    RIM MappingN/A
    ValueSet.text
    DefinitionText summary of value set for human interpretation
    Control1..1
    TypeNarrative
    RIM MappingN/A

    This is an old version of FHIR retained for archive purposes. Do not use for anything else
    Implementers are welcome to experiment with the content defined here, but should note that the contents are subject to change without prior notice.
    © HL7.org 2011 - 2012. FHIR v0.05 generated on Sun, Sep 9, 2012 03:28+1000. License