CH EMED EPR
1.0.1-ci-build - ci-build Switzerland flag

CH EMED EPR, published by CARA. This guide is not an authorized publication; it is the continuous build for version 1.0.1-ci-build built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/CARA-ch/ch-emed-epr/ and changes regularly. See the Directory of published versions

Resource Profile: CH EMED EPR Patient

Official URL: http://fhir.ch/ig/ch-emed-epr/StructureDefinition/ch-emed-epr-patient Version: 1.0.1-ci-build
Draft as of 2024-12-04 Computable Name: CHEMEDEPRPatient

Copyright/Legal: CC0-1.0

Definition of the patient for the eMedication context

Usage:

Formal Views of Profile Content

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

This structure is derived from CHCorePatientEPR

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient CHCorePatientEPR
... meta
.... extension D 0..* Extension ✕ This element is not supported
.... versionId D 0..1 id ✕ This element is not supported
.... lastUpdated D 0..1 instant ✕ This element is not supported
.... source D 0..1 uri ✕ This element is not supported
.... security D 0..* Coding ✕ This element is not supported
.... tag D 0..* Coding ✕ This element is not supported
... implicitRules 0..0
... modifierExtension 0..0
.... extension D 0..* Extension ✕ This element is not supported
.... type D 0..1 CodeableConcept ✕ This element is not supported
.... period D 0..1 Period ✕ This element is not supported
.... assigner D 0..1 Reference(CH EMED EPR Organization) ✕ This element will be removed in PML(C) documents
... Slices for identifier Content/Rules for all slices
.... identifier:EPR-SPID 0..0 EPRSPIDIdentifier
.... identifier:AHVN13 0..0 AHVN13Identifier
.... identifier:LocalPid 0..* Identifier Local patient identifier(s)
..... assigner 0..1 Reference(CH EMED EPR Organization) Organization that issued id (may be just text)
.... identifier:insuranceCardNumber 0..* VEKAIdentifier An identifier intended for computation
..... value C 1..1 string The value that is unique
veka-length-error: Insurance card number must be exactly 20 characters long
veka-startswith807560-error: Insurance card number must start with 807560
... contact 0..* BackboneElement A contact party (e.g. guardian, partner, friend) for the patient
.... organization D 0..1 Reference(Organization) ✕ This element will be removed in PML(C) documents
... generalPractitioner D 0..* Reference(Organization | Practitioner | PractitionerRole) ✕ This element will be removed in PML(C) documents
... managingOrganization D 0..1 Reference(Organization) ✕ This element will be removed in PML(C) documents
... link D 0..* BackboneElement ✕ This element will be removed in PML(C) documents

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
ahvn13-digit-check-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must pass digit check - https://www.gs1.org/services/how-calculate-check-digit-manually
: (((10-(28+(substring(3,1).toInteger()*3)+(substring(4,1).toInteger()*1)+(substring(5,1).toInteger()*3)+(substring(6,1).toInteger()*1)+(substring(7,1).toInteger()*3)+(substring(8,1).toInteger()*1)+(substring(9,1).toInteger()*3)+(substring(10,1).toInteger()*1)+(substring(11,1).toInteger()*3))mod(10))mod(10))=substring(12,1).toInteger())
ahvn13-length-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must be exactly 13 characters long
: matches('^[0-9]{13}$')
ahvn13-startswith756-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must start with 756
: startsWith('756')
epr-spid-length-errorerrorPatient.identifier:EPR-SPID.valueEPR-SPID must be exactly 18 characters long
: matches('^[0-9]{18}$')
epr-spid-modulus-10-errorerrorPatient.identifier:EPR-SPID.valueEPR-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-errorerrorPatient.identifier:EPR-SPID.valueEPR-SPID must start with 76133761
: startsWith('76133761')
veka-length-errorerrorPatient.identifier:insuranceCardNumber.valueInsurance card number must be exactly 20 characters long
: matches('^[0-9]{20}$')
veka-startswith807560-errorerrorPatient.identifier:insuranceCardNumber.valueInsurance card number must start with 807560
: startsWith('807560')
NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient C 0..* CHCorePatientEPR CH Core Patient EPR (to include the patient in an EPR document)
ch-pat-1: If one ore more human names are provided, at least one human name should have a family and a given name.
ch-pat-2: gender 'unknown' is currently not used in Switzerland in eCH and the EPR
ch-pat-1-epr: At least one human name shall have a family and a given name.
... Slices for extension Content/Rules for all slices
.... placeOfBirth 0..1 CHCoreAddressEch11PlaceOfBirth Place of birth of patient
URL: http://hl7.org/fhir/StructureDefinition/patient-birthPlace profiled by http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-patient-ech-11-placeofbirth
.... placeOfOrigin 0..* CHCoreAddressECH11PlaceOfOrigin Place of origin(s) of patient
URL: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-patient-ech-11-placeoforigin
.... citizenship C 0..* (Complex) Citizenship(s) of patient
URL: http://hl7.org/fhir/StructureDefinition/patient-citizenship
ch-pat-3: ISO Country Alpha-2 or ISO Country Alpha-3 code
.... religion 0..1 CodeableConcept Religion of patient
URL: http://hl7.org/fhir/StructureDefinition/patient-religion
Binding: ReligiousAffiliation (preferred)
... Slices for identifier Σ 1..* Identifier An identifier for this patient
Slice: Unordered, Open by value:$this
.... identifier:All Slices Content/Rules for all slices
..... extension 0..* Extension ✕ This element is not supported
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ 0..1 CodeableConcept ✕ This element is not supported
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.

..... period Σ 0..1 Period ✕ This element is not supported
..... assigner Σ 0..1 Reference(CH EMED EPR Organization) ✕ This element will be removed in PML(C) documents
.... identifier:LocalPid Σ 0..* Identifier Local patient identifier(s)

Required Pattern: At least the following
..... type 1..1 CodeableConcept Description of identifier
Fixed Value: (complex)
...... 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/v2-0203
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: MR
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... system Σ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The value that is unique
Example General: 123456
..... assigner Σ 0..1 Reference(CH EMED EPR Organization) Organization that issued id (may be just text)
.... identifier:insuranceCardNumber 0..* VEKAIdentifier An identifier intended for computation

Required Pattern: At least the following
..... system 1..1 uri The namespace for the identifier value
Fixed Value: urn:oid:2.16.756.5.30.1.123.100.1.1.1
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: urn:oid:2.16.756.5.30.1.123.100.1.1.1
..... value ΣC 1..1 string The value that is unique
veka-length: Insurance card number must be exactly 20 characters long
veka-startswith807560: Insurance card number must start with 807560
veka-length-error: Insurance card number must be exactly 20 characters long
veka-startswith807560-error: Insurance card number must start with 807560
Example General: 123456
... active ?!Σ 0..1 boolean Whether this patient's record is in active use
... Slices for telecom Σ 0..* ContactPoint A contact detail for the individual
Slice: Unordered, Open by value:system
.... telecom:All Slices Content/Rules for all slices
..... system ΣC 1..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.

..... value Σ 1..1 string The actual contact point details
..... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

.... telecom:email C 0..* CHCoreContactPointECH46Email CH Core ContactPoint eCH-0046 Email
cpt-2: A system is required if a value is provided.
.... telecom:phone C 0..* CHCoreContactPointECH46Phone CH Core ContactPoint eCH-0046 Phone
cpt-2: A system is required if a value is provided.
.... telecom:internet C 0..* CHCoreContactPointECH46Internet CH Core ContactPoint eCH-0046 Internet
cpt-2: A system is required if a value is provided.
... gender Σ 1..1 code male | female | other | unknown* (* see warning 'ch-pat-2')
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

... birthDate Σ 1..1 date The date of birth for the individual
... deceased[x] ?!Σ 0..1 Indicates if the individual is deceased or not
.... deceasedBoolean boolean
.... deceasedDateTime dateTime
... Slices for contact C 0..* BackboneElement A contact party (e.g. guardian, partner, friend) for the patient
Slice: Unordered, Open by value:relationship
pat-1: SHALL at least contain a contact's details or a reference to an organization
.... contact:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... organization C 0..1 Reference(Organization) ✕ This element will be removed in PML(C) documents
.... contact:contact C 0..1 BackboneElement Contact data if it is not address of patient
pat-1: SHALL at least contain a contact's details or a reference to an organization
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... relationship 1..1 CodeableConcept The kind of relationship
Binding: PatientContactRelationship (extensible): The nature of the relationship between a patient and a contact person for that patient.



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://fhir.ch/ig/ch-core/CodeSystem/ech-11
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: contactData
..... address C 1..1 CHCoreAddressECH10 An address expressed using postal conventions (as opposed to GPS or other location definition formats)
ch-addr-2: For a Swiss address, a canton abbreviation from the value set 'eCH-0007 Canton Abbreviation' must be used.
.... contact:nameOfParent C 0..* BackboneElement Name of parent
pat-1: SHALL at least contain a contact's details or a reference to an organization
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... relationship 1..1 CodeableConcept The kind of relationship
Binding: PatientContactRelationship (extensible): The nature of the relationship between a patient and a contact person for that patient.



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-RoleCode
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: PRN
..... name 1..1 HumanName A name associated with the contact person
... Slices for communication 0..* BackboneElement A language which may be used to communicate with the patient about his or her health
Slice: Unordered, Open by value:preferred
.... communication:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... language 1..1 CodeableConcept The language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
.... communication:languageOfCorrespondence 0..1 BackboneElement Language of correspondence
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... language 1..1 CodeableConcept The language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
..... preferred 1..1 boolean Language preference indicator
Fixed Value: true
... generalPractitioner 0..* Reference(Organization | Practitioner | PractitionerRole) ✕ This element will be removed in PML(C) documents
... managingOrganization Σ 0..1 Reference(Organization) ✕ This element will be removed in PML(C) documents
... link ?!Σ 0..* BackboneElement ✕ This element will be removed in PML(C) documents
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... other Σ 1..1 Reference(Patient | RelatedPerson) The other patient or related person resource that the link refers to
.... type Σ 1..1 code replaced-by | replaces | refer | seealso
Binding: LinkType (required): The type of link between this patient resource and another patient resource.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Patient.identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Patient.identifier:EPR-SPID.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier:AHVN13.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier:LocalPid.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier:insuranceCardNumber.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.telecom.systemrequiredContactPointSystem
http://hl7.org/fhir/ValueSet/contact-point-system|4.0.1
from the FHIR Standard
Patient.telecom.userequiredContactPointUse
http://hl7.org/fhir/ValueSet/contact-point-use|4.0.1
from the FHIR Standard
Patient.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.contact:contact.relationshipextensiblePattern: contactData
http://hl7.org/fhir/ValueSet/patient-contactrelationship
from the FHIR Standard
Patient.contact:nameOfParent.relationshipextensiblePattern: PRN
http://hl7.org/fhir/ValueSet/patient-contactrelationship
from the FHIR Standard
Patient.communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Patient.communication:languageOfCorrespondence.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Patient.link.typerequiredLinkType
http://hl7.org/fhir/ValueSet/link-type|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
ahvn13-digit-checkwarningPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must pass digit check - https://www.gs1.org/services/how-calculate-check-digit-manually
: (((10-(28+(substring(3,1).toInteger()*3)+(substring(4,1).toInteger()*1)+(substring(5,1).toInteger()*3)+(substring(6,1).toInteger()*1)+(substring(7,1).toInteger()*3)+(substring(8,1).toInteger()*1)+(substring(9,1).toInteger()*3)+(substring(10,1).toInteger()*1)+(substring(11,1).toInteger()*3))mod(10))mod(10))=substring(12,1).toInteger())
ahvn13-digit-check-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must pass digit check - https://www.gs1.org/services/how-calculate-check-digit-manually
: (((10-(28+(substring(3,1).toInteger()*3)+(substring(4,1).toInteger()*1)+(substring(5,1).toInteger()*3)+(substring(6,1).toInteger()*1)+(substring(7,1).toInteger()*3)+(substring(8,1).toInteger()*1)+(substring(9,1).toInteger()*3)+(substring(10,1).toInteger()*1)+(substring(11,1).toInteger()*3))mod(10))mod(10))=substring(12,1).toInteger())
ahvn13-lengthwarningPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must be exactly 13 characters long
: matches('^[0-9]{13}$')
ahvn13-length-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must be exactly 13 characters long
: matches('^[0-9]{13}$')
ahvn13-startswith756warningPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must start with 756
: startsWith('756')
ahvn13-startswith756-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must start with 756
: startsWith('756')
ch-addr-2errorPatient.contact:contact.addressFor a Swiss address, a canton abbreviation from the value set 'eCH-0007 Canton Abbreviation' must be used.
: country.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-SC-coding').empty() or (country.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-SC-coding').value.code.startsWith('CH') = false) or (country.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-SC-coding').value.code.startsWith('CH').exists() and (state.empty() or state.memberOf('http://fhir.ch/ig/ch-core/ValueSet/ech-7-cantonabbreviation')))
ch-core-hm-1errorPatient.nameif officalName with eCH-011 Extension is specified, it can only be put on a name where use attribute is official
: family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='officialName').empty() or (family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='officialName').exists() and use='official')
ch-core-hm-2errorPatient.nameif orginalName with eCH-011 Extension is specified, it can only be put on a name where use attribute is maiden
: family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='originalName').empty() or ((family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='originalName').exists() and use='maiden'))
ch-core-hm-3errorPatient.namech-ext-ech-11-name can only be put on a family name
: descendants().extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name').count()=family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name').count()
ch-core-hm-4errorPatient.namech-ext-ech-11-firstname can only be put on a given name
: descendants().extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-firstname').count()=given.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-firstname').count()
ch-pat-1warningPatientIf one ore more human names are provided, at least one human name should have a family and a given name.
: name.where(family.exists() and given.exists()).count()>0 or name.empty()
ch-pat-1-eprerrorPatientAt least one human name shall have a family and a given name.
: name.where(family.exists() and given.exists()).count()>0
ch-pat-2warningPatientgender 'unknown' is currently not used in Switzerland in eCH and the EPR
: gender.empty() or gender!='unknown'
ch-pat-3errorPatient.extension:citizenshipISO Country Alpha-2 or ISO Country Alpha-3 code
: ((extension.where(url='code').value.coding.code.length()=2) and extension.where(url='code').value.coding.code.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-2')) or ((extension.where(url='code').value.coding.code.length() = 3) and extension.where(url='code').value.coding.code.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-3'))
cpt-2errorPatient.telecom:email, Patient.telecom:phone, Patient.telecom:internetA system is required if a value is provided.
: value.empty() or system.exists()
dom-2errorPatientIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPatientIf 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-4errorPatientIf 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-5errorPatientIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePatientA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
epr-spid-lengthwarningPatient.identifier:EPR-SPID.valueEPR-SPID must be exactly 18 characters long
: matches('^[0-9]{18}$')
epr-spid-length-errorerrorPatient.identifier:EPR-SPID.valueEPR-SPID must be exactly 18 characters long
: matches('^[0-9]{18}$')
epr-spid-modulus-10warningPatient.identifier:EPR-SPID.valueEPR-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-modulus-10-errorerrorPatient.identifier:EPR-SPID.valueEPR-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-startswith76133761warningPatient.identifier:EPR-SPID.valueEPR-SPID must start with 76133761
: startsWith('76133761')
epr-spid-startswith76133761-errorerrorPatient.identifier:EPR-SPID.valueEPR-SPID must start with 76133761
: startsWith('76133761')
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
pat-1errorPatient.contact, Patient.contact:contact, Patient.contact:nameOfParentSHALL at least contain a contact's details or a reference to an organization
: name.exists() or telecom.exists() or address.exists() or organization.exists()
veka-lengthwarningPatient.identifier:insuranceCardNumber.valueInsurance card number must be exactly 20 characters long
: matches('^[0-9]{20}$')
veka-length-errorerrorPatient.identifier:insuranceCardNumber.valueInsurance card number must be exactly 20 characters long
: matches('^[0-9]{20}$')
veka-startswith807560warningPatient.identifier:insuranceCardNumber.valueInsurance card number must start with 807560
: startsWith('807560')
veka-startswith807560-errorerrorPatient.identifier:insuranceCardNumber.valueInsurance card number must start with 807560
: startsWith('807560')
NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient C 0..* CHCorePatientEPR CH Core Patient EPR (to include the patient in an EPR document)
ch-pat-1: If one ore more human names are provided, at least one human name should have a family and a given name.
ch-pat-2: gender 'unknown' is currently not used in Switzerland in eCH and the EPR
ch-pat-1-epr: At least one human name shall have a family and a given name.
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension ✕ This element is not supported
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id ✕ This element is not supported
.... lastUpdated Σ 0..1 instant ✕ This element is not supported
.... source Σ 0..1 uri ✕ This element is not supported
.... profile Σ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... security Σ 0..* Coding ✕ This element is not supported
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... tag Σ 0..* Coding ✕ This element is not supported
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... placeOfBirth 0..1 CHCoreAddressEch11PlaceOfBirth Place of birth of patient
URL: http://hl7.org/fhir/StructureDefinition/patient-birthPlace profiled by http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-patient-ech-11-placeofbirth
.... placeOfOrigin 0..* CHCoreAddressECH11PlaceOfOrigin Place of origin(s) of patient
URL: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-patient-ech-11-placeoforigin
.... citizenship C 0..* (Complex) Citizenship(s) of patient
URL: http://hl7.org/fhir/StructureDefinition/patient-citizenship
ch-pat-3: ISO Country Alpha-2 or ISO Country Alpha-3 code
.... religion 0..1 CodeableConcept Religion of patient
URL: http://hl7.org/fhir/StructureDefinition/patient-religion
Binding: ReligiousAffiliation (preferred)
... Slices for identifier Σ 1..* Identifier An identifier for this patient
Slice: Unordered, Open by value:$this
.... identifier:All Slices Content/Rules for all slices
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension ✕ This element is not supported
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ 0..1 CodeableConcept ✕ This element is not supported
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.

..... system Σ 0..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ 0..1 string The value that is unique
Example General: 123456
..... period Σ 0..1 Period ✕ This element is not supported
..... assigner Σ 0..1 Reference(CH EMED EPR Organization) ✕ This element will be removed in PML(C) documents
.... identifier:LocalPid Σ 0..* Identifier Local patient identifier(s)

Required Pattern: At least the following
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... use 0..1 code usual | official | temp | secondary | old (If known)
..... type 1..1 CodeableConcept Description of identifier
Fixed Value: (complex)
...... 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/v2-0203
....... version 0..1 string Version of the system - if relevant
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: MR
....... 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
..... system 0..1 uri The namespace for the identifier value
..... value 0..1 string The value that is unique
..... period 0..1 Period Time period when id is/was valid for use
..... assigner 0..1 Reference(Organization) Organization that issued id (may be just text)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ 0..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.

..... system Σ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The value that is unique
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(CH EMED EPR Organization) Organization that issued id (may be just text)
.... identifier:insuranceCardNumber 0..* VEKAIdentifier An identifier intended for computation

Required Pattern: At least the following
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... use 0..1 code usual | official | temp | secondary | old (If known)
..... type 0..1 CodeableConcept Description of identifier
..... system 1..1 uri The namespace for the identifier value
Fixed Value: urn:oid:2.16.756.5.30.1.123.100.1.1.1
..... value 0..1 string The value that is unique
..... period 0..1 Period Time period when id is/was valid for use
..... assigner 0..1 Reference(Organization) Organization that issued id (may be just text)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ 0..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.

..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: urn:oid:2.16.756.5.30.1.123.100.1.1.1
..... value ΣC 1..1 string The value that is unique
veka-length: Insurance card number must be exactly 20 characters long
veka-startswith807560: Insurance card number must start with 807560
veka-length-error: Insurance card number must be exactly 20 characters long
veka-startswith807560-error: Insurance card number must start with 807560
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
...... 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 Starting time with inclusive boundary
...... end ΣC 0..1 dateTime Expiration date of the insurance card
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... active ?!Σ 0..1 boolean Whether this patient's record is in active use
... name C 1..* CHCoreHumanName Name of a human - parts and usage
ch-core-hm-1: if officalName with eCH-011 Extension is specified, it can only be put on a name where use attribute is official
ch-core-hm-2: if orginalName with eCH-011 Extension is specified, it can only be put on a name where use attribute is maiden
ch-core-hm-3: ch-ext-ech-11-name can only be put on a family name
ch-core-hm-4: ch-ext-ech-11-firstname can only be put on a given name
... Slices for telecom Σ 0..* ContactPoint A contact detail for the individual
Slice: Unordered, Open by value:system
.... telecom:All Slices Content/Rules for all slices
..... 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 ΣC 1..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.

..... value Σ 1..1 string The actual contact point details
..... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

..... rank Σ 0..1 positiveInt Specify preferred order of use (1 = highest)
..... period Σ 0..1 Period Time period when the contact point was/is in use
.... telecom:email C 0..* CHCoreContactPointECH46Email CH Core ContactPoint eCH-0046 Email
cpt-2: A system is required if a value is provided.
.... telecom:phone C 0..* CHCoreContactPointECH46Phone CH Core ContactPoint eCH-0046 Phone
cpt-2: A system is required if a value is provided.
.... telecom:internet C 0..* CHCoreContactPointECH46Internet CH Core ContactPoint eCH-0046 Internet
cpt-2: A system is required if a value is provided.
... gender Σ 1..1 code male | female | other | unknown* (* see warning 'ch-pat-2')
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

... birthDate Σ 1..1 date The date of birth for the individual
... deceased[x] ?!Σ 0..1 Indicates if the individual is deceased or not
.... deceasedBoolean boolean
.... deceasedDateTime dateTime
... address C 0..* CHCoreAddress An address expressed using postal conventions (as opposed to GPS or other location definition formats)
ch-addr-2: For a Swiss address, a canton abbreviation from the value set 'eCH-0007 Canton Abbreviation' must be used.
... maritalStatus 0..1 CodeableConcept Marital (civil) status of a patient
Binding: ChCoreMaritalStatus (extensible)
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... maritalDataSeparation 0..1 CodeableConcept MaritalData Separation
URL: http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-maritaldata-separation
Binding: eCH-011 MaritalData Separation (extensible): ValueSet separation type


.... coding Σ 0..* Coding Code defined by a terminology system
.... text Σ 0..1 string Plain text representation of the concept
... multipleBirth[x] 0..1 Whether patient is part of a multiple birth
.... multipleBirthBoolean boolean
.... multipleBirthInteger integer
... photo 0..* Attachment Image of the patient
... Slices for contact C 0..* BackboneElement A contact party (e.g. guardian, partner, friend) for the patient
Slice: Unordered, Open by value:relationship
pat-1: SHALL at least contain a contact's details or a reference to an organization
.... contact:All Slices Content/Rules for all slices
..... 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
..... relationship 0..* CodeableConcept The kind of relationship
Binding: PatientContactRelationship (extensible): The nature of the relationship between a patient and a contact person for that patient.


..... name 0..1 HumanName A name associated with the contact person
..... telecom 0..* ContactPoint A contact detail for the person
..... address 0..1 Address Address for the contact person
..... gender 0..1 code male | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

..... organization C 0..1 Reference(Organization) ✕ This element will be removed in PML(C) documents
..... period 0..1 Period The period during which this contact person or organization is valid to be contacted relating to this patient
.... contact:contact C 0..1 BackboneElement Contact data if it is not address of patient
pat-1: SHALL at least contain a contact's details or a reference to an organization
..... 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
..... relationship 1..1 CodeableConcept The kind of relationship
Binding: PatientContactRelationship (extensible): The nature of the relationship between a patient and a contact person for that patient.



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://fhir.ch/ig/ch-core/CodeSystem/ech-11
....... version 0..1 string Version of the system - if relevant
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: contactData
....... 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
..... name 0..1 HumanName A name associated with the contact person
..... address C 1..1 CHCoreAddressECH10 An address expressed using postal conventions (as opposed to GPS or other location definition formats)
ch-addr-2: For a Swiss address, a canton abbreviation from the value set 'eCH-0007 Canton Abbreviation' must be used.
..... gender 0..1 code male | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

..... organization C 0..1 Reference(Organization) Organization that is associated with the contact
..... period 0..1 Period The period during which this contact person or organization is valid to be contacted relating to this patient
.... contact:nameOfParent C 0..* BackboneElement Name of parent
pat-1: SHALL at least contain a contact's details or a reference to an organization
..... 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
..... relationship 1..1 CodeableConcept The kind of relationship
Binding: PatientContactRelationship (extensible): The nature of the relationship between a patient and a contact person for that patient.



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-RoleCode
....... version 0..1 string Version of the system - if relevant
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: PRN
....... 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
..... name 1..1 HumanName A name associated with the contact person
..... telecom 0..* ContactPoint A contact detail for the person
..... address 0..1 Address Address for the contact person
..... gender 0..1 code male | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

..... organization C 0..1 Reference(Organization) Organization that is associated with the contact
..... period 0..1 Period The period during which this contact person or organization is valid to be contacted relating to this patient
... Slices for communication 0..* BackboneElement A language which may be used to communicate with the patient about his or her health
Slice: Unordered, Open by value:preferred
.... communication:All Slices Content/Rules for all slices
..... 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
..... language 1..1 CodeableConcept The language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
..... preferred 0..1 boolean Language preference indicator
.... communication:languageOfCorrespondence 0..1 BackboneElement Language of correspondence
..... 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
..... language 1..1 CodeableConcept The language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
..... preferred 1..1 boolean Language preference indicator
Fixed Value: true
... generalPractitioner 0..* Reference(Organization | Practitioner | PractitionerRole) ✕ This element will be removed in PML(C) documents
... managingOrganization Σ 0..1 Reference(Organization) ✕ This element will be removed in PML(C) documents
... link ?!Σ 0..* BackboneElement ✕ This element will be removed in PML(C) documents
.... 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
.... other Σ 1..1 Reference(Patient | RelatedPerson) The other patient or related person resource that the link refers to
.... type Σ 1..1 code replaced-by | replaces | refer | seealso
Binding: LinkType (required): The type of link between this patient resource and another patient resource.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Patient.meta.securityextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
from the FHIR Standard
Patient.meta.tagexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Patient.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Patient.identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Patient.identifier:EPR-SPID.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier:EPR-SPID.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Patient.identifier:AHVN13.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier:AHVN13.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Patient.identifier:LocalPid.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier:LocalPid.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Patient.identifier:insuranceCardNumber.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier:insuranceCardNumber.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Patient.telecom.systemrequiredContactPointSystem
http://hl7.org/fhir/ValueSet/contact-point-system|4.0.1
from the FHIR Standard
Patient.telecom.userequiredContactPointUse
http://hl7.org/fhir/ValueSet/contact-point-use|4.0.1
from the FHIR Standard
Patient.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.maritalStatusextensibleChCoreMaritalStatus
http://fhir.ch/ig/ch-core/ValueSet/ch-core-maritalstatus
Patient.contact.relationshipextensiblePatientContactRelationship
http://hl7.org/fhir/ValueSet/patient-contactrelationship
from the FHIR Standard
Patient.contact.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.contact:contact.relationshipextensiblePattern: contactData
http://hl7.org/fhir/ValueSet/patient-contactrelationship
from the FHIR Standard
Patient.contact:contact.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.contact:nameOfParent.relationshipextensiblePattern: PRN
http://hl7.org/fhir/ValueSet/patient-contactrelationship
from the FHIR Standard
Patient.contact:nameOfParent.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Patient.communication:languageOfCorrespondence.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Patient.link.typerequiredLinkType
http://hl7.org/fhir/ValueSet/link-type|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
ahvn13-digit-checkwarningPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must pass digit check - https://www.gs1.org/services/how-calculate-check-digit-manually
: (((10-(28+(substring(3,1).toInteger()*3)+(substring(4,1).toInteger()*1)+(substring(5,1).toInteger()*3)+(substring(6,1).toInteger()*1)+(substring(7,1).toInteger()*3)+(substring(8,1).toInteger()*1)+(substring(9,1).toInteger()*3)+(substring(10,1).toInteger()*1)+(substring(11,1).toInteger()*3))mod(10))mod(10))=substring(12,1).toInteger())
ahvn13-digit-check-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must pass digit check - https://www.gs1.org/services/how-calculate-check-digit-manually
: (((10-(28+(substring(3,1).toInteger()*3)+(substring(4,1).toInteger()*1)+(substring(5,1).toInteger()*3)+(substring(6,1).toInteger()*1)+(substring(7,1).toInteger()*3)+(substring(8,1).toInteger()*1)+(substring(9,1).toInteger()*3)+(substring(10,1).toInteger()*1)+(substring(11,1).toInteger()*3))mod(10))mod(10))=substring(12,1).toInteger())
ahvn13-lengthwarningPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must be exactly 13 characters long
: matches('^[0-9]{13}$')
ahvn13-length-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must be exactly 13 characters long
: matches('^[0-9]{13}$')
ahvn13-startswith756warningPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must start with 756
: startsWith('756')
ahvn13-startswith756-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must start with 756
: startsWith('756')
ch-addr-2errorPatient.address, Patient.contact:contact.addressFor a Swiss address, a canton abbreviation from the value set 'eCH-0007 Canton Abbreviation' must be used.
: country.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-SC-coding').empty() or (country.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-SC-coding').value.code.startsWith('CH') = false) or (country.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-SC-coding').value.code.startsWith('CH').exists() and (state.empty() or state.memberOf('http://fhir.ch/ig/ch-core/ValueSet/ech-7-cantonabbreviation')))
ch-core-hm-1errorPatient.nameif officalName with eCH-011 Extension is specified, it can only be put on a name where use attribute is official
: family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='officialName').empty() or (family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='officialName').exists() and use='official')
ch-core-hm-2errorPatient.nameif orginalName with eCH-011 Extension is specified, it can only be put on a name where use attribute is maiden
: family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='originalName').empty() or ((family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='originalName').exists() and use='maiden'))
ch-core-hm-3errorPatient.namech-ext-ech-11-name can only be put on a family name
: descendants().extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name').count()=family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name').count()
ch-core-hm-4errorPatient.namech-ext-ech-11-firstname can only be put on a given name
: descendants().extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-firstname').count()=given.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-firstname').count()
ch-pat-1warningPatientIf one ore more human names are provided, at least one human name should have a family and a given name.
: name.where(family.exists() and given.exists()).count()>0 or name.empty()
ch-pat-1-eprerrorPatientAt least one human name shall have a family and a given name.
: name.where(family.exists() and given.exists()).count()>0
ch-pat-2warningPatientgender 'unknown' is currently not used in Switzerland in eCH and the EPR
: gender.empty() or gender!='unknown'
ch-pat-3errorPatient.extension:citizenshipISO Country Alpha-2 or ISO Country Alpha-3 code
: ((extension.where(url='code').value.coding.code.length()=2) and extension.where(url='code').value.coding.code.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-2')) or ((extension.where(url='code').value.coding.code.length() = 3) and extension.where(url='code').value.coding.code.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-3'))
cpt-2errorPatient.telecom:email, Patient.telecom:phone, Patient.telecom:internetA system is required if a value is provided.
: value.empty() or system.exists()
dom-2errorPatientIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPatientIf 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-4errorPatientIf 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-5errorPatientIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePatientA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
epr-spid-lengthwarningPatient.identifier:EPR-SPID.valueEPR-SPID must be exactly 18 characters long
: matches('^[0-9]{18}$')
epr-spid-length-errorerrorPatient.identifier:EPR-SPID.valueEPR-SPID must be exactly 18 characters long
: matches('^[0-9]{18}$')
epr-spid-modulus-10warningPatient.identifier:EPR-SPID.valueEPR-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-modulus-10-errorerrorPatient.identifier:EPR-SPID.valueEPR-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-startswith76133761warningPatient.identifier:EPR-SPID.valueEPR-SPID must start with 76133761
: startsWith('76133761')
epr-spid-startswith76133761-errorerrorPatient.identifier:EPR-SPID.valueEPR-SPID must start with 76133761
: startsWith('76133761')
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
pat-1errorPatient.contact, Patient.contact:contact, Patient.contact:nameOfParentSHALL at least contain a contact's details or a reference to an organization
: name.exists() or telecom.exists() or address.exists() or organization.exists()
veka-lengthwarningPatient.identifier:insuranceCardNumber.valueInsurance card number must be exactly 20 characters long
: matches('^[0-9]{20}$')
veka-length-errorerrorPatient.identifier:insuranceCardNumber.valueInsurance card number must be exactly 20 characters long
: matches('^[0-9]{20}$')
veka-startswith807560warningPatient.identifier:insuranceCardNumber.valueInsurance card number must start with 807560
: startsWith('807560')
veka-startswith807560-errorerrorPatient.identifier:insuranceCardNumber.valueInsurance card number must start with 807560
: startsWith('807560')

This structure is derived from CHCorePatientEPR

Summary

Prohibited: 2 elements

Structures

This structure refers to these other structures:

Differential View

This structure is derived from CHCorePatientEPR

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient CHCorePatientEPR
... meta
.... extension D 0..* Extension ✕ This element is not supported
.... versionId D 0..1 id ✕ This element is not supported
.... lastUpdated D 0..1 instant ✕ This element is not supported
.... source D 0..1 uri ✕ This element is not supported
.... security D 0..* Coding ✕ This element is not supported
.... tag D 0..* Coding ✕ This element is not supported
... implicitRules 0..0
... modifierExtension 0..0
.... extension D 0..* Extension ✕ This element is not supported
.... type D 0..1 CodeableConcept ✕ This element is not supported
.... period D 0..1 Period ✕ This element is not supported
.... assigner D 0..1 Reference(CH EMED EPR Organization) ✕ This element will be removed in PML(C) documents
... Slices for identifier Content/Rules for all slices
.... identifier:EPR-SPID 0..0 EPRSPIDIdentifier
.... identifier:AHVN13 0..0 AHVN13Identifier
.... identifier:LocalPid 0..* Identifier Local patient identifier(s)
..... assigner 0..1 Reference(CH EMED EPR Organization) Organization that issued id (may be just text)
.... identifier:insuranceCardNumber 0..* VEKAIdentifier An identifier intended for computation
..... value C 1..1 string The value that is unique
veka-length-error: Insurance card number must be exactly 20 characters long
veka-startswith807560-error: Insurance card number must start with 807560
... contact 0..* BackboneElement A contact party (e.g. guardian, partner, friend) for the patient
.... organization D 0..1 Reference(Organization) ✕ This element will be removed in PML(C) documents
... generalPractitioner D 0..* Reference(Organization | Practitioner | PractitionerRole) ✕ This element will be removed in PML(C) documents
... managingOrganization D 0..1 Reference(Organization) ✕ This element will be removed in PML(C) documents
... link D 0..* BackboneElement ✕ This element will be removed in PML(C) documents

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
ahvn13-digit-check-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must pass digit check - https://www.gs1.org/services/how-calculate-check-digit-manually
: (((10-(28+(substring(3,1).toInteger()*3)+(substring(4,1).toInteger()*1)+(substring(5,1).toInteger()*3)+(substring(6,1).toInteger()*1)+(substring(7,1).toInteger()*3)+(substring(8,1).toInteger()*1)+(substring(9,1).toInteger()*3)+(substring(10,1).toInteger()*1)+(substring(11,1).toInteger()*3))mod(10))mod(10))=substring(12,1).toInteger())
ahvn13-length-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must be exactly 13 characters long
: matches('^[0-9]{13}$')
ahvn13-startswith756-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must start with 756
: startsWith('756')
epr-spid-length-errorerrorPatient.identifier:EPR-SPID.valueEPR-SPID must be exactly 18 characters long
: matches('^[0-9]{18}$')
epr-spid-modulus-10-errorerrorPatient.identifier:EPR-SPID.valueEPR-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-errorerrorPatient.identifier:EPR-SPID.valueEPR-SPID must start with 76133761
: startsWith('76133761')
veka-length-errorerrorPatient.identifier:insuranceCardNumber.valueInsurance card number must be exactly 20 characters long
: matches('^[0-9]{20}$')
veka-startswith807560-errorerrorPatient.identifier:insuranceCardNumber.valueInsurance card number must start with 807560
: startsWith('807560')

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient C 0..* CHCorePatientEPR CH Core Patient EPR (to include the patient in an EPR document)
ch-pat-1: If one ore more human names are provided, at least one human name should have a family and a given name.
ch-pat-2: gender 'unknown' is currently not used in Switzerland in eCH and the EPR
ch-pat-1-epr: At least one human name shall have a family and a given name.
... Slices for extension Content/Rules for all slices
.... placeOfBirth 0..1 CHCoreAddressEch11PlaceOfBirth Place of birth of patient
URL: http://hl7.org/fhir/StructureDefinition/patient-birthPlace profiled by http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-patient-ech-11-placeofbirth
.... placeOfOrigin 0..* CHCoreAddressECH11PlaceOfOrigin Place of origin(s) of patient
URL: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-patient-ech-11-placeoforigin
.... citizenship C 0..* (Complex) Citizenship(s) of patient
URL: http://hl7.org/fhir/StructureDefinition/patient-citizenship
ch-pat-3: ISO Country Alpha-2 or ISO Country Alpha-3 code
.... religion 0..1 CodeableConcept Religion of patient
URL: http://hl7.org/fhir/StructureDefinition/patient-religion
Binding: ReligiousAffiliation (preferred)
... Slices for identifier Σ 1..* Identifier An identifier for this patient
Slice: Unordered, Open by value:$this
.... identifier:All Slices Content/Rules for all slices
..... extension 0..* Extension ✕ This element is not supported
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ 0..1 CodeableConcept ✕ This element is not supported
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.

..... period Σ 0..1 Period ✕ This element is not supported
..... assigner Σ 0..1 Reference(CH EMED EPR Organization) ✕ This element will be removed in PML(C) documents
.... identifier:LocalPid Σ 0..* Identifier Local patient identifier(s)

Required Pattern: At least the following
..... type 1..1 CodeableConcept Description of identifier
Fixed Value: (complex)
...... 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/v2-0203
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: MR
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... system Σ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The value that is unique
Example General: 123456
..... assigner Σ 0..1 Reference(CH EMED EPR Organization) Organization that issued id (may be just text)
.... identifier:insuranceCardNumber 0..* VEKAIdentifier An identifier intended for computation

Required Pattern: At least the following
..... system 1..1 uri The namespace for the identifier value
Fixed Value: urn:oid:2.16.756.5.30.1.123.100.1.1.1
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: urn:oid:2.16.756.5.30.1.123.100.1.1.1
..... value ΣC 1..1 string The value that is unique
veka-length: Insurance card number must be exactly 20 characters long
veka-startswith807560: Insurance card number must start with 807560
veka-length-error: Insurance card number must be exactly 20 characters long
veka-startswith807560-error: Insurance card number must start with 807560
Example General: 123456
... active ?!Σ 0..1 boolean Whether this patient's record is in active use
... Slices for telecom Σ 0..* ContactPoint A contact detail for the individual
Slice: Unordered, Open by value:system
.... telecom:All Slices Content/Rules for all slices
..... system ΣC 1..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.

..... value Σ 1..1 string The actual contact point details
..... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

.... telecom:email C 0..* CHCoreContactPointECH46Email CH Core ContactPoint eCH-0046 Email
cpt-2: A system is required if a value is provided.
.... telecom:phone C 0..* CHCoreContactPointECH46Phone CH Core ContactPoint eCH-0046 Phone
cpt-2: A system is required if a value is provided.
.... telecom:internet C 0..* CHCoreContactPointECH46Internet CH Core ContactPoint eCH-0046 Internet
cpt-2: A system is required if a value is provided.
... gender Σ 1..1 code male | female | other | unknown* (* see warning 'ch-pat-2')
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

... birthDate Σ 1..1 date The date of birth for the individual
... deceased[x] ?!Σ 0..1 Indicates if the individual is deceased or not
.... deceasedBoolean boolean
.... deceasedDateTime dateTime
... Slices for contact C 0..* BackboneElement A contact party (e.g. guardian, partner, friend) for the patient
Slice: Unordered, Open by value:relationship
pat-1: SHALL at least contain a contact's details or a reference to an organization
.... contact:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... organization C 0..1 Reference(Organization) ✕ This element will be removed in PML(C) documents
.... contact:contact C 0..1 BackboneElement Contact data if it is not address of patient
pat-1: SHALL at least contain a contact's details or a reference to an organization
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... relationship 1..1 CodeableConcept The kind of relationship
Binding: PatientContactRelationship (extensible): The nature of the relationship between a patient and a contact person for that patient.



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://fhir.ch/ig/ch-core/CodeSystem/ech-11
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: contactData
..... address C 1..1 CHCoreAddressECH10 An address expressed using postal conventions (as opposed to GPS or other location definition formats)
ch-addr-2: For a Swiss address, a canton abbreviation from the value set 'eCH-0007 Canton Abbreviation' must be used.
.... contact:nameOfParent C 0..* BackboneElement Name of parent
pat-1: SHALL at least contain a contact's details or a reference to an organization
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... relationship 1..1 CodeableConcept The kind of relationship
Binding: PatientContactRelationship (extensible): The nature of the relationship between a patient and a contact person for that patient.



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-RoleCode
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: PRN
..... name 1..1 HumanName A name associated with the contact person
... Slices for communication 0..* BackboneElement A language which may be used to communicate with the patient about his or her health
Slice: Unordered, Open by value:preferred
.... communication:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... language 1..1 CodeableConcept The language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
.... communication:languageOfCorrespondence 0..1 BackboneElement Language of correspondence
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... language 1..1 CodeableConcept The language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
..... preferred 1..1 boolean Language preference indicator
Fixed Value: true
... generalPractitioner 0..* Reference(Organization | Practitioner | PractitionerRole) ✕ This element will be removed in PML(C) documents
... managingOrganization Σ 0..1 Reference(Organization) ✕ This element will be removed in PML(C) documents
... link ?!Σ 0..* BackboneElement ✕ This element will be removed in PML(C) documents
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... other Σ 1..1 Reference(Patient | RelatedPerson) The other patient or related person resource that the link refers to
.... type Σ 1..1 code replaced-by | replaces | refer | seealso
Binding: LinkType (required): The type of link between this patient resource and another patient resource.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Patient.identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Patient.identifier:EPR-SPID.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier:AHVN13.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier:LocalPid.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier:insuranceCardNumber.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.telecom.systemrequiredContactPointSystem
http://hl7.org/fhir/ValueSet/contact-point-system|4.0.1
from the FHIR Standard
Patient.telecom.userequiredContactPointUse
http://hl7.org/fhir/ValueSet/contact-point-use|4.0.1
from the FHIR Standard
Patient.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.contact:contact.relationshipextensiblePattern: contactData
http://hl7.org/fhir/ValueSet/patient-contactrelationship
from the FHIR Standard
Patient.contact:nameOfParent.relationshipextensiblePattern: PRN
http://hl7.org/fhir/ValueSet/patient-contactrelationship
from the FHIR Standard
Patient.communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Patient.communication:languageOfCorrespondence.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Patient.link.typerequiredLinkType
http://hl7.org/fhir/ValueSet/link-type|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
ahvn13-digit-checkwarningPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must pass digit check - https://www.gs1.org/services/how-calculate-check-digit-manually
: (((10-(28+(substring(3,1).toInteger()*3)+(substring(4,1).toInteger()*1)+(substring(5,1).toInteger()*3)+(substring(6,1).toInteger()*1)+(substring(7,1).toInteger()*3)+(substring(8,1).toInteger()*1)+(substring(9,1).toInteger()*3)+(substring(10,1).toInteger()*1)+(substring(11,1).toInteger()*3))mod(10))mod(10))=substring(12,1).toInteger())
ahvn13-digit-check-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must pass digit check - https://www.gs1.org/services/how-calculate-check-digit-manually
: (((10-(28+(substring(3,1).toInteger()*3)+(substring(4,1).toInteger()*1)+(substring(5,1).toInteger()*3)+(substring(6,1).toInteger()*1)+(substring(7,1).toInteger()*3)+(substring(8,1).toInteger()*1)+(substring(9,1).toInteger()*3)+(substring(10,1).toInteger()*1)+(substring(11,1).toInteger()*3))mod(10))mod(10))=substring(12,1).toInteger())
ahvn13-lengthwarningPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must be exactly 13 characters long
: matches('^[0-9]{13}$')
ahvn13-length-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must be exactly 13 characters long
: matches('^[0-9]{13}$')
ahvn13-startswith756warningPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must start with 756
: startsWith('756')
ahvn13-startswith756-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must start with 756
: startsWith('756')
ch-addr-2errorPatient.contact:contact.addressFor a Swiss address, a canton abbreviation from the value set 'eCH-0007 Canton Abbreviation' must be used.
: country.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-SC-coding').empty() or (country.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-SC-coding').value.code.startsWith('CH') = false) or (country.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-SC-coding').value.code.startsWith('CH').exists() and (state.empty() or state.memberOf('http://fhir.ch/ig/ch-core/ValueSet/ech-7-cantonabbreviation')))
ch-core-hm-1errorPatient.nameif officalName with eCH-011 Extension is specified, it can only be put on a name where use attribute is official
: family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='officialName').empty() or (family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='officialName').exists() and use='official')
ch-core-hm-2errorPatient.nameif orginalName with eCH-011 Extension is specified, it can only be put on a name where use attribute is maiden
: family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='originalName').empty() or ((family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='originalName').exists() and use='maiden'))
ch-core-hm-3errorPatient.namech-ext-ech-11-name can only be put on a family name
: descendants().extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name').count()=family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name').count()
ch-core-hm-4errorPatient.namech-ext-ech-11-firstname can only be put on a given name
: descendants().extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-firstname').count()=given.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-firstname').count()
ch-pat-1warningPatientIf one ore more human names are provided, at least one human name should have a family and a given name.
: name.where(family.exists() and given.exists()).count()>0 or name.empty()
ch-pat-1-eprerrorPatientAt least one human name shall have a family and a given name.
: name.where(family.exists() and given.exists()).count()>0
ch-pat-2warningPatientgender 'unknown' is currently not used in Switzerland in eCH and the EPR
: gender.empty() or gender!='unknown'
ch-pat-3errorPatient.extension:citizenshipISO Country Alpha-2 or ISO Country Alpha-3 code
: ((extension.where(url='code').value.coding.code.length()=2) and extension.where(url='code').value.coding.code.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-2')) or ((extension.where(url='code').value.coding.code.length() = 3) and extension.where(url='code').value.coding.code.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-3'))
cpt-2errorPatient.telecom:email, Patient.telecom:phone, Patient.telecom:internetA system is required if a value is provided.
: value.empty() or system.exists()
dom-2errorPatientIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPatientIf 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-4errorPatientIf 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-5errorPatientIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePatientA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
epr-spid-lengthwarningPatient.identifier:EPR-SPID.valueEPR-SPID must be exactly 18 characters long
: matches('^[0-9]{18}$')
epr-spid-length-errorerrorPatient.identifier:EPR-SPID.valueEPR-SPID must be exactly 18 characters long
: matches('^[0-9]{18}$')
epr-spid-modulus-10warningPatient.identifier:EPR-SPID.valueEPR-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-modulus-10-errorerrorPatient.identifier:EPR-SPID.valueEPR-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-startswith76133761warningPatient.identifier:EPR-SPID.valueEPR-SPID must start with 76133761
: startsWith('76133761')
epr-spid-startswith76133761-errorerrorPatient.identifier:EPR-SPID.valueEPR-SPID must start with 76133761
: startsWith('76133761')
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
pat-1errorPatient.contact, Patient.contact:contact, Patient.contact:nameOfParentSHALL at least contain a contact's details or a reference to an organization
: name.exists() or telecom.exists() or address.exists() or organization.exists()
veka-lengthwarningPatient.identifier:insuranceCardNumber.valueInsurance card number must be exactly 20 characters long
: matches('^[0-9]{20}$')
veka-length-errorerrorPatient.identifier:insuranceCardNumber.valueInsurance card number must be exactly 20 characters long
: matches('^[0-9]{20}$')
veka-startswith807560warningPatient.identifier:insuranceCardNumber.valueInsurance card number must start with 807560
: startsWith('807560')
veka-startswith807560-errorerrorPatient.identifier:insuranceCardNumber.valueInsurance card number must start with 807560
: startsWith('807560')

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient C 0..* CHCorePatientEPR CH Core Patient EPR (to include the patient in an EPR document)
ch-pat-1: If one ore more human names are provided, at least one human name should have a family and a given name.
ch-pat-2: gender 'unknown' is currently not used in Switzerland in eCH and the EPR
ch-pat-1-epr: At least one human name shall have a family and a given name.
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension ✕ This element is not supported
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id ✕ This element is not supported
.... lastUpdated Σ 0..1 instant ✕ This element is not supported
.... source Σ 0..1 uri ✕ This element is not supported
.... profile Σ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... security Σ 0..* Coding ✕ This element is not supported
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... tag Σ 0..* Coding ✕ This element is not supported
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... placeOfBirth 0..1 CHCoreAddressEch11PlaceOfBirth Place of birth of patient
URL: http://hl7.org/fhir/StructureDefinition/patient-birthPlace profiled by http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-patient-ech-11-placeofbirth
.... placeOfOrigin 0..* CHCoreAddressECH11PlaceOfOrigin Place of origin(s) of patient
URL: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-patient-ech-11-placeoforigin
.... citizenship C 0..* (Complex) Citizenship(s) of patient
URL: http://hl7.org/fhir/StructureDefinition/patient-citizenship
ch-pat-3: ISO Country Alpha-2 or ISO Country Alpha-3 code
.... religion 0..1 CodeableConcept Religion of patient
URL: http://hl7.org/fhir/StructureDefinition/patient-religion
Binding: ReligiousAffiliation (preferred)
... Slices for identifier Σ 1..* Identifier An identifier for this patient
Slice: Unordered, Open by value:$this
.... identifier:All Slices Content/Rules for all slices
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension ✕ This element is not supported
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ 0..1 CodeableConcept ✕ This element is not supported
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.

..... system Σ 0..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ 0..1 string The value that is unique
Example General: 123456
..... period Σ 0..1 Period ✕ This element is not supported
..... assigner Σ 0..1 Reference(CH EMED EPR Organization) ✕ This element will be removed in PML(C) documents
.... identifier:LocalPid Σ 0..* Identifier Local patient identifier(s)

Required Pattern: At least the following
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... use 0..1 code usual | official | temp | secondary | old (If known)
..... type 1..1 CodeableConcept Description of identifier
Fixed Value: (complex)
...... 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/v2-0203
....... version 0..1 string Version of the system - if relevant
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: MR
....... 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
..... system 0..1 uri The namespace for the identifier value
..... value 0..1 string The value that is unique
..... period 0..1 Period Time period when id is/was valid for use
..... assigner 0..1 Reference(Organization) Organization that issued id (may be just text)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ 0..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.

..... system Σ 1..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The value that is unique
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(CH EMED EPR Organization) Organization that issued id (may be just text)
.... identifier:insuranceCardNumber 0..* VEKAIdentifier An identifier intended for computation

Required Pattern: At least the following
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... use 0..1 code usual | official | temp | secondary | old (If known)
..... type 0..1 CodeableConcept Description of identifier
..... system 1..1 uri The namespace for the identifier value
Fixed Value: urn:oid:2.16.756.5.30.1.123.100.1.1.1
..... value 0..1 string The value that is unique
..... period 0..1 Period Time period when id is/was valid for use
..... assigner 0..1 Reference(Organization) Organization that issued id (may be just text)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ 0..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.

..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: urn:oid:2.16.756.5.30.1.123.100.1.1.1
..... value ΣC 1..1 string The value that is unique
veka-length: Insurance card number must be exactly 20 characters long
veka-startswith807560: Insurance card number must start with 807560
veka-length-error: Insurance card number must be exactly 20 characters long
veka-startswith807560-error: Insurance card number must start with 807560
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
...... 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 Starting time with inclusive boundary
...... end ΣC 0..1 dateTime Expiration date of the insurance card
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... active ?!Σ 0..1 boolean Whether this patient's record is in active use
... name C 1..* CHCoreHumanName Name of a human - parts and usage
ch-core-hm-1: if officalName with eCH-011 Extension is specified, it can only be put on a name where use attribute is official
ch-core-hm-2: if orginalName with eCH-011 Extension is specified, it can only be put on a name where use attribute is maiden
ch-core-hm-3: ch-ext-ech-11-name can only be put on a family name
ch-core-hm-4: ch-ext-ech-11-firstname can only be put on a given name
... Slices for telecom Σ 0..* ContactPoint A contact detail for the individual
Slice: Unordered, Open by value:system
.... telecom:All Slices Content/Rules for all slices
..... 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 ΣC 1..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.

..... value Σ 1..1 string The actual contact point details
..... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

..... rank Σ 0..1 positiveInt Specify preferred order of use (1 = highest)
..... period Σ 0..1 Period Time period when the contact point was/is in use
.... telecom:email C 0..* CHCoreContactPointECH46Email CH Core ContactPoint eCH-0046 Email
cpt-2: A system is required if a value is provided.
.... telecom:phone C 0..* CHCoreContactPointECH46Phone CH Core ContactPoint eCH-0046 Phone
cpt-2: A system is required if a value is provided.
.... telecom:internet C 0..* CHCoreContactPointECH46Internet CH Core ContactPoint eCH-0046 Internet
cpt-2: A system is required if a value is provided.
... gender Σ 1..1 code male | female | other | unknown* (* see warning 'ch-pat-2')
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

... birthDate Σ 1..1 date The date of birth for the individual
... deceased[x] ?!Σ 0..1 Indicates if the individual is deceased or not
.... deceasedBoolean boolean
.... deceasedDateTime dateTime
... address C 0..* CHCoreAddress An address expressed using postal conventions (as opposed to GPS or other location definition formats)
ch-addr-2: For a Swiss address, a canton abbreviation from the value set 'eCH-0007 Canton Abbreviation' must be used.
... maritalStatus 0..1 CodeableConcept Marital (civil) status of a patient
Binding: ChCoreMaritalStatus (extensible)
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... maritalDataSeparation 0..1 CodeableConcept MaritalData Separation
URL: http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-maritaldata-separation
Binding: eCH-011 MaritalData Separation (extensible): ValueSet separation type


.... coding Σ 0..* Coding Code defined by a terminology system
.... text Σ 0..1 string Plain text representation of the concept
... multipleBirth[x] 0..1 Whether patient is part of a multiple birth
.... multipleBirthBoolean boolean
.... multipleBirthInteger integer
... photo 0..* Attachment Image of the patient
... Slices for contact C 0..* BackboneElement A contact party (e.g. guardian, partner, friend) for the patient
Slice: Unordered, Open by value:relationship
pat-1: SHALL at least contain a contact's details or a reference to an organization
.... contact:All Slices Content/Rules for all slices
..... 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
..... relationship 0..* CodeableConcept The kind of relationship
Binding: PatientContactRelationship (extensible): The nature of the relationship between a patient and a contact person for that patient.


..... name 0..1 HumanName A name associated with the contact person
..... telecom 0..* ContactPoint A contact detail for the person
..... address 0..1 Address Address for the contact person
..... gender 0..1 code male | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

..... organization C 0..1 Reference(Organization) ✕ This element will be removed in PML(C) documents
..... period 0..1 Period The period during which this contact person or organization is valid to be contacted relating to this patient
.... contact:contact C 0..1 BackboneElement Contact data if it is not address of patient
pat-1: SHALL at least contain a contact's details or a reference to an organization
..... 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
..... relationship 1..1 CodeableConcept The kind of relationship
Binding: PatientContactRelationship (extensible): The nature of the relationship between a patient and a contact person for that patient.



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://fhir.ch/ig/ch-core/CodeSystem/ech-11
....... version 0..1 string Version of the system - if relevant
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: contactData
....... 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
..... name 0..1 HumanName A name associated with the contact person
..... address C 1..1 CHCoreAddressECH10 An address expressed using postal conventions (as opposed to GPS or other location definition formats)
ch-addr-2: For a Swiss address, a canton abbreviation from the value set 'eCH-0007 Canton Abbreviation' must be used.
..... gender 0..1 code male | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

..... organization C 0..1 Reference(Organization) Organization that is associated with the contact
..... period 0..1 Period The period during which this contact person or organization is valid to be contacted relating to this patient
.... contact:nameOfParent C 0..* BackboneElement Name of parent
pat-1: SHALL at least contain a contact's details or a reference to an organization
..... 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
..... relationship 1..1 CodeableConcept The kind of relationship
Binding: PatientContactRelationship (extensible): The nature of the relationship between a patient and a contact person for that patient.



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-RoleCode
....... version 0..1 string Version of the system - if relevant
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: PRN
....... 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
..... name 1..1 HumanName A name associated with the contact person
..... telecom 0..* ContactPoint A contact detail for the person
..... address 0..1 Address Address for the contact person
..... gender 0..1 code male | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

..... organization C 0..1 Reference(Organization) Organization that is associated with the contact
..... period 0..1 Period The period during which this contact person or organization is valid to be contacted relating to this patient
... Slices for communication 0..* BackboneElement A language which may be used to communicate with the patient about his or her health
Slice: Unordered, Open by value:preferred
.... communication:All Slices Content/Rules for all slices
..... 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
..... language 1..1 CodeableConcept The language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
..... preferred 0..1 boolean Language preference indicator
.... communication:languageOfCorrespondence 0..1 BackboneElement Language of correspondence
..... 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
..... language 1..1 CodeableConcept The language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
..... preferred 1..1 boolean Language preference indicator
Fixed Value: true
... generalPractitioner 0..* Reference(Organization | Practitioner | PractitionerRole) ✕ This element will be removed in PML(C) documents
... managingOrganization Σ 0..1 Reference(Organization) ✕ This element will be removed in PML(C) documents
... link ?!Σ 0..* BackboneElement ✕ This element will be removed in PML(C) documents
.... 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
.... other Σ 1..1 Reference(Patient | RelatedPerson) The other patient or related person resource that the link refers to
.... type Σ 1..1 code replaced-by | replaces | refer | seealso
Binding: LinkType (required): The type of link between this patient resource and another patient resource.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Patient.meta.securityextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
from the FHIR Standard
Patient.meta.tagexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Patient.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Patient.identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Patient.identifier:EPR-SPID.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier:EPR-SPID.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Patient.identifier:AHVN13.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier:AHVN13.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Patient.identifier:LocalPid.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier:LocalPid.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Patient.identifier:insuranceCardNumber.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier:insuranceCardNumber.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Patient.telecom.systemrequiredContactPointSystem
http://hl7.org/fhir/ValueSet/contact-point-system|4.0.1
from the FHIR Standard
Patient.telecom.userequiredContactPointUse
http://hl7.org/fhir/ValueSet/contact-point-use|4.0.1
from the FHIR Standard
Patient.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.maritalStatusextensibleChCoreMaritalStatus
http://fhir.ch/ig/ch-core/ValueSet/ch-core-maritalstatus
Patient.contact.relationshipextensiblePatientContactRelationship
http://hl7.org/fhir/ValueSet/patient-contactrelationship
from the FHIR Standard
Patient.contact.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.contact:contact.relationshipextensiblePattern: contactData
http://hl7.org/fhir/ValueSet/patient-contactrelationship
from the FHIR Standard
Patient.contact:contact.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.contact:nameOfParent.relationshipextensiblePattern: PRN
http://hl7.org/fhir/ValueSet/patient-contactrelationship
from the FHIR Standard
Patient.contact:nameOfParent.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
from the FHIR Standard
Patient.communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Patient.communication:languageOfCorrespondence.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Patient.link.typerequiredLinkType
http://hl7.org/fhir/ValueSet/link-type|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
ahvn13-digit-checkwarningPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must pass digit check - https://www.gs1.org/services/how-calculate-check-digit-manually
: (((10-(28+(substring(3,1).toInteger()*3)+(substring(4,1).toInteger()*1)+(substring(5,1).toInteger()*3)+(substring(6,1).toInteger()*1)+(substring(7,1).toInteger()*3)+(substring(8,1).toInteger()*1)+(substring(9,1).toInteger()*3)+(substring(10,1).toInteger()*1)+(substring(11,1).toInteger()*3))mod(10))mod(10))=substring(12,1).toInteger())
ahvn13-digit-check-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must pass digit check - https://www.gs1.org/services/how-calculate-check-digit-manually
: (((10-(28+(substring(3,1).toInteger()*3)+(substring(4,1).toInteger()*1)+(substring(5,1).toInteger()*3)+(substring(6,1).toInteger()*1)+(substring(7,1).toInteger()*3)+(substring(8,1).toInteger()*1)+(substring(9,1).toInteger()*3)+(substring(10,1).toInteger()*1)+(substring(11,1).toInteger()*3))mod(10))mod(10))=substring(12,1).toInteger())
ahvn13-lengthwarningPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must be exactly 13 characters long
: matches('^[0-9]{13}$')
ahvn13-length-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must be exactly 13 characters long
: matches('^[0-9]{13}$')
ahvn13-startswith756warningPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must start with 756
: startsWith('756')
ahvn13-startswith756-errorerrorPatient.identifier:AHVN13.valueAHVN13 / NAVS13 must start with 756
: startsWith('756')
ch-addr-2errorPatient.address, Patient.contact:contact.addressFor a Swiss address, a canton abbreviation from the value set 'eCH-0007 Canton Abbreviation' must be used.
: country.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-SC-coding').empty() or (country.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-SC-coding').value.code.startsWith('CH') = false) or (country.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-SC-coding').value.code.startsWith('CH').exists() and (state.empty() or state.memberOf('http://fhir.ch/ig/ch-core/ValueSet/ech-7-cantonabbreviation')))
ch-core-hm-1errorPatient.nameif officalName with eCH-011 Extension is specified, it can only be put on a name where use attribute is official
: family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='officialName').empty() or (family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='officialName').exists() and use='official')
ch-core-hm-2errorPatient.nameif orginalName with eCH-011 Extension is specified, it can only be put on a name where use attribute is maiden
: family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='originalName').empty() or ((family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name' and value='originalName').exists() and use='maiden'))
ch-core-hm-3errorPatient.namech-ext-ech-11-name can only be put on a family name
: descendants().extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name').count()=family.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-name').count()
ch-core-hm-4errorPatient.namech-ext-ech-11-firstname can only be put on a given name
: descendants().extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-firstname').count()=given.extension.where(url='http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-ech-11-firstname').count()
ch-pat-1warningPatientIf one ore more human names are provided, at least one human name should have a family and a given name.
: name.where(family.exists() and given.exists()).count()>0 or name.empty()
ch-pat-1-eprerrorPatientAt least one human name shall have a family and a given name.
: name.where(family.exists() and given.exists()).count()>0
ch-pat-2warningPatientgender 'unknown' is currently not used in Switzerland in eCH and the EPR
: gender.empty() or gender!='unknown'
ch-pat-3errorPatient.extension:citizenshipISO Country Alpha-2 or ISO Country Alpha-3 code
: ((extension.where(url='code').value.coding.code.length()=2) and extension.where(url='code').value.coding.code.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-2')) or ((extension.where(url='code').value.coding.code.length() = 3) and extension.where(url='code').value.coding.code.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-3'))
cpt-2errorPatient.telecom:email, Patient.telecom:phone, Patient.telecom:internetA system is required if a value is provided.
: value.empty() or system.exists()
dom-2errorPatientIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPatientIf 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-4errorPatientIf 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-5errorPatientIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePatientA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
epr-spid-lengthwarningPatient.identifier:EPR-SPID.valueEPR-SPID must be exactly 18 characters long
: matches('^[0-9]{18}$')
epr-spid-length-errorerrorPatient.identifier:EPR-SPID.valueEPR-SPID must be exactly 18 characters long
: matches('^[0-9]{18}$')
epr-spid-modulus-10warningPatient.identifier:EPR-SPID.valueEPR-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-modulus-10-errorerrorPatient.identifier:EPR-SPID.valueEPR-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-startswith76133761warningPatient.identifier:EPR-SPID.valueEPR-SPID must start with 76133761
: startsWith('76133761')
epr-spid-startswith76133761-errorerrorPatient.identifier:EPR-SPID.valueEPR-SPID must start with 76133761
: startsWith('76133761')
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
pat-1errorPatient.contact, Patient.contact:contact, Patient.contact:nameOfParentSHALL at least contain a contact's details or a reference to an organization
: name.exists() or telecom.exists() or address.exists() or organization.exists()
veka-lengthwarningPatient.identifier:insuranceCardNumber.valueInsurance card number must be exactly 20 characters long
: matches('^[0-9]{20}$')
veka-length-errorerrorPatient.identifier:insuranceCardNumber.valueInsurance card number must be exactly 20 characters long
: matches('^[0-9]{20}$')
veka-startswith807560warningPatient.identifier:insuranceCardNumber.valueInsurance card number must start with 807560
: startsWith('807560')
veka-startswith807560-errorerrorPatient.identifier:insuranceCardNumber.valueInsurance card number must start with 807560
: startsWith('807560')

This structure is derived from CHCorePatientEPR

Summary

Prohibited: 2 elements

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel, Schematron