FHIR Belgium Base IG - Local Development build (v0.1.0). See the Directory of published versions
Belgian federal profile for a provenance. Note this profile does not introduce any changes from the base profile but has been created to mark its importance, specifically when FHIR is used in a non-document approach.
General use case remarks: ‘Provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource.’ (cfr. the HL7 base specifications) According to the FHIR specifications, the provenance resource SHALL only be provided when no other resource already plays this role: for a Patient it SHOULD be its managing organization, provenance of an Observation SHOULD be its performer, provenance of an AllergyIntolerance SHOULD be its recorder. ‘Many other FHIR resources contain some elements that represent information about how the resource was obtained, and therefore they overlap with the functionality of the Provenance.’
Special remarks for KMEHR users: The FHIR Provenance resource in general refers to an entity that had something to do with the creation or updating of something else. In a KMEHR context, this is somewhat different – as it is ‘XML document’ based, each KMEHR message has an ‘author’ element that is responsible.
The official URL for this profile is:
https://www.ehealth.fgov.be/standards/fhir/StructureDefinition/be-provenance
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from Provenance
This structure is derived from Provenance
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Provenance | I | 0..* | Provenance | Who, What, When for a set of resources |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | ΣI | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!ΣI | 0..1 | uri | A set of rules under which this content was created |
language | I | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!I | 0..* | Extension | Extensions that cannot be ignored |
target | ΣI | 1..* | Reference(Resource) | Target Reference(s) (usually version specific) |
occurred[x] | I | 0..1 | When the activity occurred | |
occurredPeriod | Period | |||
occurredDateTime | dateTime | |||
recorded | ΣI | 1..1 | instant | When the activity was recorded / updated |
policy | I | 0..* | uri | Policy or plan the activity was defined by |
location | I | 0..1 | Reference(Location) | Where the activity occurred, if relevant |
reason | I | 0..* | CodeableConcept | Reason the activity is occurring Binding: V3 Value SetPurposeOfUse (extensible) |
activity | I | 0..1 | CodeableConcept | Activity that occurred Binding: ProvenanceActivityType (extensible) |
agent | I | 1..* | BackboneElement | Actor involved |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
type | ΣI | 0..1 | CodeableConcept | How the agent participated Binding: ProvenanceParticipantType (extensible) |
role | I | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example) |
who | ΣI | 1..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who participated |
onBehalfOf | I | 0..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who the agent is representing |
entity | I | 0..* | BackboneElement | An entity used in this activity |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
role | ΣI | 1..1 | code | derivation | revision | quotation | source | removal Binding: ProvenanceEntityRole (required) |
what | ΣI | 1..1 | Reference(Resource) | Identity of entity |
agent | I | 0..* | Unknown reference to #Provenance.agent Entity is attributed to this agent | |
signature | I | 0..* | Signature | Signature on target |
Documentation for this format |
This structure is derived from Provenance
Differential View
This structure is derived from Provenance
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Provenance | I | 0..* | Provenance | Who, What, When for a set of resources |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | ΣI | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!ΣI | 0..1 | uri | A set of rules under which this content was created |
language | I | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!I | 0..* | Extension | Extensions that cannot be ignored |
target | ΣI | 1..* | Reference(Resource) | Target Reference(s) (usually version specific) |
occurred[x] | I | 0..1 | When the activity occurred | |
occurredPeriod | Period | |||
occurredDateTime | dateTime | |||
recorded | ΣI | 1..1 | instant | When the activity was recorded / updated |
policy | I | 0..* | uri | Policy or plan the activity was defined by |
location | I | 0..1 | Reference(Location) | Where the activity occurred, if relevant |
reason | I | 0..* | CodeableConcept | Reason the activity is occurring Binding: V3 Value SetPurposeOfUse (extensible) |
activity | I | 0..1 | CodeableConcept | Activity that occurred Binding: ProvenanceActivityType (extensible) |
agent | I | 1..* | BackboneElement | Actor involved |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
type | ΣI | 0..1 | CodeableConcept | How the agent participated Binding: ProvenanceParticipantType (extensible) |
role | I | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example) |
who | ΣI | 1..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who participated |
onBehalfOf | I | 0..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who the agent is representing |
entity | I | 0..* | BackboneElement | An entity used in this activity |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
role | ΣI | 1..1 | code | derivation | revision | quotation | source | removal Binding: ProvenanceEntityRole (required) |
what | ΣI | 1..1 | Reference(Resource) | Identity of entity |
agent | I | 0..* | Unknown reference to #Provenance.agent Entity is attributed to this agent | |
signature | I | 0..* | Signature | Signature on target |
Documentation for this format |
Other representations of profile: Schematron
Path | Conformance | ValueSet |
Provenance.language | preferred | CommonLanguages Max Binding: AllLanguages |
Provenance.reason | extensible | v3.PurposeOfUse |
Provenance.activity | extensible | ProvenanceActivityType |
Provenance.agent.type | extensible | ProvenanceParticipantType |
Provenance.agent.role | example | SecurityRoleType |
Provenance.entity.role | required | ProvenanceEntityRole |
Id | Path | Details | Requirements |
dom-2 | Provenance | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | Provenance | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | Provenance | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | Provenance | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | Provenance | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | Provenance.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Provenance.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Provenance.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Provenance.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Provenance.target | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.occurred[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.recorded | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.policy | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.location | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.reason | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.activity | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.agent | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.agent.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Provenance.agent.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Provenance.agent.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Provenance.agent.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Provenance.agent.type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.agent.role | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.agent.who | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.agent.onBehalfOf | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.entity | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.entity.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Provenance.entity.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Provenance.entity.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Provenance.entity.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Provenance.entity.role | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.entity.what | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.entity.agent | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Provenance.signature | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |