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 in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions
Official URL: http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/PpqmConsentTemplate301 | Version: 4.0.1-ballot | |||
Active as of 2024-05-16 | Computable Name: PpqmConsentTemplate301 | |||
Copyright/Legal: CC0-1.0 |
EPR policy set based on template 301 – gives a particular healthcare professional read access to the patient’s EPR, without delegation rights.
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from PpqmConsent
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Consent | 0..* | PpqmConsent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time | |
Slices for identifier | Content/Rules for all slices | |||
identifier:templateId | 1..1 | Identifier | Template ID of the policy set | |
value | 1..1 | string | Template ID of the policy set Required Pattern: 301 | |
policyRule | ||||
coding | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Referenced Policy Set for Healthcare Professionals without Delegation (301) template (required) | |
provision | ||||
actor | ||||
role | ||||
coding | 0..* | Coding | Code defined by a terminology system Required Pattern: At least the following | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.6 | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: HCP | |
reference | ||||
identifier | 1..1 | GLNIdentifier | An identifier intended for computation | |
display | 0..0 | |||
purpose | 1..1 | Coding | Context of activities covered by this rule Required Pattern: At least the following | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.5 | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: NORM | |
Documentation for this format |
Path | Conformance | ValueSet | URI |
Consent.policyRule.coding | required | PpqmReferencedPolicySetHcpWithoutDelegationhttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmReferencedPolicySetHcpWithoutDelegation from this IG |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Consent | 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 |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
Slices for identifier | Σ | 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"} |
identifier:policySetId | Σ | 1..1 | Identifier | UUID of the Policy Set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} |
type | Σ | 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. |
coding | Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: policySetId | |
value | Σ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 |
identifier:templateId | Σ | 1..1 | Identifier | Template ID of the policy set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} |
type | Σ | 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. |
coding | Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: templateId | |
value | Σ | 1..1 | string | Template ID of the policy set Binding: CH PPQm Policy Set Template ID (required) Required Pattern: 301 |
status | ?!Σ | 1..1 | code | Fixed status value Binding: ConsentState (required): Indicates the state of the consent. Required Pattern: active |
scope | ?!Σ | 1..1 | CodeableConcept | Fixed scope value Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. Required Pattern: At least the following |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: patient-privacy | |
coding | Σ | 1..1 | Coding | Code defined by a terminology system |
category | Σ | 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 |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActCode | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: INFA | |
coding | Σ | 1..1 | Coding | Code defined by a terminology system |
patient | Σ | 1..1 | Reference(Patient) | Who the consent applies to |
identifier | 1..1 | EPRSPIDIdentifier | An identifier intended for computation | |
system | Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.3 |
value | Σ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 |
policyRule | ΣC | 1..1 | CodeableConcept | ID of the referenced basis policy set Binding: ConsentPolicyRuleCodes (extensible): Regulatory policy examples. |
coding | Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Referenced Policy Set for Healthcare Professionals without Delegation (301) template (required) |
system | Σ | 1..1 | uri | Identity of the terminology system |
code | Σ | 1..1 | code | Symbol in syntax defined by the system |
provision | Σ | 1..1 | BackboneElement | Constraints to the base Consent.policyRule |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
actor | 1..1 | BackboneElement | Who|what controlled by this rule (or group, by role) | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
role | 1..1 | CodeableConcept | How the actor is involved Binding: EprRole (required) | |
coding | Σ | 0..* | Coding | Code defined by a terminology system Required Pattern: At least the following |
system | 1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.6 | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: HCP | |
system | Σ | 1..1 | uri | Identity of the terminology system Required Pattern: urn:oid:2.16.756.5.30.1.127.3.10.6 |
code | Σ | 1..1 | code | EPR actor role code |
reference | 1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |
identifier | 1..1 | GLNIdentifier | An identifier intended for computation | |
type | Σ | 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. |
coding | Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Actor Identifier Type (required) |
system | Σ | 1..1 | uri | Identity of the terminology system |
code | Σ | 1..1 | code | Actor identifier type code (name qualifier) |
value | Σ | 1..1 | string | ID of an healthcare professional, group of healthcare professionals, patient, or representative Example General: 123456 |
purpose | Σ | 1..1 | Coding | Context of activities covered by this rule Binding: EprPurposeOfUse (required) Required Pattern: At least the following |
system | 1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.5 | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: NORM | |
system | Σ | 1..1 | uri | Identity of the terminology system Required Pattern: urn:oid:2.16.756.5.30.1.127.3.10.5 |
code | Σ | 1..1 | code | Symbol in syntax defined by the system |
Documentation for this format |
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: 301http://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 | PpqmReferencedPolicySetHcpWithoutDelegationhttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmReferencedPolicySetHcpWithoutDelegation 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 | PpqmActorIdentifierTypehttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmActorIdentifierType from this IG | |
Consent.provision.purpose | required | Pattern: NORMhttp://fhir.ch/ig/ch-term/ValueSet/EprPurposeOfUse | |
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-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 | ||||
---|---|---|---|---|---|---|---|---|
Consent | 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 | ||||
id | Σ | 0..1 | id | Logical id of this artifact | ||||
meta | Σ | 0..1 | Meta | Metadata about the resource | ||||
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
Slices for identifier | Σ | 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"} | ||||
identifier:policySetId | Σ | 1..1 | Identifier | UUID of the Policy Set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
type | Σ | 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. | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |||||
version | 0..1 | string | Version of the system - if relevant | |||||
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: policySetId | |||||
display | 0..1 | string | Representation defined by the system | |||||
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |||||
text | Σ | 0..1 | string | Plain text representation of the concept | ||||
value | Σ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 | ||||
identifier:templateId | Σ | 1..1 | Identifier | Template ID of the policy set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
type | Σ | 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. | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |||||
version | 0..1 | string | Version of the system - if relevant | |||||
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: templateId | |||||
display | 0..1 | string | Representation defined by the system | |||||
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |||||
text | Σ | 0..1 | string | Plain text representation of the concept | ||||
value | Σ | 1..1 | string | Template ID of the policy set Binding: CH PPQm Policy Set Template ID (required) Required Pattern: 301 | ||||
status | ?!Σ | 1..1 | code | Fixed status value Binding: ConsentState (required): Indicates the state of the consent. Required Pattern: active | ||||
scope | ?!Σ | 1..1 | CodeableConcept | Fixed scope value Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. Required Pattern: At least the following | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope | |||||
version | 0..1 | string | Version of the system - if relevant | |||||
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: patient-privacy | |||||
display | 0..1 | string | Representation defined by the system | |||||
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |||||
text | 0..1 | string | Plain text representation of the concept | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | Σ | 1..1 | Coding | Code defined by a terminology system | ||||
text | Σ | 0..1 | string | Plain text representation of the concept | ||||
category | Σ | 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 | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActCode | |||||
version | 0..1 | string | Version of the system - if relevant | |||||
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: INFA | |||||
display | 0..1 | string | Representation defined by the system | |||||
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |||||
text | 0..1 | string | Plain text representation of the concept | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | Σ | 1..1 | Coding | Code defined by a terminology system | ||||
text | Σ | 0..1 | string | Plain text representation of the concept | ||||
patient | Σ | 1..1 | Reference(Patient) | Who the consent applies to | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
identifier | 1..1 | EPRSPIDIdentifier | An identifier intended for computation | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
system | Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.3 | ||||
value | Σ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 | ||||
policyRule | ΣC | 1..1 | CodeableConcept | ID of the referenced basis policy set Binding: ConsentPolicyRuleCodes (extensible): Regulatory policy examples. | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Referenced Policy Set for Healthcare Professionals without Delegation (301) template (required) | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
system | Σ | 1..1 | uri | Identity of the terminology system | ||||
code | Σ | 1..1 | code | Symbol in syntax defined by the system | ||||
display | Σ | 0..1 | string | Representation defined by the system | ||||
text | Σ | 0..1 | string | Plain text representation of the concept | ||||
provision | Σ | 1..1 | BackboneElement | Constraints to the base Consent.policyRule | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
period | Σ | 0..1 | Period | Timeframe for this rule | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
start | ΣC | 0..1 | dateTime | Start date of the policy set validity, yyyy-mm-dd ch-epr-ppqm-date-format: Timestamp must have precision of days, i.e. not contain the time part | ||||
end | ΣC | 1..1 | dateTime | End date of the policy set validity, yyyy-mm-dd ch-epr-ppqm-date-format: Timestamp must have precision of days, i.e. not contain the time part | ||||
actor | 1..1 | BackboneElement | Who|what controlled by this rule (or group, by role) | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
role | 1..1 | CodeableConcept | How the actor is involved Binding: EprRole (required) | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | Σ | 0..* | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
system | 1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.6 | |||||
version | 0..1 | string | Version of the system - if relevant | |||||
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: HCP | |||||
display | 0..1 | string | Representation defined by the system | |||||
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
system | Σ | 1..1 | uri | Identity of the terminology system Required Pattern: urn:oid:2.16.756.5.30.1.127.3.10.6 | ||||
version | Σ | 0..1 | string | Version of the system - if relevant | ||||
code | Σ | 1..1 | code | EPR actor role code | ||||
display | Σ | 0..1 | string | Representation defined by the system | ||||
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user | ||||
text | Σ | 0..1 | string | Plain text representation of the concept | ||||
reference | 1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
identifier | 1..1 | GLNIdentifier | An identifier intended for computation | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
type | Σ | 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. | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Actor Identifier Type (required) | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
system | Σ | 1..1 | uri | Identity of the terminology system | ||||
code | Σ | 1..1 | code | Actor identifier type code (name qualifier) | ||||
display | Σ | 0..1 | string | Representation defined by the system | ||||
system | Σ | 0..1 | uri | The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient | ||||
value | Σ | 1..1 | string | ID of an healthcare professional, group of healthcare professionals, patient, or representative Example General: 123456 | ||||
purpose | Σ | 1..1 | Coding | Context of activities covered by this rule Binding: EprPurposeOfUse (required) Required Pattern: At least the following | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
system | 1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.5 | |||||
version | 0..1 | string | Version of the system - if relevant | |||||
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: NORM | |||||
display | 0..1 | string | Representation defined by the system | |||||
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
system | Σ | 1..1 | uri | Identity of the terminology system Required Pattern: urn:oid:2.16.756.5.30.1.127.3.10.5 | ||||
version | Σ | 0..1 | string | Version of the system - if relevant | ||||
code | Σ | 1..1 | code | Symbol in syntax defined by the system | ||||
display | Σ | 0..1 | string | Representation defined by the system | ||||
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user | ||||
Documentation for this format |
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: 301http://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 | PpqmReferencedPolicySetHcpWithoutDelegationhttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmReferencedPolicySetHcpWithoutDelegation 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 | PpqmActorIdentifierTypehttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmActorIdentifierType from this IG | ||||
Consent.provision.purpose | required | Pattern: NORMhttp://fhir.ch/ig/ch-term/ValueSet/EprPurposeOfUse | ||||
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-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 |
---|---|---|---|---|
Consent | 0..* | PpqmConsent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time | |
Slices for identifier | Content/Rules for all slices | |||
identifier:templateId | 1..1 | Identifier | Template ID of the policy set | |
value | 1..1 | string | Template ID of the policy set Required Pattern: 301 | |
policyRule | ||||
coding | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Referenced Policy Set for Healthcare Professionals without Delegation (301) template (required) | |
provision | ||||
actor | ||||
role | ||||
coding | 0..* | Coding | Code defined by a terminology system Required Pattern: At least the following | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.6 | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: HCP | |
reference | ||||
identifier | 1..1 | GLNIdentifier | An identifier intended for computation | |
display | 0..0 | |||
purpose | 1..1 | Coding | Context of activities covered by this rule Required Pattern: At least the following | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.5 | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: NORM | |
Documentation for this format |
Path | Conformance | ValueSet | URI |
Consent.policyRule.coding | required | PpqmReferencedPolicySetHcpWithoutDelegationhttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmReferencedPolicySetHcpWithoutDelegation from this IG |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Consent | 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 |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
Slices for identifier | Σ | 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"} |
identifier:policySetId | Σ | 1..1 | Identifier | UUID of the Policy Set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} |
type | Σ | 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. |
coding | Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: policySetId | |
value | Σ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 |
identifier:templateId | Σ | 1..1 | Identifier | Template ID of the policy set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} |
type | Σ | 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. |
coding | Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: templateId | |
value | Σ | 1..1 | string | Template ID of the policy set Binding: CH PPQm Policy Set Template ID (required) Required Pattern: 301 |
status | ?!Σ | 1..1 | code | Fixed status value Binding: ConsentState (required): Indicates the state of the consent. Required Pattern: active |
scope | ?!Σ | 1..1 | CodeableConcept | Fixed scope value Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. Required Pattern: At least the following |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: patient-privacy | |
coding | Σ | 1..1 | Coding | Code defined by a terminology system |
category | Σ | 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 |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActCode | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: INFA | |
coding | Σ | 1..1 | Coding | Code defined by a terminology system |
patient | Σ | 1..1 | Reference(Patient) | Who the consent applies to |
identifier | 1..1 | EPRSPIDIdentifier | An identifier intended for computation | |
system | Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.3 |
value | Σ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 |
policyRule | ΣC | 1..1 | CodeableConcept | ID of the referenced basis policy set Binding: ConsentPolicyRuleCodes (extensible): Regulatory policy examples. |
coding | Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Referenced Policy Set for Healthcare Professionals without Delegation (301) template (required) |
system | Σ | 1..1 | uri | Identity of the terminology system |
code | Σ | 1..1 | code | Symbol in syntax defined by the system |
provision | Σ | 1..1 | BackboneElement | Constraints to the base Consent.policyRule |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
actor | 1..1 | BackboneElement | Who|what controlled by this rule (or group, by role) | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
role | 1..1 | CodeableConcept | How the actor is involved Binding: EprRole (required) | |
coding | Σ | 0..* | Coding | Code defined by a terminology system Required Pattern: At least the following |
system | 1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.6 | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: HCP | |
system | Σ | 1..1 | uri | Identity of the terminology system Required Pattern: urn:oid:2.16.756.5.30.1.127.3.10.6 |
code | Σ | 1..1 | code | EPR actor role code |
reference | 1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |
identifier | 1..1 | GLNIdentifier | An identifier intended for computation | |
type | Σ | 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. |
coding | Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Actor Identifier Type (required) |
system | Σ | 1..1 | uri | Identity of the terminology system |
code | Σ | 1..1 | code | Actor identifier type code (name qualifier) |
value | Σ | 1..1 | string | ID of an healthcare professional, group of healthcare professionals, patient, or representative Example General: 123456 |
purpose | Σ | 1..1 | Coding | Context of activities covered by this rule Binding: EprPurposeOfUse (required) Required Pattern: At least the following |
system | 1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.5 | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: NORM | |
system | Σ | 1..1 | uri | Identity of the terminology system Required Pattern: urn:oid:2.16.756.5.30.1.127.3.10.5 |
code | Σ | 1..1 | code | Symbol in syntax defined by the system |
Documentation for this format |
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: 301http://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 | PpqmReferencedPolicySetHcpWithoutDelegationhttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmReferencedPolicySetHcpWithoutDelegation 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 | PpqmActorIdentifierTypehttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmActorIdentifierType from this IG | |
Consent.provision.purpose | required | Pattern: NORMhttp://fhir.ch/ig/ch-term/ValueSet/EprPurposeOfUse | |
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-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 | ||||
---|---|---|---|---|---|---|---|---|
Consent | 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 | ||||
id | Σ | 0..1 | id | Logical id of this artifact | ||||
meta | Σ | 0..1 | Meta | Metadata about the resource | ||||
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
Slices for identifier | Σ | 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"} | ||||
identifier:policySetId | Σ | 1..1 | Identifier | UUID of the Policy Set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
type | Σ | 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. | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |||||
version | 0..1 | string | Version of the system - if relevant | |||||
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: policySetId | |||||
display | 0..1 | string | Representation defined by the system | |||||
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |||||
text | Σ | 0..1 | string | Plain text representation of the concept | ||||
value | Σ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 | ||||
identifier:templateId | Σ | 1..1 | Identifier | Template ID of the policy set Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
type | Σ | 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. | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.ch/ig/ch-epr-fhir/CodeSystem/PpqmConsentIdentifierType | |||||
version | 0..1 | string | Version of the system - if relevant | |||||
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: templateId | |||||
display | 0..1 | string | Representation defined by the system | |||||
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |||||
text | Σ | 0..1 | string | Plain text representation of the concept | ||||
value | Σ | 1..1 | string | Template ID of the policy set Binding: CH PPQm Policy Set Template ID (required) Required Pattern: 301 | ||||
status | ?!Σ | 1..1 | code | Fixed status value Binding: ConsentState (required): Indicates the state of the consent. Required Pattern: active | ||||
scope | ?!Σ | 1..1 | CodeableConcept | Fixed scope value Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. Required Pattern: At least the following | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope | |||||
version | 0..1 | string | Version of the system - if relevant | |||||
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: patient-privacy | |||||
display | 0..1 | string | Representation defined by the system | |||||
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |||||
text | 0..1 | string | Plain text representation of the concept | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | Σ | 1..1 | Coding | Code defined by a terminology system | ||||
text | Σ | 0..1 | string | Plain text representation of the concept | ||||
category | Σ | 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 | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActCode | |||||
version | 0..1 | string | Version of the system - if relevant | |||||
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: INFA | |||||
display | 0..1 | string | Representation defined by the system | |||||
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |||||
text | 0..1 | string | Plain text representation of the concept | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | Σ | 1..1 | Coding | Code defined by a terminology system | ||||
text | Σ | 0..1 | string | Plain text representation of the concept | ||||
patient | Σ | 1..1 | Reference(Patient) | Who the consent applies to | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
identifier | 1..1 | EPRSPIDIdentifier | An identifier intended for computation | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
system | Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.3 | ||||
value | Σ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 | ||||
policyRule | ΣC | 1..1 | CodeableConcept | ID of the referenced basis policy set Binding: ConsentPolicyRuleCodes (extensible): Regulatory policy examples. | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Referenced Policy Set for Healthcare Professionals without Delegation (301) template (required) | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
system | Σ | 1..1 | uri | Identity of the terminology system | ||||
code | Σ | 1..1 | code | Symbol in syntax defined by the system | ||||
display | Σ | 0..1 | string | Representation defined by the system | ||||
text | Σ | 0..1 | string | Plain text representation of the concept | ||||
provision | Σ | 1..1 | BackboneElement | Constraints to the base Consent.policyRule | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
period | Σ | 0..1 | Period | Timeframe for this rule | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
start | ΣC | 0..1 | dateTime | Start date of the policy set validity, yyyy-mm-dd ch-epr-ppqm-date-format: Timestamp must have precision of days, i.e. not contain the time part | ||||
end | ΣC | 1..1 | dateTime | End date of the policy set validity, yyyy-mm-dd ch-epr-ppqm-date-format: Timestamp must have precision of days, i.e. not contain the time part | ||||
actor | 1..1 | BackboneElement | Who|what controlled by this rule (or group, by role) | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
role | 1..1 | CodeableConcept | How the actor is involved Binding: EprRole (required) | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | Σ | 0..* | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
system | 1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.6 | |||||
version | 0..1 | string | Version of the system - if relevant | |||||
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: HCP | |||||
display | 0..1 | string | Representation defined by the system | |||||
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
system | Σ | 1..1 | uri | Identity of the terminology system Required Pattern: urn:oid:2.16.756.5.30.1.127.3.10.6 | ||||
version | Σ | 0..1 | string | Version of the system - if relevant | ||||
code | Σ | 1..1 | code | EPR actor role code | ||||
display | Σ | 0..1 | string | Representation defined by the system | ||||
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user | ||||
text | Σ | 0..1 | string | Plain text representation of the concept | ||||
reference | 1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
identifier | 1..1 | GLNIdentifier | An identifier intended for computation | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
type | Σ | 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. | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | Σ | 1..1 | Coding | Code defined by a terminology system Binding: CH PPQm Actor Identifier Type (required) | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
system | Σ | 1..1 | uri | Identity of the terminology system | ||||
code | Σ | 1..1 | code | Actor identifier type code (name qualifier) | ||||
display | Σ | 0..1 | string | Representation defined by the system | ||||
system | Σ | 0..1 | uri | The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient | ||||
value | Σ | 1..1 | string | ID of an healthcare professional, group of healthcare professionals, patient, or representative Example General: 123456 | ||||
purpose | Σ | 1..1 | Coding | Context of activities covered by this rule Binding: EprPurposeOfUse (required) Required Pattern: At least the following | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
system | 1..1 | uri | Identity of the terminology system Fixed Value: urn:oid:2.16.756.5.30.1.127.3.10.5 | |||||
version | 0..1 | string | Version of the system - if relevant | |||||
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: NORM | |||||
display | 0..1 | string | Representation defined by the system | |||||
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
system | Σ | 1..1 | uri | Identity of the terminology system Required Pattern: urn:oid:2.16.756.5.30.1.127.3.10.5 | ||||
version | Σ | 0..1 | string | Version of the system - if relevant | ||||
code | Σ | 1..1 | code | Symbol in syntax defined by the system | ||||
display | Σ | 0..1 | string | Representation defined by the system | ||||
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user | ||||
Documentation for this format |
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: 301http://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 | PpqmReferencedPolicySetHcpWithoutDelegationhttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmReferencedPolicySetHcpWithoutDelegation 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 | PpqmActorIdentifierTypehttp://fhir.ch/ig/ch-epr-fhir/ValueSet/PpqmActorIdentifierType from this IG | ||||
Consent.provision.purpose | required | Pattern: NORMhttp://fhir.ch/ig/ch-term/ValueSet/EprPurposeOfUse | ||||
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-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