FHIR Release 3 (STU)

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

6.3 Ресурс Provenance - Назначение

Security Work GroupMaturity Level: 3 Trial UseCompartments: Device, Patient, Practitioner, RelatedPerson

Происхождение ресурса - это запись, описывающая сущности и процессы, вовлеченные в создание и доставку или иное воздействие на ресурс. Происхождение обеспечивает необходимую основу для оценки подлинности, возможности доверия и воспроизводимости. Утверждения о происхождении имеют форму контекстуальных метаданных и сами могут стать важными записями со своим собственным происхождением. Заявление о происхождении показывает клиническую значимость с точки зрения уверенности в подлинности, надежности, достоверности, целостности и стадии жизненного цикла (например, Document Completion - имеет артефакт юридической проверки подлинности), каждое из которых может повлиять на политики безопасности, конфиденциальности и доверия.

Ресурс provenance отслеживает информацию об активности по созданию версий ресурса, включая сущности и агентов, участвующих в создании ресурса. Эта информация может использоваться для получения оценки качества, надежности и достоверности, или для предоставления указателей, куда перейти для дальнейшего изучения происхождения ресурса и содержащейся в нем информации.

Ресурсы Provenance ведут учет по сбору информации о контексте, в котором была получена информация в ресурсе. Ресурсы Provenance подготавливаются приложением, которое инициирует создание/обновление и т. п. ресурса. Ресурс AuditEvent содержит пересекающуюся информацию, но создается при наступлении события для отслеживания и аудита событий. Ресурсы AuditEvent часто (хотя и не исключительно) создаются приложением, в ответ на событие чтения/запроса/создания/обновления и т. п.

Многие другие FHIR-ресурсы содержат элементы с информацией о происхождении ресурса, которые пересекаются с функциональностью ресурса Provenance. Этим свойствам в других ресурсах всегда следует отдавать предпочтение при использовании, а ресурс Provenance следует использовать тогда, когда требуется указать дополнительную информацию, хоть и может возникнуть дублирование.

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

Ресурс Provenance основывается на W3C-спецификации Provenance , с которой у него есть мэппинги. Ресурс Provenance адаптирован, чтобы лучше соответствовать сценариям использования в FHIR для описания происхождения. В терминах W3C Provenance FHIR-ресурсы Provenance покрывают "создание" сущности касательно заданных в FHIR ресурсах для создания или обновления; тогда как AuditEvent покрывает "использование" сущности и все остальные "активности", определённые в W3C Provenance.

W3C-спецификация Provenance определяет следующую основную модель:

Key concepts

Где:

  • Цель (Target) - Сущность, представляющая собой экземпляр FHIR-ресурса, который создаётся, обновляется или удаляется.
  • Сущность (Entity) - Сущность может быть физической, цифровой, концептуальной или иного вида с некоторыми фиксированными аспектами; сущности могут быть реальными или вымышленными.
  • Представитель (Agent) - Представитель - это что-то, что несёт некоторую форму ответственности за происходящую активность, за существование сущности или за другую активность представителя.
  • Активность (Activity) - Активность - это что-то, что происходит за некоторый период времени и действует над или с сущностями; может включать в себя употребление, обработку, преобразование, изменение, перемещение, использование или образование сущностей.

Ресурс Provenance фактически соответствует одной активности, которая определяет набор ресурсов (target), генерируемых этой активностью. Эта активность также ссылается на другие сущности (entity), которые были использованы, и агентов (agent), которые были связаны с этой активностью. Для записи нескольких действий, которые приводят к одному (target), запишите каждое действие (activity) в отдельный экземпляр ресурса Provenance, причём все они должны указывать на этот целевой объект (target).

Ресурс Provenance зависит от ссылок на все ресурсы, сущности и агентов, вовлечённых в активность. Эти ссылки не обязательно должны быть разрешимыми. Ссылки должны обеспечивать уникальную и однозначную идентификацию. Если ресурс, сущность или агент могут иметь различные версии, это должно быть указано, тогда в эту ссылку должна быть включена информация о версии.

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

The Provenance resource is based on leveraging the W3C Provenance specification to represent HL7 support of provenance throughout its standards and explicitly modeled as functional capabilities in ISO/HL7 10781 EHR System Functional Model Release 2 and ISO 21089 Trusted End-to-End Information Flows; and mappings are provided. The Provenance resource is tailored to fit the FHIR use-cases for provenance more directly. In terms of W3C Provenance the FHIR Provenance resources covers "Generation" of "Entity" with respect to FHIR defined resources for creation or updating; whereas AuditEvent covers "Usage" of "Entity" and all other "Activity" as defined in W3C Provenance.

На этот ресурс ссылаются DeviceRequest, MedicationAdministration, MedicationDispense, MedicationRequest, ProcedureRequest, ReferralRequest и Task

Структура

ИмяФлагиКард.ТипОписание и ограниченияdoco
.. Provenance DomainResourceКто, что, когда для набора ресурсов
Элементы, определённые в прародителе: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... target Σ1..*Reference(Any)Целевые ссылки (обычно на конкретные версии)
... period 0..1PeriodКогда произошла активность
... recorded Σ1..1instantКогда активность была записана/обнволена
... policy 0..*uriПолитика или план, по которому произошла активность
... location 0..1Reference(Location)Где произошла активность, если это уместно
... reason 0..*CodingПричина активности
PurposeOfUse (Extensible)
... activity 0..1CodingАктивность, которая наступила
ProvenanceActivityType (Extensible)
... agent 1..*BackboneElementУчаствующее лицо
.... role Σ0..*CodeableConceptWhat the agents role was
SecurityRoleType (Extensible)
.... who[x] Σ1..1Who participated
..... whoUriuri
..... whoReferenceReference(Practitioner | RelatedPerson | Patient | Device | Organization)
.... onBehalfOf[x] 0..1Who the agent is representing
..... onBehalfOfUriuri
..... onBehalfOfReferenceReference(Practitioner | RelatedPerson | Patient | Device | Organization)
.... relatedAgentType 0..1CodeableConceptТип взаимосвязи между посредниками
v3 Code System RoleLinkType (Example)
... entity 0..*BackboneElementСущность, использованная в этой активности
.... role Σ1..1codederivation | revision | quotation | source | removal
ProvenanceEntityRole (Required)
.... what[x] Σ1..1Идентификатор сущности
..... whatUriuri
..... whatReferenceReference(Any)
..... whatIdentifierIdentifier
.... agent 0..*see agentСущность приписывается этому агенту
... signature 0..*SignatureЭлектронная цифровая подпись целевого объекта

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

XML-шаблон

<Provenance xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <target><!-- 1..* Reference(Any) Целевые ссылки (обычно на конкретные версии) --></target>
 <period><!-- 0..1 Period Когда произошла активность --></period>
 <recorded value="[instant]"/><!-- 1..1 Когда активность была записана/обнволена -->
 <policy value="[uri]"/><!-- 0..* Политика или план, по которому произошла активность -->
 <location><!-- 0..1 Reference(Location) Где произошла активность, если это уместно --></location>
 <reason><!-- 0..* Coding Причина активности --></reason>
 <activity><!-- 0..1 Coding Активность, которая наступила --></activity>
 <agent>  <!-- 1..* Участвующее лицо -->
  <role><!-- 0..* CodeableConcept What the agents role was --></role>
  <who[x]><!-- 1..1 uri|Reference(Practitioner|RelatedPerson|Patient|Device|
    Organization) Who participated --></who[x]>
  <onBehalfOf[x]><!-- 0..1 uri|Reference(Practitioner|RelatedPerson|Patient|
    Device|Organization) Who the agent is representing --></onBehalfOf[x]>
  <relatedAgentType><!-- 0..1 CodeableConcept Тип взаимосвязи между посредниками --></relatedAgentType>
 </agent>
 <entity>  <!-- 0..* Сущность, использованная в этой активности -->
  <role value="[code]"/><!-- 1..1 derivation | revision | quotation | source | removal -->
  <what[x]><!-- 1..1 uri|Reference(Any)|Identifier Идентификатор  сущности --></what[x]>
  <agent><!-- 0..* Content as for Provenance.agent Сущность приписывается этому агенту --></agent>
 </entity>
 <signature><!-- 0..* Signature Электронная цифровая подпись целевого объекта --></signature>
</Provenance>

JSON-шаблон

{doco
  "resourceType" : "Provenance",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "target" : [{ Reference(Any) }], // R!  Целевые ссылки (обычно на конкретные версии)
  "period" : { Period }, // Когда произошла активность
  "recorded" : "<instant>", // R!  Когда активность была записана/обнволена
  "policy" : ["<uri>"], // Политика или план, по которому произошла активность
  "location" : { Reference(Location) }, // Где произошла активность, если это уместно
  "reason" : [{ Coding }], // Причина активности
  "activity" : { Coding }, // Активность, которая наступила
  "agent" : [{ // R!  Участвующее лицо
    "role" : [{ CodeableConcept }], // What the agents role was
    // who[x]: Who participated. One of these 2:
    "whoUri" : "<uri>",
    "whoReference" : { Reference(Practitioner|RelatedPerson|Patient|Device|
    Organization) },
    // onBehalfOf[x]: Who the agent is representing. One of these 2:
    "onBehalfOfUri" : "<uri>",
    "onBehalfOfReference" : { Reference(Practitioner|RelatedPerson|Patient|Device|
    Organization) },
    "relatedAgentType" : { CodeableConcept } // Тип взаимосвязи между посредниками
  }],
  "entity" : [{ // Сущность, использованная в этой активности
    "role" : "<code>", // R!  derivation | revision | quotation | source | removal
    // what[x]: Идентификатор  сущности. One of these 3:
    "whatUri" : "<uri>",
    "whatReference" : { Reference(Any) },
    "whatIdentifier" : { Identifier },
    "agent" : [{ Content as for Provenance.agent }] // Сущность приписывается этому агенту
  }],
  "signature" : [{ Signature }] // Электронная цифровая подпись целевого объекта
}

Turtle-шаблон

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


[ a fhir:Provenance;
  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:Provenance.target [ Reference(Any) ], ... ; # 1..* Целевые ссылки (обычно на конкретные версии)
  fhir:Provenance.period [ Period ]; # 0..1 Когда произошла активность
  fhir:Provenance.recorded [ instant ]; # 1..1 Когда активность была записана/обнволена
  fhir:Provenance.policy [ uri ], ... ; # 0..* Политика или план, по которому произошла активность
  fhir:Provenance.location [ Reference(Location) ]; # 0..1 Где произошла активность, если это уместно
  fhir:Provenance.reason [ Coding ], ... ; # 0..* Причина активности
  fhir:Provenance.activity [ Coding ]; # 0..1 Активность, которая наступила
  fhir:Provenance.agent [ # 1..* Участвующее лицо
    fhir:Provenance.agent.role [ CodeableConcept ], ... ; # 0..* What the agents role was
    # Provenance.agent.who[x] : 1..1 Who participated. One of these 2
      fhir:Provenance.agent.whoUri [ uri ]
      fhir:Provenance.agent.whoReference [ Reference(Practitioner|RelatedPerson|Patient|Device|Organization) ]
    # Provenance.agent.onBehalfOf[x] : 0..1 Who the agent is representing. One of these 2
      fhir:Provenance.agent.onBehalfOfUri [ uri ]
      fhir:Provenance.agent.onBehalfOfReference [ Reference(Practitioner|RelatedPerson|Patient|Device|Organization) ]
    fhir:Provenance.agent.relatedAgentType [ CodeableConcept ]; # 0..1 Тип взаимосвязи между посредниками
  ], ...;
  fhir:Provenance.entity [ # 0..* Сущность, использованная в этой активности
    fhir:Provenance.entity.role [ code ]; # 1..1 derivation | revision | quotation | source | removal
    # Provenance.entity.what[x] : 1..1 Идентификатор  сущности. One of these 3
      fhir:Provenance.entity.whatUri [ uri ]
      fhir:Provenance.entity.whatReference [ Reference(Any) ]
      fhir:Provenance.entity.whatIdentifier [ Identifier ]
    fhir:Provenance.entity.agent [ See Provenance.agent ], ... ; # 0..* Сущность приписывается этому агенту
  ], ...;
  fhir:Provenance.signature [ Signature ], ... ; # 0..* Электронная цифровая подпись целевого объекта
]

Changes since DSTU2

Provenance
Provenance.reason Type changed from CodeableConcept to Coding
Provenance.activity Type changed from CodeableConcept to Coding
Change value set from http://hl7.org/fhir/ValueSet/v3-ProvenanceEventCurrentState to http://hl7.org/fhir/ValueSet/provenance-activity-type
Provenance.agent Min Cardinality changed from 0 to 1
Provenance.agent.role Min Cardinality changed from 1 to 0
Max Cardinality changed from 1 to *
Type changed from Coding to CodeableConcept
Change value set from http://hl7.org/fhir/ValueSet/provenance-agent-role to http://hl7.org/fhir/ValueSet/security-role-type
Provenance.agent.who[x] added Element
Provenance.agent.onBehalfOf[x] added Element
Provenance.agent.relatedAgentType added Element
Provenance.entity.what[x] added Element
Provenance.entity.agent Max Cardinality changed from 1 to *
Provenance.agent.actor deleted
Provenance.agent.userId deleted
Provenance.agent.relatedAgent deleted
Provenance.entity.type deleted
Provenance.entity.reference deleted
Provenance.entity.display deleted

See the Full Difference for further information

See R2 <--> R3 Conversion Maps (status = 2 tests that all execute ok. 1 fail round-trip testing and 1 r3 resources are invalid (1 errors).).

Структура

ИмяФлагиКард.ТипОписание и ограниченияdoco
.. Provenance DomainResourceКто, что, когда для набора ресурсов
Элементы, определённые в прародителе: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... target Σ1..*Reference(Any)Целевые ссылки (обычно на конкретные версии)
... period 0..1PeriodКогда произошла активность
... recorded Σ1..1instantКогда активность была записана/обнволена
... policy 0..*uriПолитика или план, по которому произошла активность
... location 0..1Reference(Location)Где произошла активность, если это уместно
... reason 0..*CodingПричина активности
PurposeOfUse (Extensible)
... activity 0..1CodingАктивность, которая наступила
ProvenanceActivityType (Extensible)
... agent 1..*BackboneElementУчаствующее лицо
.... role Σ0..*CodeableConceptWhat the agents role was
SecurityRoleType (Extensible)
.... who[x] Σ1..1Who participated
..... whoUriuri
..... whoReferenceReference(Practitioner | RelatedPerson | Patient | Device | Organization)
.... onBehalfOf[x] 0..1Who the agent is representing
..... onBehalfOfUriuri
..... onBehalfOfReferenceReference(Practitioner | RelatedPerson | Patient | Device | Organization)
.... relatedAgentType 0..1CodeableConceptТип взаимосвязи между посредниками
v3 Code System RoleLinkType (Example)
... entity 0..*BackboneElementСущность, использованная в этой активности
.... role Σ1..1codederivation | revision | quotation | source | removal
ProvenanceEntityRole (Required)
.... what[x] Σ1..1Идентификатор сущности
..... whatUriuri
..... whatReferenceReference(Any)
..... whatIdentifierIdentifier
.... agent 0..*see agentСущность приписывается этому агенту
... signature 0..*SignatureЭлектронная цифровая подпись целевого объекта

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

XML-шаблон

<Provenance xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <target><!-- 1..* Reference(Any) Целевые ссылки (обычно на конкретные версии) --></target>
 <period><!-- 0..1 Period Когда произошла активность --></period>
 <recorded value="[instant]"/><!-- 1..1 Когда активность была записана/обнволена -->
 <policy value="[uri]"/><!-- 0..* Политика или план, по которому произошла активность -->
 <location><!-- 0..1 Reference(Location) Где произошла активность, если это уместно --></location>
 <reason><!-- 0..* Coding Причина активности --></reason>
 <activity><!-- 0..1 Coding Активность, которая наступила --></activity>
 <agent>  <!-- 1..* Участвующее лицо -->
  <role><!-- 0..* CodeableConcept What the agents role was --></role>
  <who[x]><!-- 1..1 uri|Reference(Practitioner|RelatedPerson|Patient|Device|
    Organization) Who participated --></who[x]>
  <onBehalfOf[x]><!-- 0..1 uri|Reference(Practitioner|RelatedPerson|Patient|
    Device|Organization) Who the agent is representing --></onBehalfOf[x]>
  <relatedAgentType><!-- 0..1 CodeableConcept Тип взаимосвязи между посредниками --></relatedAgentType>
 </agent>
 <entity>  <!-- 0..* Сущность, использованная в этой активности -->
  <role value="[code]"/><!-- 1..1 derivation | revision | quotation | source | removal -->
  <what[x]><!-- 1..1 uri|Reference(Any)|Identifier Идентификатор  сущности --></what[x]>
  <agent><!-- 0..* Content as for Provenance.agent Сущность приписывается этому агенту --></agent>
 </entity>
 <signature><!-- 0..* Signature Электронная цифровая подпись целевого объекта --></signature>
</Provenance>

JSON-шаблон

{doco
  "resourceType" : "Provenance",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "target" : [{ Reference(Any) }], // R!  Целевые ссылки (обычно на конкретные версии)
  "period" : { Period }, // Когда произошла активность
  "recorded" : "<instant>", // R!  Когда активность была записана/обнволена
  "policy" : ["<uri>"], // Политика или план, по которому произошла активность
  "location" : { Reference(Location) }, // Где произошла активность, если это уместно
  "reason" : [{ Coding }], // Причина активности
  "activity" : { Coding }, // Активность, которая наступила
  "agent" : [{ // R!  Участвующее лицо
    "role" : [{ CodeableConcept }], // What the agents role was
    // who[x]: Who participated. One of these 2:
    "whoUri" : "<uri>",
    "whoReference" : { Reference(Practitioner|RelatedPerson|Patient|Device|
    Organization) },
    // onBehalfOf[x]: Who the agent is representing. One of these 2:
    "onBehalfOfUri" : "<uri>",
    "onBehalfOfReference" : { Reference(Practitioner|RelatedPerson|Patient|Device|
    Organization) },
    "relatedAgentType" : { CodeableConcept } // Тип взаимосвязи между посредниками
  }],
  "entity" : [{ // Сущность, использованная в этой активности
    "role" : "<code>", // R!  derivation | revision | quotation | source | removal
    // what[x]: Идентификатор  сущности. One of these 3:
    "whatUri" : "<uri>",
    "whatReference" : { Reference(Any) },
    "whatIdentifier" : { Identifier },
    "agent" : [{ Content as for Provenance.agent }] // Сущность приписывается этому агенту
  }],
  "signature" : [{ Signature }] // Электронная цифровая подпись целевого объекта
}

Turtle-шаблон

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


[ a fhir:Provenance;
  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:Provenance.target [ Reference(Any) ], ... ; # 1..* Целевые ссылки (обычно на конкретные версии)
  fhir:Provenance.period [ Period ]; # 0..1 Когда произошла активность
  fhir:Provenance.recorded [ instant ]; # 1..1 Когда активность была записана/обнволена
  fhir:Provenance.policy [ uri ], ... ; # 0..* Политика или план, по которому произошла активность
  fhir:Provenance.location [ Reference(Location) ]; # 0..1 Где произошла активность, если это уместно
  fhir:Provenance.reason [ Coding ], ... ; # 0..* Причина активности
  fhir:Provenance.activity [ Coding ]; # 0..1 Активность, которая наступила
  fhir:Provenance.agent [ # 1..* Участвующее лицо
    fhir:Provenance.agent.role [ CodeableConcept ], ... ; # 0..* What the agents role was
    # Provenance.agent.who[x] : 1..1 Who participated. One of these 2
      fhir:Provenance.agent.whoUri [ uri ]
      fhir:Provenance.agent.whoReference [ Reference(Practitioner|RelatedPerson|Patient|Device|Organization) ]
    # Provenance.agent.onBehalfOf[x] : 0..1 Who the agent is representing. One of these 2
      fhir:Provenance.agent.onBehalfOfUri [ uri ]
      fhir:Provenance.agent.onBehalfOfReference [ Reference(Practitioner|RelatedPerson|Patient|Device|Organization) ]
    fhir:Provenance.agent.relatedAgentType [ CodeableConcept ]; # 0..1 Тип взаимосвязи между посредниками
  ], ...;
  fhir:Provenance.entity [ # 0..* Сущность, использованная в этой активности
    fhir:Provenance.entity.role [ code ]; # 1..1 derivation | revision | quotation | source | removal
    # Provenance.entity.what[x] : 1..1 Идентификатор  сущности. One of these 3
      fhir:Provenance.entity.whatUri [ uri ]
      fhir:Provenance.entity.whatReference [ Reference(Any) ]
      fhir:Provenance.entity.whatIdentifier [ Identifier ]
    fhir:Provenance.entity.agent [ See Provenance.agent ], ... ; # 0..* Сущность приписывается этому агенту
  ], ...;
  fhir:Provenance.signature [ Signature ], ... ; # 0..* Электронная цифровая подпись целевого объекта
]

Changes since DSTU2

Provenance
Provenance.reason Type changed from CodeableConcept to Coding
Provenance.activity Type changed from CodeableConcept to Coding
Change value set from http://hl7.org/fhir/ValueSet/v3-ProvenanceEventCurrentState to http://hl7.org/fhir/ValueSet/provenance-activity-type
Provenance.agent Min Cardinality changed from 0 to 1
Provenance.agent.role Min Cardinality changed from 1 to 0
Max Cardinality changed from 1 to *
Type changed from Coding to CodeableConcept
Change value set from http://hl7.org/fhir/ValueSet/provenance-agent-role to http://hl7.org/fhir/ValueSet/security-role-type
Provenance.agent.who[x] added Element
Provenance.agent.onBehalfOf[x] added Element
Provenance.agent.relatedAgentType added Element
Provenance.entity.what[x] added Element
Provenance.entity.agent Max Cardinality changed from 1 to *
Provenance.agent.actor deleted
Provenance.agent.userId deleted
Provenance.agent.relatedAgent deleted
Provenance.entity.type deleted
Provenance.entity.reference deleted
Provenance.entity.display deleted

See the Full Difference for further information

See R2 <--> R3 Conversion Maps (status = 2 tests that all execute ok. 1 fail round-trip testing and 1 r3 resources are invalid (1 errors).).

 

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

ПутьОписаниеТипСсылка
Provenance.reason Причина, по которой произошла эта активность.ExtensiblePurposeOfUse
Provenance.activity Активность, которая имела место.ExtensibleProvenanceActivityType
Provenance.agent.role Роль, которую играл посредник источника относительно данной активности.ExtensibleSecurityRoleType
Provenance.agent.relatedAgentType Тип взаимосвязи между двумя посредниками источника.Examplev3 Code System RoleLinkType
Provenance.entity.role Каким образом сущность была использована в этой активности.RequiredProvenanceEntityRole

Ресурс Provenance определяет информацию о другом ресурсе (элемент reference). Ресурс Provenance может использоваться несколькими различными способами:

При использовании в комплекте документов references частоне версионируют явным образом, однако всегда подразумевается, что они соответствуют той версии ресурса, которая содержится в документе. В RESTful-системе ссылка на целевой ресурс должна быть на конкретную версию, но при этом следует соблюдать осторожность: для новых ресурсов, которые должны иметь соответствующий ресурс Provenance, ссылку на конкретную версию часто невозможно узнать, пока целевой ресурс не будет обновлен. Это может привести к проблеме целостности системы: что, если ресурс Provenance не может быть создан после того, как целевой ресурс был обновлен? Чтобы избежать таких проблем целостности, целевой ресурс и ресурс Provenance должны отправляться на сервер парой в одной транзакции.

Ресурс Provenance включает элемент signature (электронная цифровая подпись), который может использоваться для верификации целостности на основе стандартов, а также в целях невозможности отказа от авторства. Тип данных Signature предоставляет детали использования элемента signature. Кодированное значение Signature.type в "Source" следует использовать, когда подпись служит просто доказательством того, что содержимое ресурса не изменилось с момента его обновления или создания.

Поскольку ресурс Provenance часто относится к субъектам, не представленным в виде FHIR-ресурсов, ссылки agent и entity могут быть либо ссылками на другие ресурсы, либо они могут ссылаться на другие сущности, которые не являются FHIR-ресурсами.

В Provenance.agent элемент actor используется для ссылки на существующий ресурс. Для ссылки на сущность, не являющуюся FHIR-ресурсом, используется элемент userId.

Версионная ссылка на FHIR-ресурс на том же сервере:

  <agent>
    <actor>
      <reference value="Patient/34/_history/3"/>
    </actor>
  </agent>

Ссылка на пользователя (человека), не представленного с помощью FHIR-ресурса:

  <agent>
    <userId>
      <value value="http://acme.com/users/34"/>
    </userId>  
  </agent>

В Provenance.entity код в элементе .type используется, чтобы различать два случая: когда код в системе "http://hl7.org/fhir/resource-types", тогда это ссылка на ресурс, и элемент reference работает точно также, как и в случае ссылки на ресурс.

Ссылка на конкретную версию FHIR-ресурса на том же сервере:

  <entity>
    <type>
      <system value="http://hl7.org/fhir/resource-types"/>
      <code value="Patient"/>
    </type>
    <reference value="Patient/34/_history/3"/>
  </entity>

По сути, это тот же шаблон, что и стандартная ссылка на ресурс, только тип становится расширяемым, чтобы можно было ссылаться на другие виды ресурсов.

Ссылка на сущность (человека), не представленного в виде FHIR-ресурса:

  <entity>
    <type>
      <system value="http://hl7.org/fhir/provenance-participant-type"/>  
      <code value="person"/>
    </type>  
    <reference value="http://acme.com/users/34"/>
  </entity>

Есть один нюанс при использовании ресурса Provenance - как различать, это ссылка на сам ресурс, или это ссылка на сущность из реального мира, которую представляет ресурс, например это человек участвовал в активности, или это запись об этом человеке. В случае агентов следует понимать, что речь идет о сущности реального мира, которую представляет ресурс.

Ресурс Provenance может создаваться для указания, кто удалил ресурс. Если поддерживается версионирование, то версия, которая была удалена, указывается в элементе Provenance.target; если версионирование не поддерживается, то Provenance.target будет содержать неверсионную ссылку. Provenance.entity не используется, если только это не оговорено в бизнес-требованиях.

Provenance can be used to record activities of an automaton that transforms input. Such as middleware that extracts information from a HL7 v2 message and creates FHIR resources, or middleware that extracts information from an HL7 CDA document and creates FHIR resources, etc. The Provenance in these cases is recording the activity of the middleware.

The middleware in this case would, in addtion to creating the target resources, create a Provenance resource that indicates all the target resources (using Provenance.target). The middleware is identified as one of the Provenance.agent elements, with the Provenance.agent.role of assembler.

The middleware may record the source as another Provenance.agent element.

The original content is optionally saved. This might be as a DocumentReference, or Binary. The Provenance.entity would then point at this original content.

The original source might include some form of 'provenance' to cover the history of the orignal content prior to the import transformation. This original source 'provenance' should be converted into FHIR Provenance records as appropriate.

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

ИмяТипОписаниеВыражениеIn Common
agentreferenceWho participatedProvenance.agent.who
(Practitioner, Organization, Device, Patient, RelatedPerson)
agent-roletokenWhat the agents role wasProvenance.agent.role
enddateВремя окончания, граничное значение включительно, если не продолжаетсяProvenance.period.end
entity-idtokenИдентификатор сущностиProvenance.entity.what.as(Identifier)
entity-refreferenceИдентификатор сущностиProvenance.entity.what.as(Reference)
(Any)
locationreferenceГде произошла активность, если это уместноProvenance.location
(Location)
patientreferenceЦелевые ссылки (обычно на конкретные версии)Provenance.target
(Patient)
recordeddateКогда активность была записана/обнволенаProvenance.recorded
signature-typetokenУказание причины подписания объекта(-ов) сущностьюProvenance.signature.type
startdateВремя начала (включительно)Provenance.period.start
targetreferenceЦелевые ссылки (обычно на конкретные версии)Provenance.target
(Any)