Kerndatensatz Senologie
0.9.0 - ci-build
Kerndatensatz Senologie - Local Development build (v0.9.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Draft as of 2026-05-04 |
{
"resourceType" : "StructureMap",
"id" : "SenologieToObdsHistologie",
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap SenologieToObdsHistologie</b></p><a name=\"SenologieToObdsHistologie\"> </a><a name=\"hcSenologieToObdsHistologie\"> </a><pre class=\"fml\">\r\n<b>map</b><span style=\"color: navy\"> "</span>https://www.senologie.org/fhir/StructureMap/SenologieToObdsHistologie<span style=\"color: navy\">" = "</span>SenologieToObdsHistologie<span style=\"color: navy\">"\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">title: Senologie Histologie Observations to oBDS Histologie BackboneElement</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">status: draft</span>\r\n\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/bundle.html\" title=\"Bundle\">http://hl7.org/fhir/StructureDefinition/Bundle</a><span style=\"color: navy\">" </span><b>alias </b>Bundle <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/observation.html\" title=\"Observation\">http://hl7.org/fhir/StructureDefinition/Observation</a><span style=\"color: navy\">" </span><b>alias </b>Observation <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/specimen.html\" title=\"Specimen\">http://hl7.org/fhir/StructureDefinition/Specimen</a><span style=\"color: navy\">" </span><b>alias </b>Specimen <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"StructureDefinition-obds-meldung.html\" title=\"oBDS Meldung\">https://www.senologie.org/fhir/StructureDefinition/obds-meldung</a><span style=\"color: navy\">" </span><b>alias </b>OBDSMeldung <b>as </b><b>target</b>\r\n\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Known limitation: Sub-groups use `target tgt : BackboneElement`. See</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">SenologieToObdsTNM.map for details on SM_TARGET_PATH errors.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">============================================================================</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Gemeinsame Histologie-Map: Extrahiert Histologiebefunde aus MII Onko</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Observations und mappt auf das oBDS Histologie-BackboneElement.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Wird von Diagnose, OP und Verlauf importiert.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">MII Onko Histologie-Profile:</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">- mii-pr-onko-histologie-icdo3 (LOINC 59847-4): Morphologie + Freitext</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">- mii-pr-onko-grading (LOINC 59542-1): Histopathologisches Grading</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">- mii-pr-onko-anzahl-untersuchte-lymphknoten (LOINC 21894-1)</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">- mii-pr-onko-anzahl-befallene-lymphknoten (LOINC 21893-3)</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">- mii-pr-onko-anzahl-untersuchte-sentinel-lymphknoten (LOINC 92832-5)</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">- mii-pr-onko-anzahl-befallene-sentinel-lymphknoten (LOINC 92831-7)</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Die Histologie-Observation (59847-4) ist die Haupt-Ressource.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Grading und Lymphknoten koennen als components in der Haupt-Observation</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">oder als separate Observations vorliegen.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">============================================================================</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">============================================================================</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">MapHistologie: Observation (Histologie ICD-O-3) -> oBDS Histologie</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Verarbeitet die Haupt-Histologie-Observation und extrahiert Morphologie,</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Grading und Lymphknoten-Daten aus deren components.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">============================================================================</span>\r\n<b>group </b>MapHistologie<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>Observation, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>BackboneElement<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> <span style=\"color: navy\">// </span><span style=\"color: green\">Histologie_ID: aus Observation.identifier</span>\r\n src.identifier<b> as </b><span style=\"color: maroon\">id</span><b> then</b><span style=\"color: navy\"> {\r\n</span> id.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -> </b></span>tgt.histologieID = <span style=\"color: maroon\">v</span> <i>"SetHistologieID"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapHistologieID"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Tumor_Histologiedatum: aus Observation.effectiveDateTime</span>\r\n src.effective<b> as </b><span style=\"color: maroon\">eff</span><b> where </b>$this.is(dateTime)<span style=\"color: navy\"><b> -> </b></span>tgt.tumorHistologiedatum = <span style=\"color: maroon\">eff</span> <i>"SetHistologiedatum"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Histologie_EinsendeNr: aus Observation.identifier (Pathologie-Einsende-Nr)</span>\r\n src.identifier<b> as </b><span style=\"color: maroon\">id</span><b> where </b>system = 'http://pathologie.charite.de/fhir/sid/einsende-nr'<b> then</b><span style=\"color: navy\"> {\r\n</span> id.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -> </b></span>tgt.histologieEinsendeNr = <span style=\"color: maroon\">v</span> <i>"SetEinsendeNr"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapEinsendeNr"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Morphologie_ICD_O: aus Observation.value (ICD-O Morphologie)</span>\r\n src.value<b> as </b><span style=\"color: maroon\">val</span><b> then</b><span style=\"color: navy\"> {\r\n</span> val.coding<b> as </b><span style=\"color: maroon\">c</span><b> where </b>system = 'urn:oid:2.16.840.1.113883.6.43.1'<span style=\"color: navy\"><b> -> </b></span>tgt.morphologieICDO<b> as </b><span style=\"color: maroon\">morph</span><b> then</b><span style=\"color: navy\"> {\r\n</span> c.code<b> as </b><span style=\"color: maroon\">cd</span><span style=\"color: navy\"><b> -> </b></span>morph.code = <span style=\"color: maroon\">cd</span> <i>"SetMorphCode"</i><span style=\"color: navy\">;</span>\r\n c.version<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -> </b></span>morph.version = <span style=\"color: maroon\">v</span> <i>"SetMorphVersion"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapMorphCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapMorphologie"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Morphologie_Freitext: aus Observation.value.text</span>\r\n src.value<b> as </b><span style=\"color: maroon\">val</span><b> then</b><span style=\"color: navy\"> {\r\n</span> val.text<b> as </b><span style=\"color: maroon\">t</span><span style=\"color: navy\"><b> -> </b></span>tgt.morphologieFreitext = <span style=\"color: maroon\">t</span> <i>"SetMorphFreitext"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapMorphFreitext"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Grading: aus component (LOINC 59542-1) mit Uebersetzung SNOMED -> oBDS</span>\r\n src.component<b> as </b><span style=\"color: maroon\">comp</span><b> where </b>code.coding.exists(code = '59542-1')<b> then</b><span style=\"color: navy\"> {\r\n</span> comp.value<b> as </b><span style=\"color: maroon\">val</span><b> then</b><span style=\"color: navy\"> {\r\n</span> val.coding<b> as </b><span style=\"color: maroon\">c</span><span style=\"color: navy\"><b> -> </b></span>tgt.grading = <b>translate</b><span style=\"color: navy\">(</span><span style=\"color: maroon\">c</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'https://www.senologie.org/fhir/ConceptMap/cm-sct-to-obds-grading'</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'code'</span><span style=\"color: navy\">)</span> <i>"TranslateGrading"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapGradingValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapGrading"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">LK_untersucht: Anzahl untersuchter Lymphknoten (LOINC 21894-1)</span>\r\n src.component<b> as </b><span style=\"color: maroon\">comp</span><b> where </b>code.coding.exists(code = '21894-1')<b> then</b><span style=\"color: navy\"> {\r\n</span> comp.value<b> as </b><span style=\"color: maroon\">val</span><span style=\"color: navy\"><b> -> </b></span>tgt.lkUntersucht = <span style=\"color: maroon\">val</span> <i>"SetLKUntersucht"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapLKUntersucht"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">LK_befallen: Anzahl befallener Lymphknoten (LOINC 21893-3)</span>\r\n src.component<b> as </b><span style=\"color: maroon\">comp</span><b> where </b>code.coding.exists(code = '21893-3')<b> then</b><span style=\"color: navy\"> {\r\n</span> comp.value<b> as </b><span style=\"color: maroon\">val</span><span style=\"color: navy\"><b> -> </b></span>tgt.lkBefallen = <span style=\"color: maroon\">val</span> <i>"SetLKBefallen"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapLKBefallen"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Sentinel_LK_untersucht (LOINC 92832-5)</span>\r\n src.component<b> as </b><span style=\"color: maroon\">comp</span><b> where </b>code.coding.exists(code = '92832-5')<b> then</b><span style=\"color: navy\"> {\r\n</span> comp.value<b> as </b><span style=\"color: maroon\">val</span><span style=\"color: navy\"><b> -> </b></span>tgt.sentinelLKUntersucht = <span style=\"color: maroon\">val</span> <i>"SetSentinelLKUntersucht"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapSentinelLKUntersucht"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Sentinel_LK_befallen (LOINC 92831-7)</span>\r\n src.component<b> as </b><span style=\"color: maroon\">comp</span><b> where </b>code.coding.exists(code = '92831-7')<b> then</b><span style=\"color: navy\"> {\r\n</span> comp.value<b> as </b><span style=\"color: maroon\">val</span><span style=\"color: navy\"><b> -> </b></span>tgt.sentinelLKBefallen = <span style=\"color: maroon\">val</span> <i>"SetSentinelLKBefallen"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapSentinelLKBefallen"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span></pre></div>"
},
"url" : "https://www.senologie.org/fhir/StructureMap/SenologieToObdsHistologie",
"version" : "0.9.0",
"name" : "SenologieToObdsHistologie",
"status" : "draft",
"date" : "2026-05-04T16:55:55+00:00",
"publisher" : "Berlin Institute of Health at Charité (BIH)",
"contact" : [
{
"name" : "Berlin Institute of Health at Charité (BIH)",
"telecom" : [
{
"system" : "url",
"value" : "https://www.bihealth.org"
}
]
}
],
"description" : "title: Senologie Histologie Observations to oBDS Histologie BackboneElement\r\nstatus: draft",
"structure" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/Bundle",
"mode" : "source",
"alias" : "Bundle"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Observation",
"mode" : "source",
"alias" : "Observation"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Specimen",
"mode" : "source",
"alias" : "Specimen"
},
{
"url" : "https://www.senologie.org/fhir/StructureDefinition/obds-meldung",
"mode" : "target",
"alias" : "OBDSMeldung"
}
],
"group" : [
{
"name" : "MapHistologie",
"typeMode" : "none",
"documentation" : "Known limitation: Sub-groups use `target tgt : BackboneElement`. See\r\nSenologieToObdsTNM.map for details on SM_TARGET_PATH errors.\r\n============================================================================\r\nGemeinsame Histologie-Map: Extrahiert Histologiebefunde aus MII Onko\r\nObservations und mappt auf das oBDS Histologie-BackboneElement.\r\nWird von Diagnose, OP und Verlauf importiert.\r\nMII Onko Histologie-Profile:\r\n- mii-pr-onko-histologie-icdo3 (LOINC 59847-4): Morphologie + Freitext\r\n- mii-pr-onko-grading (LOINC 59542-1): Histopathologisches Grading\r\n- mii-pr-onko-anzahl-untersuchte-lymphknoten (LOINC 21894-1)\r\n- mii-pr-onko-anzahl-befallene-lymphknoten (LOINC 21893-3)\r\n- mii-pr-onko-anzahl-untersuchte-sentinel-lymphknoten (LOINC 92832-5)\r\n- mii-pr-onko-anzahl-befallene-sentinel-lymphknoten (LOINC 92831-7)\r\nDie Histologie-Observation (59847-4) ist die Haupt-Ressource.\r\nGrading und Lymphknoten koennen als components in der Haupt-Observation\r\noder als separate Observations vorliegen.\r\n============================================================================\r\n============================================================================\r\nMapHistologie: Observation (Histologie ICD-O-3) -> oBDS Histologie\r\nVerarbeitet die Haupt-Histologie-Observation und extrahiert Morphologie,\r\nGrading und Lymphknoten-Daten aus deren components.\r\n============================================================================",
"input" : [
{
"name" : "src",
"type" : "Observation",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "BackboneElement",
"mode" : "target"
}
],
"rule" : [
{
"name" : "MapHistologieID",
"source" : [
{
"context" : "src",
"element" : "identifier",
"variable" : "id"
}
],
"rule" : [
{
"name" : "SetHistologieID",
"source" : [
{
"context" : "id",
"element" : "value",
"variable" : "v"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "histologieID",
"transform" : "copy",
"parameter" : [
{
"valueId" : "v"
}
]
}
]
}
]
},
{
"name" : "SetHistologiedatum",
"source" : [
{
"context" : "src",
"element" : "effective",
"variable" : "eff",
"condition" : "$this.is(dateTime)"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "tumorHistologiedatum",
"transform" : "copy",
"parameter" : [
{
"valueId" : "eff"
}
]
}
]
},
{
"name" : "MapEinsendeNr",
"source" : [
{
"context" : "src",
"element" : "identifier",
"variable" : "id",
"condition" : "system = 'http://pathologie.charite.de/fhir/sid/einsende-nr'"
}
],
"rule" : [
{
"name" : "SetEinsendeNr",
"source" : [
{
"context" : "id",
"element" : "value",
"variable" : "v"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "histologieEinsendeNr",
"transform" : "copy",
"parameter" : [
{
"valueId" : "v"
}
]
}
]
}
]
},
{
"name" : "MapMorphologie",
"source" : [
{
"context" : "src",
"element" : "value",
"variable" : "val"
}
],
"rule" : [
{
"name" : "MapMorphCoding",
"source" : [
{
"context" : "val",
"element" : "coding",
"variable" : "c",
"condition" : "system = 'urn:oid:2.16.840.1.113883.6.43.1'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "morphologieICDO",
"variable" : "morph"
}
],
"rule" : [
{
"name" : "SetMorphCode",
"source" : [
{
"context" : "c",
"element" : "code",
"variable" : "cd"
}
],
"target" : [
{
"context" : "morph",
"contextType" : "variable",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueId" : "cd"
}
]
}
]
},
{
"name" : "SetMorphVersion",
"source" : [
{
"context" : "c",
"element" : "version",
"variable" : "v"
}
],
"target" : [
{
"context" : "morph",
"contextType" : "variable",
"element" : "version",
"transform" : "copy",
"parameter" : [
{
"valueId" : "v"
}
]
}
]
}
]
}
]
},
{
"name" : "MapMorphFreitext",
"source" : [
{
"context" : "src",
"element" : "value",
"variable" : "val"
}
],
"rule" : [
{
"name" : "SetMorphFreitext",
"source" : [
{
"context" : "val",
"element" : "text",
"variable" : "t"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "morphologieFreitext",
"transform" : "copy",
"parameter" : [
{
"valueId" : "t"
}
]
}
]
}
]
},
{
"name" : "MapGrading",
"source" : [
{
"context" : "src",
"element" : "component",
"variable" : "comp",
"condition" : "code.coding.exists(code = '59542-1')"
}
],
"rule" : [
{
"name" : "MapGradingValue",
"source" : [
{
"context" : "comp",
"element" : "value",
"variable" : "val"
}
],
"rule" : [
{
"name" : "TranslateGrading",
"source" : [
{
"context" : "val",
"element" : "coding",
"variable" : "c"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "grading",
"transform" : "translate",
"parameter" : [
{
"valueId" : "c"
},
{
"valueString" : "https://www.senologie.org/fhir/ConceptMap/cm-sct-to-obds-grading"
},
{
"valueString" : "code"
}
]
}
]
}
]
}
]
},
{
"name" : "MapLKUntersucht",
"source" : [
{
"context" : "src",
"element" : "component",
"variable" : "comp",
"condition" : "code.coding.exists(code = '21894-1')"
}
],
"rule" : [
{
"name" : "SetLKUntersucht",
"source" : [
{
"context" : "comp",
"element" : "value",
"variable" : "val"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "lkUntersucht",
"transform" : "copy",
"parameter" : [
{
"valueId" : "val"
}
]
}
]
}
]
},
{
"name" : "MapLKBefallen",
"source" : [
{
"context" : "src",
"element" : "component",
"variable" : "comp",
"condition" : "code.coding.exists(code = '21893-3')"
}
],
"rule" : [
{
"name" : "SetLKBefallen",
"source" : [
{
"context" : "comp",
"element" : "value",
"variable" : "val"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "lkBefallen",
"transform" : "copy",
"parameter" : [
{
"valueId" : "val"
}
]
}
]
}
]
},
{
"name" : "MapSentinelLKUntersucht",
"source" : [
{
"context" : "src",
"element" : "component",
"variable" : "comp",
"condition" : "code.coding.exists(code = '92832-5')"
}
],
"rule" : [
{
"name" : "SetSentinelLKUntersucht",
"source" : [
{
"context" : "comp",
"element" : "value",
"variable" : "val"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "sentinelLKUntersucht",
"transform" : "copy",
"parameter" : [
{
"valueId" : "val"
}
]
}
]
}
]
},
{
"name" : "MapSentinelLKBefallen",
"source" : [
{
"context" : "src",
"element" : "component",
"variable" : "comp",
"condition" : "code.coding.exists(code = '92831-7')"
}
],
"rule" : [
{
"name" : "SetSentinelLKBefallen",
"source" : [
{
"context" : "comp",
"element" : "value",
"variable" : "val"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "sentinelLKBefallen",
"transform" : "copy",
"parameter" : [
{
"valueId" : "val"
}
]
}
]
}
]
}
]
}
]
}