CH Core (R4)
2.1.0 - STU 3 Ballot Switzerland flag

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

Resource Profile: CH Core Consent EPR

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:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from Consent

Differential View

This structure is derived from Consent

Snapshot View

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet / Code
Consent.languagepreferredCommonLanguages
Max Binding: AllLanguages
Consent.statusrequiredConsentState
Consent.scopeextensiblePattern: patient-privacy("Privacy Consent")
Consent.categoryextensiblePattern: IDSCL("information disclosure")
Consent.policyRuleextensibleFixed Value: ch-epr
Consent.provision.typerequiredFixed Value: deny
Consent.provision.actor.roleextensibleSecurityRoleType
Consent.provision.actionexampleConsentActionCodes
Consent.provision.securityLabelextensibleAll Security Labels
Consent.provision.purposeextensiblePurposeOfUse
Consent.provision.classextensibleConsentContentClass
Consent.provision.codeexampleConsentContentCodes
Consent.provision.data.meaningrequiredFixed Value: instance

Constraints

IdGradePathDetailsRequirements
dom-2errorConsentIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorConsentIf 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-4errorConsentIf 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-5errorConsentIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6Best PracticeConsentA resource should have narrative for robust management
: text.`div`.exists()
ppc-1errorConsentEither a Policy or PolicyRule
: policy.exists() or policyRule.exists()
ppc-2errorConsentIF Scope=privacy, there must be a patient
: patient.exists() or scope.coding.where(system='something' and code='patient-privacy').exists().not()
ppc-3errorConsentIF Scope=research, there must be a patient
: patient.exists() or scope.coding.where(system='something' and code='research').exists().not()
ppc-4errorConsentIF Scope=adr, there must be a patient
: patient.exists() or scope.coding.where(system='something' and code='adr').exists().not()
ppc-5errorConsentIF Scope=treatment, there must be a patient
: patient.exists() or scope.coding.where(system='something' and code='treatment').exists().not()
ele-1errorConsent.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorConsent.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorConsent.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorConsent.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorConsent.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.scopeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.categoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.patientAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.dateTimeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.performerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.organizationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.source[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.policyAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.policy.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorConsent.policy.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorConsent.policy.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorConsent.policy.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorConsent.policy.authorityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.policy.uriAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.policyRuleAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.verificationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.verification.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorConsent.verification.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorConsent.verification.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorConsent.verification.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorConsent.verification.verifiedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.verification.verifiedWithAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.verification.verificationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provisionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provision.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorConsent.provision.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorConsent.provision.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorConsent.provision.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorConsent.provision.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provision.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provision.actorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provision.actor.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorConsent.provision.actor.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorConsent.provision.actor.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorConsent.provision.actor.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorConsent.provision.actor.roleAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provision.actor.referenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provision.actionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provision.securityLabelAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provision.purposeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provision.classAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provision.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provision.dataPeriodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provision.dataAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provision.data.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorConsent.provision.data.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorConsent.provision.data.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorConsent.provision.data.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorConsent.provision.data.meaningAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provision.data.referenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorConsent.provision.provisionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())