Current Build

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

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

Orders and Observations Work GroupMaturity Level: 5 NormativeSecurity Category: Patient Compartments: Device, Encounter, Patient, Practitioner, RelatedPerson

Normative Candidate Note: This page is candidate normative content for R4 in the Observation Package. Once normative, it will lose it's Maturity Level, and breaking changes will no longer be made.

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

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

Observations are a central element in healthcare, used to support diagnosis, monitor progress, determine baselines and patterns and even capture demographic characteristics. Most observations are simple name/value pair assertions with some metadata, but some observations group other observations together logically, or even are multi-component observations. Note that the DiagnosticReport resource provides a clinical or workflow context for a set of observations and the Observation resource is referenced by DiagnosticReport to represent laboratory, imaging, and other clinical and diagnostic data to form a complete report.

Uses for the Observation resource include:

*The boundaries between clinical findings and disorders remains a challenge in medical ontology. Refer the Boundaries section below and in Condition for general guidance. These boundaries can be clarified by profiling Observation for a particular use case.

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

At its core, Observation allows expressing a name-value pair or structured collection of name-value pairs. As such, it can support conveying any type of information desired. However, that is not its intent. Observation is intended for capturing measurements and subjective point-in-time assessments. It is not intended to be used for those specific contexts and use cases already covered by other FHIR resources. For example, the AllergyIntolerance resource represents a patient allergies, MedicationStatement resource: medications taken by a patient, FamilyMemberHistory resource: a patient's family history, Procedure resource: information about a procedure, and QuestionnaireResponse resource: a set of answers to a set of questions. The Observation resource 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 will however be situations of overlap. For example, a response to a question of "have you ever taken illicit drugs" could in principle be represented using MedicationStatement, but most systems would treat such an assertion as an Observation. In some cases, such as when source data is coming from an HL7 v2 feed, a system might not have information that allows it to distinguish diagnosis, allergy and other "specialized" types of observations from laboratory, 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. Adhering to such convention is an appropriate use of Observation. If implementers are uncertain whether a proposed use of Observation is appropriate, they're encouraged to consult with implementers on chat.fhir.org implementer's stream

The Media resource captures a specific type of observation whose value is audio, video or image data. This resource is used instead of Observation to represent such forms of information as it exposes the metadata relevant for interpreting the information. See Media's boundaries section to see how Media (and Observation) differs from ImagingStudy and DocumentReference.

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. The Observation resource should not be used to record clinical diagnosis about a patient or subject as discussed above.

На этот ресурс ссылаются AdverseEvent, Appointment, CarePlan, ChargeItem, ClinicalImpression, Communication, CommunicationRequest, Condition, Contract, DeviceRequest, DeviceUseStatement, DiagnosticReport, Encounter, FamilyMemberHistory, Goal, GuidanceResponse, ImagingStudy, Immunization, MedicationAdministration, MedicationRequest, MedicationStatement, MolecularSequence, itself, Procedure, QuestionnaireResponse, RequestGroup, RiskAssessment, ServiceRequest и SupplyRequest

Структура

ИмяФлагиКард.ТипОписание и ограниченияdoco
.. Observation INDomainResourceИзмерения и простые утверждения
+ Rule: Элемент dataAbsentReason должен присутствовать только в том случае, если Observation.value[x] отсутствует
+ Rule: If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
Элементы, определённые в прародителе: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierBusiness Identifier for observation
... basedOn Σ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)Fulfills plan, proposal or order
... partOf Σ0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy)Part of referenced event
... 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)Who and/or what the observation is about
... focus ΣTU0..*Reference(Any)What the observation is about, when it is not about the subject of record
... encounter Σ0..1Reference(Encounter)Событие здравоохранения, во время которого было сделано это наблюдение
... effective[x] Σ0..1Клинически значимое время/период времени наблюдения
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
.... effectiveTimingTiming
.... effectiveInstantinstant
... issued Σ0..1instantDate/Time this version was made available
... performer Σ0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson)Кто несет ответственность за это наблюдение
... value[x] ΣI0..1Непосредственно сам результат
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueStringstring
.... valueBooleanboolean
.... valueIntegerinteger
.... valueRangeRange
.... valueRatioRatio
.... valueSampledDataSampledData
.... valueTimetime
.... valueDateTimedateTime
.... valuePeriodPeriod
... dataAbsentReason I0..1CodeableConceptПочему результат отсутствует
DataAbsentReason (Extensible)
... interpretation 0..*CodeableConceptВысокое, низкое, нормальное и т. п
Observation Interpretation Codes (Extensible)
... note 0..*AnnotationComments about the observation
... 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Руководство по интерпретации
+ Rule: Должен быть указан хотя бы один элемент из low, high или text
.... low I0..1SimpleQuantityНижняя граница диапазона, если уместно
.... high I0..1SimpleQuantityВерхняя граница диапазона, если уместно
.... type 0..1CodeableConceptReference range qualifier
Observation Reference Range Meaning Codes (Preferred)
.... appliesTo 0..*CodeableConceptReference range population
Observation Reference Range Applies To Codes (Example)
.... age 0..1RangeПрименимый возрастной диапазон, если необходимо
.... text 0..1stringТекстовое описание диапазона нормальных значений в наблюдении
... hasMember Σ0..*Reference(Observation | QuestionnaireResponse | MolecularSequence)Related resource that belongs to the Observation group
... derivedFrom Σ0..*Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence)Related measurements the observation is made from
... component Σ0..*BackboneElementРезультаты компонента
.... code Σ1..1CodeableConceptТип наблюдения компонента (код/тип)
LOINC Codes (Example)
.... value[x] Σ0..1Фактический результат компонента
..... valueQuantityQuantity
..... valueCodeableConceptCodeableConcept
..... valueStringstring
..... valueBooleanboolean
..... valueIntegerinteger
..... valueRangeRange
..... valueRatioRatio
..... valueSampledDataSampledData
..... valueTimetime
..... valueDateTimedateTime
..... valuePeriodPeriod
.... dataAbsentReason I0..1CodeableConceptПочему результат компонента отсутствует
DataAbsentReason (Extensible)
.... interpretation 0..*CodeableConceptВысокое, низкое, нормальное и т. п
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 event. For example, a MedicationRequest may require a patient to have laboratory test performed before it is dispensedbasedOn : Reference [0..*] « CarePlan|DeviceRequest| ImmunizationRecommendation|MedicationRequest|NutritionOrder| ServiceRequest »A larger event of which this particular Observation is a component or step. For example, an observation as part of a procedurepartOf : Reference [0..*] « MedicationAdministration| MedicationDispense|MedicationStatement|Procedure|Immunization| ImagingStudy »Статус значения результата (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)ObservationCategoryCodes? »Describes what was observed. Sometimes this is called the observation "name"code : CodeableConcept [1..1] « Коды названий простых наблюдений. (Strength=Example)LOINCCodes?? »The patient, or group of patients, location, or device this observation is about and into whose record the observation is placed. If the actual focus of the observation is different from the subject (or a sample of, part, or region of the subject), the `focus` element or the `code` itself specifies the actual focus of the observationsubject : Reference [0..1] « Patient|Group|Device|Location »The actual focus of an observation when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, fetus, or donor. For example, fetus observations in a mother's record. The focus of an observation could also be an existing condition, an intervention, the subject's diet, another observation of the subject, or a body structure such as tumor or implanted device. An example use case would be using the Observation resource to capture whether the mother is trained to change her child's tracheostomy tube. In this example, the child is the patient of record and the mother is the focusfocus : Reference [0..*] « Any »Событие здравоохранения (например взаимодействие пациента и поставщика медицинских услуг), во время которого было сделано это наблюдениеencounter : Reference [0..1] « Encounter »Время или период времени, в течение которого наблюдаемое значение утверждалось как действительное. Для биологических субъектов - например человеческих пациентов - обычно называется "physiologically relevant time". Обычно это либо время выполнения процедуры или сбора образца, но очень часто источник этой даты/времени не известен, только сама дата/времяeffective[x] : Type [0..1] « dateTime|Period|Timing|instant »Дата и время, когда это наблюдение стало доступно поставщикам, обычно после проверки и верификации результатовissued : instant [0..1]Who was responsible for asserting the observed value as "true"performer : Reference [0..*] « Practitioner|PractitionerRole| Organization|CareTeam|Patient|RelatedPerson »Информация, определенная в результате выполнения этого наблюдения, если эта информация имеет простое значениеvalue[x] : Type [0..1] « Quantity|CodeableConcept|string|boolean| integer|Range|Ratio|SampledData|time|dateTime|Period »Указывает причину, почему ожидаемое значение в элементе Observation.value[x] отсутствуетdataAbsentReason : CodeableConcept [0..1] « Codes specifying why the result (`Observation.value[x]`) is missing. (Strength=Extensible)DataAbsentReason+ »A categorical assessment of an observation value. For example, high, low, normalinterpretation : CodeableConcept [0..*] « Коды интерпретаций наблюдений. (Strength=Extensible) ObservationInterpretationCodes+ »Comments about the observation or the resultsnote : Annotation [0..*]Указывает место на теле субъекта, где проводится наблюдение (т. е. целевое место)bodySite : CodeableConcept [0..1] « Коды для описания анатомического расположения. Могут включать указание латеральности. (Strength=Example)SNOMEDCTBodyStructures?? »Указывает механизм проведения наблюденияmethod : CodeableConcept [0..1] « Методы простых наблюдений. (Strength=Example)ObservationMethods?? »Образец для анализа, над которым проводилось наблюдениеspecimen : Reference [0..1] « Specimen »Устройство, используемое для генерации данных наблюденияdevice : Reference [0..1] « Device|DeviceMetric »This observation is a group observation (e.g. a battery, a panel of tests, a set of vital sign measurements) that includes the target as a member of the grouphasMember : Reference [0..*] « Observation|QuestionnaireResponse| MolecularSequence »The target resource that represents a measurement from which this observation value is derived. For example, a calculated anion gap or a fetal measurement based on an ultrasound imagederivedFrom : Reference [0..*] « DocumentReference|ImagingStudy| Media|QuestionnaireResponse|Observation|MolecularSequence »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=Preferred)ObservationReferenceRangeMean...? »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 race. Multiple `appliesTo` are interpreted as an "AND" of the target populations. For example, to represent a target population of African American females, both a code of female and a code for African American would be usedappliesTo : CodeableConcept [0..*] « Codes identifying the population the reference range applies to. (Strength=Example) ObservationReferenceRangeAppl...?? »Возраст, в котором этот диапазон нормальных значений применяется. Это неонатальный возраст (например число недель в сроке), если указано такое значениеage : Range [0..1]Текстовое описание диапазона нормальных значений в наблюдении, которое может использоваться, когда количественный диапазон не подходит для этого наблюдения. Примером будет эталонное значение "Negative" или список или таблица 'нормальных' значенийtext : string [0..1]ComponentDescribes what was observed. Sometimes this is called the observation "code"code : CodeableConcept [1..1] « Коды названий простых наблюдений. (Strength=Example)LOINCCodes?? »Информация, определенная в результате выполнения этого наблюдения, если эта информация имеет простое значениеvalue[x] : Type [0..1] « Quantity|CodeableConcept|string|boolean| integer|Range|Ratio|SampledData|time|dateTime|Period »Provides a reason why the expected value in the element Observation.component.value[x] is missingdataAbsentReason : CodeableConcept [0..1] « Codes specifying why the result (`Observation.value[x]`) is missing. (Strength=Extensible)DataAbsentReason+ »A categorical assessment of an observation value. For example, high, low, normalinterpretation : CodeableConcept [0..*] « Коды интерпретаций наблюдений. (Strength=Extensible) ObservationInterpretationCodes+ »Guidance on how to interpret the value by comparison to a normal or recommended range. Multiple reference ranges are interpreted as an "OR". In other words, to represent two distinct target populations, two `referenceRange` elements would be usedreferenceRange[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|ServiceRequest) Fulfills plan, proposal or order --></basedOn>
 <partOf><!-- 0..* Reference(MedicationAdministration|MedicationDispense|
   MedicationStatement|Procedure|Immunization|ImagingStudy) Part of referenced event --></partOf>
 <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) Who and/or what the observation is about --></subject>
 <focus><!-- 0..* Reference(Any) What the observation is about, when it is not about the subject of record --></focus>
 <encounter><!-- 0..1 Reference(Encounter) Событие здравоохранения, во время которого было сделано это наблюдение --></encounter>
 <effective[x]><!-- 0..1 dateTime|Period|Timing|instant Клинически значимое время/период времени наблюдения --></effective[x]>
 <issued value="[instant]"/><!-- 0..1 Date/Time this version was made available -->
 <performer><!-- 0..* Reference(Practitioner|PractitionerRole|Organization|
   CareTeam|Patient|RelatedPerson) Кто несет ответственность за это наблюдение --></performer>
 <value[x]><!-- ?? 0..1 Quantity|CodeableConcept|string|boolean|integer|Range|Ratio|
   SampledData|time|dateTime|Period Непосредственно сам результат --></value[x]>
 <dataAbsentReason><!-- ?? 0..1 CodeableConcept Почему результат отсутствует --></dataAbsentReason>
 <interpretation><!-- 0..* CodeableConcept Высокое, низкое, нормальное и т. п --></interpretation>
 <note><!-- 0..* Annotation Comments about the observation --></note>
 <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>
 <hasMember><!-- 0..* Reference(Observation|QuestionnaireResponse|
   MolecularSequence) Related resource that belongs to the Observation group --></hasMember>
 <derivedFrom><!-- 0..* Reference(DocumentReference|ImagingStudy|Media|
   QuestionnaireResponse|Observation|MolecularSequence) Related measurements the observation is made from --></derivedFrom>
 <component>  <!-- 0..* Результаты компонента -->
  <code><!-- 1..1 CodeableConcept Тип наблюдения компонента (код/тип) --></code>
  <value[x]><!-- 0..1 Quantity|CodeableConcept|string|boolean|integer|Range|
    Ratio|SampledData|time|dateTime|Period Фактический результат компонента --></value[x]>
  <dataAbsentReason><!-- ?? 0..1 CodeableConcept Почему результат компонента отсутствует --></dataAbsentReason>
  <interpretation><!-- 0..* 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|ServiceRequest) }], // Fulfills plan, proposal or order
  "partOf" : [{ Reference(MedicationAdministration|MedicationDispense|
   MedicationStatement|Procedure|Immunization|ImagingStudy) }], // Part of referenced event
  "status" : "<code>", // R!  registered | preliminary | final | amended +
  "category" : [{ CodeableConcept }], // Классификация типов наблюдений
  "code" : { CodeableConcept }, // R!  Тип наблюдения (код/тип)
  "subject" : { Reference(Patient|Group|Device|Location) }, // Who and/or what the observation is about
  "focus" : [{ Reference(Any) }], // What the observation is about, when it is not about the subject of record
  "encounter" : { Reference(Encounter) }, // Событие здравоохранения, во время которого было сделано это наблюдение
  // effective[x]: Клинически значимое время/период времени наблюдения. One of these 4:
  "effectiveDateTime" : "<dateTime>",
  "effectivePeriod" : { Period },
  "effectiveTiming" : { Timing },
  "effectiveInstant" : "<instant>",
  "issued" : "<instant>", // Date/Time this version was made available
  "performer" : [{ Reference(Practitioner|PractitionerRole|Organization|
   CareTeam|Patient|RelatedPerson) }], // Кто несет ответственность за это наблюдение
  // value[x]: Непосредственно сам результат. One of these 11:
  "valueQuantity" : { Quantity },
  "valueCodeableConcept" : { CodeableConcept },
  "valueString" : "<string>",
  "valueBoolean" : <boolean>,
  "valueInteger" : <integer>,
  "valueRange" : { Range },
  "valueRatio" : { Ratio },
  "valueSampledData" : { SampledData },
  "valueTime" : "<time>",
  "valueDateTime" : "<dateTime>",
  "valuePeriod" : { Period },
  "dataAbsentReason" : { CodeableConcept }, // C? Почему результат отсутствует
  "interpretation" : [{ CodeableConcept }], // Высокое, низкое, нормальное и т. п
  "note" : [{ Annotation }], // Comments about the observation
  "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>" // Текстовое описание диапазона нормальных значений в наблюдении
  }],
  "hasMember" : [{ Reference(Observation|QuestionnaireResponse|
   MolecularSequence) }], // Related resource that belongs to the Observation group
  "derivedFrom" : [{ Reference(DocumentReference|ImagingStudy|Media|
   QuestionnaireResponse|Observation|MolecularSequence) }], // Related measurements the observation is made from
  "component" : [{ // Результаты компонента
    "code" : { CodeableConcept }, // R!  Тип наблюдения компонента (код/тип)
    // value[x]: Фактический результат компонента. One of these 11:
    "valueQuantity" : { Quantity },
    "valueCodeableConcept" : { CodeableConcept },
    "valueString" : "<string>",
    "valueBoolean" : <boolean>,
    "valueInteger" : <integer>,
    "valueRange" : { Range },
    "valueRatio" : { Ratio },
    "valueSampledData" : { SampledData },
    "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|ServiceRequest) ], ... ; # 0..* Fulfills plan, proposal or order
  fhir:Observation.partOf [ Reference(MedicationAdministration|MedicationDispense|MedicationStatement|Procedure|
  Immunization|ImagingStudy) ], ... ; # 0..* Part of referenced event
  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 Who and/or what the observation is about
  fhir:Observation.focus [ Reference(Any) ], ... ; # 0..* What the observation is about, when it is not about the subject of record
  fhir:Observation.encounter [ Reference(Encounter) ]; # 0..1 Событие здравоохранения, во время которого было сделано это наблюдение
  # Observation.effective[x] : 0..1 Клинически значимое время/период времени наблюдения. One of these 4
    fhir:Observation.effectiveDateTime [ dateTime ]
    fhir:Observation.effectivePeriod [ Period ]
    fhir:Observation.effectiveTiming [ Timing ]
    fhir:Observation.effectiveInstant [ instant ]
  fhir:Observation.issued [ instant ]; # 0..1 Date/Time this version was made available
  fhir:Observation.performer [ Reference(Practitioner|PractitionerRole|Organization|CareTeam|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.valueInteger [ integer ]
    fhir:Observation.valueRange [ Range ]
    fhir:Observation.valueRatio [ Ratio ]
    fhir:Observation.valueSampledData [ SampledData ]
    fhir:Observation.valueTime [ time ]
    fhir:Observation.valueDateTime [ dateTime ]
    fhir:Observation.valuePeriod [ Period ]
  fhir:Observation.dataAbsentReason [ CodeableConcept ]; # 0..1 Почему результат отсутствует
  fhir:Observation.interpretation [ CodeableConcept ], ... ; # 0..* Высокое, низкое, нормальное и т. п
  fhir:Observation.note [ Annotation ], ... ; # 0..* Comments about the observation
  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.hasMember [ Reference(Observation|QuestionnaireResponse|MolecularSequence) ], ... ; # 0..* Related resource that belongs to the Observation group
  fhir:Observation.derivedFrom [ Reference(DocumentReference|ImagingStudy|Media|QuestionnaireResponse|Observation|
  MolecularSequence) ], ... ; # 0..* Related measurements the observation is made from
  fhir:Observation.component [ # 0..* Результаты компонента
    fhir:Observation.component.code [ CodeableConcept ]; # 1..1 Тип наблюдения компонента (код/тип)
    # Observation.component.value[x] : 0..1 Фактический результат компонента. One of these 11
      fhir:Observation.component.valueQuantity [ Quantity ]
      fhir:Observation.component.valueCodeableConcept [ CodeableConcept ]
      fhir:Observation.component.valueString [ string ]
      fhir:Observation.component.valueBoolean [ boolean ]
      fhir:Observation.component.valueInteger [ integer ]
      fhir:Observation.component.valueRange [ Range ]
      fhir:Observation.component.valueRatio [ Ratio ]
      fhir:Observation.component.valueSampledData [ SampledData ]
      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..* Высокое, низкое, нормальное и т. п
    fhir:Observation.component.referenceRange [ See Observation.referenceRange ], ... ; # 0..* Руководство по интерпретации результатов компонента
  ], ...;
]

Changes since R3

Observation
Observation.basedOn
  • Type Reference: Added Target Type ServiceRequest
  • Type Reference: Removed Target Types ProcedureRequest, ReferralRequest
Observation.partOf
  • Added Element
Observation.focus
  • Added Element
Observation.encounter
  • Renamed from context to encounter
  • Type Reference: Removed Target Type EpisodeOfCare
Observation.effective[x]
  • Add Types Timing, instant
Observation.performer
  • Type Reference: Added Target Types PractitionerRole, CareTeam
Observation.value[x]
  • Add Type integer
  • Remove Type Attachment
Observation.dataAbsentReason
  • Change value set from http://hl7.org/fhir/ValueSet/observation-valueabsentreason to http://hl7.org/fhir/ValueSet/data-absent-reason
  • Change code system for extensibly bound codes from "http://hl7.org/fhir/data-absent-reason" to "http://terminology.hl7.org/CodeSystem/data-absent-reason"
Observation.interpretation
  • Max Cardinality changed from 1 to *
  • Change code system for extensibly bound codes from "http://terminology.hl7.org/CodeSystem/v2-0078" to "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation"
Observation.note
  • Renamed from comment to note
  • Max Cardinality changed from 1 to *
  • Type changed from string to Annotation
Observation.referenceRange.type
  • Remove Binding http://hl7.org/fhir/ValueSet/referencerange-meaning (extensible)
Observation.hasMember
  • Added Element
Observation.derivedFrom
  • Added Element
Observation.component.value[x]
  • Add Types boolean, integer
  • Remove Type Attachment
Observation.component.dataAbsentReason
  • Change value set from http://hl7.org/fhir/ValueSet/observation-valueabsentreason to http://hl7.org/fhir/ValueSet/data-absent-reason
  • Change code system for extensibly bound codes from "http://hl7.org/fhir/data-absent-reason" to "http://terminology.hl7.org/CodeSystem/data-absent-reason"
Observation.component.interpretation
  • Max Cardinality changed from 1 to *
  • Change code system for extensibly bound codes from "http://terminology.hl7.org/CodeSystem/v2-0078" to "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation"
Observation.related
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 48 tests that all execute ok. All tests pass round-trip testing and 23 r3 resources are invalid (0 errors).)

Структура

ИмяФлагиКард.ТипОписание и ограниченияdoco
.. Observation INDomainResourceИзмерения и простые утверждения
+ Rule: Элемент dataAbsentReason должен присутствовать только в том случае, если Observation.value[x] отсутствует
+ Rule: If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
Элементы, определённые в прародителе: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierBusiness Identifier for observation
... basedOn Σ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)Fulfills plan, proposal or order
... partOf Σ0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy)Part of referenced event
... 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)Who and/or what the observation is about
... focus ΣTU0..*Reference(Any)What the observation is about, when it is not about the subject of record
... encounter Σ0..1Reference(Encounter)Событие здравоохранения, во время которого было сделано это наблюдение
... effective[x] Σ0..1Клинически значимое время/период времени наблюдения
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
.... effectiveTimingTiming
.... effectiveInstantinstant
... issued Σ0..1instantDate/Time this version was made available
... performer Σ0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson)Кто несет ответственность за это наблюдение
... value[x] ΣI0..1Непосредственно сам результат
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueStringstring
.... valueBooleanboolean
.... valueIntegerinteger
.... valueRangeRange
.... valueRatioRatio
.... valueSampledDataSampledData
.... valueTimetime
.... valueDateTimedateTime
.... valuePeriodPeriod
... dataAbsentReason I0..1CodeableConceptПочему результат отсутствует
DataAbsentReason (Extensible)
... interpretation 0..*CodeableConceptВысокое, низкое, нормальное и т. п
Observation Interpretation Codes (Extensible)
... note 0..*AnnotationComments about the observation
... 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Руководство по интерпретации
+ Rule: Должен быть указан хотя бы один элемент из low, high или text
.... low I0..1SimpleQuantityНижняя граница диапазона, если уместно
.... high I0..1SimpleQuantityВерхняя граница диапазона, если уместно
.... type 0..1CodeableConceptReference range qualifier
Observation Reference Range Meaning Codes (Preferred)
.... appliesTo 0..*CodeableConceptReference range population
Observation Reference Range Applies To Codes (Example)
.... age 0..1RangeПрименимый возрастной диапазон, если необходимо
.... text 0..1stringТекстовое описание диапазона нормальных значений в наблюдении
... hasMember Σ0..*Reference(Observation | QuestionnaireResponse | MolecularSequence)Related resource that belongs to the Observation group
... derivedFrom Σ0..*Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence)Related measurements the observation is made from
... component Σ0..*BackboneElementРезультаты компонента
.... code Σ1..1CodeableConceptТип наблюдения компонента (код/тип)
LOINC Codes (Example)
.... value[x] Σ0..1Фактический результат компонента
..... valueQuantityQuantity
..... valueCodeableConceptCodeableConcept
..... valueStringstring
..... valueBooleanboolean
..... valueIntegerinteger
..... valueRangeRange
..... valueRatioRatio
..... valueSampledDataSampledData
..... valueTimetime
..... valueDateTimedateTime
..... valuePeriodPeriod
.... dataAbsentReason I0..1CodeableConceptПочему результат компонента отсутствует
DataAbsentReason (Extensible)
.... interpretation 0..*CodeableConceptВысокое, низкое, нормальное и т. п
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 event. For example, a MedicationRequest may require a patient to have laboratory test performed before it is dispensedbasedOn : Reference [0..*] « CarePlan|DeviceRequest| ImmunizationRecommendation|MedicationRequest|NutritionOrder| ServiceRequest »A larger event of which this particular Observation is a component or step. For example, an observation as part of a procedurepartOf : Reference [0..*] « MedicationAdministration| MedicationDispense|MedicationStatement|Procedure|Immunization| ImagingStudy »Статус значения результата (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)ObservationCategoryCodes? »Describes what was observed. Sometimes this is called the observation "name"code : CodeableConcept [1..1] « Коды названий простых наблюдений. (Strength=Example)LOINCCodes?? »The patient, or group of patients, location, or device this observation is about and into whose record the observation is placed. If the actual focus of the observation is different from the subject (or a sample of, part, or region of the subject), the `focus` element or the `code` itself specifies the actual focus of the observationsubject : Reference [0..1] « Patient|Group|Device|Location »The actual focus of an observation when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, fetus, or donor. For example, fetus observations in a mother's record. The focus of an observation could also be an existing condition, an intervention, the subject's diet, another observation of the subject, or a body structure such as tumor or implanted device. An example use case would be using the Observation resource to capture whether the mother is trained to change her child's tracheostomy tube. In this example, the child is the patient of record and the mother is the focusfocus : Reference [0..*] « Any »Событие здравоохранения (например взаимодействие пациента и поставщика медицинских услуг), во время которого было сделано это наблюдениеencounter : Reference [0..1] « Encounter »Время или период времени, в течение которого наблюдаемое значение утверждалось как действительное. Для биологических субъектов - например человеческих пациентов - обычно называется "physiologically relevant time". Обычно это либо время выполнения процедуры или сбора образца, но очень часто источник этой даты/времени не известен, только сама дата/времяeffective[x] : Type [0..1] « dateTime|Period|Timing|instant »Дата и время, когда это наблюдение стало доступно поставщикам, обычно после проверки и верификации результатовissued : instant [0..1]Who was responsible for asserting the observed value as "true"performer : Reference [0..*] « Practitioner|PractitionerRole| Organization|CareTeam|Patient|RelatedPerson »Информация, определенная в результате выполнения этого наблюдения, если эта информация имеет простое значениеvalue[x] : Type [0..1] « Quantity|CodeableConcept|string|boolean| integer|Range|Ratio|SampledData|time|dateTime|Period »Указывает причину, почему ожидаемое значение в элементе Observation.value[x] отсутствуетdataAbsentReason : CodeableConcept [0..1] « Codes specifying why the result (`Observation.value[x]`) is missing. (Strength=Extensible)DataAbsentReason+ »A categorical assessment of an observation value. For example, high, low, normalinterpretation : CodeableConcept [0..*] « Коды интерпретаций наблюдений. (Strength=Extensible) ObservationInterpretationCodes+ »Comments about the observation or the resultsnote : Annotation [0..*]Указывает место на теле субъекта, где проводится наблюдение (т. е. целевое место)bodySite : CodeableConcept [0..1] « Коды для описания анатомического расположения. Могут включать указание латеральности. (Strength=Example)SNOMEDCTBodyStructures?? »Указывает механизм проведения наблюденияmethod : CodeableConcept [0..1] « Методы простых наблюдений. (Strength=Example)ObservationMethods?? »Образец для анализа, над которым проводилось наблюдениеspecimen : Reference [0..1] « Specimen »Устройство, используемое для генерации данных наблюденияdevice : Reference [0..1] « Device|DeviceMetric »This observation is a group observation (e.g. a battery, a panel of tests, a set of vital sign measurements) that includes the target as a member of the grouphasMember : Reference [0..*] « Observation|QuestionnaireResponse| MolecularSequence »The target resource that represents a measurement from which this observation value is derived. For example, a calculated anion gap or a fetal measurement based on an ultrasound imagederivedFrom : Reference [0..*] « DocumentReference|ImagingStudy| Media|QuestionnaireResponse|Observation|MolecularSequence »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=Preferred)ObservationReferenceRangeMean...? »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 race. Multiple `appliesTo` are interpreted as an "AND" of the target populations. For example, to represent a target population of African American females, both a code of female and a code for African American would be usedappliesTo : CodeableConcept [0..*] « Codes identifying the population the reference range applies to. (Strength=Example) ObservationReferenceRangeAppl...?? »Возраст, в котором этот диапазон нормальных значений применяется. Это неонатальный возраст (например число недель в сроке), если указано такое значениеage : Range [0..1]Текстовое описание диапазона нормальных значений в наблюдении, которое может использоваться, когда количественный диапазон не подходит для этого наблюдения. Примером будет эталонное значение "Negative" или список или таблица 'нормальных' значенийtext : string [0..1]ComponentDescribes what was observed. Sometimes this is called the observation "code"code : CodeableConcept [1..1] « Коды названий простых наблюдений. (Strength=Example)LOINCCodes?? »Информация, определенная в результате выполнения этого наблюдения, если эта информация имеет простое значениеvalue[x] : Type [0..1] « Quantity|CodeableConcept|string|boolean| integer|Range|Ratio|SampledData|time|dateTime|Period »Provides a reason why the expected value in the element Observation.component.value[x] is missingdataAbsentReason : CodeableConcept [0..1] « Codes specifying why the result (`Observation.value[x]`) is missing. (Strength=Extensible)DataAbsentReason+ »A categorical assessment of an observation value. For example, high, low, normalinterpretation : CodeableConcept [0..*] « Коды интерпретаций наблюдений. (Strength=Extensible) ObservationInterpretationCodes+ »Guidance on how to interpret the value by comparison to a normal or recommended range. Multiple reference ranges are interpreted as an "OR". In other words, to represent two distinct target populations, two `referenceRange` elements would be usedreferenceRange[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|ServiceRequest) Fulfills plan, proposal or order --></basedOn>
 <partOf><!-- 0..* Reference(MedicationAdministration|MedicationDispense|
   MedicationStatement|Procedure|Immunization|ImagingStudy) Part of referenced event --></partOf>
 <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) Who and/or what the observation is about --></subject>
 <focus><!-- 0..* Reference(Any) What the observation is about, when it is not about the subject of record --></focus>
 <encounter><!-- 0..1 Reference(Encounter) Событие здравоохранения, во время которого было сделано это наблюдение --></encounter>
 <effective[x]><!-- 0..1 dateTime|Period|Timing|instant Клинически значимое время/период времени наблюдения --></effective[x]>
 <issued value="[instant]"/><!-- 0..1 Date/Time this version was made available -->
 <performer><!-- 0..* Reference(Practitioner|PractitionerRole|Organization|
   CareTeam|Patient|RelatedPerson) Кто несет ответственность за это наблюдение --></performer>
 <value[x]><!-- ?? 0..1 Quantity|CodeableConcept|string|boolean|integer|Range|Ratio|
   SampledData|time|dateTime|Period Непосредственно сам результат --></value[x]>
 <dataAbsentReason><!-- ?? 0..1 CodeableConcept Почему результат отсутствует --></dataAbsentReason>
 <interpretation><!-- 0..* CodeableConcept Высокое, низкое, нормальное и т. п --></interpretation>
 <note><!-- 0..* Annotation Comments about the observation --></note>
 <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>
 <hasMember><!-- 0..* Reference(Observation|QuestionnaireResponse|
   MolecularSequence) Related resource that belongs to the Observation group --></hasMember>
 <derivedFrom><!-- 0..* Reference(DocumentReference|ImagingStudy|Media|
   QuestionnaireResponse|Observation|MolecularSequence) Related measurements the observation is made from --></derivedFrom>
 <component>  <!-- 0..* Результаты компонента -->
  <code><!-- 1..1 CodeableConcept Тип наблюдения компонента (код/тип) --></code>
  <value[x]><!-- 0..1 Quantity|CodeableConcept|string|boolean|integer|Range|
    Ratio|SampledData|time|dateTime|Period Фактический результат компонента --></value[x]>
  <dataAbsentReason><!-- ?? 0..1 CodeableConcept Почему результат компонента отсутствует --></dataAbsentReason>
  <interpretation><!-- 0..* 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|ServiceRequest) }], // Fulfills plan, proposal or order
  "partOf" : [{ Reference(MedicationAdministration|MedicationDispense|
   MedicationStatement|Procedure|Immunization|ImagingStudy) }], // Part of referenced event
  "status" : "<code>", // R!  registered | preliminary | final | amended +
  "category" : [{ CodeableConcept }], // Классификация типов наблюдений
  "code" : { CodeableConcept }, // R!  Тип наблюдения (код/тип)
  "subject" : { Reference(Patient|Group|Device|Location) }, // Who and/or what the observation is about
  "focus" : [{ Reference(Any) }], // What the observation is about, when it is not about the subject of record
  "encounter" : { Reference(Encounter) }, // Событие здравоохранения, во время которого было сделано это наблюдение
  // effective[x]: Клинически значимое время/период времени наблюдения. One of these 4:
  "effectiveDateTime" : "<dateTime>",
  "effectivePeriod" : { Period },
  "effectiveTiming" : { Timing },
  "effectiveInstant" : "<instant>",
  "issued" : "<instant>", // Date/Time this version was made available
  "performer" : [{ Reference(Practitioner|PractitionerRole|Organization|
   CareTeam|Patient|RelatedPerson) }], // Кто несет ответственность за это наблюдение
  // value[x]: Непосредственно сам результат. One of these 11:
  "valueQuantity" : { Quantity },
  "valueCodeableConcept" : { CodeableConcept },
  "valueString" : "<string>",
  "valueBoolean" : <boolean>,
  "valueInteger" : <integer>,
  "valueRange" : { Range },
  "valueRatio" : { Ratio },
  "valueSampledData" : { SampledData },
  "valueTime" : "<time>",
  "valueDateTime" : "<dateTime>",
  "valuePeriod" : { Period },
  "dataAbsentReason" : { CodeableConcept }, // C? Почему результат отсутствует
  "interpretation" : [{ CodeableConcept }], // Высокое, низкое, нормальное и т. п
  "note" : [{ Annotation }], // Comments about the observation
  "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>" // Текстовое описание диапазона нормальных значений в наблюдении
  }],
  "hasMember" : [{ Reference(Observation|QuestionnaireResponse|
   MolecularSequence) }], // Related resource that belongs to the Observation group
  "derivedFrom" : [{ Reference(DocumentReference|ImagingStudy|Media|
   QuestionnaireResponse|Observation|MolecularSequence) }], // Related measurements the observation is made from
  "component" : [{ // Результаты компонента
    "code" : { CodeableConcept }, // R!  Тип наблюдения компонента (код/тип)
    // value[x]: Фактический результат компонента. One of these 11:
    "valueQuantity" : { Quantity },
    "valueCodeableConcept" : { CodeableConcept },
    "valueString" : "<string>",
    "valueBoolean" : <boolean>,
    "valueInteger" : <integer>,
    "valueRange" : { Range },
    "valueRatio" : { Ratio },
    "valueSampledData" : { SampledData },
    "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|ServiceRequest) ], ... ; # 0..* Fulfills plan, proposal or order
  fhir:Observation.partOf [ Reference(MedicationAdministration|MedicationDispense|MedicationStatement|Procedure|
  Immunization|ImagingStudy) ], ... ; # 0..* Part of referenced event
  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 Who and/or what the observation is about
  fhir:Observation.focus [ Reference(Any) ], ... ; # 0..* What the observation is about, when it is not about the subject of record
  fhir:Observation.encounter [ Reference(Encounter) ]; # 0..1 Событие здравоохранения, во время которого было сделано это наблюдение
  # Observation.effective[x] : 0..1 Клинически значимое время/период времени наблюдения. One of these 4
    fhir:Observation.effectiveDateTime [ dateTime ]
    fhir:Observation.effectivePeriod [ Period ]
    fhir:Observation.effectiveTiming [ Timing ]
    fhir:Observation.effectiveInstant [ instant ]
  fhir:Observation.issued [ instant ]; # 0..1 Date/Time this version was made available
  fhir:Observation.performer [ Reference(Practitioner|PractitionerRole|Organization|CareTeam|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.valueInteger [ integer ]
    fhir:Observation.valueRange [ Range ]
    fhir:Observation.valueRatio [ Ratio ]
    fhir:Observation.valueSampledData [ SampledData ]
    fhir:Observation.valueTime [ time ]
    fhir:Observation.valueDateTime [ dateTime ]
    fhir:Observation.valuePeriod [ Period ]
  fhir:Observation.dataAbsentReason [ CodeableConcept ]; # 0..1 Почему результат отсутствует
  fhir:Observation.interpretation [ CodeableConcept ], ... ; # 0..* Высокое, низкое, нормальное и т. п
  fhir:Observation.note [ Annotation ], ... ; # 0..* Comments about the observation
  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.hasMember [ Reference(Observation|QuestionnaireResponse|MolecularSequence) ], ... ; # 0..* Related resource that belongs to the Observation group
  fhir:Observation.derivedFrom [ Reference(DocumentReference|ImagingStudy|Media|QuestionnaireResponse|Observation|
  MolecularSequence) ], ... ; # 0..* Related measurements the observation is made from
  fhir:Observation.component [ # 0..* Результаты компонента
    fhir:Observation.component.code [ CodeableConcept ]; # 1..1 Тип наблюдения компонента (код/тип)
    # Observation.component.value[x] : 0..1 Фактический результат компонента. One of these 11
      fhir:Observation.component.valueQuantity [ Quantity ]
      fhir:Observation.component.valueCodeableConcept [ CodeableConcept ]
      fhir:Observation.component.valueString [ string ]
      fhir:Observation.component.valueBoolean [ boolean ]
      fhir:Observation.component.valueInteger [ integer ]
      fhir:Observation.component.valueRange [ Range ]
      fhir:Observation.component.valueRatio [ Ratio ]
      fhir:Observation.component.valueSampledData [ SampledData ]
      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..* Высокое, низкое, нормальное и т. п
    fhir:Observation.component.referenceRange [ See Observation.referenceRange ], ... ; # 0..* Руководство по интерпретации результатов компонента
  ], ...;
]

Changes since Release 3

Observation
Observation.basedOn
  • Type Reference: Added Target Type ServiceRequest
  • Type Reference: Removed Target Types ProcedureRequest, ReferralRequest
Observation.partOf
  • Added Element
Observation.focus
  • Added Element
Observation.encounter
  • Renamed from context to encounter
  • Type Reference: Removed Target Type EpisodeOfCare
Observation.effective[x]
  • Add Types Timing, instant
Observation.performer
  • Type Reference: Added Target Types PractitionerRole, CareTeam
Observation.value[x]
  • Add Type integer
  • Remove Type Attachment
Observation.dataAbsentReason
  • Change value set from http://hl7.org/fhir/ValueSet/observation-valueabsentreason to http://hl7.org/fhir/ValueSet/data-absent-reason
  • Change code system for extensibly bound codes from "http://hl7.org/fhir/data-absent-reason" to "http://terminology.hl7.org/CodeSystem/data-absent-reason"
Observation.interpretation
  • Max Cardinality changed from 1 to *
  • Change code system for extensibly bound codes from "http://terminology.hl7.org/CodeSystem/v2-0078" to "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation"
Observation.note
  • Renamed from comment to note
  • Max Cardinality changed from 1 to *
  • Type changed from string to Annotation
Observation.referenceRange.type
  • Remove Binding http://hl7.org/fhir/ValueSet/referencerange-meaning (extensible)
Observation.hasMember
  • Added Element
Observation.derivedFrom
  • Added Element
Observation.component.value[x]
  • Add Types boolean, integer
  • Remove Type Attachment
Observation.component.dataAbsentReason
  • Change value set from http://hl7.org/fhir/ValueSet/observation-valueabsentreason to http://hl7.org/fhir/ValueSet/data-absent-reason
  • Change code system for extensibly bound codes from "http://hl7.org/fhir/data-absent-reason" to "http://terminology.hl7.org/CodeSystem/data-absent-reason"
Observation.component.interpretation
  • Max Cardinality changed from 1 to *
  • Change code system for extensibly bound codes from "http://terminology.hl7.org/CodeSystem/v2-0078" to "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation"
Observation.related
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 48 tests that all execute ok. All tests pass round-trip testing and 23 r3 resources are invalid (0 errors).)

 

See the Profiles & Extensions and the Альтернативные определения: Основное определение XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions & the Анализ зависимостей

PathОписаниеТипСсылка
Observation.status Codes providing the status of an observation.RequiredObservationStatus
Observation.category Коды высокоуровневой классификации наблюдений.PreferredObservationCategoryCodes
Observation.code
Observation.component.code
Коды названий простых наблюдений.ExampleLOINCCodes
Observation.dataAbsentReason
Observation.component.dataAbsentReason
Codes specifying why the result (`Observation.value[x]`) is missing.ExtensibleDataAbsentReason
Observation.interpretation
Observation.component.interpretation
Коды интерпретаций наблюдений.ExtensibleObservationInterpretationCodes
Observation.bodySite Коды для описания анатомического расположения. Могут включать указание латеральности.ExampleSNOMEDCTBodyStructures
Observation.method Методы простых наблюдений.ExampleObservationMethods
Observation.referenceRange.type Code for the meaning of a reference range.PreferredObservationReferenceRangeMeaningCodes
Observation.referenceRange.appliesTo Codes identifying the population the reference range applies to.ExampleObservationReferenceRangeAppliesToCodes

idLevelLocationОпределениеExpression
obs-3Rule Observation.referenceRangeДолжен быть указан хотя бы один элемент из low, high или textlow.exists() or high.exists() or text.exists()
obs-6Rule (base)Элемент dataAbsentReason должен присутствовать только в том случае, если Observation.value[x] отсутствуетdataAbsentReason.empty() or value.empty()
obs-7Rule (base)If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be presentvalue.empty() or component.code.where( (coding.code = %resource.code.coding.code) and (coding.system = %resource.code.coding.system)).empty()

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

Обычно, данные наблюдений относятся к субъекту - пациенту, группе пациентов, локации или устройству - и расзличие между субъектом и прямым измерением данных наблюдения указывается в самом коде (например "Глюкоза крови") и его не надо указывать отдельно. Однако, 3 атрибута можно использовать представление цели наблюдения, если это был не сам субъект. Элементы specimen и bodySite служат для указания измерений, сделанных на образцах для анализа субъекта или анатомическиом и морфологическом участке тела, а focus хранит определенный аспект субъекта, на которые необходимо обращать внимание, например данные другого наблюдения или устройство-имплант у пациента.

Многие наблюдения обладают важной взаимосвязью с другими наблюдениями, и их необходимо собирать в группы (традиционно называемые в лабораториях "панелями" или "батареями"), которые можно использовать для представления взаимосвязей между отдельными элементами данных. Обычно это достигается ссылками на отдельные наблюдения в ресурсе DiagnosticReport, где элемент DiagnosticReport.code содержит название панели и служит группирующим элементом. Вот несколько примеров, демонстрирующих группировку наблюдений с помощью ресурса DiagnosticReport.

DiagnosticReport напрямую связан с заказом ServiceRequest. DiagnosticReport.code хранит название панели и служит для группировки, что в лабораториях традиционно называют "панель" или "батарея" тестов. Элемент DiagnosticReport.result ссылается на отдельные наблюдения. Несколько примеров демонстрируют группировку наблюдений с помощью ресурса DiagnosticReport в качестве группирующей структуры.

Observation.component служит для хранения вспомогательных результатов, которые невозможно интерпретировать и использовать вне скоупа ресурса Observation, компонентом которого является. Наблюдения-компоненты могут составлять отдельные и индивидуальные части наблюдения или могут передавать уточняющую информацию к Observation.code и могут интерпретироваться относительно Observation.code (например см. операцию $stats). Таким образом, все пары код/значение и component.code-component.value следует принимать во внимание для корректного понимания значения данных наблюдения. Компоненты следует использовать только в случае, когда метод, наблюдение, исполнитель, устройство и время только одно. Вот некоторые случаи использования такой структуры:

  1. Данные наблюдений, которые обычно производятся и интерпретируются вместе. Например систолическое и диастолическое кровяное давление описывается одной панелью.
  2. Результаты инструментов оценивания, которые обычно производятся и интерпретируются вместе. Например оценка по шкале Апгар для новорожденных записывается одним ресурсом Observation с пятью компонентами.
  3. Представление нескольких ответов на вопрос (см. различия между ресурсами Observation и Questionnaire/QuestionnaireResponse). Например сообщение видов алкоголя, употребляемого пациентом.

С другой стороны, любые данные наблюдений, который клинически релевантны вне контекста быть комопнентом другого наблюдения, следует представлять в виде отдельных ресурсов Observation. Например для индекса массы тела (BMI) ресурс Observation не должен содержать компоненты для роста и веса, поскольку они являются клинически релевантными данными наблюдений сами по себе и их следует записывать в отдельные ресурсы Observation. О том, как связывать независимые ресурсы Observation, см. в разделе ниже.

Observation.hasMember и Observation.derivedFrom, а также официальные расширения Observation-sequelTo и Observation-replaces используются для всех вспомогательных результатов, которые можно интерпретировать и использовать отдельно и которые имеют одно или несколько различных значений для метода, наблюдения, исполнителя, устройства, времени и/или условий ошибки. Вот два основных случая использования такой структуры:

  1. Для группировки связанных данных наблюдений - панелей или батарей. В этом случае Observation.code будет представлять код панели, обычно Observation.value[x] при этом опускается, и набор связанных ресурсов Observation перечисляется в элементе Observation.hasMember. Такая структура позволяет вложенную группировку, когда используется с ресурсом DiagnosticReport (например complex micro isolate and sensitivities report).
  2. Для связывания с другими ресурсами Observation, из которых следует данное. В этом случае должны присутствовать оба элемента Observation.code и Observation.value[x], а связанные ресурсы Observation перечисляются в Observation.derivedFrom. Примером будет Observation Body Mass Index (BMI), ссылающийся на измерения роста и веса.

Когда значение результата представлено в виде кода определенного концепта, то используется элемент valueCodeableConcept. Этот элемент привязан к набору значений, состоящему из стандартных номенклатур, таких как SNOMED CT или системы-источника локальных кодированных значений результатов.

Результаты могут быть закодированы несколькими наборами значений на основе различных кодовых систем, и они могут быть замаплены с помощью ресурса ConceptMap и/или даны в виде дополнительных кодингов прямо в элементе, как показано в примере ниже.

Например LOINC 43304-5 Chlamydia trachomatis rRNA [Presence] in Unspecified specimen by Probe and target amplification method обычно связан с наличием/отсутствием концептов. Используя кодированное значение для 'negative' со стандартным переводом кода, элемент valueCodeableConcept будет таким:


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

  

Когда элемент данных обычно кодируется или тип, связанный с элементом code определяет кодированное значение, используйте valueCodeableConcept даже если нет подходящего кода и есть только значение в свободной текстовой форме. Например используя только текст, элемент valueCodeableConcept будет таким:


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

  

Когда в список кодированных ответов входит код концепта для "other" и есть описание в свободной текстовой форме, для передачи полного значения источника следует использовать элемент valueCodeableConcept.text. В примере ниже код ответа "Other" передается с помощью элемента valueCodeableConcept и текстового значения в элементе CodeableConcept.text.

    {
    "resourceType": "Observation",
    ... snip ...
    "code": {
    "coding": [
    {
    "system": "http://loinc.org",
    "code": "74076-1",
    "display": "Medication or substance involved"
    }
    ]
    },
    .. snip ...
    "valueCodeableConcept": {
    "coding": [
    {
    "system": "http://loinc.org",
    "code": " LA20343-2",
    "display": "Other substance: PLEASE SPECIFY"
    }
    ],
    "text": "Other: Blue pills I found under my couch"
    }
    .. snip ...
    }
  

Текущая трудность, связанная с ресурсом Observation независимо от конкретного шаблона - это вопрос заполнения observation.code и observation.value. В то время как это очевидно для лабораторных данных, для других типов наблюдений это может быть распрывчато, таких как данные осмотра и нарушения, данные семейного анамнеза и т.п. Обсуждение нацелено на способ, в котором кодированное представление таких данных выражается с помощью элементов Observation.code и Observation.value.

Есть две грани, лежащие в основе FHIR Observation:

  • Действие, которое предприняли для получения данных и/или наблюдаемых свойств. Например: измерение гемоглобина крови.
  • Результат наблюдения. Например: 14 g/dl.

Есть несколько различных подходов представления одной и той же информации, используя различные комбинации элементов Observation.code and Observation.value. Неограниченное использование альтернатив предсатвляет большую проблему при вычислении семантических эквивалентов и для безопасной интерпретации данных наблюдений, происходящих из различных прилоежний и пользователей. Следующие четыре шаблона могли бы обоснованно представлять один и тот же случай. Принимая во внимание, что ресурс Observation трбует для поддержки множества сценариев, соответствующее место для определения конкретного шаблона ожидается сделать через профили и руководства по внедрению, разрабатываемыми странами и/или организациями, внедряющими FHIR:

  1. Observation.code передает характер наблюдения, а Observation.value представляет нечисловое значение результата. Это и есть две грани, являющиеся центральными для FHIR-ресурса Observation. Например:
    • code=[Examination]
    • value=[Abdomen tender]
  2. Observation.code почти идентичен 1) выше, только уровень детализации сдвинут от значения к коду. Например:
    • code=[Abdominal examination]
    • value=[Tenderness]
  3. Observation.code также выражен таким способом, что не конкретизирует действие наблюдения, а передает утверждение о полученных сведениях, сведенное к одному понятию (или термину), как в пункте выше. В этом примере Observation.value присутствует и "уточняет" полученные сведения, обычно утверждая или отрицая его. Например:
    • code=[Abdominal tenderness]
    • value=[found/true]
  4. В этом примере Observation.code выражен способом, не конкретизирующим действие наблюдения, а указывающим утвреждение о полученных сведениях, сведенное до одного понятия (или термина). В этом конкретном примере в данном контексте Observation.value опуден. Например:
    • code=[Abdominal tenderness]
    • value element is omitted
  1. Рекомендуемые правила для шаблонов в случаях 1 и 2:
    • Предпочтительно в Observation.code указывать LOINC-код .
      • Если используется SNOMED CT-код , то в выражении должно быть 363787002 (Observable entity(Observable entity)) или 386053000 (Evaluation procedure(evaluation procedure))
    • Для нечисловых значений в Observation.value рекомендуется использовать SNOMED CT-код.
  2. Рекомендованные правила шаблона для случая 3:
    • Предпочтительно в Observation.code использовать код LOINC или SNOMED CT.
      • Если используется SNOMED CT-код, выражение должно представлять 404684003 (Clinical finding (finding)), 413350009 (Finding with explicit context(finding)) или 272379006 (Event(event)).
    • Observation.value будет либо
      • valueBoolean
      • valueCodeableConcept, предпочтительно используя:
  3. Рекомендованные правила шаблона для случая 3:
    • В Observation.code лучше ипользовать SNOMED CT-код, где концептом будет is-a 404684003 (Clinical finding (finding)), 413350009 (Finding with explicit context(finding)) или 272379006 (Event(event)).
    • Observation.value опущено. По умолчанию это интерпретируется концепт (отдельный код или выражение), представленный в Observation.code присутствует в пациенте. Значение Observation.dataAbsentReason 'clinical-finding' следует использовать для указания, почему ожидаемое значение отстутсвует.
  4. Не следует использовать шаблон Assertion, как описано в HL7 Version 3 Implementation Guide: TermInfo - Using SNOMED CT in CDA R2 Models, Release 1 . (Кодом будет 'ASSERTION', а значением - SNOMED CT-концепт или выражение).

Далее приведено руководство по использованию кодов или других ресурсов Observation для предоставления дополнительного контекста, который может повлиять на инетпретацию данных наблюдения:

  1. По возможности используйте как можно более конкретный код

    например:

            {
            "resourceType": "Observation",
            ... snip ...
            "code": {
            "coding": [
            {
            "system": "http://loinc.org",
            "code": "6689-4",
            "display": "Glucose [Mass/​volume] in Blood --2 hours post meal"
            }
            ]
            },
            ... snip ...
            }
          
  2. Иначе, используйте дополнительные коды в Observation.code как описано выше.

    например: Observation.code = coding-1: 59408-5 Oxygen saturation in Arterial blood by Pulse oximetry, coding-2: 20564-1 Oxygen saturation in Blood

            {
            "resourceType": "Observation",
            ... snip ...
            "code": {
            "coding": [
            {
            "system": "http://loinc.org",
            "code": "59408-5",
            "display": "Oxygen saturation in Arterial blood by Pulse oximetry"
            },
            {
            "system": "http://loinc.org",
            "code": "20564-1",
            "display": "Oxygen saturation in Blood"
            }
            ]
            },
            ... snip ...
            }
          
  3. Как описано выше, данные наблюдений обычно группируются для обеспечения дополнительной информации, необходимой для корректного понимания и интепретации данных. В качестве альтеранитв группировке данных наблюдений можно использовать расширения для указания ссылок на другие ресурсы Observation, необходимые для понимания и инетпретации данного Observation.

Примечание:Мы ожидаем отзывов от сообщества реализаторов по оценке существующих расширений ресурса Observation для этих целей.

Отзывы здесь .

  • Имя данного элемента Observation.value[x] изменяется в зависимости от типа следующим образом:
    • valueQuantity
    • valueCodeableConcept
    • valueString
    • valueBoolean
    • valueInteger
    • valueRange
    • valueRatio
    • valueSampledData
    • valueTime
    • valueDateTime
    • valuePeriod

  • См. раздел выше Применение кодов для значений результата
  • Тип данных Boolean редко используется в элементе Observation.value[x], поскольку для большинства наблюдений полученные значения никогда не будут по-настоящему булевыми из-за исключительных значений, таких как "unknown" (неизвестно), поэтому вместо него следует использовать тип данных CodeableConcept и выбирать коды из http://terminology.hl7.org/ValueSet/v2-0136 (эти концепты "yes/no" можно замапить на значения для отображения "true/false" или другие взаимоисключающие понятия, которые могут понадобиться).
  • В типе данных SampledData могут использоваться особые значения: "E" (ошибка), "L" (ниже предела обнаружения) и "U" (выше предела обнаружения). Однако при использовании valueQuantity в наблюдении для значений "выше/ниже предела обнаружения", valueQuantity следует использовать для указания пределов вместе с компаратором (знаком сравнения). Кроме того, для ошибки необходимо использовать элемент dataAbsentReason с соответсвующим значением ('error' или "NaN"). Например, если значение было меньше нижнего предела обнаружения <2.0 mmol/L, то Observation.valueQuantity будет следующим:
            "valueQuantity": {
            "value": 2.0,
            "comparator": "<",
            "unit": "mmol/l",
            "system": "http://unitsofmeasure.org",
            "code": "mmol/L"
            }
          
    Если значением было "NaN" (т.е. ошибка), то элемент valueCodeableConcept будет отсутствовать, а в элементе dataAbsentReason будет:
            "dataAbsentReason": {
            "coding": [
            {
            "system": "http://terminology.hl7.org/CodeSystem/data-absent-reason",
            "code": "NaN",
            "display": "Not a Number"
            }
            ]
            }
          
  • Поскольку в элементе value разрешено несколько типов данных, то для него определено несколько параметров поиска по значению. Для поиска значений типа Ratio нет стандартных параметров.

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

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

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

Генетические отчеты интенсивно используют ресурсы DiagnosticReport и Observation. Руководство по внедрению, описывающее как представить генетические результаты, находится здесь .

Операция запроса lastn отвечает распространенной потребности в поиске самых свежих или "последних известных" наблюдений субъекта. Вот примеры, где может использоваться такой запрос:

  • Найти 5 последних измерений температуры пациента для просмотра трендов
  • Найти самые последние лабораторные результаты пациента
  • Найти последние 3 результата всех основных показателей состояния организма пациента

Более детальную информацию и примеры см. на странице операций ресурса Observation в разделе Запрос на последние N ресурсов Observation.

Операция stats выполняет серию статистических вычислений на ряде клинических измерений, таких как кровяное давление, хранящихся на сервере. Эта операция направлена на ресурсы Observation с элементами valueQuantity, имеющими единицы измерения UCUM. Вот примеры применения этой операции:

  • Получить среднее, минимальное, максимальное и подсчёт серии измерений кровяного давления пациента
  • Определить 20-ю и 80-ю процентиль для серии измерений за период времени
Более детальную информацию и примеры см. на странице операций ресурса Observation в разделе статистика данных наблюдений.

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

ИмяТипОпределениеВыражениеIn Common
based-onreferenceReference to the service request.Observation.basedOn
(CarePlan, MedicationRequest, NutritionOrder, DeviceRequest, ServiceRequest, ImmunizationRecommendation)
categorytokenКлассификация типов наблюденийObservation.category
codetokenThe code of the observation typeObservation.code13 Resources
code-value-conceptcompositeCode and coded value parameter pairOn Observation:
  code: code
  value-concept: value.as(CodeableConcept)
code-value-datecompositeCode and date/time value parameter pairOn Observation:
  code: code
  value-date: value.as(DateTime) | value.as(Period)
code-value-quantitycompositeCode and quantity value parameter pairOn Observation:
  code: code
  value-quantity: value.as(Quantity)
code-value-stringcompositeCode and string value parameter pairOn Observation:
  code: code
  value-string: value.as(string)
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 componentsOn Observation | Observation.component:
  combo-code: code
  combo-value-concept: value.as(CodeableConcept)
combo-code-value-quantitycompositeCode and quantity value parameter pair, including in componentsOn Observation | Observation.component:
  combo-code: code
  combo-value-quantity: value.as(Quantity)
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 CodeableConcept(Observation.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 pairOn Observation.component:
  component-code: code
  component-value-concept: value.as(CodeableConcept)
component-code-value-quantitycompositeComponent code and component quantity value parameter pairOn Observation.component:
  component-code: code
  component-value-quantity: value.as(Quantity)
component-data-absent-reasontokenПричина, по которой ожидаемое значение в элементе Observation.component.value[x] отсутствует.Observation.component.dataAbsentReason
component-value-concepttokenЗначение наблюдения-компонента. если это CodeableConcept(Observation.component.value as CodeableConcept)
component-value-quantityquantityЗначение наблюдения, если этим значением является величина (Quantity) или SampledData (просто ищите по границам значений в дискретных данных)(Observation.component.value as Quantity)
data-absent-reasontokenПричина, по которой ожидаемое значение в элементе Observation.value[x] отсутствует.Observation.dataAbsentReason
datedateДата/время получения. Если элементом получения будет период, то дата, которая попадает в этот периодObservation.effective17 Resources
derived-fromreferenceRelated measurements the observation is made fromObservation.derivedFrom
(Media, Observation, ImagingStudy, MolecularSequence, QuestionnaireResponse, DocumentReference)
devicereferenceУстройство, сгенерировавшее данные наблюдения.Observation.device
(Device, DeviceMetric)
encounterreferenceEncounter related to the observationObservation.encounter
(Encounter)
12 Resources
focus TUreferenceThe focus of an observation when the focus is not the patient of record.Observation.focus
(Any)
has-memberreferenceRelated resource that belongs to the Observation groupObservation.hasMember
(Observation, MolecularSequence, QuestionnaireResponse)
identifiertokenУникальный идентификатор конкретного наблюденияObservation.identifier30 Resources
methodtokenThe method used for the observationObservation.method
part-ofreferencePart of referenced eventObservation.partOf
(Immunization, MedicationDispense, MedicationAdministration, Procedure, ImagingStudy, MedicationStatement)
patientreferenceСубъект, над которым проводилось наблюдение (если это пациент)Observation.subject.where(resolve() is Patient)
(Patient)
29 Resources
performerreferenceКто выполнил это наблюдениеObservation.performer
(Practitioner, Organization, CareTeam, Patient, PractitionerRole, RelatedPerson)
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 CodeableConcept(Observation.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 | (Observation.value as CodeableConcept).text