CH EPR FHIR (R4)
4.0.1-ballot - ballot
This page is part of the CH EPR FHIR (R4) (v4.0.1-ballot: DSTU 4 Ballot 2) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version. For a full list of available versions, see the Directory of published versions
Official URL: http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate201 | Version: 4.0.1-ballot | |||
Active as of 2024-05-16 | Computable Name: PpqmConsentTemplate201 | |||
Copyright/Legal: CC0-1.0 |
EPR policy set based on template 201 – grants the patient the full access to the their EPR. This policy set shall be created during the patient’s onboarding.
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from PpqmConsent
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() |
C | 0..* | PpqmConsent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time ch-epr-ppqm-provision-actor-is-patient: The provision.actor and patient SHALL be the same |
![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() |
1..1 | Identifier | Template ID of the policy set | |
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Template ID of the policy set Required Pattern: 201 | |
![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() |
1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Referenced Policy Set for Patients (201) and Representative (303) templates (required) | |
![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() |
0..0 | |||
![]() ![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Coding | Code defined by a terminology system Required Pattern: At least the following | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.6 | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: PAT | |
![]() ![]() ![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | EPRSPIDIdentifier | An identifier intended for computation | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: urn:ietf:rfc:3986 | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: urn:e-health-suisse:2015:epr-spid | |
![]() ![]() ![]() ![]() ![]() ![]() |
0..0 | |||
![]() ![]() ![]() ![]() |
0..0 | |||
![]() |
Path | Conformance | ValueSet | URI |
Consent.policyRule.coding | required | PpqmReferencedPolicySetFullAccesshttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmReferencedPolicySetFullAccess from this IG |
Id | Grade | Path(s) | Details | Requirements |
ch-epr-ppqm-provision-actor-is-patient | error | Consent | The provision.actor and patient SHALL be the same : provision[0].actor.reference.identifier[0].value = patient.identifier.value |
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() |
C | 0..* | PpqmConsent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time ppc-1: Either a Policy or PolicyRule ppc-2: IF Scope=privacy, there must be a patient ppc-3: IF Scope=research, there must be a patient ppc-4: IF Scope=adr, there must be a patient ppc-5: IF Scope=treatment, there must be a patient ch-epr-ppqm-template-structure: The resource shall correspond to one of official policy set templates ch-epr-ppqm-provision-actor-is-patient: The provision.actor and patient SHALL be the same |
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() |
Σ | 2..* | Identifier | Identifier for this record (external references) Slice: Unordered, Open by pattern:type.coding Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} |
![]() ![]() ![]() ![]() |
Σ | 1..1 | Identifier | UUID of the Policy Set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. |
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: policySetId | |
![]() ![]() ![]() ![]() ![]() |
ΣC | 1..1 | string | UUID of the policy set in URN format ch-epr-ppqm-uuid-format: The policy set ID must be a UUID in URN format Example General: 123456 |
![]() ![]() ![]() ![]() |
Σ | 1..1 | Identifier | Template ID of the policy set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. |
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: templateId | |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | string | Template ID of the policy set Binding: CH PPQm Policy Set Template ID (required) Required Pattern: 201 |
![]() ![]() ![]() |
?!Σ | 1..1 | code | Fixed status value Binding: ConsentState (required): Indicates the state of the consent. Required Pattern: active |
![]() ![]() ![]() |
?!Σ | 1..1 | CodeableConcept | Fixed scope value Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope | |
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: patient-privacy | |
![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Fixed category value Binding: ConsentCategoryCodes (extensible): A classification of the type of consents found in a consent statement. Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActCode | |
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: INFA | |
![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() |
Σ | 1..1 | Reference(Patient) | Who the consent applies to |
![]() ![]() ![]() ![]() |
1..1 | EPRSPIDIdentifier | An identifier intended for computation | |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.3 |
![]() ![]() ![]() ![]() ![]() |
ΣC | 1..1 | string | The value that is unique epr-spid-length: EPR-SPID must be exactly 18 characters long epr-spid-startswith76133761: EPR-SPID must start with 76133761 epr-spid-modulus-10: EPR-SPID must pass the modulus 10 check - https://www.gs1.org/services/how-calculate-check-digit-manually Example General: 123456 |
![]() ![]() ![]() |
ΣC | 1..1 | CodeableConcept | ID of the referenced basis policy set Binding: ConsentPolicyRuleCodes (extensible): Regulatory policy examples. |
![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Referenced Policy Set for Patients (201) and Representative (303) templates (required) |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Symbol in syntax defined by the system |
![]() ![]() ![]() |
Σ | 1..1 | BackboneElement | Constraints to the base Consent.policyRule |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
1..1 | BackboneElement | Who|what controlled by this rule (or group, by role) | |
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: EprRole (required) | |
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | Coding | Code defined by a terminology system Required Pattern: At least the following |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.6 | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: PAT | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Required Pattern: urn:oid:2.16.756.5.30.1.127.3.10.6 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | EPR actor role code |
![]() ![]() ![]() ![]() ![]() |
1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | EPRSPIDIdentifier | An identifier intended for computation | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Actor Identifier Type (required) Required Pattern: At least the following |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: urn:ietf:rfc:3986 | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: urn:e-health-suisse:2015:epr-spid | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Actor identifier type code (name qualifier) |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | string | ID of an healthcare professional, group of healthcare professionals, patient, or representative Example General: 123456 |
![]() |
Path | Conformance | ValueSet / Code | URI |
Consent.identifier:policySetId.type | extensible | Identifier Type Codeshttp://hl7.org/fhir/ValueSet/identifier-type from the FHIR Standard | |
Consent.identifier:templateId.type | extensible | Identifier Type Codeshttp://hl7.org/fhir/ValueSet/identifier-type from the FHIR Standard | |
Consent.identifier:templateId.value | required | Pattern: 201http://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmPolicySetTemplateId from this IG | |
Consent.status | required | Pattern: activehttp://hl7.org/fhir/ValueSet/consent-state-codes|4.0.1 from the FHIR Standard | |
Consent.scope | extensible | Pattern: patient-privacyhttp://hl7.org/fhir/ValueSet/consent-scope from the FHIR Standard | |
Consent.category | extensible | Pattern: INFAhttp://hl7.org/fhir/ValueSet/consent-category from the FHIR Standard | |
Consent.policyRule | extensible | ConsentPolicyRuleCodeshttp://hl7.org/fhir/ValueSet/consent-policy from the FHIR Standard | |
Consent.policyRule.coding | required | PpqmReferencedPolicySetFullAccesshttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmReferencedPolicySetFullAccess from this IG | |
Consent.provision.actor.role | required | EprRolehttp://fhir.ch/ig/ch-term/ValueSet/EprRole | |
Consent.provision.actor.reference.identifier.type | extensible | Identifier Type Codeshttp://hl7.org/fhir/ValueSet/identifier-type from the FHIR Standard | |
Consent.provision.actor.reference.identifier.type.coding | required | Pattern: urn:e-health-suisse:2015:epr-spidhttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmActorIdentifierType from this IG | |
Consent.provision.data.meaning | required | ConsentDataMeaninghttp://hl7.org/fhir/ValueSet/consent-data-meaning|4.0.1 from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
ch-epr-ppqm-date-format | error | Consent.provision.period.end | Timestamp must have precision of days, i.e. not contain the time part : toString().matches('^[0-9]{4}-[0-9]{2}-[0-9]{2}$') | |
ch-epr-ppqm-provision-actor-is-patient | error | Consent | The provision.actor and patient SHALL be the same : provision[0].actor.reference.identifier[0].value = patient.identifier.value | |
ch-epr-ppqm-template-structure | error | Consent | The resource shall correspond to one of official policy set templates : conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate201') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate202') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate203') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate301') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate302') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate303') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate304') | |
ch-epr-ppqm-uuid-format | error | Consent.identifier:policySetId.value | The policy set ID must be a UUID in URN format : lower().matches('^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') | |
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() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
epr-spid-length | warning | Consent.patient.identifier.value | EPR-SPID must be exactly 18 characters long : matches('^[0-9]{18}$') | |
epr-spid-modulus-10 | warning | Consent.patient.identifier.value | EPR-SPID must pass the modulus 10 check - https://www.gs1.org/services/how-calculate-check-digit-manually : (((10-((68+(substring(8,1).toInteger()*3)+(substring(9,1).toInteger()*1)+(substring(10,1).toInteger()*3)+(substring(11,1).toInteger()*1)+(substring(12,1).toInteger()*3)+(substring(13,1).toInteger()*1)+(substring(14,1).toInteger()*3)+(substring(15,1).toInteger()*1)+(substring(16,1).toInteger()*3))mod(10)))mod(10))=substring(17,1).toInteger()) | |
epr-spid-startswith76133761 | warning | Consent.patient.identifier.value | EPR-SPID must start with 76133761 : startsWith('76133761') | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.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() |
Name | Flags | Card. | Type | Description & Constraints![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() |
C | 0..* | PpqmConsent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time ppc-1: Either a Policy or PolicyRule ppc-2: IF Scope=privacy, there must be a patient ppc-3: IF Scope=research, there must be a patient ppc-4: IF Scope=adr, there must be a patient ppc-5: IF Scope=treatment, there must be a patient ch-epr-ppqm-template-structure: The resource shall correspond to one of official policy set templates ch-epr-ppqm-provision-actor-is-patient: The provision.actor and patient SHALL be the same | ||||
![]() ![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
![]() ![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() ![]() |
Σ | 2..* | Identifier | Identifier for this record (external references) Slice: Unordered, Open by pattern:type.coding Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Identifier | UUID of the Policy Set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: policySetId | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 1..1 | string | UUID of the policy set in URN format ch-epr-ppqm-uuid-format: The policy set ID must be a UUID in URN format Example General: 123456 | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Identifier | Template ID of the policy set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: templateId | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | string | Template ID of the policy set Binding: CH PPQm Policy Set Template ID (required) Required Pattern: 201 | ||||
![]() ![]() ![]() |
?!Σ | 1..1 | code | Fixed status value Binding: ConsentState (required): Indicates the state of the consent. Required Pattern: active | ||||
![]() ![]() ![]() |
?!Σ | 1..1 | CodeableConcept | Fixed scope value Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: patient-privacy | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Fixed category value Binding: ConsentCategoryCodes (extensible): A classification of the type of consents found in a consent statement. Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActCode | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: INFA | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() ![]() |
Σ | 1..1 | Reference(Patient) | Who the consent applies to | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
1..1 | EPRSPIDIdentifier | An identifier intended for computation | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.3 | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 1..1 | string | The value that is unique epr-spid-length: EPR-SPID must be exactly 18 characters long epr-spid-startswith76133761: EPR-SPID must start with 76133761 epr-spid-modulus-10: EPR-SPID must pass the modulus 10 check - https://www.gs1.org/services/how-calculate-check-digit-manually Example General: 123456 | ||||
![]() ![]() ![]() |
ΣC | 1..1 | CodeableConcept | ID of the referenced basis policy set Binding: ConsentPolicyRuleCodes (extensible): Regulatory policy examples. | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Referenced Policy Set for Patients (201) and Representative (303) templates (required) | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Symbol in syntax defined by the system | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Representation defined by the system | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() ![]() |
Σ | 1..1 | BackboneElement | Constraints to the base Consent.policyRule | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
1..1 | BackboneElement | Who|what controlled by this rule (or group, by role) | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: EprRole (required) | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.6 | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: PAT | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Required Pattern: urn:oid:2.16.756.5.30.1.127.3.10.6 | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Version of the system - if relevant | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | EPR actor role code | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Representation defined by the system | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | boolean | If this coding was chosen directly by the user | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() ![]() ![]() ![]() |
1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | EPRSPIDIdentifier | An identifier intended for computation | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Actor Identifier Type (required) Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: urn:ietf:rfc:3986 | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: urn:e-health-suisse:2015:epr-spid | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Actor identifier type code (name qualifier) | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Representation defined by the system | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | uri | The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | string | ID of an healthcare professional, group of healthcare professionals, patient, or representative Example General: 123456 | ||||
![]() |
Path | Conformance | ValueSet / Code | URI | |||
Consent.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
Consent.identifier:policySetId.type | extensible | Identifier Type Codeshttp://hl7.org/fhir/ValueSet/identifier-type from the FHIR Standard | ||||
Consent.identifier:templateId.type | extensible | Identifier Type Codeshttp://hl7.org/fhir/ValueSet/identifier-type from the FHIR Standard | ||||
Consent.identifier:templateId.value | required | Pattern: 201http://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmPolicySetTemplateId from this IG | ||||
Consent.status | required | Pattern: activehttp://hl7.org/fhir/ValueSet/consent-state-codes|4.0.1 from the FHIR Standard | ||||
Consent.scope | extensible | Pattern: patient-privacyhttp://hl7.org/fhir/ValueSet/consent-scope from the FHIR Standard | ||||
Consent.category | extensible | Pattern: INFAhttp://hl7.org/fhir/ValueSet/consent-category from the FHIR Standard | ||||
Consent.policyRule | extensible | ConsentPolicyRuleCodeshttp://hl7.org/fhir/ValueSet/consent-policy from the FHIR Standard | ||||
Consent.policyRule.coding | required | PpqmReferencedPolicySetFullAccesshttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmReferencedPolicySetFullAccess from this IG | ||||
Consent.provision.actor.role | required | EprRolehttp://fhir.ch/ig/ch-term/ValueSet/EprRole | ||||
Consent.provision.actor.reference.identifier.type | extensible | Identifier Type Codeshttp://hl7.org/fhir/ValueSet/identifier-type from the FHIR Standard | ||||
Consent.provision.actor.reference.identifier.type.coding | required | Pattern: urn:e-health-suisse:2015:epr-spidhttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmActorIdentifierType from this IG | ||||
Consent.provision.data.meaning | required | ConsentDataMeaninghttp://hl7.org/fhir/ValueSet/consent-data-meaning|4.0.1 from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
ch-epr-ppqm-date-format | error | Consent.provision.period.start, Consent.provision.period.end | Timestamp must have precision of days, i.e. not contain the time part : toString().matches('^[0-9]{4}-[0-9]{2}-[0-9]{2}$') | |
ch-epr-ppqm-provision-actor-is-patient | error | Consent | The provision.actor and patient SHALL be the same : provision[0].actor.reference.identifier[0].value = patient.identifier.value | |
ch-epr-ppqm-template-structure | error | Consent | The resource shall correspond to one of official policy set templates : conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate201') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate202') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate203') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate301') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate302') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate303') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate304') | |
ch-epr-ppqm-uuid-format | error | Consent.identifier:policySetId.value | The policy set ID must be a UUID in URN format : lower().matches('^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') | |
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() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
epr-spid-length | warning | Consent.patient.identifier.value | EPR-SPID must be exactly 18 characters long : matches('^[0-9]{18}$') | |
epr-spid-modulus-10 | warning | Consent.patient.identifier.value | EPR-SPID must pass the modulus 10 check - https://www.gs1.org/services/how-calculate-check-digit-manually : (((10-((68+(substring(8,1).toInteger()*3)+(substring(9,1).toInteger()*1)+(substring(10,1).toInteger()*3)+(substring(11,1).toInteger()*1)+(substring(12,1).toInteger()*3)+(substring(13,1).toInteger()*1)+(substring(14,1).toInteger()*3)+(substring(15,1).toInteger()*1)+(substring(16,1).toInteger()*3))mod(10)))mod(10))=substring(17,1).toInteger()) | |
epr-spid-startswith76133761 | warning | Consent.patient.identifier.value | EPR-SPID must start with 76133761 : startsWith('76133761') | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.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() |
This structure is derived from PpqmConsent
Differential View
This structure is derived from PpqmConsent
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() |
C | 0..* | PpqmConsent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time ch-epr-ppqm-provision-actor-is-patient: The provision.actor and patient SHALL be the same |
![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() |
1..1 | Identifier | Template ID of the policy set | |
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Template ID of the policy set Required Pattern: 201 | |
![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() |
1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Referenced Policy Set for Patients (201) and Representative (303) templates (required) | |
![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() |
0..0 | |||
![]() ![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Coding | Code defined by a terminology system Required Pattern: At least the following | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.6 | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: PAT | |
![]() ![]() ![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | EPRSPIDIdentifier | An identifier intended for computation | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: urn:ietf:rfc:3986 | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: urn:e-health-suisse:2015:epr-spid | |
![]() ![]() ![]() ![]() ![]() ![]() |
0..0 | |||
![]() ![]() ![]() ![]() |
0..0 | |||
![]() |
Path | Conformance | ValueSet | URI |
Consent.policyRule.coding | required | PpqmReferencedPolicySetFullAccesshttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmReferencedPolicySetFullAccess from this IG |
Id | Grade | Path(s) | Details | Requirements |
ch-epr-ppqm-provision-actor-is-patient | error | Consent | The provision.actor and patient SHALL be the same : provision[0].actor.reference.identifier[0].value = patient.identifier.value |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() |
C | 0..* | PpqmConsent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time ppc-1: Either a Policy or PolicyRule ppc-2: IF Scope=privacy, there must be a patient ppc-3: IF Scope=research, there must be a patient ppc-4: IF Scope=adr, there must be a patient ppc-5: IF Scope=treatment, there must be a patient ch-epr-ppqm-template-structure: The resource shall correspond to one of official policy set templates ch-epr-ppqm-provision-actor-is-patient: The provision.actor and patient SHALL be the same |
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() |
Σ | 2..* | Identifier | Identifier for this record (external references) Slice: Unordered, Open by pattern:type.coding Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} |
![]() ![]() ![]() ![]() |
Σ | 1..1 | Identifier | UUID of the Policy Set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. |
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: policySetId | |
![]() ![]() ![]() ![]() ![]() |
ΣC | 1..1 | string | UUID of the policy set in URN format ch-epr-ppqm-uuid-format: The policy set ID must be a UUID in URN format Example General: 123456 |
![]() ![]() ![]() ![]() |
Σ | 1..1 | Identifier | Template ID of the policy set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. |
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: templateId | |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | string | Template ID of the policy set Binding: CH PPQm Policy Set Template ID (required) Required Pattern: 201 |
![]() ![]() ![]() |
?!Σ | 1..1 | code | Fixed status value Binding: ConsentState (required): Indicates the state of the consent. Required Pattern: active |
![]() ![]() ![]() |
?!Σ | 1..1 | CodeableConcept | Fixed scope value Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope | |
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: patient-privacy | |
![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Fixed category value Binding: ConsentCategoryCodes (extensible): A classification of the type of consents found in a consent statement. Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActCode | |
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: INFA | |
![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() |
Σ | 1..1 | Reference(Patient) | Who the consent applies to |
![]() ![]() ![]() ![]() |
1..1 | EPRSPIDIdentifier | An identifier intended for computation | |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.3 |
![]() ![]() ![]() ![]() ![]() |
ΣC | 1..1 | string | The value that is unique epr-spid-length: EPR-SPID must be exactly 18 characters long epr-spid-startswith76133761: EPR-SPID must start with 76133761 epr-spid-modulus-10: EPR-SPID must pass the modulus 10 check - https://www.gs1.org/services/how-calculate-check-digit-manually Example General: 123456 |
![]() ![]() ![]() |
ΣC | 1..1 | CodeableConcept | ID of the referenced basis policy set Binding: ConsentPolicyRuleCodes (extensible): Regulatory policy examples. |
![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Referenced Policy Set for Patients (201) and Representative (303) templates (required) |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Symbol in syntax defined by the system |
![]() ![]() ![]() |
Σ | 1..1 | BackboneElement | Constraints to the base Consent.policyRule |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
1..1 | BackboneElement | Who|what controlled by this rule (or group, by role) | |
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: EprRole (required) | |
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | Coding | Code defined by a terminology system Required Pattern: At least the following |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.6 | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: PAT | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Required Pattern: urn:oid:2.16.756.5.30.1.127.3.10.6 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | EPR actor role code |
![]() ![]() ![]() ![]() ![]() |
1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | EPRSPIDIdentifier | An identifier intended for computation | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Actor Identifier Type (required) Required Pattern: At least the following |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: urn:ietf:rfc:3986 | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: urn:e-health-suisse:2015:epr-spid | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Actor identifier type code (name qualifier) |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | string | ID of an healthcare professional, group of healthcare professionals, patient, or representative Example General: 123456 |
![]() |
Path | Conformance | ValueSet / Code | URI |
Consent.identifier:policySetId.type | extensible | Identifier Type Codeshttp://hl7.org/fhir/ValueSet/identifier-type from the FHIR Standard | |
Consent.identifier:templateId.type | extensible | Identifier Type Codeshttp://hl7.org/fhir/ValueSet/identifier-type from the FHIR Standard | |
Consent.identifier:templateId.value | required | Pattern: 201http://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmPolicySetTemplateId from this IG | |
Consent.status | required | Pattern: activehttp://hl7.org/fhir/ValueSet/consent-state-codes|4.0.1 from the FHIR Standard | |
Consent.scope | extensible | Pattern: patient-privacyhttp://hl7.org/fhir/ValueSet/consent-scope from the FHIR Standard | |
Consent.category | extensible | Pattern: INFAhttp://hl7.org/fhir/ValueSet/consent-category from the FHIR Standard | |
Consent.policyRule | extensible | ConsentPolicyRuleCodeshttp://hl7.org/fhir/ValueSet/consent-policy from the FHIR Standard | |
Consent.policyRule.coding | required | PpqmReferencedPolicySetFullAccesshttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmReferencedPolicySetFullAccess from this IG | |
Consent.provision.actor.role | required | EprRolehttp://fhir.ch/ig/ch-term/ValueSet/EprRole | |
Consent.provision.actor.reference.identifier.type | extensible | Identifier Type Codeshttp://hl7.org/fhir/ValueSet/identifier-type from the FHIR Standard | |
Consent.provision.actor.reference.identifier.type.coding | required | Pattern: urn:e-health-suisse:2015:epr-spidhttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmActorIdentifierType from this IG | |
Consent.provision.data.meaning | required | ConsentDataMeaninghttp://hl7.org/fhir/ValueSet/consent-data-meaning|4.0.1 from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
ch-epr-ppqm-date-format | error | Consent.provision.period.end | Timestamp must have precision of days, i.e. not contain the time part : toString().matches('^[0-9]{4}-[0-9]{2}-[0-9]{2}$') | |
ch-epr-ppqm-provision-actor-is-patient | error | Consent | The provision.actor and patient SHALL be the same : provision[0].actor.reference.identifier[0].value = patient.identifier.value | |
ch-epr-ppqm-template-structure | error | Consent | The resource shall correspond to one of official policy set templates : conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate201') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate202') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate203') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate301') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate302') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate303') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate304') | |
ch-epr-ppqm-uuid-format | error | Consent.identifier:policySetId.value | The policy set ID must be a UUID in URN format : lower().matches('^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') | |
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() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
epr-spid-length | warning | Consent.patient.identifier.value | EPR-SPID must be exactly 18 characters long : matches('^[0-9]{18}$') | |
epr-spid-modulus-10 | warning | Consent.patient.identifier.value | EPR-SPID must pass the modulus 10 check - https://www.gs1.org/services/how-calculate-check-digit-manually : (((10-((68+(substring(8,1).toInteger()*3)+(substring(9,1).toInteger()*1)+(substring(10,1).toInteger()*3)+(substring(11,1).toInteger()*1)+(substring(12,1).toInteger()*3)+(substring(13,1).toInteger()*1)+(substring(14,1).toInteger()*3)+(substring(15,1).toInteger()*1)+(substring(16,1).toInteger()*3))mod(10)))mod(10))=substring(17,1).toInteger()) | |
epr-spid-startswith76133761 | warning | Consent.patient.identifier.value | EPR-SPID must start with 76133761 : startsWith('76133761') | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.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() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() |
C | 0..* | PpqmConsent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time ppc-1: Either a Policy or PolicyRule ppc-2: IF Scope=privacy, there must be a patient ppc-3: IF Scope=research, there must be a patient ppc-4: IF Scope=adr, there must be a patient ppc-5: IF Scope=treatment, there must be a patient ch-epr-ppqm-template-structure: The resource shall correspond to one of official policy set templates ch-epr-ppqm-provision-actor-is-patient: The provision.actor and patient SHALL be the same | ||||
![]() ![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
![]() ![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() ![]() |
Σ | 2..* | Identifier | Identifier for this record (external references) Slice: Unordered, Open by pattern:type.coding Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Identifier | UUID of the Policy Set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: policySetId | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 1..1 | string | UUID of the policy set in URN format ch-epr-ppqm-uuid-format: The policy set ID must be a UUID in URN format Example General: 123456 | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Identifier | Template ID of the policy set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: templateId | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | string | Template ID of the policy set Binding: CH PPQm Policy Set Template ID (required) Required Pattern: 201 | ||||
![]() ![]() ![]() |
?!Σ | 1..1 | code | Fixed status value Binding: ConsentState (required): Indicates the state of the consent. Required Pattern: active | ||||
![]() ![]() ![]() |
?!Σ | 1..1 | CodeableConcept | Fixed scope value Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: patient-privacy | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Fixed category value Binding: ConsentCategoryCodes (extensible): A classification of the type of consents found in a consent statement. Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActCode | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: INFA | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() ![]() |
Σ | 1..1 | Reference(Patient) | Who the consent applies to | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
1..1 | EPRSPIDIdentifier | An identifier intended for computation | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.3 | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 1..1 | string | The value that is unique epr-spid-length: EPR-SPID must be exactly 18 characters long epr-spid-startswith76133761: EPR-SPID must start with 76133761 epr-spid-modulus-10: EPR-SPID must pass the modulus 10 check - https://www.gs1.org/services/how-calculate-check-digit-manually Example General: 123456 | ||||
![]() ![]() ![]() |
ΣC | 1..1 | CodeableConcept | ID of the referenced basis policy set Binding: ConsentPolicyRuleCodes (extensible): Regulatory policy examples. | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Referenced Policy Set for Patients (201) and Representative (303) templates (required) | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Symbol in syntax defined by the system | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Representation defined by the system | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() ![]() |
Σ | 1..1 | BackboneElement | Constraints to the base Consent.policyRule | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
1..1 | BackboneElement | Who|what controlled by this rule (or group, by role) | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: EprRole (required) | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.6 | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: PAT | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Required Pattern: urn:oid:2.16.756.5.30.1.127.3.10.6 | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Version of the system - if relevant | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | EPR actor role code | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Representation defined by the system | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | boolean | If this coding was chosen directly by the user | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() ![]() ![]() ![]() |
1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | EPRSPIDIdentifier | An identifier intended for computation | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Actor Identifier Type (required) Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: urn:ietf:rfc:3986 | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: urn:e-health-suisse:2015:epr-spid | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Actor identifier type code (name qualifier) | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Representation defined by the system | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | uri | The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | string | ID of an healthcare professional, group of healthcare professionals, patient, or representative Example General: 123456 | ||||
![]() |
Path | Conformance | ValueSet / Code | URI | |||
Consent.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
Consent.identifier:policySetId.type | extensible | Identifier Type Codeshttp://hl7.org/fhir/ValueSet/identifier-type from the FHIR Standard | ||||
Consent.identifier:templateId.type | extensible | Identifier Type Codeshttp://hl7.org/fhir/ValueSet/identifier-type from the FHIR Standard | ||||
Consent.identifier:templateId.value | required | Pattern: 201http://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmPolicySetTemplateId from this IG | ||||
Consent.status | required | Pattern: activehttp://hl7.org/fhir/ValueSet/consent-state-codes|4.0.1 from the FHIR Standard | ||||
Consent.scope | extensible | Pattern: patient-privacyhttp://hl7.org/fhir/ValueSet/consent-scope from the FHIR Standard | ||||
Consent.category | extensible | Pattern: INFAhttp://hl7.org/fhir/ValueSet/consent-category from the FHIR Standard | ||||
Consent.policyRule | extensible | ConsentPolicyRuleCodeshttp://hl7.org/fhir/ValueSet/consent-policy from the FHIR Standard | ||||
Consent.policyRule.coding | required | PpqmReferencedPolicySetFullAccesshttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmReferencedPolicySetFullAccess from this IG | ||||
Consent.provision.actor.role | required | EprRolehttp://fhir.ch/ig/ch-term/ValueSet/EprRole | ||||
Consent.provision.actor.reference.identifier.type | extensible | Identifier Type Codeshttp://hl7.org/fhir/ValueSet/identifier-type from the FHIR Standard | ||||
Consent.provision.actor.reference.identifier.type.coding | required | Pattern: urn:e-health-suisse:2015:epr-spidhttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmActorIdentifierType from this IG | ||||
Consent.provision.data.meaning | required | ConsentDataMeaninghttp://hl7.org/fhir/ValueSet/consent-data-meaning|4.0.1 from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
ch-epr-ppqm-date-format | error | Consent.provision.period.start, Consent.provision.period.end | Timestamp must have precision of days, i.e. not contain the time part : toString().matches('^[0-9]{4}-[0-9]{2}-[0-9]{2}$') | |
ch-epr-ppqm-provision-actor-is-patient | error | Consent | The provision.actor and patient SHALL be the same : provision[0].actor.reference.identifier[0].value = patient.identifier.value | |
ch-epr-ppqm-template-structure | error | Consent | The resource shall correspond to one of official policy set templates : conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate201') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate202') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate203') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate301') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate302') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate303') or conformsTo('http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate304') | |
ch-epr-ppqm-uuid-format | error | Consent.identifier:policySetId.value | The policy set ID must be a UUID in URN format : lower().matches('^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') | |
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() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
epr-spid-length | warning | Consent.patient.identifier.value | EPR-SPID must be exactly 18 characters long : matches('^[0-9]{18}$') | |
epr-spid-modulus-10 | warning | Consent.patient.identifier.value | EPR-SPID must pass the modulus 10 check - https://www.gs1.org/services/how-calculate-check-digit-manually : (((10-((68+(substring(8,1).toInteger()*3)+(substring(9,1).toInteger()*1)+(substring(10,1).toInteger()*3)+(substring(11,1).toInteger()*1)+(substring(12,1).toInteger()*3)+(substring(13,1).toInteger()*1)+(substring(14,1).toInteger()*3)+(substring(15,1).toInteger()*1)+(substring(16,1).toInteger()*3))mod(10)))mod(10))=substring(17,1).toInteger()) | |
epr-spid-startswith76133761 | warning | Consent.patient.identifier.value | EPR-SPID must start with 76133761 : startsWith('76133761') | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.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() |
This structure is derived from PpqmConsent
Other representations of profile: CSV, Excel, Schematron