FHIR Release 3 (STU)

Переводит компания Health Samurai . Приглашаем поучаствовать в русификации стандарта FHIR: GitHub , Email.

10.1 Ресурс Observation - Назначение

Orders and Observations Work GroupMaturity Level: 5 Trial UseCompartments: Device, Encounter, Patient, Practitioner, RelatedPerson

Измерения и простые утверждения, сделанные о пациенте, устройстве или другом субъекте.

This resource is an event resource from a FHIR workflow perspective - see Workflow.

Observations (наблюдения) являются центральным элементом в здравоохранении, используемыми для подтверждения диагнозов, мониторинга прогресса, определения базисных линий и шаблонов, и даже для ввода демографических показателей. Большинство наблюдений представляют собой утверждения в виде простых пар имя/значение с некоторыми метаданными, однако же другие наблюдения группируют другие наблюдения вместе логически, или даже являются многокомпонентными наблюдениями. Обратите внимание, что ресурс DiagnosticReport обеспечивает клинический контекст для целого ряда наблюдений and the Observation resource is referenced by DiagnosticReport to represent lab, imaging, and other clinical and diagnostic data to form a complete report.

Варианты использования ресурса Observation:

The following core profiles for the Observation resource have been defined as well. If implementations use this Resource when expressing the profile-specific concepts as structured data, they SHALL conform to the following profiles:

Profile Description
Vital signs The FHIR Vital Signs profile sets a minimum expectations for the Observation Resource to record, search and fetch the vital signs (e.g. temperature, blood pressure, respiration rate, etc) associated with a patient

In contrast to the Observation resource, the DiagnosticReport resource typically includes additional clinical context and some mix of atomic results, images, imaging reports, textual and coded interpretation, and formatted representations. Laboratory reports, pathology reports, and imaging reports should be represented using the DiagnosticReport resource. The Observation resource is referenced by the DiagnosticReport to provide the atomic results for a particular investigation.

"Laboratories routinely have a variable that is summative across a series of discrete variables - these are usually called 'impressions' or 'interpretations'. Sometimes they are algorithmically specified and sometimes they have the imprimatur of pathologists and they are conveyed in Observation or DiagnosticReport instead of the Clinical Impression resource. However, the Observation resources should not be used to record clinical diagnosis about a patient or subject that are typically captured in the Condition resource or the ClinicalImpression resource.

The Observation resource is often referenced by the Condition resource to provide specific subjective and objective data to support its assertions. There are other resources that can be considered "specializations" of the Observation resource and should be used for those specific contexts and use cases. They include AllergyIntolerance resource, FamilyMemberHistory resource, Procedure resource, and Questionnaire resource. In some cases, such as when source data is coming from an HL7 v2 feed, a system may not have information that allows it to distinguish diagnosis, allergy and other "specialized" types of observations from lab, vital sign and other observation types intended to be conveyed with this resource. In those circumstances, such specialized observations may also appear using this resource.

The Media resource captures a specific type of observation whose value is audio, video or image data. This resource is the preferred representation of such forms of information as it exposes the metadata relevant for interpreting the information. However, in some implementations, media information may appear in Observation susing the valueAttachment element and systems should be aware of this possibility.

На этот ресурс ссылаются AdverseEvent, ChargeItem, ClinicalImpression, Communication, CommunicationRequest, Condition, DiagnosticReport, FamilyMemberHistory, Goal, Immunization, ImmunizationRecommendation, MedicationAdministration, MedicationRequest, MedicationStatement, Procedure, ProcedureRequest, QuestionnaireResponse, ReferralRequest и Sequence

Структура

ИмяФлагиКард.ТипОписание и ограниченияdoco
.. Observation IDomainResourceИзмерения и простые утверждения
+ If code is the same as a component code then the value element associated with the code SHALL NOT be present
+ Элемент dataAbsentReason должен присутствовать только в том случае, если Observation.value[x] отсутствует
Элементы, определённые в прародителе: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierBusiness Identifier for observation
... basedOn Σ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ProcedureRequest | ReferralRequest)Fulfills plan, proposal or order
... status ?!Σ1..1coderegistered | preliminary | final | amended +
ObservationStatus (Required)
... category 0..*CodeableConceptКлассификация типов наблюдений
Observation Category Codes (Preferred)
... code Σ1..1CodeableConceptТип наблюдения (код/тип)
LOINC Codes (Example)
... subject Σ0..1Reference(Patient | Group | Device | Location)О ком и/или о чем оно
... context 0..1Reference(Encounter | EpisodeOfCare)Событие здравоохранения, во время которого было сделано это наблюдение
... effective[x] Σ0..1Клинически значимое время/период времени наблюдения
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... issued Σ0..1instantДата/время, когда было предоставлено
... performer Σ0..*Reference(Practitioner | Organization | Patient | RelatedPerson)Кто несет ответственность за это наблюдение
... value[x] ΣI0..1Непосредственно сам результат
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueStringstring
.... valueBooleanboolean
.... valueRangeRange
.... valueRatioRatio
.... valueSampledDataSampledData
.... valueAttachmentAttachment
.... valueTimetime
.... valueDateTimedateTime
.... valuePeriodPeriod
... dataAbsentReason I0..1CodeableConceptПочему результат отсутствует
Observation Value Absent Reason (Extensible)
... interpretation 0..1CodeableConceptВысокое, низкое, нормальное и т. п
Observation Interpretation Codes (Extensible)
... comment 0..1stringКомментарии к результату
... bodySite 0..1CodeableConceptНаблюдаемая часть тела
SNOMED CT Body Structures (Example)
... method 0..1CodeableConceptКаким образом проводилось
Observation Methods (Example)
... specimen 0..1Reference(Specimen)Образец, используемый для этого наблюдения
... device 0..1Reference(Device | DeviceMetric)(Measurement) Device
... referenceRange I0..*BackboneElementРуководство по интерпретации
+ Должен быть указан хотя бы один элемент из low, high или text
.... low I0..1SimpleQuantityНижняя граница диапазона, если уместно
.... high I0..1SimpleQuantityВерхняя граница диапазона, если уместно
.... type 0..1CodeableConceptReference range qualifier
Observation Reference Range Meaning Codes (Extensible)
.... appliesTo 0..*CodeableConceptReference range population
Observation Reference Range Applies To Codes (Example)
.... age 0..1RangeПрименимый возрастной диапазон, если необходимо
.... text 0..1stringТекстовое описание диапазона нормальных значений в наблюдении
... related Σ0..*BackboneElementРесурс, связанный с данным наблюдением
.... type 0..1codehas-member | derived-from | sequel-to | replaces | qualified-by | interfered-by
ObservationRelationshipType (Required)
.... target 1..1Reference(Observation | QuestionnaireResponse | Sequence)Ресурс, связанный с данным ресурсом
... component Σ0..*BackboneElementРезультаты компонента
.... code Σ1..1CodeableConceptТип наблюдения компонента (код/тип)
LOINC Codes (Example)
.... value[x] Σ0..1Фактический результат компонента
..... valueQuantityQuantity
..... valueCodeableConceptCodeableConcept
..... valueStringstring
..... valueRangeRange
..... valueRatioRatio
..... valueSampledDataSampledData
..... valueAttachmentAttachment
..... valueTimetime
..... valueDateTimedateTime
..... valuePeriodPeriod
.... dataAbsentReason I0..1CodeableConceptПочему результат компонента отсутствует
Observation Value Absent Reason (Extensible)
.... interpretation 0..1CodeableConceptВысокое, низкое, нормальное и т. п
Observation Interpretation Codes (Extensible)
.... referenceRange 0..*see referenceRangeРуководство по интерпретации результатов компонента

doco Документация по этому формату

UML-диаграмма (Legend)

Observation (DomainResource)A unique identifier assigned to this observationidentifier : Identifier [0..*]A plan, proposal or order that is fulfilled in whole or in part by this eventbasedOn : Reference [0..*] CarePlan|DeviceRequest| ImmunizationRecommendation|MedicationRequest|NutritionOrder| ProcedureRequest|ReferralRequest (this element modifies the meaning of other elements)status : code [1..1] Codes providing the status of an observation. (Strength=Required)ObservationStatus! A code that classifies the general type of observation being madecategory : CodeableConcept [0..*] . (Strength=Preferred)Observation Category ? , . code : CodeableConcept [1..1] . (Strength=Example)LOINC ?? , , , ( ) , . : , , , ( ), , subject : Reference [0..1] Patient|Group|Device|Location ( ), context : Reference [0..1] Encounter|EpisodeOfCare , . - - "physiologically relevant time". , / , /effective[x] : Type [0..1] dateTime|Period , , issued : instant [0..1] , ""performer : Reference [0..*] Practitioner|Organization|Patient| RelatedPerson , , value[x] : Type [0..1] Quantity|CodeableConcept|string|boolean| Range|Ratio|SampledData|Attachment|time|dateTime|Period , Observation.value[x] dataAbsentReason : CodeableConcept [0..1] Codes specifying why the result (Observation.value[x]) is missing. (Strength=Extensible)Observation Value Absent Reas...+ , . , / . interpretation : CodeableConcept [0..1] (Strength=Extensible)Observation Interpretation + , , , comment : string [0..1] , (. . )bodySite : CodeableConcept [0..1] . . (Strength=Example)SNOMED CT Body Structures?? method : CodeableConcept [0..1] (Strength=Example)Observation Methods?? , specimen : Reference [0..1] Specimen , device : Reference [0..1] Device|DeviceMetric ReferenceRange . ( >=5 - <=9). , , ( <=2.3)low : Quantity(SimpleQuantity) [0..1] . ( >=5 - <=9). , , ( >= 2.3)high : Quantity(SimpleQuantity) [0..1]Codes to indicate the what part of the targeted reference population it applies to. For example, the normal or therapeutic rangetype : CodeableConcept [0..1] Code for the meaning of a reference range. (Strength=Extensible)Observation Reference Range M...+ Codes to indicate the target population this reference range applies to. For example, a reference range may be based on the normal population or a particular sex or raceappliesTo : CodeableConcept [0..*] Codes identifying the population the reference range applies to. (Strength=Example)Observation Reference Range A...?? , . ( ), age : Range [0..1] , , . "Negative" '' text : string [0..1]Related , type : code [0..1] Codes specifying how two observations are related. (Strength=Required)ObservationRelationshipType! [[[QuestionnaireResponse]]], target : Reference [1..1] Observation|QuestionnaireResponse| Sequence Component, . "" code : CodeableConcept [1..1] . (Strength=Example)LOINC ?? , , value[x] : Type [0..1] Quantity|CodeableConcept|string|Range|Ratio| SampledData|Attachment|time|dateTime|Period , Observation.value[x] dataAbsentReason : CodeableConcept [0..1] Codes specifying why the result (Observation.value[x]) is missing. (Strength=Extensible)Observation Value Absent Reas...+ , . , / . interpretation : CodeableConcept [0..1] (Strength=Extensible)Observation Interpretation + , referenceRange[0..*]A reference to another resource (usually another Observation) whose relationship is defined by the relationship type coderelated[0..*] , referenceRange[0..*] . "/", . component[0..*]

XML-шаблон

<Observation xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Business Identifier for observation --></identifier>
 <basedOn><!-- 0..* Reference(CarePlan|DeviceRequest|ImmunizationRecommendation|
   MedicationRequest|NutritionOrder|ProcedureRequest|ReferralRequest) Fulfills plan, proposal or order --></basedOn>
 <status value="[code]"/><!-- 1..1 registered | preliminary | final | amended + -->
 <category><!-- 0..* CodeableConcept Классификация типов наблюдений --></category>
 <code><!-- 1..1 CodeableConcept Тип наблюдения (код/тип) --></code>
 <subject><!-- 0..1 Reference(Patient|Group|Device|Location) О ком и/или о чем оно --></subject>
 <context><!-- 0..1 Reference(Encounter|EpisodeOfCare) Событие здравоохранения, во время которого было сделано это наблюдение --></context>
 <effective[x]><!-- 0..1 dateTime|Period Клинически значимое время/период времени наблюдения --></effective[x]>
 <issued value="[instant]"/><!-- 0..1 Дата/время, когда было предоставлено -->
 <performer><!-- 0..* Reference(Practitioner|Organization|Patient|RelatedPerson) Кто несет ответственность за это наблюдение --></performer>
 <value[x]><!-- ?? 0..1 Quantity|CodeableConcept|string|boolean|Range|Ratio|
   SampledData|Attachment|time|dateTime|Period Непосредственно сам результат --></value[x]>
 <dataAbsentReason><!-- ?? 0..1 CodeableConcept Почему результат отсутствует --></dataAbsentReason>
 <interpretation><!-- 0..1 CodeableConcept Высокое, низкое, нормальное и т. п --></interpretation>
 <comment value="[string]"/><!-- 0..1 Комментарии к результату -->
 <bodySite><!-- 0..1 CodeableConcept Наблюдаемая часть тела --></bodySite>
 <method><!-- 0..1 CodeableConcept Каким образом проводилось --></method>
 <specimen><!-- 0..1 Reference(Specimen) Образец, используемый для этого наблюдения --></specimen>
 <device><!-- 0..1 Reference(Device|DeviceMetric) (Measurement) Device --></device>
 <referenceRange>  <!-- 0..* Руководство по интерпретации -->
  <low><!-- ?? 0..1 Quantity(SimpleQuantity) Нижняя граница диапазона, если уместно --></low>
  <high><!-- ?? 0..1 Quantity(SimpleQuantity) Верхняя граница диапазона, если уместно --></high>
  <type><!-- 0..1 CodeableConcept Reference range qualifier --></type>
  <appliesTo><!-- 0..* CodeableConcept Reference range population --></appliesTo>
  <age><!-- 0..1 Range Применимый возрастной диапазон, если необходимо --></age>
  <text value="[string]"/><!-- 0..1 Текстовое описание диапазона нормальных значений в наблюдении -->
 </referenceRange>
 <related>  <!-- 0..* Ресурс, связанный с данным наблюдением -->
  <type value="[code]"/><!-- 0..1 has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by -->
  <target><!-- 1..1 Reference(Observation|QuestionnaireResponse|Sequence) Ресурс, связанный с данным ресурсом --></target>
 </related>
 <component>  <!-- 0..* Результаты компонента -->
  <code><!-- 1..1 CodeableConcept Тип наблюдения компонента (код/тип) --></code>
  <value[x]><!-- 0..1 Quantity|CodeableConcept|string|Range|Ratio|SampledData|
    Attachment|time|dateTime|Period Фактический результат компонента --></value[x]>
  <dataAbsentReason><!-- ?? 0..1 CodeableConcept Почему результат компонента отсутствует --></dataAbsentReason>
  <interpretation><!-- 0..1 CodeableConcept Высокое, низкое, нормальное и т. п --></interpretation>
  <referenceRange><!-- 0..* Content as for Observation.referenceRange Руководство по интерпретации результатов компонента --></referenceRange>
 </component>
</Observation>

JSON-шаблон

{doco
  "resourceType" : "Observation",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Business Identifier for observation
  "basedOn" : [{ Reference(CarePlan|DeviceRequest|ImmunizationRecommendation|
   MedicationRequest|NutritionOrder|ProcedureRequest|ReferralRequest) }], // Fulfills plan, proposal or order
  "status" : "<code>", // R!  registered | preliminary | final | amended +
  "category" : [{ CodeableConcept }], // Классификация типов наблюдений
  "code" : { CodeableConcept }, // R!  Тип наблюдения (код/тип)
  "subject" : { Reference(Patient|Group|Device|Location) }, // О ком и/или о чем оно
  "context" : { Reference(Encounter|EpisodeOfCare) }, // Событие здравоохранения, во время которого было сделано это наблюдение
  // effective[x]: Клинически значимое время/период времени наблюдения. One of these 2:
  "effectiveDateTime" : "<dateTime>",
  "effectivePeriod" : { Period },
  "issued" : "<instant>", // Дата/время, когда было предоставлено
  "performer" : [{ Reference(Practitioner|Organization|Patient|RelatedPerson) }], // Кто несет ответственность за это наблюдение
  // value[x]: Непосредственно сам результат. One of these 11:
  "valueQuantity" : { Quantity },
  "valueCodeableConcept" : { CodeableConcept },
  "valueString" : "<string>",
  "valueBoolean" : <boolean>,
  "valueRange" : { Range },
  "valueRatio" : { Ratio },
  "valueSampledData" : { SampledData },
  "valueAttachment" : { Attachment },
  "valueTime" : "<time>",
  "valueDateTime" : "<dateTime>",
  "valuePeriod" : { Period },
  "dataAbsentReason" : { CodeableConcept }, // C? Почему результат отсутствует
  "interpretation" : { CodeableConcept }, // Высокое, низкое, нормальное и т. п
  "comment" : "<string>", // Комментарии к результату
  "bodySite" : { CodeableConcept }, // Наблюдаемая часть тела
  "method" : { CodeableConcept }, // Каким образом проводилось
  "specimen" : { Reference(Specimen) }, // Образец, используемый для этого наблюдения
  "device" : { Reference(Device|DeviceMetric) }, // (Measurement) Device
  "referenceRange" : [{ // Руководство по интерпретации
    "low" : { Quantity(SimpleQuantity) }, // C? Нижняя граница диапазона, если уместно
    "high" : { Quantity(SimpleQuantity) }, // C? Верхняя граница диапазона, если уместно
    "type" : { CodeableConcept }, // Reference range qualifier
    "appliesTo" : [{ CodeableConcept }], // Reference range population
    "age" : { Range }, // Применимый возрастной диапазон, если необходимо
    "text" : "<string>" // Текстовое описание диапазона нормальных значений в наблюдении
  }],
  "related" : [{ // Ресурс, связанный с данным наблюдением
    "type" : "<code>", // has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by
    "target" : { Reference(Observation|QuestionnaireResponse|Sequence) } // R!  Ресурс, связанный с данным ресурсом
  }],
  "component" : [{ // Результаты компонента
    "code" : { CodeableConcept }, // R!  Тип наблюдения компонента (код/тип)
    // value[x]: Фактический результат компонента. One of these 10:
    "valueQuantity" : { Quantity },
    "valueCodeableConcept" : { CodeableConcept },
    "valueString" : "<string>",
    "valueRange" : { Range },
    "valueRatio" : { Ratio },
    "valueSampledData" : { SampledData },
    "valueAttachment" : { Attachment },
    "valueTime" : "<time>",
    "valueDateTime" : "<dateTime>",
    "valuePeriod" : { Period },
    "dataAbsentReason" : { CodeableConcept }, // C? Почему результат компонента отсутствует
    "interpretation" : { CodeableConcept }, // Высокое, низкое, нормальное и т. п
    "referenceRange" : [{ Content as for Observation.referenceRange }] // Руководство по интерпретации результатов компонента
  }]
}

Turtle-шаблон

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Observation;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:Observation.identifier [ Identifier ], ... ; # 0..* Business Identifier for observation
  fhir:Observation.basedOn [ Reference(CarePlan|DeviceRequest|ImmunizationRecommendation|MedicationRequest|
  NutritionOrder|ProcedureRequest|ReferralRequest) ], ... ; # 0..* Fulfills plan, proposal or order
  fhir:Observation.status [ code ]; # 1..1 registered | preliminary | final | amended +
  fhir:Observation.category [ CodeableConcept ], ... ; # 0..* Классификация типов наблюдений
  fhir:Observation.code [ CodeableConcept ]; # 1..1 Тип наблюдения (код/тип)
  fhir:Observation.subject [ Reference(Patient|Group|Device|Location) ]; # 0..1 О ком и/или о чем оно
  fhir:Observation.context [ Reference(Encounter|EpisodeOfCare) ]; # 0..1 Событие здравоохранения, во время которого было сделано это наблюдение
  # Observation.effective[x] : 0..1 Клинически значимое время/период времени наблюдения. One of these 2
    fhir:Observation.effectiveDateTime [ dateTime ]
    fhir:Observation.effectivePeriod [ Period ]
  fhir:Observation.issued [ instant ]; # 0..1 Дата/время, когда было предоставлено
  fhir:Observation.performer [ Reference(Practitioner|Organization|Patient|RelatedPerson) ], ... ; # 0..* Кто несет ответственность за это наблюдение
  # Observation.value[x] : 0..1 Непосредственно сам результат. One of these 11
    fhir:Observation.valueQuantity [ Quantity ]
    fhir:Observation.valueCodeableConcept [ CodeableConcept ]
    fhir:Observation.valueString [ string ]
    fhir:Observation.valueBoolean [ boolean ]
    fhir:Observation.valueRange [ Range ]
    fhir:Observation.valueRatio [ Ratio ]
    fhir:Observation.valueSampledData [ SampledData ]
    fhir:Observation.valueAttachment [ Attachment ]
    fhir:Observation.valueTime [ time ]
    fhir:Observation.valueDateTime [ dateTime ]
    fhir:Observation.valuePeriod [ Period ]
  fhir:Observation.dataAbsentReason [ CodeableConcept ]; # 0..1 Почему результат отсутствует
  fhir:Observation.interpretation [ CodeableConcept ]; # 0..1 Высокое, низкое, нормальное и т. п
  fhir:Observation.comment [ string ]; # 0..1 Комментарии к результату
  fhir:Observation.bodySite [ CodeableConcept ]; # 0..1 Наблюдаемая часть тела
  fhir:Observation.method [ CodeableConcept ]; # 0..1 Каким образом проводилось
  fhir:Observation.specimen [ Reference(Specimen) ]; # 0..1 Образец, используемый для этого наблюдения
  fhir:Observation.device [ Reference(Device|DeviceMetric) ]; # 0..1 (Measurement) Device
  fhir:Observation.referenceRange [ # 0..* Руководство по интерпретации
    fhir:Observation.referenceRange.low [ Quantity(SimpleQuantity) ]; # 0..1 Нижняя граница диапазона, если уместно
    fhir:Observation.referenceRange.high [ Quantity(SimpleQuantity) ]; # 0..1 Верхняя граница диапазона, если уместно
    fhir:Observation.referenceRange.type [ CodeableConcept ]; # 0..1 Reference range qualifier
    fhir:Observation.referenceRange.appliesTo [ CodeableConcept ], ... ; # 0..* Reference range population
    fhir:Observation.referenceRange.age [ Range ]; # 0..1 Применимый возрастной диапазон, если необходимо
    fhir:Observation.referenceRange.text [ string ]; # 0..1 Текстовое описание диапазона нормальных значений в наблюдении
  ], ...;
  fhir:Observation.related [ # 0..* Ресурс, связанный с данным наблюдением
    fhir:Observation.related.type [ code ]; # 0..1 has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by
    fhir:Observation.related.target [ Reference(Observation|QuestionnaireResponse|Sequence) ]; # 1..1 Ресурс, связанный с данным ресурсом
  ], ...;
  fhir:Observation.component [ # 0..* Результаты компонента
    fhir:Observation.component.code [ CodeableConcept ]; # 1..1 Тип наблюдения компонента (код/тип)
    # Observation.component.value[x] : 0..1 Фактический результат компонента. One of these 10
      fhir:Observation.component.valueQuantity [ Quantity ]
      fhir:Observation.component.valueCodeableConcept [ CodeableConcept ]
      fhir:Observation.component.valueString [ string ]
      fhir:Observation.component.valueRange [ Range ]
      fhir:Observation.component.valueRatio [ Ratio ]
      fhir:Observation.component.valueSampledData [ SampledData ]
      fhir:Observation.component.valueAttachment [ Attachment ]
      fhir:Observation.component.valueTime [ time ]
      fhir:Observation.component.valueDateTime [ dateTime ]
      fhir:Observation.component.valuePeriod [ Period ]
    fhir:Observation.component.dataAbsentReason [ CodeableConcept ]; # 0..1 Почему результат компонента отсутствует
    fhir:Observation.component.interpretation [ CodeableConcept ]; # 0..1 Высокое, низкое, нормальное и т. п
    fhir:Observation.component.referenceRange [ See Observation.referenceRange ], ... ; # 0..* Руководство по интерпретации результатов компонента
  ], ...;
]

Changes since DSTU2

Observation
Observation.basedOn added Element
Observation.category Max Cardinality changed from 1 to *
Observation.context Renamed from encounter to context
Add Reference(EpisodeOfCare)
Observation.value[x] Add boolean
Observation.comment Renamed from comments to comment
Observation.referenceRange.type added Element
Observation.referenceRange.appliesTo Renamed from meaning to appliesTo
Max Cardinality changed from 1 to *
Observation.related.target Add Reference(Sequence)
Observation.component.interpretation added Element

See the Full Difference for further information

See R2 <--> R3 Conversion Maps (status = 34 tests that all execute ok. All tests pass round-trip testing and 15 r3 resources are invalid (58 errors).).

Структура

ИмяФлагиКард.ТипОписание и ограниченияdoco
.. Observation IDomainResourceИзмерения и простые утверждения
+ If code is the same as a component code then the value element associated with the code SHALL NOT be present
+ Элемент dataAbsentReason должен присутствовать только в том случае, если Observation.value[x] отсутствует
Элементы, определённые в прародителе: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierBusiness Identifier for observation
... basedOn Σ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ProcedureRequest | ReferralRequest)Fulfills plan, proposal or order
... status ?!Σ1..1coderegistered | preliminary | final | amended +
ObservationStatus (Required)
... category 0..*CodeableConceptКлассификация типов наблюдений
Observation Category Codes (Preferred)
... code Σ1..1CodeableConceptТип наблюдения (код/тип)
LOINC Codes (Example)
... subject Σ0..1Reference(Patient | Group | Device | Location)О ком и/или о чем оно
... context 0..1Reference(Encounter | EpisodeOfCare)Событие здравоохранения, во время которого было сделано это наблюдение
... effective[x] Σ0..1Клинически значимое время/период времени наблюдения
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... issued Σ0..1instantДата/время, когда было предоставлено
... performer Σ0..*Reference(Practitioner | Organization | Patient | RelatedPerson)Кто несет ответственность за это наблюдение
... value[x] ΣI0..1Непосредственно сам результат
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueStringstring
.... valueBooleanboolean
.... valueRangeRange
.... valueRatioRatio
.... valueSampledDataSampledData
.... valueAttachmentAttachment
.... valueTimetime
.... valueDateTimedateTime
.... valuePeriodPeriod
... dataAbsentReason I0..1CodeableConceptПочему результат отсутствует
Observation Value Absent Reason (Extensible)
... interpretation 0..1CodeableConceptВысокое, низкое, нормальное и т. п
Observation Interpretation Codes (Extensible)
... comment 0..1stringКомментарии к результату
... bodySite 0..1CodeableConceptНаблюдаемая часть тела
SNOMED CT Body Structures (Example)
... method 0..1CodeableConceptКаким образом проводилось
Observation Methods (Example)
... specimen 0..1Reference(Specimen)Образец, используемый для этого наблюдения
... device 0..1Reference(Device | DeviceMetric)(Measurement) Device
... referenceRange I0..*BackboneElementРуководство по интерпретации
+ Должен быть указан хотя бы один элемент из low, high или text
.... low I0..1SimpleQuantityНижняя граница диапазона, если уместно
.... high I0..1SimpleQuantityВерхняя граница диапазона, если уместно
.... type 0..1CodeableConceptReference range qualifier
Observation Reference Range Meaning Codes (Extensible)
.... appliesTo 0..*CodeableConceptReference range population
Observation Reference Range Applies To Codes (Example)
.... age 0..1RangeПрименимый возрастной диапазон, если необходимо
.... text 0..1stringТекстовое описание диапазона нормальных значений в наблюдении
... related Σ0..*BackboneElementРесурс, связанный с данным наблюдением
.... type 0..1codehas-member | derived-from | sequel-to | replaces | qualified-by | interfered-by
ObservationRelationshipType (Required)
.... target 1..1Reference(Observation | QuestionnaireResponse | Sequence)Ресурс, связанный с данным ресурсом
... component Σ0..*BackboneElementРезультаты компонента
.... code Σ1..1CodeableConceptТип наблюдения компонента (код/тип)
LOINC Codes (Example)
.... value[x] Σ0..1Фактический результат компонента
..... valueQuantityQuantity
..... valueCodeableConceptCodeableConcept
..... valueStringstring
..... valueRangeRange
..... valueRatioRatio
..... valueSampledDataSampledData
..... valueAttachmentAttachment
..... valueTimetime
..... valueDateTimedateTime
..... valuePeriodPeriod
.... dataAbsentReason I0..1CodeableConceptПочему результат компонента отсутствует
Observation Value Absent Reason (Extensible)
.... interpretation 0..1CodeableConceptВысокое, низкое, нормальное и т. п
Observation Interpretation Codes (Extensible)
.... referenceRange 0..*see referenceRangeРуководство по интерпретации результатов компонента

doco Документация по этому формату

UML-диаграмма (Legend)

Observation (DomainResource)A unique identifier assigned to this observationidentifier : Identifier [0..*]A plan, proposal or order that is fulfilled in whole or in part by this eventbasedOn : Reference [0..*] CarePlan|DeviceRequest| ImmunizationRecommendation|MedicationRequest|NutritionOrder| ProcedureRequest|ReferralRequest (this element modifies the meaning of other elements)status : code [1..1] Codes providing the status of an observation. (Strength=Required)ObservationStatus! A code that classifies the general type of observation being madecategory : CodeableConcept [0..*] . (Strength=Preferred)Observation Category ? , . code : CodeableConcept [1..1] . (Strength=Example)LOINC ?? , , , ( ) , . : , , , ( ), , subject : Reference [0..1] Patient|Group|Device|Location ( ), context : Reference [0..1] Encounter|EpisodeOfCare , . - - "physiologically relevant time". , / , /effective[x] : Type [0..1] dateTime|Period , , issued : instant [0..1] , ""performer : Reference [0..*] Practitioner|Organization|Patient| RelatedPerson , , value[x] : Type [0..1] Quantity|CodeableConcept|string|boolean| Range|Ratio|SampledData|Attachment|time|dateTime|Period , Observation.value[x] dataAbsentReason : CodeableConcept [0..1] Codes specifying why the result (Observation.value[x]) is missing. (Strength=Extensible)Observation Value Absent Reas...+ , . , / . interpretation : CodeableConcept [0..1] (Strength=Extensible)Observation Interpretation + , , , comment : string [0..1] , (. . )bodySite : CodeableConcept [0..1] . . (Strength=Example)SNOMED CT Body Structures?? method : CodeableConcept [0..1] (Strength=Example)Observation Methods?? , specimen : Reference [0..1] Specimen , device : Reference [0..1] Device|DeviceMetric ReferenceRange . ( >=5 - <=9). , , ( <=2.3)low : Quantity(SimpleQuantity) [0..1] . ( >=5 - <=9). , , ( >= 2.3)high : Quantity(SimpleQuantity) [0..1]Codes to indicate the what part of the targeted reference population it applies to. For example, the normal or therapeutic rangetype : CodeableConcept [0..1] Code for the meaning of a reference range. (Strength=Extensible)Observation Reference Range M...+ Codes to indicate the target population this reference range applies to. For example, a reference range may be based on the normal population or a particular sex or raceappliesTo : CodeableConcept [0..*] Codes identifying the population the reference range applies to. (Strength=Example)Observation Reference Range A...?? , . ( ), age : Range [0..1] , , . "Negative" '' text : string [0..1]Related , type : code [0..1] Codes specifying how two observations are related. (Strength=Required)ObservationRelationshipType! [[[QuestionnaireResponse]]], target : Reference [1..1] Observation|QuestionnaireResponse| Sequence Component, . "" code : CodeableConcept [1..1] . (Strength=Example)LOINC ?? , , value[x] : Type [0..1] Quantity|CodeableConcept|string|Range|Ratio| SampledData|Attachment|time|dateTime|Period , Observation.value[x] dataAbsentReason : CodeableConcept [0..1] Codes specifying why the result (Observation.value[x]) is missing. (Strength=Extensible)Observation Value Absent Reas...+ , . , / . interpretation : CodeableConcept [0..1] (Strength=Extensible)Observation Interpretation + , referenceRange[0..*]A reference to another resource (usually another Observation) whose relationship is defined by the relationship type coderelated[0..*] , referenceRange[0..*] . "/", . component[0..*]

XML-шаблон

<Observation xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Business Identifier for observation --></identifier>
 <basedOn><!-- 0..* Reference(CarePlan|DeviceRequest|ImmunizationRecommendation|
   MedicationRequest|NutritionOrder|ProcedureRequest|ReferralRequest) Fulfills plan, proposal or order --></basedOn>
 <status value="[code]"/><!-- 1..1 registered | preliminary | final | amended + -->
 <category><!-- 0..* CodeableConcept Классификация типов наблюдений --></category>
 <code><!-- 1..1 CodeableConcept Тип наблюдения (код/тип) --></code>
 <subject><!-- 0..1 Reference(Patient|Group|Device|Location) О ком и/или о чем оно --></subject>
 <context><!-- 0..1 Reference(Encounter|EpisodeOfCare) Событие здравоохранения, во время которого было сделано это наблюдение --></context>
 <effective[x]><!-- 0..1 dateTime|Period Клинически значимое время/период времени наблюдения --></effective[x]>
 <issued value="[instant]"/><!-- 0..1 Дата/время, когда было предоставлено -->
 <performer><!-- 0..* Reference(Practitioner|Organization|Patient|RelatedPerson) Кто несет ответственность за это наблюдение --></performer>
 <value[x]><!-- ?? 0..1 Quantity|CodeableConcept|string|boolean|Range|Ratio|
   SampledData|Attachment|time|dateTime|Period Непосредственно сам результат --></value[x]>
 <dataAbsentReason><!-- ?? 0..1 CodeableConcept Почему результат отсутствует --></dataAbsentReason>
 <interpretation><!-- 0..1 CodeableConcept Высокое, низкое, нормальное и т. п --></interpretation>
 <comment value="[string]"/><!-- 0..1 Комментарии к результату -->
 <bodySite><!-- 0..1 CodeableConcept Наблюдаемая часть тела --></bodySite>
 <method><!-- 0..1 CodeableConcept Каким образом проводилось --></method>
 <specimen><!-- 0..1 Reference(Specimen) Образец, используемый для этого наблюдения --></specimen>
 <device><!-- 0..1 Reference(Device|DeviceMetric) (Measurement) Device --></device>
 <referenceRange>  <!-- 0..* Руководство по интерпретации -->
  <low><!-- ?? 0..1 Quantity(SimpleQuantity) Нижняя граница диапазона, если уместно --></low>
  <high><!-- ?? 0..1 Quantity(SimpleQuantity) Верхняя граница диапазона, если уместно --></high>
  <type><!-- 0..1 CodeableConcept Reference range qualifier --></type>
  <appliesTo><!-- 0..* CodeableConcept Reference range population --></appliesTo>
  <age><!-- 0..1 Range Применимый возрастной диапазон, если необходимо --></age>
  <text value="[string]"/><!-- 0..1 Текстовое описание диапазона нормальных значений в наблюдении -->
 </referenceRange>
 <related>  <!-- 0..* Ресурс, связанный с данным наблюдением -->
  <type value="[code]"/><!-- 0..1 has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by -->
  <target><!-- 1..1 Reference(Observation|QuestionnaireResponse|Sequence) Ресурс, связанный с данным ресурсом --></target>
 </related>
 <component>  <!-- 0..* Результаты компонента -->
  <code><!-- 1..1 CodeableConcept Тип наблюдения компонента (код/тип) --></code>
  <value[x]><!-- 0..1 Quantity|CodeableConcept|string|Range|Ratio|SampledData|
    Attachment|time|dateTime|Period Фактический результат компонента --></value[x]>
  <dataAbsentReason><!-- ?? 0..1 CodeableConcept Почему результат компонента отсутствует --></dataAbsentReason>
  <interpretation><!-- 0..1 CodeableConcept Высокое, низкое, нормальное и т. п --></interpretation>
  <referenceRange><!-- 0..* Content as for Observation.referenceRange Руководство по интерпретации результатов компонента --></referenceRange>
 </component>
</Observation>

JSON-шаблон

{doco
  "resourceType" : "Observation",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Business Identifier for observation
  "basedOn" : [{ Reference(CarePlan|DeviceRequest|ImmunizationRecommendation|
   MedicationRequest|NutritionOrder|ProcedureRequest|ReferralRequest) }], // Fulfills plan, proposal or order
  "status" : "<code>", // R!  registered | preliminary | final | amended +
  "category" : [{ CodeableConcept }], // Классификация типов наблюдений
  "code" : { CodeableConcept }, // R!  Тип наблюдения (код/тип)
  "subject" : { Reference(Patient|Group|Device|Location) }, // О ком и/или о чем оно
  "context" : { Reference(Encounter|EpisodeOfCare) }, // Событие здравоохранения, во время которого было сделано это наблюдение
  // effective[x]: Клинически значимое время/период времени наблюдения. One of these 2:
  "effectiveDateTime" : "<dateTime>",
  "effectivePeriod" : { Period },
  "issued" : "<instant>", // Дата/время, когда было предоставлено
  "performer" : [{ Reference(Practitioner|Organization|Patient|RelatedPerson) }], // Кто несет ответственность за это наблюдение
  // value[x]: Непосредственно сам результат. One of these 11:
  "valueQuantity" : { Quantity },
  "valueCodeableConcept" : { CodeableConcept },
  "valueString" : "<string>",
  "valueBoolean" : <boolean>,
  "valueRange" : { Range },
  "valueRatio" : { Ratio },
  "valueSampledData" : { SampledData },
  "valueAttachment" : { Attachment },
  "valueTime" : "<time>",
  "valueDateTime" : "<dateTime>",
  "valuePeriod" : { Period },
  "dataAbsentReason" : { CodeableConcept }, // C? Почему результат отсутствует
  "interpretation" : { CodeableConcept }, // Высокое, низкое, нормальное и т. п
  "comment" : "<string>", // Комментарии к результату
  "bodySite" : { CodeableConcept }, // Наблюдаемая часть тела
  "method" : { CodeableConcept }, // Каким образом проводилось
  "specimen" : { Reference(Specimen) }, // Образец, используемый для этого наблюдения
  "device" : { Reference(Device|DeviceMetric) }, // (Measurement) Device
  "referenceRange" : [{ // Руководство по интерпретации
    "low" : { Quantity(SimpleQuantity) }, // C? Нижняя граница диапазона, если уместно
    "high" : { Quantity(SimpleQuantity) }, // C? Верхняя граница диапазона, если уместно
    "type" : { CodeableConcept }, // Reference range qualifier
    "appliesTo" : [{ CodeableConcept }], // Reference range population
    "age" : { Range }, // Применимый возрастной диапазон, если необходимо
    "text" : "<string>" // Текстовое описание диапазона нормальных значений в наблюдении
  }],
  "related" : [{ // Ресурс, связанный с данным наблюдением
    "type" : "<code>", // has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by
    "target" : { Reference(Observation|QuestionnaireResponse|Sequence) } // R!  Ресурс, связанный с данным ресурсом
  }],
  "component" : [{ // Результаты компонента
    "code" : { CodeableConcept }, // R!  Тип наблюдения компонента (код/тип)
    // value[x]: Фактический результат компонента. One of these 10:
    "valueQuantity" : { Quantity },
    "valueCodeableConcept" : { CodeableConcept },
    "valueString" : "<string>",
    "valueRange" : { Range },
    "valueRatio" : { Ratio },
    "valueSampledData" : { SampledData },
    "valueAttachment" : { Attachment },
    "valueTime" : "<time>",
    "valueDateTime" : "<dateTime>",
    "valuePeriod" : { Period },
    "dataAbsentReason" : { CodeableConcept }, // C? Почему результат компонента отсутствует
    "interpretation" : { CodeableConcept }, // Высокое, низкое, нормальное и т. п
    "referenceRange" : [{ Content as for Observation.referenceRange }] // Руководство по интерпретации результатов компонента
  }]
}

Turtle-шаблон

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Observation;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:Observation.identifier [ Identifier ], ... ; # 0..* Business Identifier for observation
  fhir:Observation.basedOn [ Reference(CarePlan|DeviceRequest|ImmunizationRecommendation|MedicationRequest|
  NutritionOrder|ProcedureRequest|ReferralRequest) ], ... ; # 0..* Fulfills plan, proposal or order
  fhir:Observation.status [ code ]; # 1..1 registered | preliminary | final | amended +
  fhir:Observation.category [ CodeableConcept ], ... ; # 0..* Классификация типов наблюдений
  fhir:Observation.code [ CodeableConcept ]; # 1..1 Тип наблюдения (код/тип)
  fhir:Observation.subject [ Reference(Patient|Group|Device|Location) ]; # 0..1 О ком и/или о чем оно
  fhir:Observation.context [ Reference(Encounter|EpisodeOfCare) ]; # 0..1 Событие здравоохранения, во время которого было сделано это наблюдение
  # Observation.effective[x] : 0..1 Клинически значимое время/период времени наблюдения. One of these 2
    fhir:Observation.effectiveDateTime [ dateTime ]
    fhir:Observation.effectivePeriod [ Period ]
  fhir:Observation.issued [ instant ]; # 0..1 Дата/время, когда было предоставлено
  fhir:Observation.performer [ Reference(Practitioner|Organization|Patient|RelatedPerson) ], ... ; # 0..* Кто несет ответственность за это наблюдение
  # Observation.value[x] : 0..1 Непосредственно сам результат. One of these 11
    fhir:Observation.valueQuantity [ Quantity ]
    fhir:Observation.valueCodeableConcept [ CodeableConcept ]
    fhir:Observation.valueString [ string ]
    fhir:Observation.valueBoolean [ boolean ]
    fhir:Observation.valueRange [ Range ]
    fhir:Observation.valueRatio [ Ratio ]
    fhir:Observation.valueSampledData [ SampledData ]
    fhir:Observation.valueAttachment [ Attachment ]
    fhir:Observation.valueTime [ time ]
    fhir:Observation.valueDateTime [ dateTime ]
    fhir:Observation.valuePeriod [ Period ]
  fhir:Observation.dataAbsentReason [ CodeableConcept ]; # 0..1 Почему результат отсутствует
  fhir:Observation.interpretation [ CodeableConcept ]; # 0..1 Высокое, низкое, нормальное и т. п
  fhir:Observation.comment [ string ]; # 0..1 Комментарии к результату
  fhir:Observation.bodySite [ CodeableConcept ]; # 0..1 Наблюдаемая часть тела
  fhir:Observation.method [ CodeableConcept ]; # 0..1 Каким образом проводилось
  fhir:Observation.specimen [ Reference(Specimen) ]; # 0..1 Образец, используемый для этого наблюдения
  fhir:Observation.device [ Reference(Device|DeviceMetric) ]; # 0..1 (Measurement) Device
  fhir:Observation.referenceRange [ # 0..* Руководство по интерпретации
    fhir:Observation.referenceRange.low [ Quantity(SimpleQuantity) ]; # 0..1 Нижняя граница диапазона, если уместно
    fhir:Observation.referenceRange.high [ Quantity(SimpleQuantity) ]; # 0..1 Верхняя граница диапазона, если уместно
    fhir:Observation.referenceRange.type [ CodeableConcept ]; # 0..1 Reference range qualifier
    fhir:Observation.referenceRange.appliesTo [ CodeableConcept ], ... ; # 0..* Reference range population
    fhir:Observation.referenceRange.age [ Range ]; # 0..1 Применимый возрастной диапазон, если необходимо
    fhir:Observation.referenceRange.text [ string ]; # 0..1 Текстовое описание диапазона нормальных значений в наблюдении
  ], ...;
  fhir:Observation.related [ # 0..* Ресурс, связанный с данным наблюдением
    fhir:Observation.related.type [ code ]; # 0..1 has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by
    fhir:Observation.related.target [ Reference(Observation|QuestionnaireResponse|Sequence) ]; # 1..1 Ресурс, связанный с данным ресурсом
  ], ...;
  fhir:Observation.component [ # 0..* Результаты компонента
    fhir:Observation.component.code [ CodeableConcept ]; # 1..1 Тип наблюдения компонента (код/тип)
    # Observation.component.value[x] : 0..1 Фактический результат компонента. One of these 10
      fhir:Observation.component.valueQuantity [ Quantity ]
      fhir:Observation.component.valueCodeableConcept [ CodeableConcept ]
      fhir:Observation.component.valueString [ string ]
      fhir:Observation.component.valueRange [ Range ]
      fhir:Observation.component.valueRatio [ Ratio ]
      fhir:Observation.component.valueSampledData [ SampledData ]
      fhir:Observation.component.valueAttachment [ Attachment ]
      fhir:Observation.component.valueTime [ time ]
      fhir:Observation.component.valueDateTime [ dateTime ]
      fhir:Observation.component.valuePeriod [ Period ]
    fhir:Observation.component.dataAbsentReason [ CodeableConcept ]; # 0..1 Почему результат компонента отсутствует
    fhir:Observation.component.interpretation [ CodeableConcept ]; # 0..1 Высокое, низкое, нормальное и т. п
    fhir:Observation.component.referenceRange [ See Observation.referenceRange ], ... ; # 0..* Руководство по интерпретации результатов компонента
  ], ...;
]

Changes since DSTU2

Observation
Observation.basedOn added Element
Observation.category Max Cardinality changed from 1 to *
Observation.context Renamed from encounter to context
Add Reference(EpisodeOfCare)
Observation.value[x] Add boolean
Observation.comment Renamed from comments to comment
Observation.referenceRange.type added Element
Observation.referenceRange.appliesTo Renamed from meaning to appliesTo
Max Cardinality changed from 1 to *
Observation.related.target Add Reference(Sequence)
Observation.component.interpretation added Element

See the Full Difference for further information

See R2 <--> R3 Conversion Maps (status = 34 tests that all execute ok. All tests pass round-trip testing and 15 r3 resources are invalid (58 errors).).

 

Альтернативные определения: Основное определение (XML, JSON), XML Schema/Schematron (for ) + JSON Schema, ShEx (for Turtle)

ПутьОписаниеТипСсылка
Observation.status Codes providing the status of an observation.RequiredObservationStatus
Observation.category Коды высокоуровневой классификации наблюдений.PreferredObservation Category Codes
Observation.code
Observation.component.code
Коды названий простых наблюдений.ExampleLOINC Codes
Observation.dataAbsentReason
Observation.component.dataAbsentReason
Codes specifying why the result (Observation.value[x]) is missing.ExtensibleObservation Value Absent Reason
Observation.interpretation
Observation.component.interpretation
Коды интерпретаций наблюденийExtensibleObservation Interpretation Codes
Observation.bodySite Коды для описания анатомического расположения. Могут включать указание латеральности.ExampleSNOMED CT Body Structures
Observation.method Методы простых наблюденийExampleObservation Methods
Observation.referenceRange.type Code for the meaning of a reference range.ExtensibleObservation Reference Range Meaning Codes
Observation.referenceRange.appliesTo Codes identifying the population the reference range applies to.ExampleObservation Reference Range Applies To Codes
Observation.related.type Codes specifying how two observations are related.RequiredObservationRelationshipType

  • obs-3: On Observation.referenceRange: Должен быть указан хотя бы один элемент из low, high или text (expression on Observation.referenceRange: low.exists() or high.exists() or text.exists())
  • obs-6: Элемент dataAbsentReason должен присутствовать только в том случае, если Observation.value[x] отсутствует (expression : dataAbsentReason.empty() or value.empty())
  • obs-7: If code is the same as a component code then the value element associated with the code SHALL NOT be present (expression : value.empty() or code!=component.code)

В простейшем случае экземпляры ресурса могут состоять только из кода и значения, а также флага статуса. Уместность остальных свойств будет варьироваться в зависимости от типа наблюдения.

Для предоставления руководства по вводу некоторых типов простых наблюдений будут созданы профили. Данный ресурс направлен на уровень детализации, используемый в большинстве систем. Однако любое "простое" наблюдение может быть легко разбито на многочисленные компоненты и субкомпоненты для предоставления дополнительной информации, имеющей значение в определённых обстоятельствах. Как и в случае других ресурсов, можно использовать расширения для введения этой дополнительной сложности.

Many observations have important relationships to other observations and need to be grouped together. Three structures have been defined to do this: DiagnosticReport and DiagnosticReport.result, Observation and Observation.component, and Observation and Observation.related. The table below provides guidance around which structure to use. Because the idea of what to group together is often highly contextual and based upon the end user's point of view, the choice of which structure to use will be driven by jurisdiction, organizational practice and context. Profiling will normally be necessary for implementation.

DiagnosticReport and DiagnosticReport.result Observation and Observation.component Observation and Observation.related
DiagnosticReport relates directly to an order (ProcedureRequest). The DiagnosticReport.code names the panel and serves as the grouping element, which is traditionally referred to as a "panel" or "battery" by laboratories. The DiagnosticReport.result element references the individual observations. Several examples demonstrate observation grouping using DiagnosticReport as the grouping structure. Observation.component is used for any supporting result that cannot reasonably be interpreted and used outside the scope of the Observation it is a component of. Components should only be used when there is only one method, one observation, one performer, one device, and one time. For example, systolic and diastolic blood pressure are represented as a single Observation (e.g. Blood pressure panel) because the two are almost always produced and interpreted together. Note that the component.code may in some cases only be able to be understood in relation to the Observation.code (for example, see the $stats operation). Observation.related is used for any supporting result that can be interpreted and used on its own and has one or more different values for method, observation, performer, device, time, and/or error conditions. The top level observation specifies the grouping code in Observation.code, but typically does not have its own Observation.value, and the set of member observations are listed in the Observation.related element. This structure permits nested grouping when used with DiagnosticReport (e.g. complex micro isolate and sensitivities report).
  • The element, Observation.value[x], has a variable name depending on the type as follows:
    • valueQuantity
    • valueCodeableConcept
    • valueString
    • valueBoolean
    • valueRange
    • valueRatio
    • valueSampledData
    • valueAttachment
    • valueTime
    • valueDateTime
    • valuePeriod

  • Using codes for result values

    When a result value is a represented as a predefined concept using a code, valueCodeableConcept is used. This element is bound to a value set comprised of a standard nomenclature such as SNOMED CT or a source system ("local") coded result values. Results may be coded in multiple value sets based on different code systems and these may be mapped using the ConceptMap resource and/or given as translations directly in the element as shown in the example below.

    For example the LOINC 43304-5 Chlamydia trachomatis rRNA [Presence] in Unspecified specimen by Probe and target amplification method is typically associated with coded presence/absence concepts. Using the coded value for 'negative' with a standard code translation, valueCodeableConcept would be:

    			"valueCodeableConcept": {
    			"coding": [
    			  {
    				"system": "http://snomed.info/sct",
    				"code": "260385009",
    				"display": "Negative"
    			  },
    			  {
    		"https://acme.lab/resultcodes",
    				"code": "NEG",
    				"display": "Negative"
    			  }
    			],
    			"text": "Negative for Chlamydia Trachomatis rRNA"
    			  }
    			

    Text values for coded results:

    When the data element is usually coded or the type associated with the code element defines a coded value, use valueCodeableConcept even if there is no appropriate code and only un-coded text is available. For example using text only, the valueCodeableConcept element would be:

    	"valueCodeableConcept": {
    	"text": "uncoded free text result"
    	  }
    			

    When a coded answer list includes a concept code for "other" and there is a free text description of the concept, the valueCodeableConcept.text element should be used to capture the full meaning of the source. In the example below, the answer code "Other" is provided in the valueCodeableConcept element and the text value supplied value in the CodeableConcept.text element.

        {
          "resourceType": "Observation",
          "code": {
            "coding": [{
              "system": "http://loinc.org",
              "code": "74076-1",
              "display": "Medication or substance involved"
            }]
          },
    			"valueCodeableConcept": {
            "coding": [{
              "system": "http://loinc.org",
              "code": " LA20343-2",
              "display": "Other substance: PLEASE SPECIFY"
            }],
            "text": "Other: Blue pills I found under my couch"
    			  }
        }
    			
  • The Boolean data type is rarely used for value[x] because most observations result values are never truly Boolean due to exceptional values such as "unknown", therefore they should use the CodeableConcept data type instead.
  • The special values "E" (error), "L" (below detection limit) and "U" (above detection limit) can be used are in the SampledData data type. However when using valueQuantity in an observation for above and below detection limit values, valueQuantity should be used by stating the limit along with the comparator. In addition, when there is an error the dataAbsentReason element should be used with the appropriate value ('error' or 'NaN'). For example if the value was below the lower limit of detection of <2.0 mmol/L the valueQuantity would be:
    		"valueQuantity": {
        "value": 2.0,
         "comparator" : "<",
        "unit": "mmol/l",
        "system": "http://unitsofmeasure.org",
        "code": "mmol/L"
         }
    			
    If the value was "NaN" (i.e. an error) the valueCodeableConcept element would be absent and dataAbsentReason element would be:
    "dataAbsentReason": {
        "coding": [
          {
            "system": "http://hl7.org/fhir/data-absent-reason",
            "code": "NaN",
            "display": "Not a Number"
          }
          
  • Поскольку в элементе value разрешено несколько типов данных, то для него определено несколько параметров поиска по значению. Для поиска значений типа Attachment или Ratio нет стандартных параметров.

effectiveDateTime или effectivePeriod - это непосредственно время наблюдения субъекта. Для биологических субъектов (например пациента-человека) это физиологически значимое время наблюдения. Если наблюдение производится над образцом для анализа, то это время начала и окончания взятия пробы для анализа (например анализ на натрий в суточной моче), однако если время сбора существенно мало, оно указывается как некоторый момент времени (например обычная венопункция). Если наблюдение производится непосредственно над субъектом (например кровяное давление, рентген грудной клетки), то это будет время начала и окончания процесса наблюдения, которое опять-таки часто сообщается как отдельный момент времени.

Чаще всего наблюдения имеют только один общий диапазон нормальных значений. Диапазоны нормальных значений могут быть полезны для лабораторных тестов и других измерений, например систолического кровяного давления, однако не имеют смысла для чего-то вроде "беременность". Системы МОГУТ вводить ограничения на указание только имеющих смысл диапазонов нормальных значений на основе знаний о пациенте (например конкретно для возраста, пола, веса пациента и других факторов), однако это не всегда возможно или целесообразно. Всякий раз, когда указывается больше одного диапазона нормальных значений, необходимо предоставлять различия между ними в свойствах диапазона нормальных значений и/или возраста.

Если измерение или тест не могут быть завершены (например, если образец для анализа неудовлетворительный или поставщик отменил заказ), тогда значение статуса необходимо обновить до "canceled" и дать соответствующие пояснения - предпочтительно закодированные значения в элементе dataAbsentReason или valueCodeableConcept. Также можно указать дополнительную информацию в комментариях. Пример отклонения образца для анализа демонстрирует использование закодированного значения для неудовлетворительного образца для анализа в элементе dataAbsentReason.

The lastn query operation meets the common need for searching for the most recent or "last known" Observations for a subject. Examples where this query could be used:

  • Fetch the last 5 temperatures for a patient to view trends
  • Get the most recent lab results for patient
  • Fetch the last 3 results for all vitals for a patient

See the Last N Observations Query section in the Observation resource operations page for more information and examples

STU Note: This is the first draft of this operation and we are seeking input from the implementer community on it and whether it should be extended to other resources such as DiagnosticReport. This operation could be the subject of future connectathon testing.

Feedback is welcome here .

The stats operation performs a set of statistical calculations on a set of clinical measurements such as a blood pressure as stored on the server. This operation is focused on Observation resources with valueQuantity elements that have UCUM unit codes. Examples where this operation could be used:

  • Get the average, min, max and count of a series of BP measurements for a patient
  • Determine 20th or 80th percentile on a set of measurements over a time period
See the Observation Statistics section in the Observation resource operations page for more information and examples

Параметры поиска для этого ресурса. Также к нему применяются общие параметры. Более подробную информацию о поиске в REST, обмене сообщениями и сервисах см. в разделе Поиск.

ИмяТипОписаниеВыражениеIn Common
based-onreferenceReference to the test or procedure request.Observation.basedOn
(ReferralRequest, CarePlan, MedicationRequest, NutritionOrder, ProcedureRequest, DeviceRequest, ImmunizationRecommendation)
categorytokenКлассификация типов наблюденийObservation.category
codetokenThe code of the observation typeObservation.code8 Resources
code-value-conceptcompositeCode and coded value parameter pairObservation
code-value-datecompositeCode and date/time value parameter pairObservation
code-value-quantitycompositeCode and quantity value parameter pairObservation
code-value-stringcompositeCode and string value parameter pairObservation
combo-codetokenThe code of the observation type or component typeObservation.code | Observation.component.code
combo-code-value-conceptcompositeCode and coded value parameter pair, including in componentsObservation | Observation.component
combo-code-value-quantitycompositeCode and quantity value parameter pair, including in componentsObservation | Observation.component
combo-data-absent-reasontokenThe reason why the expected value in the element Observation.value[x] or Observation.component.value[x] is missing.Observation.dataAbsentReason | Observation.component.dataAbsentReason
combo-value-concepttokenThe value or component value of the observation, if the value is a CodeableConceptObservation.value.as(CodeableConcept) | Observation.component.value.as(CodeableConcept)
combo-value-quantityquantityThe value or component value of the observation, if the value is a Quantity, or a SampledData (just search on the bounds of the values in sampled data)Observation.value.as(Quantity) | Observation.component.value.as(Quantity)
component-codetokenКод компонента типа наблюденияObservation.component.code
component-code-value-conceptcompositeComponent code and component coded value parameter pairObservation.component
component-code-value-quantitycompositeComponent code and component quantity value parameter pairObservation.component
component-data-absent-reasontokenПричина, по которой ожидаемое значение в элементе Observation.component.value[x] отсутствует.Observation.component.dataAbsentReason
component-value-concepttokenЗначение наблюдения-компонента. если это CodeableConceptObservation.component.value.as(CodeableConcept)
component-value-quantityquantityЗначение наблюдения, если этим значением является величина (Quantity) или SampledData (просто ищите по границам значений в дискретных данных)Observation.component.value.as(Quantity)
contextreferenceHealthcare event (Episode-of-care or Encounter) related to the observationObservation.context
(EpisodeOfCare, Encounter)
data-absent-reasontokenПричина, по которой ожидаемое значение в элементе Observation.value[x] отсутствует.Observation.dataAbsentReason
datedateДата/время получения. Если элементом получения будет период, то дата, которая попадает в этот периодObservation.effective18 Resources
devicereferenceУстройство, сгенерировавшее данные наблюдения.Observation.device
(Device, DeviceMetric)
encounterreferenceEncounter related to the observationObservation.context
(Encounter)
12 Resources
identifiertokenУникальный идентификатор конкретного наблюденияObservation.identifier26 Resources
methodtokenThe method used for the observationObservation.method
patientreferenceСубъект, над которым проводилось наблюдение (если это пациент)Observation.subject
(Patient)
31 Resources
performerreferenceКто выполнил это наблюдениеObservation.performer
(Practitioner, Organization, Patient, RelatedPerson)
relatedcompositeСвязанные наблюдения - поиск одновременно по related-type и related-targetObservation.related
related-targetreferenceРесурс, связанный с данным ресурсомObservation.related.target
(Observation, Sequence, QuestionnaireResponse)
related-typetokenhas-member | derived-from | sequel-to | replaces | qualified-by | interfered-byObservation.related.type
specimenreferenceОбразец, используемый для этого наблюденияObservation.specimen
(Specimen)
statustokenСтатус наблюденияObservation.status
subjectreferenceСубъект, над которым проводилось наблюдениеObservation.subject
(Group, Device, Patient, Location)
value-concepttokenThe value of the observation, if the value is a CodeableConceptObservation.value.as(CodeableConcept)
value-datedateЗначение наблюдения, если этим значением является дата или период времениObservation.value.as(DateTime) | Observation.value.as(Period)
value-quantityquantityThe value of the observation, if the value is a Quantity, or a SampledData (just search on the bounds of the values in sampled data)Observation.value.as(Quantity)
value-stringstringThe value of the observation, if the value is a string, and also searches in CodeableConcept.textObservation.value.as(String)