CH Core (R4)
2.0.0 - STU 2

CH Core (R4), published by HL7 Switzerland. This is not an authorized publication; it is the continuous build for version 2.0.0). This version is based on the current content of https://github.com/hl7ch/ch-core/ and changes regularly. See the Directory of published versions

Resource Profile: CH Core Consent EPR Profile

Defining URL:http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-consent-epr
Version:2.0.0
Name:CHCoreConsentEPR
Title:CH Core Consent EPR Profile
Status:Active as of 2021-01-27T00:00:00+00:00
Definition:

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.

Publisher:HL7 Switzerland
Copyright:

CC-BY-SA-4.0

Source Resource:XML / JSON / Turtle

The official URL for this profile is:

http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-consent-epr

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

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