MII IG PRO
2026.2.0 - ci-build
Unknown region code '276'
MII IG PRO, published by Medizininformatik-Initiative. This guide is not an authorized publication; it is the continuous build for version 2026.2.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/medizininformatik-initiative/kerndatensatzmodul-proms/ and changes regularly. See the Directory of published versions
This page includes translations from the original source language in which the guide was authored. Information on these translations and instructions on how to provide feedback on the translations can be found here.
The MII PRO module supports three fundamental approaches for defining answer options in questionnaire items:
Scope: LOINC codes for answer lists with reliable coverage available
Implementation pattern:
* item[=].answerOption[0].valueCoding.system = $LNC
* item[=].answerOption[0].valueCoding.code = #LA6568-5
* item[=].answerOption[0].valueCoding.display = "Not at all"
* item[=].answerOption[0].extension.url = "http://hl7.org/fhir/StructureDefinition/itemWeight"
* item[=].answerOption[0].extension.valueDecimal = 0
Example instruments: PHQ-9, PROMIS questionnaires Advantages:
Scope: Few answer options (maximum 5 options), low likelihood of change, no reuse required
Implementation pattern:
* item[=].answerOption[0].valueCoding.display = "I have no problems in walking about"
* item[=].answerOption[0].valueCoding.code = #1
* item[=].answerOption[1].valueCoding.display = "I have slight problems in walking about"
* item[=].answerOption[1].valueCoding.code = #2
Example instrument: EQ-5D-5L answer scale Advantages:
Scope: Multi-language support, score weights, complex presentation requirements
Example: PHQ-9 with German translations and weighting extensions
Scope: Identical conceptual answers in different text variants (short form/long form/detailed)
Implementation example: BDI-II
CodeSystem: MII_CS_PRO_BDI_BDI2_AnswerList
* #bdi-bdi2-answer-1a ^property[+].code = #bdi-bdi2-itemWeight
* #bdi-bdi2-answer-1a ^property[=].valueDecimal = 1
* #bdi-bdi2-answer-1b ^property[+].code = #bdi-bdi2-itemWeight
* #bdi-bdi2-answer-1b ^property[=].valueDecimal = 1
ValueSet: MII_VS_PRO_BDI_BDI2_AnswerListShort
* include #bdi-bdi2-answer-0 from system MII_CS_PRO_BDI_BDI2_AnswerList
* include #bdi-bdi2-answer-1 from system MII_CS_PRO_BDI_BDI2_AnswerList
ValueSet: MII_VS_PRO_BDI_BDI2_AnswerListLong
* include #bdi-bdi2-answer-1a from system MII_CS_PRO_BDI_BDI2_AnswerList
* include #bdi-bdi2-answer-1b from system MII_CS_PRO_BDI_BDI2_AnswerList
Advantages:
Criterion: Same answer patterns in multiple instruments
Use case: Generic PRO severity scales (none/mild/moderate/severe) Advantages:
Criterion: Multiple score weights per concept, complex scoring rules
Example: BDI-II with variant answer weights (1a vs 1b) Implementation: CodeSystem properties for itemWeight management
Criterion: Capability profiles require specific terminology approaches
Capabilities and terminology implications:
.weight() functionsBDI-II example:
* extension[capabilities].extension[displayable].valueBoolean = false
* extension[capabilities].extension[calculatable].valueBoolean = true
* item[=].answerValueSet = "http://www.medizininformatik-initiative.de/fhir/ext/modul-pro/ValueSet/mii-vs-pro-bdi-bdi2-short" // Scores without display dependency
Criterion: No reliable international standards available, German specifics required
Strategic considerations:
| Criterion | Inline answerOption | answerValueSet + MII CS |
|---|---|---|
| LOINC availability | Use when available | Only when insufficient |
| Displayable capability | Optimal for display + scores | Limited for pure display logic |
| Calculatable-only | Overhead for pure calculation | Ideal for score-only questionnaires |
| Multiple variants | Not suitable | Ideal |
| Reuse | Not efficient | Recommended |
| Complex scores | Limited by extensions | CodeSystem properties |
| Implementation effort | Minimal | Higher |
| Maintenance effort | Low (for static lists) | Higher |
| International interop | Maximum (with LOINC) | Limited |
| German specifics | Via extensions | Native support |
* item[1].answerOption[0].valueCoding.system = $LNC
* item[1].answerOption[0].valueCoding.code = #LA6568-5
* item[1].answerOption[0].valueCoding.display = "Not at all"
* item[1].answerOption[0].valueCoding.display.extension[0].url = $hl7-translation
* item[1].answerOption[0].valueCoding.display.extension[0].extension[0].url = "lang"
* item[1].answerOption[0].valueCoding.display.extension[0].extension[0].valueCode = #de
* item[1].answerOption[0].valueCoding.display.extension[0].extension[1].url = "content"
* item[1].answerOption[0].valueCoding.display.extension[0].extension[1].valueString = "Ueberhaupt nicht"
* item[1].answerOption[0].extension.url = "http://hl7.org/fhir/StructureDefinition/ordinalValue"
* item[1].answerOption[0].extension.valueDecimal = 0
// Questionnaire Item
* item[=].answerValueSet = "http://www.medizininformatik-initiative.de/fhir/ext/modul-pro/ValueSet/mii-vs-pro-bdi-bdi2-short"
// CodeSystem
CodeSystem: MII_CS_PRO_BDI_BDI2_AnswerList
* ^property[+].code = #ordinalValue
* ^property[=].type = #decimal
* #bdi-bdi2-answer-1a ^property[+].code = #ordinalValue
* #bdi-bdi2-answer-1a ^property[=].valueDecimal = 1
// ValueSet Short Form
ValueSet: MII_VS_PRO_BDI_BDI2_AnswerListShort
* include #bdi-bdi2-answer-0 from system MII_CS_PRO_BDI_BDI2_AnswerList
* include #bdi-bdi2-answer-1 from system MII_CS_PRO_BDI_BDI2_AnswerList
* item[=].answerOption[+].valueCoding.display = "I have no problems in walking about"
* item[=].answerOption[=].valueCoding.code = #1
* item[=].answerOption[+].valueCoding.display = "I have slight problems in walking about"
* item[=].answerOption[=].valueCoding.code = #2
Critical implementation requirement: FHIRPath .weight() functions require correct itemWeight definitions:
* item[=].answerOption[0].extension.url = "http://hl7.org/fhir/StructureDefinition/ordinalValue"
* item[=].answerOption[0].extension.valueDecimal = 0
CodeSystem: MyCodeSystem
* ^property[+].code = #ordinalValue
* ^property[=].type = #decimal
* #answer-code ^property[+].code = #ordinalValue
* #answer-code ^property[=].valueDecimal = 0
Advantages:
Responsibilities:
LOINC priority: Prefer LOINC where available and suitable Mapping strategies: ConceptMaps for MII to LOINC harmonization Future strategy: Gradual migration to international standards as they become available
The choice of terminology strategy is a strategic architectural decision that significantly impacts the long-term maintainability, interoperability, and scalability of PRO implementations.
Guiding principle: "International standards first, MII terminology where necessary, simple inline where appropriate"
This strategy enables leveraging the advantages of international interoperability while simultaneously addressing the specific requirements of the German healthcare system.