2.2. FHIR profiles

2.2.1. MedMij R4 Core profiles

The following FHIR profiles have been introduced within MedMij R4 Core:

CIM FHIR resource FHIR profile
ASAScore Observation medmij-core-ASAScore

Table 1: MedMij R4 Core profiles

Note the following:

  • The Nictiz Profiling Guidelines for FHIR R4 have been used as guidelines for creating the profiles.
  • The (element) descriptions present in the profiles are taken from the respective Logical Model the mapped concept originates from.
  • The 'open world' modeling approach is adopted as much as possible. Notable exceptions are cardinalities that have been restricted based on the functional dataset of the MedMij use case, such as several minimum cardinalities.

2.2.2. Other profiles

FHIR R4 conformance resources developed by Nictiz (based on zib publication 2020) from the nl-core 0.12.0-beta.4 package are used and referenced where possible. In particular, the zibs and corresponding nl-core profiles collected in the table below are used.

Zib FHIR resource FHIR profile
Patient Patient nl-core-Patient
HealthProfessional PractitionerRole
Practitioner
nl-core-HealthProfessional-PractitionerRole
nl-core-HealthProfessional-Practitioner
HealthcareProvider Location
Organization
nl-core-HealthcareProvider
nl-core-HealthcareProvider-Organization

Table 2: Relevant nl-core profiles

Note the following:

  • Each occurrence of the zib HealthProfessional is normally represented by two FHIR resources: a PractitionerRole resource (instance of nl-core-HealthProfessional-PractitionerRole) and a Practitioner resource (instance of nl-core-HealthProfessional-Practitioner). The Practitioner resource is referenced from the PractitionerRole instance. For this reason, sending systems should fill the reference to the PractitionerRole instance where relevant, and not the Practitioner resource. Receiving systems can then retrieve the reference to the Practitioner resource from that PractitionerRole instance. In rare circumstances, there is only a Practitioner instance, in which case it is that instance which will be referenced instead. However, this should be the exception. This is in line with the Nictiz Profiling Guidelines for FHIR R4.

2.2.1. ASA Score

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
identifierΣ0..*Identifier
basedOnΣ C0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)
partOfΣ C0..*Reference(ImagingStudy | Immunization | MedicationAdministration | MedicationDispense | MedicationStatement | Procedure)
statusΣ ?!1..1codeBinding
category0..*CodeableConceptBinding
codeΣ1..1CodeableConceptPattern
subjectΣ C1..1Reference(Patient | NlcorePatient)
focusΣ C0..*Reference(Resource)
encounterΣ C0..1Reference(Encounter)
effectiveInstantinstant
effectivePeriodPeriod
effectiveTimingTiming
effectiveDateTimeΣ0..1dateTime
issuedΣ0..1instant
performerΣ C0..*Reference(CareTeam | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | NlcoreHealthProfessionalPractitionerRole)
valueBooleanboolean
valueDateTimedateTime
valueIntegerinteger
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueStringstring
valueTimetime
valueCodeableConceptΣ C1..1CodeableConceptBinding
dataAbsentReasonC0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
id0..1string
extensionC0..*Extension
authorReferenceReference(Organization | Patient | Practitioner | RelatedPerson)
authorStringstring
timeΣ0..1dateTime
textΣ1..1markdown
bodySite0..1CodeableConcept
method0..1CodeableConcept
specimenC0..1Reference(Specimen)
deviceC0..1Reference(Device | DeviceMetric)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
lowC0..1SimpleQuantity
highC0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
ageC0..1Range
text0..1string
hasMemberΣ C0..*Reference(MolecularSequence | Observation | QuestionnaireResponse)
derivedFromΣ C0..*Reference(DocumentReference | ImagingStudy | Media | MolecularSequence | Observation | QuestionnaireResponse)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
codeΣ1..1CodeableConcept
valueBooleanboolean
valueCodeableConceptCodeableConcept
valueDateTimedateTime
valueIntegerinteger
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueStringstring
valueTimetime
dataAbsentReasonC0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
referenceRange0..*see (referenceRange)
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="medmij-core-ASAScore" />
<status value="empty" />
--- We have skipped the narrative for better readability of the resource ---
</text>
<url value="http://medmij.nl/fhir/StructureDefinition/medmij-core-ASAScore" />
<name value="MedMijCoreASAScore" />
<title value="medmij core ASAScore" />
<status value="draft" />
<publisher value="MedMij" />
<name value="MedMij" />
<system value="email" />
<value value="info@medmij.nl" />
<use value="work" />
</telecom>
</contact>
<description value="Classification of physical condition according to American Society of Anaesthesiologists (ASA)." />
<purpose value="This Observation resource represents the ASAScore Clinical Information Model (CIM) for patient use cases in the context of MedMij." />
<copyright value="Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise." />
<fhirVersion value="4.0.1" />
<identity value="medmij-core-dataset-101-20260413" />
<name value="Dataset MedMij R4 Core 1.0.1 20260413" />
</mapping>
<kind value="resource" />
<abstract value="false" />
<type value="Observation" />
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation" />
<derivation value="constraint" />
<element id="Observation">
<path value="Observation" />
<short value="ASAScore" />
<definition value="Classification of physical condition according to American Society of Anaesthesiologists (ASA)." />
<alias value="ASAScore" />
<alias value="Measurement" />
<alias value="Results" />
<alias value="Tests" />
<identity value="medmij-core-dataset-101-20260413" />
<map value="medmij-core-dataelement-1" />
<comment value="ASAScore" />
</mapping>
</element>
<element id="Observation.code">
<path value="Observation.code" />
<system value="http://snomed.info/sct" />
<code value="413347006" />
</coding>
</patternCodeableConcept>
</element>
<element id="Observation.subject">
<path value="Observation.subject" />
<min value="1" />
<code value="Reference" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
<targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient" />
</type>
</element>
<element id="Observation.effective[x]">
<path value="Observation.effective[x]" />
<type value="type" />
<path value="$this" />
</discriminator>
<ordered value="false" />
<rules value="open" />
</slicing>
</element>
<element id="Observation.effective[x]:effectiveDateTime">
<path value="Observation.effective[x]" />
<sliceName value="effectiveDateTime" />
<short value="ASAScoreDateTime" />
<definition value="The date and time at which the ASA score was determined." />
<alias value="ASAScoreDatumTijd" />
<min value="0" />
<max value="1" />
<code value="dateTime" />
</type>
<identity value="medmij-core-dataset-101-20260413" />
<map value="medmij-core-dataelement-2" />
<comment value="ASAScoreDateTime" />
</mapping>
</element>
<element id="Observation.performer">
<path value="Observation.performer" />
<short value="Performer" />
<definition value="The health professional who determined the ASA score." />
<comment value="Each occurrence of the zib HealthProfessional is normally represented by _two_ FHIR resources: a PractitionerRole resource (instance of [nl-core-HealthProfessional-PractitionerRole](http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-PractitionerRole)) and a Practitioner resource (instance of [nl-core-HealthProfessional-Practitioner](http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-Practitioner)). The Practitioner resource is referenced from the PractitionerRole instance. For this reason, sending systems should fill the reference to the PractitionerRole instance here, and not the Practitioner resource. Receiving systems can then retrieve the reference to the Practitioner resource from that PractitionerRole instance.\n\nIn rare circumstances, there is only a Practitioner instance, in which case it is that instance which will be referenced here. However, since this should be the exception, the nl-core-HealthProfessional-Practitioner profile is not explicitly mentioned as a target profile." />
<alias value="Uitvoerder" />
<code value="Reference" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/PractitionerRole" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/CareTeam" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/RelatedPerson" />
<targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-PractitionerRole" />
</type>
<identity value="medmij-core-dataset-101-20260413" />
<map value="medmij-core-dataelement-4" />
<comment value="Performer" />
</mapping>
</element>
<element id="Observation.value[x]">
<path value="Observation.value[x]" />
<type value="type" />
<path value="$this" />
</discriminator>
<ordered value="false" />
<rules value="open" />
</slicing>
<min value="1" />
</element>
<element id="Observation.value[x]:valueCodeableConcept">
<path value="Observation.value[x]" />
<sliceName value="valueCodeableConcept" />
<short value="ASAScoreValue" />
<definition value="The value of the ASA score." />
<alias value="ASAScoreWaarde" />
<min value="1" />
<max value="1" />
<code value="CodeableConcept" />
</type>
<strength value="required" />
<valueSet value="http://medmij.nl/fhir/ValueSet/ASAScore" />
</binding>
<identity value="medmij-core-dataset-101-20260413" />
<map value="medmij-core-dataelement-3" />
<comment value="ASAScoreValue" />
</mapping>
</element>
<element id="Observation.note.text">
<path value="Observation.note.text" />
<short value="Comment" />
<definition value="Comment on the ASA score, including comments on for example the circumstances and/or disruptive factors that may influence the result." />
<alias value="Toelichting" />
<identity value="medmij-core-dataset-101-20260413" />
<map value="medmij-core-dataelement-5" />
<comment value="Comment" />
</mapping>
</element>
</differential>
</StructureDefinition>
{
"resourceType": "StructureDefinition",
"id": "medmij-core-ASAScore",
"text": {
"status": "empty",
--- We have skipped the narrative for better readability of the resource ---
},
"url": "http://medmij.nl/fhir/StructureDefinition/medmij-core-ASAScore",
"name": "MedMijCoreASAScore",
"title": "medmij core ASAScore",
"status": "draft",
"publisher": "MedMij",
"contact": [
{
"name": "MedMij",
"telecom": [
{
"system": "email",
"value": "info@medmij.nl",
"use": "work"
}
]
}
],
"description": "Classification of physical condition according to American Society of Anaesthesiologists (ASA).",
"purpose": "This Observation resource represents the ASAScore Clinical Information Model (CIM) for patient use cases in the context of MedMij.",
"copyright": "Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise.",
"fhirVersion": "4.0.1",
"mapping": [
{
"identity": "medmij-core-dataset-101-20260413",
"name": "Dataset MedMij R4 Core 1.0.1 20260413"
}
],
"kind": "resource",
"abstract": false,
"type": "Observation",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation",
"derivation": "constraint",
"element": [
{
"id": "Observation",
"path": "Observation",
"short": "ASAScore",
"definition": "Classification of physical condition according to American Society of Anaesthesiologists (ASA).",
"alias": [
"ASAScore",
"Measurement",
"Results",
"Tests"
],
"mapping": [
{
"identity": "medmij-core-dataset-101-20260413",
"map": "medmij-core-dataelement-1",
"comment": "ASAScore"
}
]
},
{
"id": "Observation.code",
"path": "Observation.code",
"coding": [
{
"system": "http://snomed.info/sct",
"code": "413347006"
}
]
}
},
{
"id": "Observation.subject",
"path": "Observation.subject",
"min": 1,
"type": [
{
"code": "Reference",
"http://hl7.org/fhir/StructureDefinition/Patient",
"http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient"
]
}
]
},
{
"id": "Observation.effective[x]",
"path": "Observation.effective[x]",
"slicing": {
{
"type": "type",
"path": "$this"
}
],
"ordered": false,
"rules": "open"
}
},
{
"id": "Observation.effective[x]:effectiveDateTime",
"path": "Observation.effective[x]",
"sliceName": "effectiveDateTime",
"short": "ASAScoreDateTime",
"definition": "The date and time at which the ASA score was determined.",
"alias": [
"ASAScoreDatumTijd"
],
"min": 0,
"max": "1",
"type": [
{
"code": "dateTime"
}
],
"mapping": [
{
"identity": "medmij-core-dataset-101-20260413",
"map": "medmij-core-dataelement-2",
"comment": "ASAScoreDateTime"
}
]
},
{
"id": "Observation.performer",
"path": "Observation.performer",
"short": "Performer",
"definition": "The health professional who determined the ASA score.",
"comment": "Each occurrence of the zib HealthProfessional is normally represented by _two_ FHIR resources: a PractitionerRole resource (instance of [nl-core-HealthProfessional-PractitionerRole](http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-PractitionerRole)) and a Practitioner resource (instance of [nl-core-HealthProfessional-Practitioner](http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-Practitioner)). The Practitioner resource is referenced from the PractitionerRole instance. For this reason, sending systems should fill the reference to the PractitionerRole instance here, and not the Practitioner resource. Receiving systems can then retrieve the reference to the Practitioner resource from that PractitionerRole instance.\n\nIn rare circumstances, there is only a Practitioner instance, in which case it is that instance which will be referenced here. However, since this should be the exception, the nl-core-HealthProfessional-Practitioner profile is not explicitly mentioned as a target profile.",
"alias": [
"Uitvoerder"
],
"type": [
{
"code": "Reference",
"http://hl7.org/fhir/StructureDefinition/Practitioner",
"http://hl7.org/fhir/StructureDefinition/PractitionerRole",
"http://hl7.org/fhir/StructureDefinition/Organization",
"http://hl7.org/fhir/StructureDefinition/CareTeam",
"http://hl7.org/fhir/StructureDefinition/Patient",
"http://hl7.org/fhir/StructureDefinition/RelatedPerson",
"http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-PractitionerRole"
]
}
],
"mapping": [
{
"identity": "medmij-core-dataset-101-20260413",
"map": "medmij-core-dataelement-4",
"comment": "Performer"
}
]
},
{
"id": "Observation.value[x]",
"path": "Observation.value[x]",
"slicing": {
{
"type": "type",
"path": "$this"
}
],
"ordered": false,
"rules": "open"
},
"min": 1
},
{
"id": "Observation.value[x]:valueCodeableConcept",
"path": "Observation.value[x]",
"sliceName": "valueCodeableConcept",
"short": "ASAScoreValue",
"definition": "The value of the ASA score.",
"alias": [
"ASAScoreWaarde"
],
"min": 1,
"max": "1",
"type": [
{
"code": "CodeableConcept"
}
],
"binding": {
"strength": "required",
"valueSet": "http://medmij.nl/fhir/ValueSet/ASAScore"
},
"mapping": [
{
"identity": "medmij-core-dataset-101-20260413",
"map": "medmij-core-dataelement-3",
"comment": "ASAScoreValue"
}
]
},
{
"id": "Observation.note.text",
"path": "Observation.note.text",
"short": "Comment",
"definition": "Comment on the ASA score, including comments on for example the circumstances and/or disruptive factors that may influence the result.",
"alias": [
"Toelichting"
],
"mapping": [
{
"identity": "medmij-core-dataset-101-20260413",
"map": "medmij-core-dataelement-5",
"comment": "Comment"
}
]
}
]
}
}