FHIR IG analytics
Resources that use this resource
No resources found
Resources that this resource uses
Narrative
No narrative content found in resource
Source1
{
"resourceType": "StructureDefinition",
"id": "hn-basis-appointment",
"url": "http://example.org/StructureDefinition/hn-basis-appointment",
"version": "2.0.0",
"name": "HnBasisAppointment",
"title": "hn-basis-appointment",
"status": "draft",
"description": "Base profile for Helsenorge Appointment information. Defined by Helsenorge based on national profile.",
"fhirVersion": "4.0.1",
"kind": "resource",
"abstract": false,
"type": "Appointment",
"baseDefinition": "http://hl7.no/fhir/StructureDefinition/no-basis-Appointment",
"derivation": "constraint",
"differential": {
"element": [
{
"id": "Appointment",
"path": "Appointment",
"constraint": [
{
"key": "cancelationReason-inv",
"human": "Cancelation reason MUST be set when status=cancelled and serviceCategory=27 or 30 (that is Specialist Medical or Radiology)",
"source": "http://example.org/StructureDefinition/hn-basis-appointment",
"severity": "error",
"expression": "(status = 'canceled' and (serviceCategory.coding.code = '27' or serviceCategory.coding.code = '30')) implies cancelationReason.exists()"
},
{
"key": "contained-location-must-have-managingorganization",
"human": "Contained location must have managing organization",
"source": "http://example.org/StructureDefinition/hn-basis-appointment",
"severity": "error",
"expression": "Appointment.contained.where($this is Location).empty() or Appointment.contained.where($this is Location).all(managingOrganization.exists())"
}
]
},
{
"id": "Appointment.meta",
"path": "Appointment.meta",
"short": "Information about use of metadata in FHIR resources in helsenorge:",
"definition": "Information about use of metadata in FHIR resources in helsenorge: <https://helsenorge.atlassian.net/wiki/spaces/HELSENORGE/pages/743014401/Meta+informasjon+som+kan+benyttes+for+alle+FHIR+ressurser>. Se list of metadata that is to be used in context of an appointment:<https://helsenorge.atlassian.net/wiki/spaces/HELSENORGE/pages/2052685825/Draft+-+Timenotifikasjon.+Ny+nasjonal+timel+sning#Appointment%3A-Metadata>. \n suppressNotification: Use for suppressing notification \n reminder: Used to define if reminders is active. \n hasAppointmentDetail: Tels if there is more information available regarding the appointment. If used Helsenorge will try to get the details from communication part. CommunicationPart must support that the details can be pulled. \n supportPatientDialog: Patient dialog supported \n and childParentRestrictons: setting posible restriction if parents are to get information about the appointment or only the child."
},
{
"id": "Appointment.meta.lastUpdated",
"path": "Appointment.meta.lastUpdated",
"short": "LastUpdated should always be present",
"definition": "LastUpdated should always be present to show when the resource was created or changed",
"comment": "This value is always populated. The server / resource manager sets this value; what a client provides is irrelevant. This is equivalent to the HTTP Last-Modified and SHOULD have the same value on a read interaction.",
"min": 1
},
{
"id": "Appointment.implicitRules",
"path": "Appointment.implicitRules",
"max": "0"
},
{
"id": "Appointment.language",
"path": "Appointment.language",
"max": "0"
},
{
"id": "Appointment.text",
"path": "Appointment.text",
"max": "0"
},
{
"id": "Appointment.extension:virtualService",
"path": "Appointment.extension",
"sliceName": "virtualService"
},
{
"id": "Appointment.extension:virtualService.extension:channelType",
"path": "Appointment.extension.extension",
"sliceName": "channelType"
},
{
"id": "Appointment.extension:virtualService.extension:channelType.value[x]",
"path": "Appointment.extension.extension.value[x]",
"binding": {
"strength": "required",
"valueSet": "http://helsenorge.no/fhir/ValueSet/hn-basis-virtual-service-type.valueset"
}
},
{
"id": "Appointment.extension:recurring",
"path": "Appointment.extension",
"sliceName": "recurring",
"min": 0,
"max": "1",
"type": [
{
"code": "Extension",
"profile": [
"http://helsenorge.no/fhir/StructureDefinition/hn-basis-Recurring"
]
}
],
"mustSupport": true
},
{
"id": "Appointment.extension:postponementReason",
"path": "Appointment.extension",
"sliceName": "postponementReason",
"min": 0,
"max": "1",
"type": [
{
"code": "Extension",
"profile": [
"http://helsenorge.no/fhir/StructureDefinition/hn-basis-postponementreason"
]
}
]
},
{
"id": "Appointment.extension:consultationType",
"path": "Appointment.extension",
"sliceName": "consultationType",
"min": 0,
"max": "1",
"type": [
{
"code": "Extension",
"profile": [
"http://helsenorge.no/fhir/StructureDefinition/hn-basis-consultationType"
]
}
],
"mustSupport": true
},
{
"id": "Appointment.identifier",
"path": "Appointment.identifier",
"min": 1,
"max": "1"
},
{
"id": "Appointment.identifier.system",
"path": "Appointment.identifier.system",
"min": 1
},
{
"id": "Appointment.identifier.value",
"path": "Appointment.identifier.value",
"min": 1
},
{
"id": "Appointment.identifier.assigner",
"path": "Appointment.identifier.assigner",
"min": 1,
"type": [
{
"code": "Reference",
"targetProfile": [
"http://hl7.org/fhir/StructureDefinition/Organization",
"http://hl7.no/fhir/StructureDefinition/no-basis-Organization"
]
}
]
},
{
"id": "Appointment.status",
"path": "Appointment.status",
"binding": {
"strength": "required",
"valueSet": "http://example.org/ValueSet/my-appointment-status-vs"
}
},
{
"id": "Appointment.cancelationReason",
"path": "Appointment.cancelationReason",
"short": "Reason for cancelation",
"definition": "Volven 8445 is a preferred code system but other code systems as Volven 9179 can also be used",
"binding": {
"strength": "preferred",
"valueSet": "urn:oid:2.16.578.1.12.4.1.1.8445"
}
},
{
"id": "Appointment.cancelationReason.coding",
"path": "Appointment.cancelationReason.coding",
"constraint": [
{
"key": "inv-4",
"human": "If code is used in a codable consept the system must be used",
"source": "http://example.org/StructureDefinition/hn-basis-appointment",
"severity": "error",
"expression": "code > '' implies (system > '' )"
}
]
},
{
"id": "Appointment.serviceCategory",
"path": "Appointment.serviceCategory",
"min": 1,
"max": "1",
"binding": {
"strength": "required",
"valueSet": "http://helsenorge.no/fhir/ValueSet/hn-appointment-ServiceCategory-code-vs"
}
},
{
"id": "Appointment.serviceCategory.coding",
"path": "Appointment.serviceCategory.coding",
"constraint": [
{
"key": "inv-4",
"human": "If code is used in a codable consept the system must be used",
"source": "http://example.org/StructureDefinition/hn-basis-appointment",
"severity": "error",
"expression": "code > '' implies (system > '' )"
}
]
},
{
"id": "Appointment.serviceType",
"path": "Appointment.serviceType",
"max": "0"
},
{
"id": "Appointment.serviceType.coding",
"path": "Appointment.serviceType.coding",
"constraint": [
{
"key": "inv-4",
"human": "If code is used in a codable consept the system must be used",
"source": "http://example.org/StructureDefinition/hn-basis-appointment",
"severity": "error",
"expression": "code > '' implies (system > '' )"
}
]
},
{
"id": "Appointment.specialty",
"path": "Appointment.specialty",
"max": "0"
},
{
"id": "Appointment.specialty.coding",
"path": "Appointment.specialty.coding",
"constraint": [
{
"key": "inv-4",
"human": "If code is used in a codable consept the system must be used",
"source": "http://example.org/StructureDefinition/hn-basis-appointment",
"severity": "error",
"expression": "code > '' implies (system > '' )"
}
]
},
{
"id": "Appointment.appointmentType",
"path": "Appointment.appointmentType",
"min": 1
},
{
"id": "Appointment.appointmentType.coding",
"path": "Appointment.appointmentType.coding",
"constraint": [
{
"key": "inv-4",
"human": "If code is used in a codable consept the system must be used",
"source": "http://example.org/StructureDefinition/hn-basis-appointment",
"severity": "error",
"expression": "code > '' implies (system > '' )"
}
]
},
{
"id": "Appointment.appointmentType.coding:helsenorge",
"path": "Appointment.appointmentType.coding",
"sliceName": "helsenorge",
"short": "Codes from value set",
"definition": "Codes from value set",
"min": 0,
"max": "1",
"mustSupport": true,
"binding": {
"strength": "required",
"valueSet": "http://helsenorge.no/fhir/ValueSet/hn-appointment-AppointmentType-code-vs"
}
},
{
"id": "Appointment.reasonCode.coding",
"path": "Appointment.reasonCode.coding",
"constraint": [
{
"key": "inv-4",
"human": "If code is used in a codable consept the system must be used",
"source": "http://example.org/StructureDefinition/hn-basis-appointment",
"severity": "error",
"expression": "code > '' implies (system > '' )"
}
]
},
{
"id": "Appointment.reasonReference",
"path": "Appointment.reasonReference",
"max": "0"
},
{
"id": "Appointment.priority",
"path": "Appointment.priority",
"max": "0"
},
{
"id": "Appointment.description",
"path": "Appointment.description",
"constraint": [
{
"key": "must-be-max-1000-chars",
"human": "Length MUST be <= 1000",
"source": "http://example.org/StructureDefinition/hn-basis-appointment",
"severity": "error",
"expression": "$this.length() <= 1000"
}
]
},
{
"id": "Appointment.supportingInformation",
"path": "Appointment.supportingInformation",
"short": "Spesial instructions for use.",
"definition": "Spesial instructions for use: Se <https://helsenorge.atlassian.net/wiki/spaces/HELSENORGE/pages/2052685825/Draft+-+Timenotifikasjon.+Ny+nasjonal+timel+sning> SuportingInformation MUST at least refer to communication part (herid level 2) using Organization profile kommunikasjonspart-Organization (<https://simplifier.net/hl7norwayno-basis/kommunikasjonspart-organization>) ",
"min": 1
},
{
"id": "Appointment.start",
"path": "Appointment.start",
"min": 1
},
{
"id": "Appointment.slot",
"path": "Appointment.slot",
"max": "0"
},
{
"id": "Appointment.comment",
"path": "Appointment.comment",
"max": "0"
},
{
"id": "Appointment.patientInstruction",
"path": "Appointment.patientInstruction",
"constraint": [
{
"key": "must-be-max-1000-chars",
"human": "Length MUST be <= 1000",
"source": "http://example.org/StructureDefinition/hn-basis-appointment",
"severity": "error",
"expression": "$this.length() <= 1000"
}
]
},
{
"id": "Appointment.participant",
"path": "Appointment.participant",
"constraint": [
{
"key": "appointment-participant-actor-patient-reference-identifier",
"human": "When actor is a Patient logical reference MUST be used",
"source": "http://example.org/StructureDefinition/hn-basis-appointment",
"severity": "warning",
"expression": "actor.type = 'Patient' implies actor.identifier.exists()"
},
{
"key": "appointment-participant-actor-patient-reference-reference",
"human": "When actor is a Patient literal reference (relative, internal or absolute) reference MUST not be used",
"source": "http://example.org/StructureDefinition/hn-basis-appointment",
"severity": "warning",
"expression": "(actor.type = 'Patient') implies actor.reference.exists().not()"
}
]
},
{
"id": "Appointment.participant.type.coding",
"path": "Appointment.participant.type.coding",
"constraint": [
{
"key": "inv-4",
"human": "If code is used in a codable consept the system must be used",
"source": "http://example.org/StructureDefinition/hn-basis-appointment",
"severity": "error",
"expression": "code > '' implies (system > '' )"
}
]
},
{
"id": "Appointment.participant.actor",
"path": "Appointment.participant.actor",
"short": "When actor is a Patient logical reference MUST be used",
"definition": "When actor is a Patient only logical reference MUST be used. In all other cases Logical, Literal reference, Relative, internal or absolute URL can be used",
"min": 1,
"type": [
{
"code": "Reference",
"targetProfile": [
"http://hl7.no/fhir/StructureDefinition/no-basis-Patient",
"http://hl7.no/fhir/StructureDefinition/no-basis-Practitioner",
"http://hl7.no/fhir/StructureDefinition/no-basis-PractitionerRole",
"http://hl7.no/fhir/StructureDefinition/no-basis-Location",
"http://hl7.no/fhir/StructureDefinition/no-basis-RelatedPerson",
"http://hl7.org/fhir/StructureDefinition/Device",
"http://hl7.no/fhir/StructureDefinition/no-basis-HealthcareService"
]
}
]
},
{
"id": "Appointment.requestedPeriod",
"path": "Appointment.requestedPeriod",
"max": "0"
}
]
}
}