ERA FHIR specification
1.0.0 - draft

ERA FHIR specification - Local Development build (v1.0.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: AppointmentPatient

Official URL: https://pta.kanta.fi/fhir/StructureDefinition/AppointmentPatient Version: 1.0.0
Draft as of 2026-10-28 Computable Name: AppointmentPatient

Patient profile used in appointment booking.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Patient C 0..* KantaPatient Customer details related to the appointment
Constraints: PTA-PAT-1, PTA-PAT-2, PTA-PAT-3, PTA-PAT-4, PTA-PAT-5, PTA-PAT-6
Patient.id This element is included in summaries. 1..1 id Logical id of this artifact
Patient.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Patient.meta.profile This element is included in summaries. 1..1 canonical(StructureDefinition) Profiles this resource claims to conform to

Fixed Value: https://pta.kanta.fi/fhir/StructureDefinition/AppointmentPatient (no extensions allowed)
Patient.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Patient.Slices for extension Content/Rules for all slices
Patient.Slices for extension.extension:officialCommunicationLanguage 0..1 Coding Official communication language
URL: https://pta.kanta.fi/fhir/StructureDefinition/OfficialCommunicationLanguage
Binding: CommonLanguages (preferred)
Patient.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Patient.Slices for identifier This element is included in summaries. 1..* Identifier Customer unique identifier
Slice: Unordered, Closed by value:use

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Patient.Slices for identifier.identifier:PIC This element is included in summaries. 0..1 Identifier Finnish personal identity code
Patient.Slices for identifier.identifier:PIC.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Fixed Value: official (no extensions allowed)
Patient.Slices for identifier.identifier:PIC.system This element is included in summaries. 1..1 uri Namespace of the Finnish personal identity code
Fixed Value: urn:oid:1.2.246.21 (no extensions allowed)
Patient.Slices for identifier.identifier:PIC.value This element is included in summaries. 1..1 string Finnish personal identity code
Example General: 123456
Patient.Slices for identifier.identifier:temp This element is included in summaries. 0..1 Identifier Temporary identifier
Patient.Slices for identifier.identifier:temp.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Fixed Value: temp (no extensions allowed)
Patient.Slices for identifier.identifier:temp.system This element is included in summaries. 1..1 uri Namespace used
Example General: http://www.acme.com/identifiers/patient
Patient.Slices for identifier.identifier:temp.value This element is included in summaries. 1..1 string Temporary identifier
Example General: 123456
Patient.Slices for identifier.identifier:old This element is included in summaries. 0..* Identifier Customer's previous unique identifier
Patient.Slices for identifier.identifier:old.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Fixed Value: old (no extensions allowed)
Patient.Slices for identifier.identifier:old.system This element is included in summaries. 1..1 uri Namespace
Example General: http://www.acme.com/identifiers/patient
Patient.Slices for identifier.identifier:old.value This element is included in summaries. 1..1 string Previous unique identifier
Example General: 123456
Patient.name This element is included in summaries. 1..1 HumanName Customer name information
Patient.name.use This element is a modifier element. This element is included in summaries. 0..1 code usual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required): The use of a human name.
Fixed Value: official (no extensions allowed)
Patient.name.family This element is included in summaries. 1..1 string Customer family name
Patient.name.given This element is included in summaries. 1..4 string Customer given names
This repeating element order: Given Names appear in the correct order for presenting the name
Patient.birthDate This element is included in summaries. 0..1 date Customer date of birth
Patient.contact C 0..* BackboneElement Contact details of the contact person
Constraints: pat-1
Patient.contact.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Patient.contact.relationship 0..1 CodeableConcept Contact person type
Binding: fipta-vs-contactrelationship (required)
Patient.contact.relationship.coding This element is included in summaries. 1..1 Coding Code defined by a terminology system
Patient.contact.relationship.coding.system This element is included in summaries. 1..1 uri Identity of the terminology system
Patient.contact.relationship.coding.code This element is included in summaries. 1..1 code Code value of the contact person type
Patient.contact.relationship.coding.display This element is included in summaries. 1..1 string Name of the contact person type
Patient.contact.name 1..1 HumanName Name information of the contact person
Patient.contact.name.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required): The use of a human name.
Fixed Value: official (no extensions allowed)
Patient.contact.name.family This element is included in summaries. 1..1 string Family name of the contact person
Patient.contact.name.given This element is included in summaries. 1..4 string Given names of the contact person
This repeating element order: Given Names appear in the correct order for presenting the name
Patient.communication 0..1 BackboneElement Customer mother tongue
Patient.communication.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Patient.communication.language 1..1 CodeableConcept Customer mother tongue
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Patient.communication.language.coding This element is included in summaries. 1..1 Coding Code defined by a terminology system
Patient.communication.language.coding.system This element is included in summaries. 1..1 uri Identity of the terminology system
Patient.communication.language.coding.code This element is included in summaries. 1..1 code Symbol in syntax defined by the system
Patient.communication.language.coding.display This element is included in summaries. 1..1 string Representation defined by the system
Patient.communication.preferred 1..1 boolean Language preference indicator
Fixed Value: true (no extensions allowed)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Patient.identifier:PIC.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Patient.identifier:temp.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Patient.identifier:old.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Patient.name.use Base required NameUse 📍4.0.1 FHIR Std.
Patient.contact.relationship Base required fipta-vs-contactrelationship 📦1.0.0 This IG
Patient.contact.name.​use Base required NameUse 📍4.0.1 FHIR Std.
Patient.communication.​language Base preferred Common Languages 📍4.0.1 FHIR Std.
Patient.link.type Base required LinkType 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
PTA-PAT-1 error Patient Date of birth is mandatory when a temporary identifier is used as the patient's identifier. Patient.identifier.where(use='temp').exists() implies Patient.birthDate.exists()
PTA-PAT-2 error Patient Either an official identifier or a temporary identifier is provided as the patient's identifier. Patient.identifier.where(use='official').exists() implies Patient.identifier.where(use='temp').empty()
PTA-PAT-3 error Patient Either an official identifier or a temporary identifier is provided as the patient's identifier. Patient.identifier.where(use='official').empty() implies Patient.identifier.where(use='temp').exists()
PTA-PAT-4 error Patient Date of birth must be given in the format yyyy-mm-dd. Patient.birthDate.exists() implies Patient.birthDate.toString().length()=10
PTA-PAT-5 error Patient The customer's temporary identifier (Patient.identifier) exceeds the allowed maximum length. Patient.identifier.where(use='temp').exists() implies Patient.identifier.where(use='temp').system.length()+Patient.identifier.where(use='temp').value.length() < 125
PTA-PAT-6 error Patient The OID value of official identifier is used as the system value of the customer's temporary identifier. Patient.identifier.where(use = 'temp' and system = 'urn:oid:1.2.246.21').empty()
dom-2 error Patient If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Patient If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Patient If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Patient If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Patient A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
pat-1 error Patient.contact SHALL at least contain a contact's details or a reference to an organization name.exists() or telecom.exists() or address.exists() or organization.exists()

This structure is derived from KantaPatient

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Patient C 0..* KantaPatient Customer details related to the appointment
Constraints: PTA-PAT-1, PTA-PAT-2, PTA-PAT-3, PTA-PAT-4, PTA-PAT-5, PTA-PAT-6
Patient.id 1..1 id Logical id of this artifact
Patient.meta 0..1 Meta Metadata about the resource
Patient.meta.profile 1..1 canonical(StructureDefinition) Profiles this resource claims to conform to
Fixed Value: https://pta.kanta.fi/fhir/StructureDefinition/AppointmentPatient (no extensions allowed)
Patient.Slices for extension Content/Rules for all slices
Patient.Slices for extension.extension:officialCommunicationLanguage 0..1 Coding Official communication language
URL: https://pta.kanta.fi/fhir/StructureDefinition/OfficialCommunicationLanguage
Binding: CommonLanguages (preferred)
Patient.Slices for identifier Content/Rules for all slices
Patient.Slices for identifier.identifier:PIC 0..1 Identifier Finnish personal identity code
Patient.Slices for identifier.identifier:PIC.id 0..0 Unique id for inter-element referencing
Patient.Slices for identifier.identifier:PIC.type 0..0 Description of identifier
Patient.Slices for identifier.identifier:PIC.system 1..1 uri Namespace of the Finnish personal identity code
Patient.Slices for identifier.identifier:PIC.value 1..1 string Finnish personal identity code
Patient.Slices for identifier.identifier:PIC.period 0..0 Time period when id is/was valid for use
Patient.Slices for identifier.identifier:PIC.assigner 0..0 Organization that issued id (may be just text)
Patient.Slices for identifier.identifier:temp 0..1 Identifier Temporary identifier
Patient.Slices for identifier.identifier:temp.id 0..0 Unique id for inter-element referencing
Patient.Slices for identifier.identifier:temp.type 0..0 Description of identifier
Patient.Slices for identifier.identifier:temp.system 1..1 uri Namespace used
Patient.Slices for identifier.identifier:temp.value 1..1 string Temporary identifier
Patient.Slices for identifier.identifier:temp.period 0..0 Time period when id is/was valid for use
Patient.Slices for identifier.identifier:temp.assigner 0..0 Organization that issued id (may be just text)
Patient.Slices for identifier.identifier:old 0..* Identifier Customer's previous unique identifier
Patient.Slices for identifier.identifier:old.id 0..0 Unique id for inter-element referencing
Patient.Slices for identifier.identifier:old.use 1..1 code usual | official | temp | secondary | old (If known)
Patient.Slices for identifier.identifier:old.type 0..0 Description of identifier
Patient.Slices for identifier.identifier:old.system 1..1 uri Namespace
Patient.Slices for identifier.identifier:old.value 1..1 string Previous unique identifier
Patient.Slices for identifier.identifier:old.period 0..0 Time period when id is/was valid for use
Patient.Slices for identifier.identifier:old.assigner 0..0 Organization that issued id (may be just text)
Patient.active 0..0 Whether this patient's record is in active use
Patient.name 1..1 HumanName Customer name information
Patient.name.id 0..0 Unique id for inter-element referencing
Patient.name.use 0..1 code usual | official | temp | nickname | anonymous | old | maiden
Fixed Value: official (no extensions allowed)
Patient.name.text 0..0 Text representation of the full name
Patient.name.family 1..1 string Customer family name
Patient.name.given 1..4 string Customer given names
Patient.name.prefix 0..0 Parts that come before the name
Patient.name.suffix 0..0 Parts that come after the name
Patient.name.period 0..0 Time period when name was/is in use
Patient.telecom 0..0 A contact detail for the individual
Patient.gender 0..0 male | female | other | unknown
Patient.birthDate 0..1 date Customer date of birth
Patient.deceased[x] 0..0 Indicates if the individual is deceased or not
Patient.address 0..0 An address for the individual
Patient.maritalStatus 0..0 Marital (civil) status of a patient
Patient.multipleBirth[x] 0..0 Whether patient is part of a multiple birth
Patient.photo 0..0 Image of the patient
Patient.contact 0..* BackboneElement Contact details of the contact person
Patient.contact.id 0..0 Unique id for inter-element referencing
Patient.contact.relationship 0..1 CodeableConcept Contact person type
Binding: fipta-vs-contactrelationship (required)
Patient.contact.relationship.id 0..0 Unique id for inter-element referencing
Patient.contact.relationship.coding 1..1 Coding Code defined by a terminology system
Patient.contact.relationship.coding.id 0..0 Unique id for inter-element referencing
Patient.contact.relationship.coding.system 1..1 uri Identity of the terminology system
Patient.contact.relationship.coding.version 0..0 Version of the system - if relevant
Patient.contact.relationship.coding.code 1..1 code Code value of the contact person type
Patient.contact.relationship.coding.display 1..1 string Name of the contact person type
Patient.contact.relationship.coding.userSelected 0..0 If this coding was chosen directly by the user
Patient.contact.relationship.text 0..0 Plain text representation of the concept
Patient.contact.name 1..1 HumanName Name information of the contact person
Patient.contact.name.id 0..0 Unique id for inter-element referencing
Patient.contact.name.use 1..1 code usual | official | temp | nickname | anonymous | old | maiden
Fixed Value: official (no extensions allowed)
Patient.contact.name.text 0..0 Text representation of the full name
Patient.contact.name.family 1..1 string Family name of the contact person
Patient.contact.name.given 1..4 string Given names of the contact person
Patient.contact.name.prefix 0..0 Parts that come before the name
Patient.contact.name.suffix 0..0 Parts that come after the name
Patient.contact.name.period 0..0 Time period when name was/is in use
Patient.contact.telecom 0..0 A contact detail for the person
Patient.contact.address 0..0 Address for the contact person
Patient.contact.gender 0..0 male | female | other | unknown
Patient.contact.organization 0..0 Organization that is associated with the contact
Patient.contact.period 0..0 The period during which this contact person or organization is valid to be contacted relating to this patient
Patient.communication 0..1 BackboneElement Customer mother tongue
Patient.communication.id 0..0 Unique id for inter-element referencing
Patient.communication.language 1..1 CodeableConcept Customer mother tongue
Patient.communication.language.id 0..0 Unique id for inter-element referencing
Patient.communication.language.coding 1..1 Coding Code defined by a terminology system
Patient.communication.language.coding.id 0..0 Unique id for inter-element referencing
Patient.communication.language.coding.system 1..1 uri Identity of the terminology system
Patient.communication.language.coding.version 0..0 Version of the system - if relevant
Patient.communication.language.coding.code 1..1 code Symbol in syntax defined by the system
Patient.communication.language.coding.display 1..1 string Representation defined by the system
Patient.communication.language.coding.userSelected 0..0 If this coding was chosen directly by the user
Patient.communication.language.text 0..0 Plain text representation of the concept
Patient.communication.preferred 1..1 boolean Language preference indicator
Fixed Value: true (no extensions allowed)
Patient.generalPractitioner 0..0 Patient's nominated primary care provider
Patient.managingOrganization 0..0 Organization that is the custodian of the patient record
Patient.link 0..0 Link to another patient resource that concerns the same actual person

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Patient.contact.relationship Base required fipta-vs-contactrelationship 📦1.0.0 This IG

Constraints

Id Grade Path(s) Description Expression
PTA-PAT-1 error Patient Date of birth is mandatory when a temporary identifier is used as the patient's identifier. Patient.identifier.where(use='temp').exists() implies Patient.birthDate.exists()
PTA-PAT-2 error Patient Either an official identifier or a temporary identifier is provided as the patient's identifier. Patient.identifier.where(use='official').exists() implies Patient.identifier.where(use='temp').empty()
PTA-PAT-3 error Patient Either an official identifier or a temporary identifier is provided as the patient's identifier. Patient.identifier.where(use='official').empty() implies Patient.identifier.where(use='temp').exists()
PTA-PAT-4 error Patient Date of birth must be given in the format yyyy-mm-dd. Patient.birthDate.exists() implies Patient.birthDate.toString().length()=10
PTA-PAT-5 error Patient The customer's temporary identifier (Patient.identifier) exceeds the allowed maximum length. Patient.identifier.where(use='temp').exists() implies Patient.identifier.where(use='temp').system.length()+Patient.identifier.where(use='temp').value.length() < 125
PTA-PAT-6 error Patient The OID value of official identifier is used as the system value of the customer's temporary identifier. Patient.identifier.where(use = 'temp' and system = 'urn:oid:1.2.246.21').empty()
NameFlagsCard.TypeDescription & Constraints    Filter: doco
Patient C 0..* KantaPatient Customer details related to the appointment
Constraints: PTA-PAT-1, PTA-PAT-2, PTA-PAT-3, PTA-PAT-4, PTA-PAT-5, PTA-PAT-6
Patient.id This element is included in summaries. 1..1 id Logical id of this artifact
Patient.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Patient.meta.id 0..1 string Unique id for inter-element referencing
Patient.meta.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.meta.versionId This element is included in summaries. 0..1 id Version specific identifier
Patient.meta.lastUpdated This element is included in summaries. 0..1 instant When the resource version last changed
Patient.meta.source This element is included in summaries. 0..1 uri Identifies where the resource comes from
Patient.meta.profile This element is included in summaries. 1..1 canonical(StructureDefinition) Profiles this resource claims to conform to

Fixed Value: https://pta.kanta.fi/fhir/StructureDefinition/AppointmentPatient (no extensions allowed)
Patient.meta.security This element is included in summaries. 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
Patient.meta.tag This element is included in summaries. 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
Patient.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Patient.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Patient.text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
Patient.contained 0..* Resource Contained, inline Resources
Patient.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Patient.Slices for extension.extension:officialCommunicationLanguage 0..1 Coding Official communication language
URL: https://pta.kanta.fi/fhir/StructureDefinition/OfficialCommunicationLanguage
Binding: CommonLanguages (preferred)
Patient.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Patient.Slices for identifier This element is included in summaries. 1..* Identifier Customer unique identifier
Slice: Unordered, Closed by value:use

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Patient.Slices for identifier.identifier:PIC This element is included in summaries. 0..1 Identifier Finnish personal identity code
Patient.Slices for identifier.identifier:PIC.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.Slices for identifier.identifier:PIC.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Fixed Value: official (no extensions allowed)
Patient.Slices for identifier.identifier:PIC.system This element is included in summaries. 1..1 uri Namespace of the Finnish personal identity code
Fixed Value: urn:oid:1.2.246.21 (no extensions allowed)
Patient.Slices for identifier.identifier:PIC.value This element is included in summaries. 1..1 string Finnish personal identity code
Example General: 123456
Patient.Slices for identifier.identifier:temp This element is included in summaries. 0..1 Identifier Temporary identifier
Patient.Slices for identifier.identifier:temp.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.Slices for identifier.identifier:temp.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Fixed Value: temp (no extensions allowed)
Patient.Slices for identifier.identifier:temp.system This element is included in summaries. 1..1 uri Namespace used
Example General: http://www.acme.com/identifiers/patient
Patient.Slices for identifier.identifier:temp.value This element is included in summaries. 1..1 string Temporary identifier
Example General: 123456
Patient.Slices for identifier.identifier:old This element is included in summaries. 0..* Identifier Customer's previous unique identifier
Patient.Slices for identifier.identifier:old.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.Slices for identifier.identifier:old.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Fixed Value: old (no extensions allowed)
Patient.Slices for identifier.identifier:old.system This element is included in summaries. 1..1 uri Namespace
Example General: http://www.acme.com/identifiers/patient
Patient.Slices for identifier.identifier:old.value This element is included in summaries. 1..1 string Previous unique identifier
Example General: 123456
Patient.name This element is included in summaries. 1..1 HumanName Customer name information
Patient.name.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.name.use This element is a modifier element. This element is included in summaries. 0..1 code usual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required): The use of a human name.
Fixed Value: official (no extensions allowed)
Patient.name.family This element is included in summaries. 1..1 string Customer family name
Patient.name.given This element is included in summaries. 1..4 string Customer given names
This repeating element order: Given Names appear in the correct order for presenting the name
Patient.birthDate This element is included in summaries. 0..1 date Customer date of birth
Patient.contact C 0..* BackboneElement Contact details of the contact person
Constraints: pat-1
Patient.contact.extension 0..* Extension Additional content defined by implementations
Patient.contact.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Patient.contact.relationship 0..1 CodeableConcept Contact person type
Binding: fipta-vs-contactrelationship (required)
Patient.contact.relationship.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.contact.relationship.coding This element is included in summaries. 1..1 Coding Code defined by a terminology system
Patient.contact.relationship.coding.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.contact.relationship.coding.system This element is included in summaries. 1..1 uri Identity of the terminology system
Patient.contact.relationship.coding.code This element is included in summaries. 1..1 code Code value of the contact person type
Patient.contact.relationship.coding.display This element is included in summaries. 1..1 string Name of the contact person type
Patient.contact.name 1..1 HumanName Name information of the contact person
Patient.contact.name.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.contact.name.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required): The use of a human name.
Fixed Value: official (no extensions allowed)
Patient.contact.name.family This element is included in summaries. 1..1 string Family name of the contact person
Patient.contact.name.given This element is included in summaries. 1..4 string Given names of the contact person
This repeating element order: Given Names appear in the correct order for presenting the name
Patient.communication 0..1 BackboneElement Customer mother tongue
Patient.communication.extension 0..* Extension Additional content defined by implementations
Patient.communication.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Patient.communication.language 1..1 CodeableConcept Customer mother tongue
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Patient.communication.language.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.communication.language.coding This element is included in summaries. 1..1 Coding Code defined by a terminology system
Patient.communication.language.coding.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.communication.language.coding.system This element is included in summaries. 1..1 uri Identity of the terminology system
Patient.communication.language.coding.code This element is included in summaries. 1..1 code Symbol in syntax defined by the system
Patient.communication.language.coding.display This element is included in summaries. 1..1 string Representation defined by the system
Patient.communication.preferred 1..1 boolean Language preference indicator
Fixed Value: true (no extensions allowed)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Patient.meta.security Base extensible SecurityLabels 📍4.0.1 FHIR Std.
Patient.meta.tag Base example Common Tags 📍4.0.1 FHIR Std.
Patient.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Patient.identifier:PIC.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Patient.identifier:temp.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Patient.identifier:old.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Patient.name.use Base required NameUse 📍4.0.1 FHIR Std.
Patient.contact.relationship Base required fipta-vs-contactrelationship 📦1.0.0 This IG
Patient.contact.name.​use Base required NameUse 📍4.0.1 FHIR Std.
Patient.communication.​language Base preferred Common Languages 📍4.0.1 FHIR Std.
Patient.link.type Base required LinkType 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
PTA-PAT-1 error Patient Date of birth is mandatory when a temporary identifier is used as the patient's identifier. Patient.identifier.where(use='temp').exists() implies Patient.birthDate.exists()
PTA-PAT-2 error Patient Either an official identifier or a temporary identifier is provided as the patient's identifier. Patient.identifier.where(use='official').exists() implies Patient.identifier.where(use='temp').empty()
PTA-PAT-3 error Patient Either an official identifier or a temporary identifier is provided as the patient's identifier. Patient.identifier.where(use='official').empty() implies Patient.identifier.where(use='temp').exists()
PTA-PAT-4 error Patient Date of birth must be given in the format yyyy-mm-dd. Patient.birthDate.exists() implies Patient.birthDate.toString().length()=10
PTA-PAT-5 error Patient The customer's temporary identifier (Patient.identifier) exceeds the allowed maximum length. Patient.identifier.where(use='temp').exists() implies Patient.identifier.where(use='temp').system.length()+Patient.identifier.where(use='temp').value.length() < 125
PTA-PAT-6 error Patient The OID value of official identifier is used as the system value of the customer's temporary identifier. Patient.identifier.where(use = 'temp' and system = 'urn:oid:1.2.246.21').empty()
dom-2 error Patient If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Patient If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Patient If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Patient If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Patient A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
pat-1 error Patient.contact SHALL at least contain a contact's details or a reference to an organization name.exists() or telecom.exists() or address.exists() or organization.exists()

This structure is derived from KantaPatient

Summary

Mandatory: 5 elements(14 nested mandatory elements)
Fixed: 4 elements
Prohibited: 50 elements

Extensions

This structure refers to these extensions:

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Patient C 0..* KantaPatient Customer details related to the appointment
Constraints: PTA-PAT-1, PTA-PAT-2, PTA-PAT-3, PTA-PAT-4, PTA-PAT-5, PTA-PAT-6
Patient.id This element is included in summaries. 1..1 id Logical id of this artifact
Patient.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Patient.meta.profile This element is included in summaries. 1..1 canonical(StructureDefinition) Profiles this resource claims to conform to

Fixed Value: https://pta.kanta.fi/fhir/StructureDefinition/AppointmentPatient (no extensions allowed)
Patient.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Patient.Slices for extension Content/Rules for all slices
Patient.Slices for extension.extension:officialCommunicationLanguage 0..1 Coding Official communication language
URL: https://pta.kanta.fi/fhir/StructureDefinition/OfficialCommunicationLanguage
Binding: CommonLanguages (preferred)
Patient.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Patient.Slices for identifier This element is included in summaries. 1..* Identifier Customer unique identifier
Slice: Unordered, Closed by value:use

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Patient.Slices for identifier.identifier:PIC This element is included in summaries. 0..1 Identifier Finnish personal identity code
Patient.Slices for identifier.identifier:PIC.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Fixed Value: official (no extensions allowed)
Patient.Slices for identifier.identifier:PIC.system This element is included in summaries. 1..1 uri Namespace of the Finnish personal identity code
Fixed Value: urn:oid:1.2.246.21 (no extensions allowed)
Patient.Slices for identifier.identifier:PIC.value This element is included in summaries. 1..1 string Finnish personal identity code
Example General: 123456
Patient.Slices for identifier.identifier:temp This element is included in summaries. 0..1 Identifier Temporary identifier
Patient.Slices for identifier.identifier:temp.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Fixed Value: temp (no extensions allowed)
Patient.Slices for identifier.identifier:temp.system This element is included in summaries. 1..1 uri Namespace used
Example General: http://www.acme.com/identifiers/patient
Patient.Slices for identifier.identifier:temp.value This element is included in summaries. 1..1 string Temporary identifier
Example General: 123456
Patient.Slices for identifier.identifier:old This element is included in summaries. 0..* Identifier Customer's previous unique identifier
Patient.Slices for identifier.identifier:old.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Fixed Value: old (no extensions allowed)
Patient.Slices for identifier.identifier:old.system This element is included in summaries. 1..1 uri Namespace
Example General: http://www.acme.com/identifiers/patient
Patient.Slices for identifier.identifier:old.value This element is included in summaries. 1..1 string Previous unique identifier
Example General: 123456
Patient.name This element is included in summaries. 1..1 HumanName Customer name information
Patient.name.use This element is a modifier element. This element is included in summaries. 0..1 code usual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required): The use of a human name.
Fixed Value: official (no extensions allowed)
Patient.name.family This element is included in summaries. 1..1 string Customer family name
Patient.name.given This element is included in summaries. 1..4 string Customer given names
This repeating element order: Given Names appear in the correct order for presenting the name
Patient.birthDate This element is included in summaries. 0..1 date Customer date of birth
Patient.contact C 0..* BackboneElement Contact details of the contact person
Constraints: pat-1
Patient.contact.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Patient.contact.relationship 0..1 CodeableConcept Contact person type
Binding: fipta-vs-contactrelationship (required)
Patient.contact.relationship.coding This element is included in summaries. 1..1 Coding Code defined by a terminology system
Patient.contact.relationship.coding.system This element is included in summaries. 1..1 uri Identity of the terminology system
Patient.contact.relationship.coding.code This element is included in summaries. 1..1 code Code value of the contact person type
Patient.contact.relationship.coding.display This element is included in summaries. 1..1 string Name of the contact person type
Patient.contact.name 1..1 HumanName Name information of the contact person
Patient.contact.name.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required): The use of a human name.
Fixed Value: official (no extensions allowed)
Patient.contact.name.family This element is included in summaries. 1..1 string Family name of the contact person
Patient.contact.name.given This element is included in summaries. 1..4 string Given names of the contact person
This repeating element order: Given Names appear in the correct order for presenting the name
Patient.communication 0..1 BackboneElement Customer mother tongue
Patient.communication.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Patient.communication.language 1..1 CodeableConcept Customer mother tongue
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Patient.communication.language.coding This element is included in summaries. 1..1 Coding Code defined by a terminology system
Patient.communication.language.coding.system This element is included in summaries. 1..1 uri Identity of the terminology system
Patient.communication.language.coding.code This element is included in summaries. 1..1 code Symbol in syntax defined by the system
Patient.communication.language.coding.display This element is included in summaries. 1..1 string Representation defined by the system
Patient.communication.preferred 1..1 boolean Language preference indicator
Fixed Value: true (no extensions allowed)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Patient.identifier:PIC.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Patient.identifier:temp.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Patient.identifier:old.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Patient.name.use Base required NameUse 📍4.0.1 FHIR Std.
Patient.contact.relationship Base required fipta-vs-contactrelationship 📦1.0.0 This IG
Patient.contact.name.​use Base required NameUse 📍4.0.1 FHIR Std.
Patient.communication.​language Base preferred Common Languages 📍4.0.1 FHIR Std.
Patient.link.type Base required LinkType 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
PTA-PAT-1 error Patient Date of birth is mandatory when a temporary identifier is used as the patient's identifier. Patient.identifier.where(use='temp').exists() implies Patient.birthDate.exists()
PTA-PAT-2 error Patient Either an official identifier or a temporary identifier is provided as the patient's identifier. Patient.identifier.where(use='official').exists() implies Patient.identifier.where(use='temp').empty()
PTA-PAT-3 error Patient Either an official identifier or a temporary identifier is provided as the patient's identifier. Patient.identifier.where(use='official').empty() implies Patient.identifier.where(use='temp').exists()
PTA-PAT-4 error Patient Date of birth must be given in the format yyyy-mm-dd. Patient.birthDate.exists() implies Patient.birthDate.toString().length()=10
PTA-PAT-5 error Patient The customer's temporary identifier (Patient.identifier) exceeds the allowed maximum length. Patient.identifier.where(use='temp').exists() implies Patient.identifier.where(use='temp').system.length()+Patient.identifier.where(use='temp').value.length() < 125
PTA-PAT-6 error Patient The OID value of official identifier is used as the system value of the customer's temporary identifier. Patient.identifier.where(use = 'temp' and system = 'urn:oid:1.2.246.21').empty()
dom-2 error Patient If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Patient If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Patient If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Patient If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Patient A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
pat-1 error Patient.contact SHALL at least contain a contact's details or a reference to an organization name.exists() or telecom.exists() or address.exists() or organization.exists()

Differential View

This structure is derived from KantaPatient

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Patient C 0..* KantaPatient Customer details related to the appointment
Constraints: PTA-PAT-1, PTA-PAT-2, PTA-PAT-3, PTA-PAT-4, PTA-PAT-5, PTA-PAT-6
Patient.id 1..1 id Logical id of this artifact
Patient.meta 0..1 Meta Metadata about the resource
Patient.meta.profile 1..1 canonical(StructureDefinition) Profiles this resource claims to conform to
Fixed Value: https://pta.kanta.fi/fhir/StructureDefinition/AppointmentPatient (no extensions allowed)
Patient.Slices for extension Content/Rules for all slices
Patient.Slices for extension.extension:officialCommunicationLanguage 0..1 Coding Official communication language
URL: https://pta.kanta.fi/fhir/StructureDefinition/OfficialCommunicationLanguage
Binding: CommonLanguages (preferred)
Patient.identifier 1..* Identifier Customer unique identifier
Patient.Slices for identifier Content/Rules for all slices
Patient.Slices for identifier.identifier:PIC 0..1 Identifier Finnish personal identity code
Patient.Slices for identifier.identifier:PIC.id 0..0 Unique id for inter-element referencing
Patient.Slices for identifier.identifier:PIC.type 0..0 Description of identifier
Patient.Slices for identifier.identifier:PIC.system 1..1 uri Namespace of the Finnish personal identity code
Patient.Slices for identifier.identifier:PIC.value 1..1 string Finnish personal identity code
Patient.Slices for identifier.identifier:PIC.period 0..0 Time period when id is/was valid for use
Patient.Slices for identifier.identifier:PIC.assigner 0..0 Organization that issued id (may be just text)
Patient.Slices for identifier.identifier:temp 0..1 Identifier Temporary identifier
Patient.Slices for identifier.identifier:temp.id 0..0 Unique id for inter-element referencing
Patient.Slices for identifier.identifier:temp.type 0..0 Description of identifier
Patient.Slices for identifier.identifier:temp.system 1..1 uri Namespace used
Patient.Slices for identifier.identifier:temp.value 1..1 string Temporary identifier
Patient.Slices for identifier.identifier:temp.period 0..0 Time period when id is/was valid for use
Patient.Slices for identifier.identifier:temp.assigner 0..0 Organization that issued id (may be just text)
Patient.Slices for identifier.identifier:old 0..* Identifier Customer's previous unique identifier
Patient.Slices for identifier.identifier:old.id 0..0 Unique id for inter-element referencing
Patient.Slices for identifier.identifier:old.use 1..1 code usual | official | temp | secondary | old (If known)
Patient.Slices for identifier.identifier:old.type 0..0 Description of identifier
Patient.Slices for identifier.identifier:old.system 1..1 uri Namespace
Patient.Slices for identifier.identifier:old.value 1..1 string Previous unique identifier
Patient.Slices for identifier.identifier:old.period 0..0 Time period when id is/was valid for use
Patient.Slices for identifier.identifier:old.assigner 0..0 Organization that issued id (may be just text)
Patient.active 0..0 Whether this patient's record is in active use
Patient.name 1..1 HumanName Customer name information
Patient.name.id 0..0 Unique id for inter-element referencing
Patient.name.use 0..1 code usual | official | temp | nickname | anonymous | old | maiden
Fixed Value: official (no extensions allowed)
Patient.name.text 0..0 Text representation of the full name
Patient.name.family 1..1 string Customer family name
Patient.name.given 1..4 string Customer given names
Patient.name.prefix 0..0 Parts that come before the name
Patient.name.suffix 0..0 Parts that come after the name
Patient.name.period 0..0 Time period when name was/is in use
Patient.telecom 0..0 A contact detail for the individual
Patient.gender 0..0 male | female | other | unknown
Patient.birthDate 0..1 date Customer date of birth
Patient.deceased[x] 0..0 Indicates if the individual is deceased or not
Patient.address 0..0 An address for the individual
Patient.maritalStatus 0..0 Marital (civil) status of a patient
Patient.multipleBirth[x] 0..0 Whether patient is part of a multiple birth
Patient.photo 0..0 Image of the patient
Patient.contact 0..* BackboneElement Contact details of the contact person
Patient.contact.id 0..0 Unique id for inter-element referencing
Patient.contact.relationship 0..1 CodeableConcept Contact person type
Binding: fipta-vs-contactrelationship (required)
Patient.contact.relationship.id 0..0 Unique id for inter-element referencing
Patient.contact.relationship.coding 1..1 Coding Code defined by a terminology system
Patient.contact.relationship.coding.id 0..0 Unique id for inter-element referencing
Patient.contact.relationship.coding.system 1..1 uri Identity of the terminology system
Patient.contact.relationship.coding.version 0..0 Version of the system - if relevant
Patient.contact.relationship.coding.code 1..1 code Code value of the contact person type
Patient.contact.relationship.coding.display 1..1 string Name of the contact person type
Patient.contact.relationship.coding.userSelected 0..0 If this coding was chosen directly by the user
Patient.contact.relationship.text 0..0 Plain text representation of the concept
Patient.contact.name 1..1 HumanName Name information of the contact person
Patient.contact.name.id 0..0 Unique id for inter-element referencing
Patient.contact.name.use 1..1 code usual | official | temp | nickname | anonymous | old | maiden
Fixed Value: official (no extensions allowed)
Patient.contact.name.text 0..0 Text representation of the full name
Patient.contact.name.family 1..1 string Family name of the contact person
Patient.contact.name.given 1..4 string Given names of the contact person
Patient.contact.name.prefix 0..0 Parts that come before the name
Patient.contact.name.suffix 0..0 Parts that come after the name
Patient.contact.name.period 0..0 Time period when name was/is in use
Patient.contact.telecom 0..0 A contact detail for the person
Patient.contact.address 0..0 Address for the contact person
Patient.contact.gender 0..0 male | female | other | unknown
Patient.contact.organization 0..0 Organization that is associated with the contact
Patient.contact.period 0..0 The period during which this contact person or organization is valid to be contacted relating to this patient
Patient.communication 0..1 BackboneElement Customer mother tongue
Patient.communication.id 0..0 Unique id for inter-element referencing
Patient.communication.language 1..1 CodeableConcept Customer mother tongue
Patient.communication.language.id 0..0 Unique id for inter-element referencing
Patient.communication.language.coding 1..1 Coding Code defined by a terminology system
Patient.communication.language.coding.id 0..0 Unique id for inter-element referencing
Patient.communication.language.coding.system 1..1 uri Identity of the terminology system
Patient.communication.language.coding.version 0..0 Version of the system - if relevant
Patient.communication.language.coding.code 1..1 code Symbol in syntax defined by the system
Patient.communication.language.coding.display 1..1 string Representation defined by the system
Patient.communication.language.coding.userSelected 0..0 If this coding was chosen directly by the user
Patient.communication.language.text 0..0 Plain text representation of the concept
Patient.communication.preferred 1..1 boolean Language preference indicator
Fixed Value: true (no extensions allowed)
Patient.generalPractitioner 0..0 Patient's nominated primary care provider
Patient.managingOrganization 0..0 Organization that is the custodian of the patient record
Patient.link 0..0 Link to another patient resource that concerns the same actual person

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Patient.contact.relationship Base required fipta-vs-contactrelationship 📦1.0.0 This IG

Constraints

Id Grade Path(s) Description Expression
PTA-PAT-1 error Patient Date of birth is mandatory when a temporary identifier is used as the patient's identifier. Patient.identifier.where(use='temp').exists() implies Patient.birthDate.exists()
PTA-PAT-2 error Patient Either an official identifier or a temporary identifier is provided as the patient's identifier. Patient.identifier.where(use='official').exists() implies Patient.identifier.where(use='temp').empty()
PTA-PAT-3 error Patient Either an official identifier or a temporary identifier is provided as the patient's identifier. Patient.identifier.where(use='official').empty() implies Patient.identifier.where(use='temp').exists()
PTA-PAT-4 error Patient Date of birth must be given in the format yyyy-mm-dd. Patient.birthDate.exists() implies Patient.birthDate.toString().length()=10
PTA-PAT-5 error Patient The customer's temporary identifier (Patient.identifier) exceeds the allowed maximum length. Patient.identifier.where(use='temp').exists() implies Patient.identifier.where(use='temp').system.length()+Patient.identifier.where(use='temp').value.length() < 125
PTA-PAT-6 error Patient The OID value of official identifier is used as the system value of the customer's temporary identifier. Patient.identifier.where(use = 'temp' and system = 'urn:oid:1.2.246.21').empty()

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Patient C 0..* KantaPatient Customer details related to the appointment
Constraints: PTA-PAT-1, PTA-PAT-2, PTA-PAT-3, PTA-PAT-4, PTA-PAT-5, PTA-PAT-6
Patient.id This element is included in summaries. 1..1 id Logical id of this artifact
Patient.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Patient.meta.id 0..1 string Unique id for inter-element referencing
Patient.meta.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.meta.versionId This element is included in summaries. 0..1 id Version specific identifier
Patient.meta.lastUpdated This element is included in summaries. 0..1 instant When the resource version last changed
Patient.meta.source This element is included in summaries. 0..1 uri Identifies where the resource comes from
Patient.meta.profile This element is included in summaries. 1..1 canonical(StructureDefinition) Profiles this resource claims to conform to

Fixed Value: https://pta.kanta.fi/fhir/StructureDefinition/AppointmentPatient (no extensions allowed)
Patient.meta.security This element is included in summaries. 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
Patient.meta.tag This element is included in summaries. 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
Patient.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Patient.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Patient.text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
Patient.contained 0..* Resource Contained, inline Resources
Patient.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Patient.Slices for extension.extension:officialCommunicationLanguage 0..1 Coding Official communication language
URL: https://pta.kanta.fi/fhir/StructureDefinition/OfficialCommunicationLanguage
Binding: CommonLanguages (preferred)
Patient.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Patient.Slices for identifier This element is included in summaries. 1..* Identifier Customer unique identifier
Slice: Unordered, Closed by value:use

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Patient.Slices for identifier.identifier:PIC This element is included in summaries. 0..1 Identifier Finnish personal identity code
Patient.Slices for identifier.identifier:PIC.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.Slices for identifier.identifier:PIC.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Fixed Value: official (no extensions allowed)
Patient.Slices for identifier.identifier:PIC.system This element is included in summaries. 1..1 uri Namespace of the Finnish personal identity code
Fixed Value: urn:oid:1.2.246.21 (no extensions allowed)
Patient.Slices for identifier.identifier:PIC.value This element is included in summaries. 1..1 string Finnish personal identity code
Example General: 123456
Patient.Slices for identifier.identifier:temp This element is included in summaries. 0..1 Identifier Temporary identifier
Patient.Slices for identifier.identifier:temp.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.Slices for identifier.identifier:temp.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Fixed Value: temp (no extensions allowed)
Patient.Slices for identifier.identifier:temp.system This element is included in summaries. 1..1 uri Namespace used
Example General: http://www.acme.com/identifiers/patient
Patient.Slices for identifier.identifier:temp.value This element is included in summaries. 1..1 string Temporary identifier
Example General: 123456
Patient.Slices for identifier.identifier:old This element is included in summaries. 0..* Identifier Customer's previous unique identifier
Patient.Slices for identifier.identifier:old.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.Slices for identifier.identifier:old.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Fixed Value: old (no extensions allowed)
Patient.Slices for identifier.identifier:old.system This element is included in summaries. 1..1 uri Namespace
Example General: http://www.acme.com/identifiers/patient
Patient.Slices for identifier.identifier:old.value This element is included in summaries. 1..1 string Previous unique identifier
Example General: 123456
Patient.name This element is included in summaries. 1..1 HumanName Customer name information
Patient.name.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.name.use This element is a modifier element. This element is included in summaries. 0..1 code usual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required): The use of a human name.
Fixed Value: official (no extensions allowed)
Patient.name.family This element is included in summaries. 1..1 string Customer family name
Patient.name.given This element is included in summaries. 1..4 string Customer given names
This repeating element order: Given Names appear in the correct order for presenting the name
Patient.birthDate This element is included in summaries. 0..1 date Customer date of birth
Patient.contact C 0..* BackboneElement Contact details of the contact person
Constraints: pat-1
Patient.contact.extension 0..* Extension Additional content defined by implementations
Patient.contact.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Patient.contact.relationship 0..1 CodeableConcept Contact person type
Binding: fipta-vs-contactrelationship (required)
Patient.contact.relationship.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.contact.relationship.coding This element is included in summaries. 1..1 Coding Code defined by a terminology system
Patient.contact.relationship.coding.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.contact.relationship.coding.system This element is included in summaries. 1..1 uri Identity of the terminology system
Patient.contact.relationship.coding.code This element is included in summaries. 1..1 code Code value of the contact person type
Patient.contact.relationship.coding.display This element is included in summaries. 1..1 string Name of the contact person type
Patient.contact.name 1..1 HumanName Name information of the contact person
Patient.contact.name.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.contact.name.use This element is a modifier element. This element is included in summaries. 1..1 code usual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required): The use of a human name.
Fixed Value: official (no extensions allowed)
Patient.contact.name.family This element is included in summaries. 1..1 string Family name of the contact person
Patient.contact.name.given This element is included in summaries. 1..4 string Given names of the contact person
This repeating element order: Given Names appear in the correct order for presenting the name
Patient.communication 0..1 BackboneElement Customer mother tongue
Patient.communication.extension 0..* Extension Additional content defined by implementations
Patient.communication.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Patient.communication.language 1..1 CodeableConcept Customer mother tongue
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Patient.communication.language.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.communication.language.coding This element is included in summaries. 1..1 Coding Code defined by a terminology system
Patient.communication.language.coding.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Patient.communication.language.coding.system This element is included in summaries. 1..1 uri Identity of the terminology system
Patient.communication.language.coding.code This element is included in summaries. 1..1 code Symbol in syntax defined by the system
Patient.communication.language.coding.display This element is included in summaries. 1..1 string Representation defined by the system
Patient.communication.preferred 1..1 boolean Language preference indicator
Fixed Value: true (no extensions allowed)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Patient.meta.security Base extensible SecurityLabels 📍4.0.1 FHIR Std.
Patient.meta.tag Base example Common Tags 📍4.0.1 FHIR Std.
Patient.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Patient.identifier:PIC.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Patient.identifier:temp.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Patient.identifier:old.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Patient.name.use Base required NameUse 📍4.0.1 FHIR Std.
Patient.contact.relationship Base required fipta-vs-contactrelationship 📦1.0.0 This IG
Patient.contact.name.​use Base required NameUse 📍4.0.1 FHIR Std.
Patient.communication.​language Base preferred Common Languages 📍4.0.1 FHIR Std.
Patient.link.type Base required LinkType 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
PTA-PAT-1 error Patient Date of birth is mandatory when a temporary identifier is used as the patient's identifier. Patient.identifier.where(use='temp').exists() implies Patient.birthDate.exists()
PTA-PAT-2 error Patient Either an official identifier or a temporary identifier is provided as the patient's identifier. Patient.identifier.where(use='official').exists() implies Patient.identifier.where(use='temp').empty()
PTA-PAT-3 error Patient Either an official identifier or a temporary identifier is provided as the patient's identifier. Patient.identifier.where(use='official').empty() implies Patient.identifier.where(use='temp').exists()
PTA-PAT-4 error Patient Date of birth must be given in the format yyyy-mm-dd. Patient.birthDate.exists() implies Patient.birthDate.toString().length()=10
PTA-PAT-5 error Patient The customer's temporary identifier (Patient.identifier) exceeds the allowed maximum length. Patient.identifier.where(use='temp').exists() implies Patient.identifier.where(use='temp').system.length()+Patient.identifier.where(use='temp').value.length() < 125
PTA-PAT-6 error Patient The OID value of official identifier is used as the system value of the customer's temporary identifier. Patient.identifier.where(use = 'temp' and system = 'urn:oid:1.2.246.21').empty()
dom-2 error Patient If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Patient If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Patient If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Patient If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Patient A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
pat-1 error Patient.contact SHALL at least contain a contact's details or a reference to an organization name.exists() or telecom.exists() or address.exists() or organization.exists()

This structure is derived from KantaPatient

Summary

Mandatory: 5 elements(14 nested mandatory elements)
Fixed: 4 elements
Prohibited: 50 elements

Extensions

This structure refers to these extensions:

 

Other representations of profile: CSV, Excel, Schematron