CH Core (R4)
2.1.0 - STU 3 Ballot
This page is part of the CH Core (R4) (v2.1.0: STU 3) based on FHIR R4. . For a full list of available versions, see the Directory of published versions
Official URL: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-consent-epr | Version: 2.1.0 | |||
Active as of 2021-01-27 | Computable Name: CHCoreConsentEPR | |||
Copyright/Legal: CC-BY-SA-4.0 |
Base profile for a consent profile to document that a patient has an Electronic Patient Record (EPR) in Switzerland. The actual consent conditions are held within the EPR, this consent is the documentation in an organization that the patient has stated he has an EPR and this needs to be verified at the time of document publishing or reading. In addition a patient can reqeuest that specific information will not be published from the organization to the EPR. This can be documented with one or more references to encounters to exclude the consent for these.
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
Other representations of profile: CSV, Excel, Schematron
Path | Conformance | ValueSet / Code |
Consent.language | preferred | CommonLanguages Max Binding: AllLanguages |
Consent.status | required | ConsentState |
Consent.scope | extensible | Pattern: patient-privacy("Privacy Consent") |
Consent.category | extensible | Pattern: IDSCL("information disclosure") |
Consent.policyRule | extensible | Fixed Value: ch-epr |
Consent.provision.type | required | Fixed Value: deny |
Consent.provision.actor.role | extensible | SecurityRoleType |
Consent.provision.action | example | ConsentActionCodes |
Consent.provision.securityLabel | extensible | All Security Labels |
Consent.provision.purpose | extensible | PurposeOfUse |
Consent.provision.class | extensible | ConsentContentClass |
Consent.provision.code | example | ConsentContentCodes |
Consent.provision.data.meaning | required | Fixed Value: instance |
Id | Grade | Path | Details | Requirements |
dom-2 | error | Consent | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Consent | 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 | error | Consent | 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 | error | Consent | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | Best Practice | Consent | A resource should have narrative for robust management : text.`div`.exists() | |
ppc-1 | error | Consent | Either a Policy or PolicyRule : policy.exists() or policyRule.exists() | |
ppc-2 | error | Consent | IF Scope=privacy, there must be a patient : patient.exists() or scope.coding.where(system='something' and code='patient-privacy').exists().not() | |
ppc-3 | error | Consent | IF Scope=research, there must be a patient : patient.exists() or scope.coding.where(system='something' and code='research').exists().not() | |
ppc-4 | error | Consent | IF Scope=adr, there must be a patient : patient.exists() or scope.coding.where(system='something' and code='adr').exists().not() | |
ppc-5 | error | Consent | IF Scope=treatment, there must be a patient : patient.exists() or scope.coding.where(system='something' and code='treatment').exists().not() | |
ele-1 | error | Consent.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Consent.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Consent.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Consent.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Consent.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.scope | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.category | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.patient | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.dateTime | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.performer | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.organization | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.source[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.policy | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.policy.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Consent.policy.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Consent.policy.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Consent.policy.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Consent.policy.authority | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.policy.uri | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.policyRule | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.verification | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.verification.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Consent.verification.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Consent.verification.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Consent.verification.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Consent.verification.verified | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.verification.verifiedWith | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.verification.verificationDate | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Consent.provision.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Consent.provision.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Consent.provision.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Consent.provision.type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision.period | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision.actor | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision.actor.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Consent.provision.actor.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Consent.provision.actor.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Consent.provision.actor.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Consent.provision.actor.role | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision.actor.reference | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision.action | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision.securityLabel | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision.purpose | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision.class | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision.dataPeriod | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision.data | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision.data.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Consent.provision.data.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Consent.provision.data.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Consent.provision.data.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Consent.provision.data.meaning | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision.data.reference | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Consent.provision.provision | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |