MII-Initiative

MII PRO v2026 DE

Abstrakte Profile


Das MII PRO Modul definiert abstrakte Profile, die als Basis für alle PRO-Implementierungen dienen. Diese Profile sind als abstract = true markiert und sollen nicht direkt instanziiert werden. Sie etablieren die gemeinsamen Strukturen und Verhaltensweisen, die von spezifischen Instrumenten-Profilen erweitert werden müssen. Die beiden Profile für Questionnaire und QuestionnaireResponse erben dabei von den SDC-Spezifikation, während die beiden Score-Profile für Observation und ObservationDefinition direkt von der FHIR-Spezifikation erben.

Warum abstrakte Profile?

Abstrakte Profile stellen sicher, dass gemeinsame Strukturen konsistent über alle Implementierungen verwendet werden, während sie gleichzeitig verhindern, dass unvollständige oder generische Instanzen erstellt werden. Jedes PRO-Instrument muss ein konkretes Profil definieren, das von diesen abstrakten Profilen erbt und die instrument-spezifischen Details hinzufügt.

MII_PR_PRO_Questionnaire (Abstract)

Das abstrakte Questionnaire-Profil bildet die Grundlage für alle PRO-Fragebögen. Es erweitert das FHIR R4 Questionnaire mit SDC-Capabilities und MII-spezifischen Extensions.

Canonical URL: https://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-pr-pro-questionnaire Abstract: true

Kernelemente:

  • Verpflichtende URL zur eindeutigen Identifikation
  • Status und Version für Lifecycle-Management
  • Capability-Extensions zur Verhaltenssteuerung
  • SDC-Extensions für erweiterte Funktionalität
idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
versionAlgorithmS C0..1Extension
copyrightLabelC0..1Extension
designNoteC0..1Extension(markdown)
performerTypeS C0..*Extension(code)
assemble-expectationS C0..1Extension(code)
capabilitiesS C1..1Extension(Complex)
modifierExtension?! C0..*Extension
urlS Σ C1..1uri
identifierΣ0..*Identifier
versionS Σ1..1string
nameΣ C0..1string
titleS Σ0..1string
derivedFromS0..*canonical(Questionnaire)
statusS Σ ?!1..1codeBinding
experimentalΣ0..1boolean
subjectTypeS Σ0..*codeBinding
dateΣ0..1dateTime
publisherΣ0..1string
contactΣ0..*ContactDetail
description0..1markdown
useContextΣ0..*UsageContext
jurisdictionΣ0..*CodeableConceptBinding
purpose0..1markdown
copyrightS0..1markdown
approvalDate0..1date
lastReviewDate0..1date
effectivePeriodΣ0..1Period
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
hiddenS C0..1Extension(boolean)
answerConstraintC0..1Extension
designNoteC0..1Extension(markdown)
itemOptionalDisplayC0..1Extension(boolean)
modifierExtensionΣ ?! C0..*Extension
linkIdS C1..1string
definition0..1uri
codeC0..*Coding
prefixS0..1string
text0..1string
typeS1..1codeBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
question1..1string
operator1..1codeBinding
answerBooleanboolean
answerDecimaldecimal
answerIntegerinteger
answerDatedate
answerDateTimedateTime
answerTimetime
answerStringstring
answerCodingCoding
answerQuantityQuantity
answerReferenceReference(Resource)
enableBehaviorC0..1codeBinding
requiredS C0..1boolean
repeatsS C0..1boolean
readOnlyS C0..1boolean
maxLengthC0..1integer
answerValueSetS C0..1canonical(SDCValueSet)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
valueIntegerinteger
valueDatedate
valueTimetime
valueStringstring
valueCodingCoding
valueReferenceReference(Resource)
initialSelected0..1boolean
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
valueBooleanboolean
valueDecimaldecimal
valueIntegerinteger
valueDatedate
valueDateTimedateTime
valueTimetime
valueStringstring
valueUriuri
valueAttachmentAttachment
valueCodingCoding
valueQuantityQuantity
valueReferenceReference(Resource)
itemS C0..*see (item)
{
"resourceType": "StructureDefinition",
"id": "mii-pr-pro-questionnaire",
"url": "https://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-pr-pro-questionnaire",
"version": "2026.0.0-ballot",
"name": "MII_PR_PRO_Questionnaire",
"title": "MII PR PRO Questionnaire",
"status": "draft",
"experimental": true,
"description": "MII PR PRO Questionnaire, based on the FHIR Structure Data Capture Specification",
"fhirVersion": "4.0.1",
"kind": "resource",
"abstract": false,
"type": "Questionnaire",
"baseDefinition": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire",
"derivation": "constraint",
"element": [
{
"id": "Questionnaire.extension",
"path": "Questionnaire.extension",
"min": 1
},
{
"id": "Questionnaire.extension:capabilities",
"path": "Questionnaire.extension",
"sliceName": "capabilities",
"min": 1,
"max": "1",
"type": [
{
"code": "Extension",
"profile": [
"https://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-ex-pro-questionnaire-capabilities"
]
}
],
"mustSupport": true
},
{
"id": "Questionnaire.version",
"path": "Questionnaire.version",
"min": 1
},
{
"id": "Questionnaire.derivedFrom",
"path": "Questionnaire.derivedFrom",
"mustSupport": true
},
{
"id": "Questionnaire.copyright",
"path": "Questionnaire.copyright",
"mustSupport": true
},
{
"id": "Questionnaire.code",
"path": "Questionnaire.code",
"slicing": {
{
"type": "value",
"path": "system"
}
],
"rules": "open",
"description": "Different code systems for the same questionnaire",
"ordered": false
},
"min": 1,
"mustSupport": true
},
{
"id": "Questionnaire.code:snomed",
"path": "Questionnaire.code",
"sliceName": "snomed",
"min": 0,
"max": "1"
},
{
"id": "Questionnaire.code:snomed.system",
"path": "Questionnaire.code.system",
"min": 1,
"fixedUri": "http://snomed.info/sct",
"mustSupport": true
},
{
"id": "Questionnaire.code:snomed.code",
"path": "Questionnaire.code.code",
"min": 1,
"mustSupport": true
},
{
"id": "Questionnaire.code:loinc",
"path": "Questionnaire.code",
"sliceName": "loinc",
"min": 0,
"max": "1"
},
{
"id": "Questionnaire.code:loinc.system",
"path": "Questionnaire.code.system",
"min": 1,
"fixedUri": "http://loinc.org",
"mustSupport": true
},
{
"id": "Questionnaire.code:loinc.code",
"path": "Questionnaire.code.code",
"min": 1,
"mustSupport": true
},
{
"id": "Questionnaire.code:mii",
"path": "Questionnaire.code",
"sliceName": "mii",
"min": 0,
"max": "1"
},
{
"id": "Questionnaire.code:mii.system",
"path": "Questionnaire.code.system",
"min": 1,
"fixedUri": "http://www.medizininformatik-initiative.de/fhir/ext/modul-pro/CodeSystem/mii-cs-pro-questionnaire-catalogue",
"mustSupport": true
},
{
"id": "Questionnaire.code:mii.code",
"path": "Questionnaire.code.code",
"min": 1,
"mustSupport": true
}
]
}
}
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="mii-pr-pro-questionnaire" />
<url value="https://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-pr-pro-questionnaire" />
<version value="2026.0.0-ballot" />
<name value="MII_PR_PRO_Questionnaire" />
<title value="MII PR PRO Questionnaire" />
<status value="draft" />
<experimental value="true" />
<description value="MII PR PRO Questionnaire, based on the FHIR Structure Data Capture Specification" />
<fhirVersion value="4.0.1" />
<kind value="resource" />
<abstract value="false" />
<type value="Questionnaire" />
<baseDefinition value="http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire" />
<derivation value="constraint" />
<element id="Questionnaire.extension">
<path value="Questionnaire.extension" />
<min value="1" />
</element>
<element id="Questionnaire.extension:capabilities">
<path value="Questionnaire.extension" />
<sliceName value="capabilities" />
<min value="1" />
<max value="1" />
<code value="Extension" />
<profile value="https://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-ex-pro-questionnaire-capabilities" />
</type>
<mustSupport value="true" />
</element>
<element id="Questionnaire.version">
<path value="Questionnaire.version" />
<min value="1" />
</element>
<element id="Questionnaire.derivedFrom">
<path value="Questionnaire.derivedFrom" />
<mustSupport value="true" />
</element>
<element id="Questionnaire.copyright">
<path value="Questionnaire.copyright" />
<mustSupport value="true" />
</element>
<element id="Questionnaire.code">
<path value="Questionnaire.code" />
<type value="value" />
<path value="system" />
</discriminator>
<description value="Different code systems for the same questionnaire" />
<ordered value="false" />
<rules value="open" />
</slicing>
<min value="1" />
<mustSupport value="true" />
</element>
<element id="Questionnaire.code:snomed">
<path value="Questionnaire.code" />
<sliceName value="snomed" />
<min value="0" />
<max value="1" />
</element>
<element id="Questionnaire.code:snomed.system">
<path value="Questionnaire.code.system" />
<min value="1" />
<fixedUri value="http://snomed.info/sct" />
<mustSupport value="true" />
</element>
<element id="Questionnaire.code:snomed.code">
<path value="Questionnaire.code.code" />
<min value="1" />
<mustSupport value="true" />
</element>
<element id="Questionnaire.code:loinc">
<path value="Questionnaire.code" />
<sliceName value="loinc" />
<min value="0" />
<max value="1" />
</element>
<element id="Questionnaire.code:loinc.system">
<path value="Questionnaire.code.system" />
<min value="1" />
<fixedUri value="http://loinc.org" />
<mustSupport value="true" />
</element>
<element id="Questionnaire.code:loinc.code">
<path value="Questionnaire.code.code" />
<min value="1" />
<mustSupport value="true" />
</element>
<element id="Questionnaire.code:mii">
<path value="Questionnaire.code" />
<sliceName value="mii" />
<min value="0" />
<max value="1" />
</element>
<element id="Questionnaire.code:mii.system">
<path value="Questionnaire.code.system" />
<min value="1" />
<fixedUri value="http://www.medizininformatik-initiative.de/fhir/ext/modul-pro/CodeSystem/mii-cs-pro-questionnaire-catalogue" />
<mustSupport value="true" />
</element>
<element id="Questionnaire.code:mii.code">
<path value="Questionnaire.code.code" />
<min value="1" />
<mustSupport value="true" />
</element>
</differential>
</StructureDefinition>

MII_PR_PRO_QuestionnaireResponse (Abstract)

Das abstrakte QuestionnaireResponse-Profil standardisiert die Struktur ausgefüllter Fragebögen. Konkrete Implementierungen müssen dieses Profil erweitern und instrument-spezifische Constraints hinzufügen.

Canonical URL: https://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-pr-pro-questionnaire-response Abstract: true

Kernelemente:

  • Referenz zum zugehörigen Questionnaire
  • Verpflichtender Status (completed, in-progress, etc.)
  • Strukturierte Items mit Antworten
  • Authored-Zeitstempel für Verlaufsdokumentation
idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
languageS0..1codeBinding
text0..1Narrative
contained0..*Resource
id0..1id
extensionC0..0Extension
url1..1uriFixed Value
valueCanonicalcanonical(ActivityDefinition | PlanDefinition)
valueUriuri
valueReferenceReference(ActivityDefinition | PlanDefinition)
id0..1id
extensionC0..0Extension
url1..1uriFixed Value
valueCanonicalcanonical(ActivityDefinition | PlanDefinition)
valueUriuri
valueReferenceReference(ActivityDefinition | PlanDefinition)
signatureC0..*Extension(Signature)
completionModeC0..1Extension(CodeableConcept)
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueReferenceReference(Device | Organization)
modifierExtension?! C0..*Extension
identifierS Σ0..1Identifier
basedOnΣ0..*Reference(CarePlan | ServiceRequest)
partOfΣ0..*Reference(Observation | Procedure)
id0..1string
questionnaireDisplayS C0..1Extension(string)
value0..1System.String
statusS Σ ?!1..1codeBinding
subjectS Σ0..1Reference(Resource)
encounterΣ0..1Reference(Encounter)
authoredS Σ1..1dateTime
authorS Σ0..1Reference(Device | Practitioner | PractitionerRole | Patient | RelatedPerson | Organization)
sourceΣ0..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson)
id0..1string
itemMediaC0..1Extension(Attachment)
ItemSignatureC0..*Extension(Signature)
modifierExtensionΣ ?! C0..*Extension
linkIdS1..1string
definition0..1uri
textS0..1string
id0..1string
itemAnswerMediaC0..1Extension(Attachment)
itemWeightC0..1Extension(decimal)
modifierExtensionΣ ?! C0..*Extension
valueBooleanboolean
valueDecimaldecimal
valueIntegerinteger
valueDatedate
valueDateTimedateTime
valueTimetime
valueStringstring
valueUriuri
valueAttachmentAttachment
valueCodingCoding
valueQuantityQuantity
valueReferenceReference(Resource)
itemS0..*see (item)
itemS0..*see (item)
{
"resourceType": "StructureDefinition",
"id": "mii-pr-pro-questionnaire-response",
"url": "https://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-pr-pro-questionnaire-response",
"version": "2026.0.0-ballot",
"name": "MII_PR_PRO_QuestionnaireResponse",
"title": "MII PR PRO QuestionnaireResponse",
"status": "draft",
"description": "MII PR PRO QuestionnaireResponse, based on the FHIR Structure Data Capture Specification",
"fhirVersion": "4.0.1",
"kind": "resource",
"abstract": false,
"type": "QuestionnaireResponse",
"baseDefinition": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaireresponse",
"derivation": "constraint",
"element": [
{
"id": "QuestionnaireResponse.language",
"path": "QuestionnaireResponse.language",
"mustSupport": true
}
]
}
}
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="mii-pr-pro-questionnaire-response" />
<url value="https://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-pr-pro-questionnaire-response" />
<version value="2026.0.0-ballot" />
<name value="MII_PR_PRO_QuestionnaireResponse" />
<title value="MII PR PRO QuestionnaireResponse" />
<status value="draft" />
<description value="MII PR PRO QuestionnaireResponse, based on the FHIR Structure Data Capture Specification" />
<fhirVersion value="4.0.1" />
<kind value="resource" />
<abstract value="false" />
<type value="QuestionnaireResponse" />
<baseDefinition value="http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaireresponse" />
<derivation value="constraint" />
<element id="QuestionnaireResponse.language">
<path value="QuestionnaireResponse.language" />
<mustSupport value="true" />
</element>
</differential>
</StructureDefinition>

MII_PR_PRO_Score_Blueprint (Abstract)

Das abstrakte Score Blueprint Profil definiert die Struktur für ObservationDefinitions, die als Vorlagen für PRO-Scores dienen. Konkrete Score-Definitionen müssen dieses abstrakte Profil erweitern.

Canonical URL: https://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-pr-pro-score-blueprint Abstract: true

Kernelemente:

  • Code zur eindeutigen Score-Identifikation (typischerweise LOINC)
  • QuantitativeDetails mit Einheiten und Wertebereichen
  • QualifiedInterval für Referenzbereiche
  • Populationsspezifische Normwerte
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
categoryΣ0..*CodeableConcept
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
identifierΣ0..*Identifier
permittedDataTypeS0..*codeBinding
multipleResultsAllowed0..1boolean
method0..1CodeableConcept
preferredReportNameS0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
customaryUnitS0..1CodeableConceptBinding
unitS0..1CodeableConceptBinding
conversionFactor0..1decimal
decimalPrecisionS0..1integer
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
categoryS0..1codeBinding
id0..1string
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textS Σ0..1string
lowS Σ0..1SimpleQuantity
highS Σ0..1SimpleQuantity
context0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
gender0..1codeBinding
age0..1Range
gestationalAge0..1Range
condition0..1string
validCodedValueSet0..1Reference(ValueSet)
normalCodedValueSet0..1Reference(ValueSet)
abnormalCodedValueSet0..1Reference(ValueSet)
criticalCodedValueSet0..1Reference(ValueSet)
{
"resourceType": "StructureDefinition",
"id": "mii-pr-pro-score-blueprint",
"url": "https://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-pr-pro-score-blueprint",
"version": "2026.0.0-ballot",
"name": "MII_PR_PRO_Score_Blueprint",
"title": "MII PR PRO Score Blueprint / Template",
"status": "draft",
"description": "MII PR PRO Questionnaire, based on the FHIR Structure Data Capture Specification",
"fhirVersion": "4.0.1",
"kind": "resource",
"abstract": false,
"type": "ObservationDefinition",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/ObservationDefinition",
"derivation": "constraint",
"element": [
{
"id": "ObservationDefinition.code",
"path": "ObservationDefinition.code",
"mustSupport": true
},
{
"id": "ObservationDefinition.code.coding",
"path": "ObservationDefinition.code.coding",
"slicing": {
{
"type": "value",
"path": "system"
}
],
"rules": "open",
"description": "Different code systems for the same questionnaire",
"ordered": false
},
"min": 1,
"mustSupport": true
},
{
"id": "ObservationDefinition.code.coding:snomed",
"path": "ObservationDefinition.code.coding",
"sliceName": "snomed",
"min": 0,
"max": "1"
},
{
"id": "ObservationDefinition.code.coding:snomed.system",
"path": "ObservationDefinition.code.coding.system",
"min": 1,
"fixedUri": "http://snomed.info/sct",
"mustSupport": true
},
{
"id": "ObservationDefinition.code.coding:snomed.code",
"path": "ObservationDefinition.code.coding.code",
"min": 1,
"mustSupport": true
},
{
"id": "ObservationDefinition.code.coding:loinc",
"path": "ObservationDefinition.code.coding",
"sliceName": "loinc",
"min": 0,
"max": "1"
},
{
"id": "ObservationDefinition.code.coding:loinc.system",
"path": "ObservationDefinition.code.coding.system",
"min": 1,
"fixedUri": "http://loinc.org",
"mustSupport": true
},
{
"id": "ObservationDefinition.code.coding:loinc.code",
"path": "ObservationDefinition.code.coding.code",
"min": 1,
"mustSupport": true
},
{
"id": "ObservationDefinition.code.coding:mii",
"path": "ObservationDefinition.code.coding",
"sliceName": "mii",
"min": 0,
"max": "1"
},
{
"id": "ObservationDefinition.code.coding:mii.system",
"path": "ObservationDefinition.code.coding.system",
"min": 1,
"fixedUri": "http://www.medizininformatik-initiative.de/fhir/ext/modul-pro/CodeSystem/mii-cs-pro-score-catalogue",
"mustSupport": true
},
{
"id": "ObservationDefinition.code.coding:mii.code",
"path": "ObservationDefinition.code.coding.code",
"min": 1,
"mustSupport": true
},
{
"id": "ObservationDefinition.permittedDataType",
"path": "ObservationDefinition.permittedDataType",
"mustSupport": true
},
{
"id": "ObservationDefinition.preferredReportName",
"path": "ObservationDefinition.preferredReportName",
"mustSupport": true
},
{
"id": "ObservationDefinition.quantitativeDetails.customaryUnit",
"path": "ObservationDefinition.quantitativeDetails.customaryUnit",
"mustSupport": true
},
{
"id": "ObservationDefinition.quantitativeDetails.unit",
"path": "ObservationDefinition.quantitativeDetails.unit",
"mustSupport": true
},
{
"id": "ObservationDefinition.quantitativeDetails.decimalPrecision",
"path": "ObservationDefinition.quantitativeDetails.decimalPrecision",
"mustSupport": true
},
{
"id": "ObservationDefinition.qualifiedInterval",
"path": "ObservationDefinition.qualifiedInterval",
"mustSupport": true
},
{
"id": "ObservationDefinition.qualifiedInterval.category",
"path": "ObservationDefinition.qualifiedInterval.category",
"mustSupport": true
},
{
"id": "ObservationDefinition.qualifiedInterval.range.extension",
"path": "ObservationDefinition.qualifiedInterval.range.extension",
"mustSupport": true
},
{
"id": "ObservationDefinition.qualifiedInterval.range.extension:ScoreHealthCorrelation",
"path": "ObservationDefinition.qualifiedInterval.range.extension",
"sliceName": "ScoreHealthCorrelation",
"min": 0,
"max": "1",
"type": [
{
"code": "Extension",
"profile": [
"http://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-ex-pro-score-score-health-correlation"
]
}
],
"mustSupport": true
},
{
"id": "ObservationDefinition.qualifiedInterval.range.extension:ScoreHealthCorrelation.value[x]",
"path": "ObservationDefinition.qualifiedInterval.range.extension.value[x]",
"mustSupport": true
},
{
"id": "ObservationDefinition.qualifiedInterval.range.low",
"path": "ObservationDefinition.qualifiedInterval.range.low",
"mustSupport": true
},
{
"id": "ObservationDefinition.qualifiedInterval.range.high",
"path": "ObservationDefinition.qualifiedInterval.range.high",
"mustSupport": true
}
]
}
}
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="mii-pr-pro-score-blueprint" />
<url value="https://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-pr-pro-score-blueprint" />
<version value="2026.0.0-ballot" />
<name value="MII_PR_PRO_Score_Blueprint" />
<title value="MII PR PRO Score Blueprint / Template" />
<status value="draft" />
<description value="MII PR PRO Questionnaire, based on the FHIR Structure Data Capture Specification" />
<fhirVersion value="4.0.1" />
<kind value="resource" />
<abstract value="false" />
<type value="ObservationDefinition" />
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/ObservationDefinition" />
<derivation value="constraint" />
<element id="ObservationDefinition.code">
<path value="ObservationDefinition.code" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.code.coding">
<path value="ObservationDefinition.code.coding" />
<type value="value" />
<path value="system" />
</discriminator>
<description value="Different code systems for the same questionnaire" />
<ordered value="false" />
<rules value="open" />
</slicing>
<min value="1" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.code.coding:snomed">
<path value="ObservationDefinition.code.coding" />
<sliceName value="snomed" />
<min value="0" />
<max value="1" />
</element>
<element id="ObservationDefinition.code.coding:snomed.system">
<path value="ObservationDefinition.code.coding.system" />
<min value="1" />
<fixedUri value="http://snomed.info/sct" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.code.coding:snomed.code">
<path value="ObservationDefinition.code.coding.code" />
<min value="1" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.code.coding:loinc">
<path value="ObservationDefinition.code.coding" />
<sliceName value="loinc" />
<min value="0" />
<max value="1" />
</element>
<element id="ObservationDefinition.code.coding:loinc.system">
<path value="ObservationDefinition.code.coding.system" />
<min value="1" />
<fixedUri value="http://loinc.org" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.code.coding:loinc.code">
<path value="ObservationDefinition.code.coding.code" />
<min value="1" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.code.coding:mii">
<path value="ObservationDefinition.code.coding" />
<sliceName value="mii" />
<min value="0" />
<max value="1" />
</element>
<element id="ObservationDefinition.code.coding:mii.system">
<path value="ObservationDefinition.code.coding.system" />
<min value="1" />
<fixedUri value="http://www.medizininformatik-initiative.de/fhir/ext/modul-pro/CodeSystem/mii-cs-pro-score-catalogue" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.code.coding:mii.code">
<path value="ObservationDefinition.code.coding.code" />
<min value="1" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.permittedDataType">
<path value="ObservationDefinition.permittedDataType" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.preferredReportName">
<path value="ObservationDefinition.preferredReportName" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.quantitativeDetails.customaryUnit">
<path value="ObservationDefinition.quantitativeDetails.customaryUnit" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.quantitativeDetails.unit">
<path value="ObservationDefinition.quantitativeDetails.unit" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.quantitativeDetails.decimalPrecision">
<path value="ObservationDefinition.quantitativeDetails.decimalPrecision" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.qualifiedInterval">
<path value="ObservationDefinition.qualifiedInterval" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.qualifiedInterval.category">
<path value="ObservationDefinition.qualifiedInterval.category" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.qualifiedInterval.range.extension">
<path value="ObservationDefinition.qualifiedInterval.range.extension" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.qualifiedInterval.range.extension:ScoreHealthCorrelation">
<path value="ObservationDefinition.qualifiedInterval.range.extension" />
<sliceName value="ScoreHealthCorrelation" />
<min value="0" />
<max value="1" />
<code value="Extension" />
<profile value="http://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-ex-pro-score-score-health-correlation" />
</type>
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.qualifiedInterval.range.extension:ScoreHealthCorrelation.value[x]">
<path value="ObservationDefinition.qualifiedInterval.range.extension.value[x]" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.qualifiedInterval.range.low">
<path value="ObservationDefinition.qualifiedInterval.range.low" />
<mustSupport value="true" />
</element>
<element id="ObservationDefinition.qualifiedInterval.range.high">
<path value="ObservationDefinition.qualifiedInterval.range.high" />
<mustSupport value="true" />
</element>
</differential>
</StructureDefinition>

MII_PR_PRO_Score_Instance (Abstract)

Das abstrakte Score Instance Profil definiert die Struktur für konkrete Score-Observations. Instrument-spezifische Score-Profile müssen von diesem abstrakten Profil erben.

Canonical URL: https://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-pr-pro-score-instance Abstract: true

Kernelemente:

  • Status (final, preliminary, etc.)
  • Code mit Score-Typ (LOINC oder MII-Code)
  • ValueQuantity mit numerischem Score
  • DerivedFrom-Referenz zur QuestionnaireResponse
  • Instantiates-Referenz zur ObservationDefinition (R5 Backport)
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
instantiatesCanonicalS C0..1Extension(canonical(ActivityDefinition | Measure | OperationDefinition | PlanDefinition | Questionnaire))
modifierExtension?! C0..*Extension
identifierS Σ0..*Identifier
basedOnΣ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)
partOfΣ0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy)
statusS Σ ?!1..1codeBinding
category0..*CodeableConceptBinding
codeS Σ1..1CodeableConcept
subjectΣ1..1Reference(Patient | Group | Device | Location)
focusS Σ0..*Reference(Resource)
encounterΣ0..1Reference(Encounter)
effectivePeriodPeriod
effectiveTimingTiming
effectiveInstantinstant
effectiveDateTimeS Σ0..1dateTime
issuedΣ0..1instant
performerS Σ0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson)
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
dataAbsentReasonC0..1CodeableConceptBinding
interpretationS0..*CodeableConceptBinding
noteS0..*Annotation
bodySite0..1CodeableConcept
methodS0..1CodeableConcept
specimen0..1Reference(Specimen)
device0..1Reference(Device | DeviceMetric)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
lowC0..1SimpleQuantity
highC0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
age0..1Range
text0..1string
hasMemberΣ0..*Reference(Observation | QuestionnaireResponse | MolecularSequence)
derivedFromS Σ0..*Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
codeΣ1..1CodeableConcept
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReasonC0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
referenceRange0..*see (referenceRange)
{
"resourceType": "StructureDefinition",
"id": "mii-pr-pro-score-instance",
"url": "https://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-pr-pro-score-instance",
"version": "2026.0.0-ballot",
"name": "MII_PR_PRO_Score_Instance",
"title": "MII PR PRO Score Instance",
"status": "draft",
"description": "MII PR PRO Score Instance",
"fhirVersion": "4.0.1",
"kind": "resource",
"abstract": false,
"type": "Observation",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation",
"derivation": "constraint",
"element": [
{
"id": "Observation.extension",
"path": "Observation.extension",
"mustSupport": true
},
{
"id": "Observation.extension:instantiatesCanonical",
"path": "Observation.extension",
"sliceName": "instantiatesCanonical",
"min": 0,
"max": "1",
"type": [
{
"code": "Extension",
"profile": [
"http://hl7.org/fhir/StructureDefinition/workflow-instantiatesCanonical"
]
}
],
"mustSupport": true
},
{
"id": "Observation.identifier",
"path": "Observation.identifier",
"mustSupport": true
},
{
"id": "Observation.status",
"path": "Observation.status",
"mustSupport": true
},
{
"id": "Observation.code",
"path": "Observation.code",
"mustSupport": true
},
{
"id": "Observation.subject",
"path": "Observation.subject",
"min": 1
},
{
"id": "Observation.focus",
"path": "Observation.focus",
"mustSupport": true
},
{
"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",
"min": 0,
"max": "1",
"type": [
{
"code": "dateTime"
}
],
"mustSupport": true
},
{
"id": "Observation.performer",
"path": "Observation.performer",
"mustSupport": true
},
{
"id": "Observation.value[x]",
"path": "Observation.value[x]",
"type": [
{
"code": "Quantity"
},
{
"code": "CodeableConcept"
},
{
"code": "string"
}
],
"mustSupport": true
},
{
"id": "Observation.interpretation",
"path": "Observation.interpretation",
"mustSupport": true
},
{
"id": "Observation.note",
"path": "Observation.note",
"mustSupport": true
},
{
"id": "Observation.method",
"path": "Observation.method",
"mustSupport": true
},
{
"id": "Observation.derivedFrom",
"path": "Observation.derivedFrom",
"mustSupport": true
}
]
}
}
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="mii-pr-pro-score-instance" />
<url value="https://www.medizininformatik-initiative.de/fhir/ext/modul-pro/StructureDefinition/mii-pr-pro-score-instance" />
<version value="2026.0.0-ballot" />
<name value="MII_PR_PRO_Score_Instance" />
<title value="MII PR PRO Score Instance" />
<status value="draft" />
<description value="MII PR PRO Score Instance" />
<fhirVersion value="4.0.1" />
<kind value="resource" />
<abstract value="false" />
<type value="Observation" />
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation" />
<derivation value="constraint" />
<element id="Observation.extension">
<path value="Observation.extension" />
<mustSupport value="true" />
</element>
<element id="Observation.extension:instantiatesCanonical">
<path value="Observation.extension" />
<sliceName value="instantiatesCanonical" />
<min value="0" />
<max value="1" />
<code value="Extension" />
<profile value="http://hl7.org/fhir/StructureDefinition/workflow-instantiatesCanonical" />
</type>
<mustSupport value="true" />
</element>
<element id="Observation.identifier">
<path value="Observation.identifier" />
<mustSupport value="true" />
</element>
<element id="Observation.status">
<path value="Observation.status" />
<mustSupport value="true" />
</element>
<element id="Observation.code">
<path value="Observation.code" />
<mustSupport value="true" />
</element>
<element id="Observation.subject">
<path value="Observation.subject" />
<min value="1" />
</element>
<element id="Observation.focus">
<path value="Observation.focus" />
<mustSupport value="true" />
</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" />
<min value="0" />
<max value="1" />
<code value="dateTime" />
</type>
<mustSupport value="true" />
</element>
<element id="Observation.performer">
<path value="Observation.performer" />
<mustSupport value="true" />
</element>
<element id="Observation.value[x]">
<path value="Observation.value[x]" />
<code value="Quantity" />
</type>
<code value="CodeableConcept" />
</type>
<code value="string" />
</type>
<mustSupport value="true" />
</element>
<element id="Observation.interpretation">
<path value="Observation.interpretation" />
<mustSupport value="true" />
</element>
<element id="Observation.note">
<path value="Observation.note" />
<mustSupport value="true" />
</element>
<element id="Observation.method">
<path value="Observation.method" />
<mustSupport value="true" />
</element>
<element id="Observation.derivedFrom">
<path value="Observation.derivedFrom" />
<mustSupport value="true" />
</element>
</differential>
</StructureDefinition>

Vererbungshierarchie

Die abstrakten Profile bilden die Basis einer klaren Vererbungshierarchie:

Abstrakte Profile Vererbungshierarchie

Implementierungsregeln

Da diese Profile als abstrakt markiert sind, gelten folgende Regeln:

  1. Keine direkte Instanziierung: FHIR-Server sollten die Erstellung von Ressourcen ablehnen, die direkt auf abstrakte Profile verweisen
  2. Vererbung erforderlich: Jedes PRO-Instrument muss konkrete Profile definieren, die von den abstrakten Profilen erben
  3. Vollständige Spezifikation: Konkrete Profile müssen alle abstrakten Elemente mit konkreten Werten oder Constraints versehen
  4. Validierung: Validatoren prüfen, dass Instanzen nur konkrete Profile referenzieren

Vorteile der abstrakten Profile

Die Verwendung abstrakter Profile bietet mehrere Vorteile für das MII PRO Modul:

  • Konsistenz: Alle PRO-Implementierungen folgen derselben Grundstruktur
  • Typsicherheit: Verhindert die Erstellung unvollständiger generischer Instanzen
  • Wartbarkeit: Änderungen an gemeinsamen Strukturen erfolgen zentral in den abstrakten Profilen
  • Klarheit: Deutliche Trennung zwischen Basis-Infrastruktur und konkreten Implementierungen
  • Interoperabilität: Generische Verarbeitung möglich durch gemeinsame abstrakte Basis

Migration bestehender Implementierungen

Bestehende Implementierungen, die die Profile bereits nutzen, müssen angepasst werden:

  1. Die abstrakten Profile selbst werden mit abstract = true markiert
  2. Konkrete Instrument-Profile bleiben unverändert (erben bereits von den abstrakten Profilen)
  3. Instanzen müssen auf konkrete Profile verweisen, nicht auf die abstrakten
  4. Validierung sollte aktualisiert werden, um abstract-Constraint zu prüfen