Guidance on how to interpret the contents of this table can be found here

0. Observation
Definition

Measurements and simple assertions made about a patient, device or other subject.

ShortMeasurements and simple assertions
Comments

Used for simple observations such as device measurements, laboratory atomic results, vital signs, height, weight, smoking status, comments, etc. Other resources are used to provide context for observations such as laboratory reports, etc.

Control0..*
Is Modifierfalse
Must Supportfalse
Summaryfalse
Alternate NamesVital Signs, Measurement, Results, Tests
2. Observation.category
Definition

A code that classifies the general type of observation being made. In this profile, fixed to "imaging".

ShortClassification of type of observation
Comments

In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.

Control1..1
TypeCodeableConcept(Codeable Concept (IPS))
Is Modifierfalse
Must Supportfalse
Summaryfalse
Requirements

Used for filtering what observations are retrieved and displayed.

SlicingThis element introduces a set of slices on Observation.category. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • pattern @ $this
  • 4. Observation.category.coding
    Definition

    A reference to a code defined by a terminology system.

    ShortA reference to a code defined by a terminology system
    Comments

    Codes may be defined very casually in enumerations or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information.

    Control1..1
    This element is affected by the following invariants: ele-1
    TypeCoding(Coding with translations)
    Is Modifierfalse
    Must Supportfalse
    Requirements

    Allows for alternative encodings within a code system, and translations to other code systems.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    6. Observation.category.coding.system
    Definition

    The identification of the code system that defines the meaning of the symbol in the code.

    ShortIdentity of the terminology system
    Comments

    The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

    Control0..1
    Typeuri
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summarytrue
    Requirements

    Need to be unambiguous about the source of the definition of the symbol.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    8. Observation.category.coding.code
    Definition

    A 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 (e.g. post-coordination).

    ShortSymbol in syntax defined by the system
    Control0..1
    Typecode
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summarytrue
    Requirements

    Need to refer to a particular code in the system.

    Pattern Valuelaboratory
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    10. Observation.category.coding.display
    Definition

    A representation of the meaning of the code in the system, following the rules of the system.

    ShortRepresentation defined by the system
    Control0..1
    Typestring
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summarytrue
    Requirements

    Need to be able to carry a human-readable meaning of the code for readers that do not know the system.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    12. Observation.category.text
    Definition

    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.

    ShortPlain text representation of the concept
    Comments

    Very often the text is the same as a displayName of one of the codings.

    Control0..1
    Typestring
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summarytrue
    Requirements

    The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    14. Observation.category:radiology
    Slice Nameradiology
    Definition

    A code that classifies the general type of observation being made.

    ShortClassification of type of observation
    Comments

    In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.

    Control1..1
    BindingThe codes SHOULD be taken from ObservationCategoryCodes
    (preferred to http://hl7.org/fhir/ValueSet/observation-category)

    Codes for high level observation categories.

    TypeCodeableConcept
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Requirements

    Used for filtering what observations are retrieved and displayed.

    Pattern Value{
      "coding" : [{
        "system" : "http://terminology.hl7.org/CodeSystem/observation-category",
        "code" : "imaging"
      }]
    }
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    16. Observation.code
    Definition

    Describes what was observed. Sometimes this is called the observation "name". In this profile the code of the containing observation (the organizer result in the CDA implementation) may correspond to the procedure code (e.g. Chest X-Ray).

    ShortConcept - reference to a terminology or just text
    Comments

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

    Control1..1
    This element is affected by the following invariants: ele-1
    BindingThe codes SHOULD be taken from Results Radiology Observation - IPS
    (preferred to http://hl7.org/fhir/uv/ips/ValueSet/results-radiology-observations-uv-ips)
    TypeCodeableConcept(Codeable Concept (IPS))
    Is Modifierfalse
    Must Supportfalse
    Requirements

    Knowing what kind of observation is being made is essential to understanding the observation.

    LabelDiagnostic Procedure Code
    Alternate NamesName
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    18. Observation.subject
    Definition

    The patient, or group of patients, location, or device whose characteristics (direct or indirect) are described by the observation and into whose record the observation is placed. Comments: Indirect characteristics may be those of a specimen, fetus, donor, other observer (for example a relative or EMT), or any observation made about the subject.

    In this profile is constrained to the patient

    ShortWho and/or what the observation is about
    Comments

    One would expect this element to be a cardinality of 1..1. The only circumstance in which the subject can be missing is when the observation is made by a device that does not know the patient. In this case, the observation SHALL be matched to a patient through some context/channel matching technique, and at this point, the observation should be updated.

    Control1..1
    TypeReference(RareLink IPS Patient)
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Requirements

    Observations have no value if you don't know who or what they're about.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    20. Observation.subject.reference
    Definition

    A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.

    ShortLiteral reference, Relative, internal or absolute URL
    Comments

    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 across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

    Control1..1
    This element is affected by the following invariants: ref-1
    Typestring
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    22. Observation.subject.identifier
    Definition

    An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.

    ShortLogical reference, when literal reference is not known
    Comments

    When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

    When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

    Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

    Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

    NoteThis is a business identifier, not a resource identifier (see discussion)
    Control0..1
    TypeIdentifier
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    24. Observation.effective[x]
    Definition

    The time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the "physiologically relevant time". This is usually either the time of the procedure or of specimen collection, but very often the source of the date/time is not known, only the date/time itself.

    ShortClinically relevant time/time-period for observation
    Comments

    At least a date should be present unless this observation is a historical report. For recording imprecise or "fuzzy" times (For example, a blood glucose measurement taken "after breakfast") use the Timing datatype which allow the measurement to be tied to regular life events.

    Control1..1
    TypeChoice of: dateTime, Period
    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summarytrue
    Requirements

    Knowing when an observation was deemed true is important to its relevance as well as determining trends.

    Alternate NamesOccurrence
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ips-1: Datetime must be at least to day. ($this.ofType(dateTime).empty() or ($this as dateTime).toString().length() >= 8)
    26. Observation.effective[x].extension:data-absent-reason
    Slice Namedata-absent-reason
    Definition

    Provides a reason why the effectiveTime is missing.

    Shorteffective[x] absence reason
    Control0..1
    TypeExtension(Data Absent Reason) (Extension Type: code)
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    28. Observation.performer
    Definition

    Who was responsible for asserting the observed value as "true".

    ShortWho is responsible for the observation
    Control1..*
    TypeReference(Practitioner (IPS), PractitionerRole (IPS), Organization (IPS), CareTeam, Patient (IPS), RelatedPerson)
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Requirements

    May give a degree of confidence in the observation and also indicates where follow-up questions should be directed.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    30. Observation.value[x]:valueString
    Slice NamevalueString
    Definition

    The information determined as a result of making the observation, if the information has a simple value.

    ShortActual result
    Comments

    An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

    Control0..1
    This element is affected by the following invariants: obs-7
    Typestring
    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summarytrue
    Requirements

    An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

    LabelOverall Conclusion
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    32. Observation.component
    Definition

    Some observations have multiple component observations. These component observations are expressed as separate code value pairs that share the same attributes. Examples include systolic and diastolic component observations for blood pressure measurement and multiple component observations for genetics observations.

    ShortComponent results
    Comments

    For a discussion on the ways Observations can be assembled in groups together see Notes below.

    Control0..*
    TypeBackboneElement
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Requirements

    Required if not(exists(Observation.valueString))

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    SlicingThis element introduces a set of slices on Observation.component. The slices areUnordered and Closed, and can be differentiated using the following discriminators:
    • type @ value