Finnish Scheduling
2.0.0-rc3 - ballot

Publication Build: This will be filled in by the publication tooling

## Resource Profile: FiSchedulingAppointment - Mappings

Draft as of 2025-08-27

Mappings for the fi-scheduling-appointment resource profile.

### Mappings for Workflow Pattern (http://hl7.org/fhir/workflow)

FiSchedulingAppointment
Appointment | Request
identifier | Request.identifier
status | Request.status
serviceType | Request.code
serviceType (thlCodedType) | Request.code
reasonCode | Request.reasonCode
reasonCode (sliceSisaltotarkenne) | Request.reasonCode
reasonCode (slicePalvelutarve) | Request.reasonCode
reasonReference | Request.reasonReference
priority | Request.priority
supportingInformation | Request.supportingInfo
start | Request.occurrence[x]
end | Request.occurrence[x]
minutesDuration | Request.occurrence[x]
created | Request.authoredOn
comment | Request.note
basedOn | Request.basedOn
participant | Request.performer, Request.subject
requestedPeriod | Request.occurrence[x]

### Mappings for RIM Mapping (http://hl7.org/v3)

FiSchedulingAppointment
Appointment | Entity. Role, or Act, Act[@moodCode <= 'INT']
text | Act.text?
contained | N/A
modifierExtension | N/A
identifier | .id
status | .statusCode
cancelationReason | n/a
id | n/a
extension | n/a
coding | union(., ./translation)
id | n/a
extension | n/a
system | ./codeSystem
version | ./codeSystemVersion
code | ./code
display | CV.displayName
userSelected | CD.codingRationale
text | ./originalText[mediaType/code="text/plain"]/data
serviceCategory | n/a, might be inferred from the ServiceDeliveryLocation
serviceCategory (thlCodedCategory) | n/a, might be inferred from the ServiceDeliveryLocation
id | n/a
extension | n/a
coding | union(., ./translation)
coding (thlType) | union(., ./translation)
id | n/a
extension | n/a
system | ./codeSystem
version | ./codeSystemVersion
code | ./code
display | CV.displayName
userSelected | CD.codingRationale
coding (hl7Type) | union(., ./translation)
id | n/a
extension | n/a
system | ./codeSystem
version | ./codeSystemVersion
code | ./code
display | CV.displayName
userSelected | CD.codingRationale
text | ./originalText[mediaType/code="text/plain"]/data
serviceType | n/a, might be inferred from the ServiceDeliveryLocation
serviceType (thlCodedType) | n/a, might be inferred from the ServiceDeliveryLocation
id | n/a
extension | n/a
coding | union(., ./translation)
coding (thlType) | union(., ./translation)
id | n/a
extension | n/a
system | ./codeSystem
version | ./codeSystemVersion
code | ./code
display | CV.displayName
userSelected | CD.codingRationale
coding (hl7Type) | union(., ./translation)
id | n/a
extension | n/a
system | ./codeSystem
version | ./codeSystemVersion
code | ./code
display | CV.displayName
userSelected | CD.codingRationale
text | ./originalText[mediaType/code="text/plain"]/data
specialty | .performer.AssignedPerson.code
appointmentType | .code
id | n/a
extension | n/a
coding | union(., ./translation)
id | n/a
extension | n/a
system | ./codeSystem
version | ./codeSystemVersion
code | ./code
display | CV.displayName
userSelected | CD.codingRationale
text | ./originalText[mediaType/code="text/plain"]/data
reasonCode | .reasonCode
reasonCode (sliceSisaltotarkenne) | .reasonCode
id | n/a
extension | n/a
coding | union(., ./translation)
text | ./originalText[mediaType/code="text/plain"]/data
reasonCode (slicePalvelutarve) | .reasonCode
id | n/a
extension | n/a
coding | union(., ./translation)
text | ./originalText[mediaType/code="text/plain"]/data
reasonReference | .inboundRelationship[@typeCode = 'RSON'].observation
id | n/a
extension | n/a
reference | N/A
type | N/A
identifier | .identifier
display | N/A
priority | .priorityCode
description | .text
supportingInformation | .inboundRelationship[@typeCode = 'SPRT'].observation
start | .effectiveTime.low
end | .effectiveTime.high
minutesDuration | .activityTime[@xsi:type = ('SXPR_TS', 'PIVL_TS')].width
slot | .outboundRelationship[@typeCode = 'REFR'].act[@classCode = 'ACT'][@moodCode = 'SLOT']
created | .author.time
comment | .subjectOf.observation[@moodCode = 'EVN'][code = 'annotation'].value
patientInstruction | .subjectOf.observation[@moodCode = 'EVN'][code = 'annotation'].value
basedOn | .outboundRelationship[@typeCode = 'FLFS'].act[@classCode < 'ActCareProvisionRequestType'][@moodCode = 'RQO']
participant | performer | reusableDevice | subject | location
id | n/a
extension | n/a
modifierExtension | N/A
type | (performer | reusableDevice | subject | location).@typeCode
actor | performer.person | reusableDevice.manufacturedDevice | subject.patient | location.serviceDeliveryLocation
required | (performer | reusableDevice | subject | location).@performInd
status | (performer | reusableDevice | subject | location).statusCode
period | n/a
requestedPeriod | .activityTime[@xsi:type = ('SXPR_TS', 'PIVL_TS')]

### Mappings for iCalendar (http://ietf.org/rfc/2445)

FiSchedulingAppointment
Appointment | VEVENT
identifier | UID
status | STATUS
serviceCategory | CATEGORIES
serviceCategory (thlCodedCategory) | CATEGORIES
appointmentType | CLASSIFICATION
priority | PRIORITY
description | SUMMARY
supportingInformation | ATTACH
start | DTSTART
end | DTEND
minutesDuration | DURATION (e.g. PT15M)
created | CREATED
comment | DESCRIPTION (for internal use)
patientInstruction | DESCRIPTION (for patient use)
participant | ATTENDEE component to be created
type | n/a
actor | ATTENDEE: (Need to provide the common name CN and also the MAILTO properties from the practitioner resource) where the participant type is not "information-only"
required | ROLE=REQ-PARTICIPANT (roleparam)
status | ATTENDEE;CN="John Doe";RSVP=TRUE:mailto:john@doe.com (rsvpparam | partstatparam)

### Mappings for FiveWs Pattern Mapping (http://hl7.org/fhir/fivews)

FiSchedulingAppointment
Appointment |
identifier | FiveWs.identifier
status | FiveWs.status
specialty | FiveWs.class
priority | FiveWs.class
supportingInformation | FiveWs.context
start | FiveWs.init
end | FiveWs.done[x]
participant |
actor | FiveWs.who

### Mappings for HL7 v2 Mapping (http://hl7.org/v2)

FiSchedulingAppointment
Appointment |
identifier | SCH-1, SCH-2, ARQ-1, ARQ-2
status | SCH-25
cancelationReason |
coding | C*E.1-8, C*E.10-22
system | C*E.3
version | C*E.7
code | C*E.1
display | C*E.2 - but note this is not well followed
userSelected | Sometimes implied by being first
text | C*E.9. But note many systems use C*E.2 for this
serviceCategory |
serviceCategory (thlCodedCategory) |
coding | C*E.1-8, C*E.10-22
coding (thlType) | C*E.1-8, C*E.10-22
system | C*E.3
version | C*E.7
code | C*E.1
display | C*E.2 - but note this is not well followed
userSelected | Sometimes implied by being first
coding (hl7Type) | C*E.1-8, C*E.10-22
system | C*E.3
version | C*E.7
code | C*E.1
display | C*E.2 - but note this is not well followed
userSelected | Sometimes implied by being first
text | C*E.9. But note many systems use C*E.2 for this
serviceType |
serviceType (thlCodedType) |
coding | C*E.1-8, C*E.10-22
coding (thlType) | C*E.1-8, C*E.10-22
system | C*E.3
version | C*E.7
code | C*E.1
display | C*E.2 - but note this is not well followed
userSelected | Sometimes implied by being first
coding (hl7Type) | C*E.1-8, C*E.10-22
system | C*E.3
version | C*E.7
code | C*E.1
display | C*E.2 - but note this is not well followed
userSelected | Sometimes implied by being first
text | C*E.9. But note many systems use C*E.2 for this
appointmentType | ARQ-7
coding | C*E.1-8, C*E.10-22
system | C*E.3
version | C*E.7
code | C*E.1
display | C*E.2 - but note this is not well followed
userSelected | Sometimes implied by being first
text | C*E.9. But note many systems use C*E.2 for this
reasonCode | AIS-3, SCH-7
reasonCode (sliceSisaltotarkenne) | AIS-3, SCH-7
coding | C*E.1-8, C*E.10-22
text | C*E.9. But note many systems use C*E.2 for this
reasonCode (slicePalvelutarve) | AIS-3, SCH-7
coding | C*E.1-8, C*E.10-22
text | C*E.9. But note many systems use C*E.2 for this
priority | ARQ-12, SCH-11.6 / TQ1-9
description | NTE-3
start | ARQ-11.1, SCH-11.4 / TQ1-7
end | SCH-11.5 / TQ1-8/ calculated based on the start and the duration which is in ARQ-9
comment | NTE-3
patientInstruction | NTE-3
participant | PID, AIP, AIG, AIL
type | AIP-4, AIG-4
actor | PID-3-Patient ID List | AIL-3 | AIG-3 | AIP-3
status | AIP-12, AIG-14
requestedPeriod | ARQ-11