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" : "SenologieToOncoBoxBrustTherapie",
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap SenologieToOncoBoxBrustTherapie</b></p><a name=\"SenologieToOncoBoxBrustTherapie\"> </a><a name=\"hcSenologieToOncoBoxBrustTherapie\"> </a><pre class=\"fml\">\r\n<b>map</b><span style=\"color: navy\"> "</span>https://www.senologie.org/fhir/StructureMap/SenologieToOncoBoxBrustTherapie<span style=\"color: navy\">" = "</span>SenologieToOncoBoxBrustTherapie<span style=\"color: navy\">"\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">title: Senologie Procedure (Syst / RT) to OncoBox Brust Therapie</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/procedure.html\" title=\"Procedure\">http://hl7.org/fhir/StructureDefinition/Procedure</a><span style=\"color: navy\">" </span><b>alias </b>Procedure <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\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Import-only map: no target `uses` declaration — the calling map</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">(SenologieToOncoBoxBrustPrimaerfall) provides the correct BackboneElement</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">context (primaerfall.systemtherapie / primaerfall.strahlentherapie /</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">primaerfall.endokrineTherapie). Omitting the root-level target type avoids</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">SM_TARGET_PATH false positives where the validator would resolve property</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">names against oncobox-brust-meldung root.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">============================================================================</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Systemtherapie: Procedure (Senologie_Systemtherapie_Procedure) -> Syst-Block</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Relevante Felder fuer OncoBox / Kennzahlen:</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">- KB-4 / KB-5: adjuvante Chemo (invasiv / DCIS)</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">- KB-7: Trastuzumab bei HER2-positiven Patientinnen</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">- KB-8: First-Line-Therapie bei Metastasierung</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">============================================================================</span>\r\n<b>group </b>MapSystemtherapie<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>Procedure, <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> src<span style=\"color: navy\"><b> -> </b></span>tgt.lnr = <span style=\"color: blue\">1</span> <i>"SetSystLnr"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Syst_Art (Chemo=1, Immun=2, zielgerichtet=3)</span>\r\n src.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span> code.coding<b> as </b><span style=\"color: maroon\">c</span><b> where </b>system = 'http://snomed.info/sct'<b> then</b><span style=\"color: navy\"> {\r\n</span> c.code<b> as </b><span style=\"color: maroon\">cd</span><b> where </b>$this = '367336001'<span style=\"color: navy\"><b> -> </b></span>tgt.therapieart = <span style=\"color: blue\">'1'</span> <i>"SetSystChemo"</i><span style=\"color: navy\">;</span>\r\n c.code<b> as </b><span style=\"color: maroon\">cd</span><b> where </b>$this = '76334006'<span style=\"color: navy\"><b> -> </b></span>tgt.therapieart = <span style=\"color: blue\">'2'</span> <i>"SetSystImmun"</i><span style=\"color: navy\">;</span>\r\n c.code<b> as </b><span style=\"color: maroon\">cd</span><b> where </b>$this = '169413002'<span style=\"color: navy\"><b> -> </b></span>tgt.therapieart = <span style=\"color: blue\">'3'</span> <i>"SetSystZiel"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapSystArtCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapSystArt"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Syst_Stellung (neoadjuvant/adjuvant/palliativ) aus Extension (CodeableConcept)</span>\r\n src.extension<b> as </b><span style=\"color: maroon\">ext</span><b> where </b>url = 'https://www.senologie.org/fhir/StructureDefinition/ex-senologie-therapiestellung'<b> then</b><span style=\"color: navy\"> {\r\n</span> ext.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>code = 'neoadjuvant'<span style=\"color: navy\"><b> -> </b></span>tgt.stellungZurOP = <span style=\"color: blue\">'N'</span> <i>"SetStellNeo"</i><span style=\"color: navy\">;</span>\r\n val.coding<b> as </b><span style=\"color: maroon\">c</span><b> where </b>code = 'adjuvant'<span style=\"color: navy\"><b> -> </b></span>tgt.stellungZurOP = <span style=\"color: blue\">'A'</span> <i>"SetStellAdj"</i><span style=\"color: navy\">;</span>\r\n val.coding<b> as </b><span style=\"color: maroon\">c</span><b> where </b>code = 'palliativ'<span style=\"color: navy\"><b> -> </b></span>tgt.stellungZurOP = <span style=\"color: blue\">'P'</span> <i>"SetStellPal"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapStellVal"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapStellExt"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Syst_Beginn / Syst_Ende aus performedPeriod</span>\r\n src.performed<b> as </b><span style=\"color: maroon\">perf</span><b> where </b>$this.is(Period)<b> then</b><span style=\"color: navy\"> {\r\n</span> perf.start<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -> </b></span>tgt.beginn = <span style=\"color: maroon\">s</span> <i>"SetSystBeginn"</i><span style=\"color: navy\">;</span>\r\n perf.end<b> as </b><span style=\"color: maroon\">e</span><span style=\"color: navy\"><b> -> </b></span>tgt.ende = <span style=\"color: maroon\">e</span> <i>"SetSystEnde"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapSystPeriod"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Syst_Trastuzumab - Flag wenn Substanz Trastuzumab enthaelt (ATC L01FD01)</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Einfachste Ableitung: Procedure.code.coding mit Trastuzumab-Code (z.B. SNOMED 387208009)</span>\r\n src.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span> code.coding<b> as </b><span style=\"color: maroon\">c</span><b> where </b>system = 'http://snomed.info/sct'<b> then</b><span style=\"color: navy\"> {\r\n</span> c.code<b> as </b><span style=\"color: maroon\">cd</span><b> where </b>$this = '387208009'<span style=\"color: navy\"><b> -> </b></span>tgt.enthaeltTrastuzumab = <span style=\"color: blue\">'1'</span> <i>"SetTrastuJa"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapTrastuCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapTrastu"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Syst_FirstLine (KB-8): First-Line bei Metastasierung aus EX_Senologie_FirstLineTherapy</span>\r\n src.extension<b> as </b><span style=\"color: maroon\">ext</span><b> where </b>url = 'https://www.senologie.org/fhir/StructureDefinition/ex-senologie-first-line-therapy'<b> then</b><span style=\"color: navy\"> {\r\n</span> ext.value<b> as </b><span style=\"color: maroon\">val</span><b> where </b>$this = true<span style=\"color: navy\"><b> -> </b></span>tgt.firstLine = <span style=\"color: blue\">'1'</span> <i>"SetFirstLineJa"</i><span style=\"color: navy\">;</span>\r\n ext.value<b> as </b><span style=\"color: maroon\">val</span><b> where </b>$this = false<span style=\"color: navy\"><b> -> </b></span>tgt.firstLine = <span style=\"color: blue\">'0'</span> <i>"SetFirstLineNein"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapFirstLine"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Syst_Protokoll aus usedCode.text</span>\r\n src.usedCode<b> as </b><span style=\"color: maroon\">uc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> uc.text<b> as </b><span style=\"color: maroon\">t</span><span style=\"color: navy\"><b> -> </b></span>tgt.protokoll = <span style=\"color: maroon\">t</span> <i>"SetSystProtokollText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapSystProtokoll"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">============================================================================</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Strahlentherapie: Procedure (Senologie_Strahlentherapie) -> RT-Block</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">============================================================================</span>\r\n<b>group </b>MapStrahlentherapie<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>Procedure, <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> src<span style=\"color: navy\"><b> -> </b></span>tgt.lnr = <span style=\"color: blue\">1</span> <i>"SetRTLnr"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">RT_Beginn / RT_Ende aus performedPeriod</span>\r\n src.performed<b> as </b><span style=\"color: maroon\">perf</span><b> where </b>$this.is(Period)<b> then</b><span style=\"color: navy\"> {\r\n</span> perf.start<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -> </b></span>tgt.beginn = <span style=\"color: maroon\">s</span> <i>"SetRTBeginn"</i><span style=\"color: navy\">;</span>\r\n perf.end<b> as </b><span style=\"color: maroon\">e</span><span style=\"color: navy\"><b> -> </b></span>tgt.ende = <span style=\"color: maroon\">e</span> <i>"SetRTEnde"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapRTPeriod"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">RT_Stellung aus Extension therapiestellung (CodeableConcept)</span>\r\n src.extension<b> as </b><span style=\"color: maroon\">ext</span><b> where </b>url = 'https://www.senologie.org/fhir/StructureDefinition/ex-senologie-therapiestellung'<b> then</b><span style=\"color: navy\"> {\r\n</span> ext.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>code = 'neoadjuvant'<span style=\"color: navy\"><b> -> </b></span>tgt.stellungZurOP = <span style=\"color: blue\">'N'</span> <i>"SetRTNeo"</i><span style=\"color: navy\">;</span>\r\n val.coding<b> as </b><span style=\"color: maroon\">c</span><b> where </b>code = 'adjuvant'<span style=\"color: navy\"><b> -> </b></span>tgt.stellungZurOP = <span style=\"color: blue\">'A'</span> <i>"SetRTAdj"</i><span style=\"color: navy\">;</span>\r\n val.coding<b> as </b><span style=\"color: maroon\">c</span><b> where </b>code = 'palliativ'<span style=\"color: navy\"><b> -> </b></span>tgt.stellungZurOP = <span style=\"color: blue\">'P'</span> <i>"SetRTPal"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapRTStellVal"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapRTStellExt"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">RT_Dosis_Gy aus MII Onko Gesamtdosis-Extension</span>\r\n src.extension<b> as </b><span style=\"color: maroon\">ext</span><b> where </b>url = 'https://www.medizininformatik-initiative.de/fhir/ext/modul-onko/StructureDefinition/mii-ex-onko-strahlentherapie-bestrahlung-gesamtdosis'<b> then</b><span style=\"color: navy\"> {\r\n</span> ext.value<b> as </b><span style=\"color: maroon\">val</span><b> then</b><span style=\"color: navy\"> {\r\n</span> val.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -> </b></span>tgt.gesamtdosisGy = <span style=\"color: maroon\">v</span> <i>"SetRTGesamtdosis"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ExtractRTGesamtdosisValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapRTGesamtdosis"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">RT_Einzeldosis_Gy aus Senologie Einzeldosis-Extension</span>\r\n src.extension<b> as </b><span style=\"color: maroon\">ext</span><b> where </b>url = 'https://www.senologie.org/fhir/StructureDefinition/ex-senologie-einzeldosis'<b> then</b><span style=\"color: navy\"> {\r\n</span> ext.value<b> as </b><span style=\"color: maroon\">val</span><b> then</b><span style=\"color: navy\"> {\r\n</span> val.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -> </b></span>tgt.einzeldosisGy = <span style=\"color: maroon\">v</span> <i>"SetRTEinzeldosis"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ExtractRTEinzeldosisValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapRTEinzeldosis"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">RT_Zielgebiet aus Procedure.bodySite (SNOMED)</span>\r\n src.bodySite<b> as </b><span style=\"color: maroon\">bs</span><b> then</b><span style=\"color: navy\"> {\r\n</span> bs.coding<b> as </b><span style=\"color: maroon\">c</span><b> where </b>system = 'http://snomed.info/sct'<b> then</b><span style=\"color: navy\"> {\r\n</span> c.code<b> as </b><span style=\"color: maroon\">cd</span><b> where </b>$this = '76752008'<span style=\"color: navy\"><b> -> </b></span>tgt.zielgebiet = <span style=\"color: blue\">'1'</span> <i>"SetRTBrust"</i><span style=\"color: navy\">;</span>\r\n c.code<b> as </b><span style=\"color: maroon\">cd</span><b> where </b>$this = '59441001'<span style=\"color: navy\"><b> -> </b></span>tgt.zielgebiet = <span style=\"color: blue\">'2'</span> <i>"SetRTLAW"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapRTZielCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapRTZiel"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">============================================================================</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Endokrine Therapie: Procedure (therapieart=HO) -> EndokrineTherapie-Block</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Endokrine Therapien (Tamoxifen, Aromatasehemmer, GnRH, Fulvestrant,</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">CDK4/6-Inhibitoren) werden als Systemtherapie-Procedures mit therapieart=HO</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">modelliert. Die Substanzklasse wird ueber ATC-Codes abgeleitet:</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">1=Tamoxifen (L02BA01), 2=Aromatasehemmer (L02BG*),</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">3=GnRH-Analogon (L02AE*), 4=Fulvestrant (L02BA03),</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">5=CDK4/6-Inhibitor (L01EF*), 9=sonstige</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">============================================================================</span>\r\n<b>group </b>MapEndokrineTherapie<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>Procedure, <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> src<span style=\"color: navy\"><b> -> </b></span>tgt.lnr = <span style=\"color: blue\">1</span> <i>"SetEndoLnr"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Endo_Beginn / Endo_Ende aus performedPeriod</span>\r\n src.performed<b> as </b><span style=\"color: maroon\">perf</span><b> where </b>$this.is(Period)<b> then</b><span style=\"color: navy\"> {\r\n</span> perf.start<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -> </b></span>tgt.beginn = <span style=\"color: maroon\">s</span> <i>"SetEndoBeginn"</i><span style=\"color: navy\">;</span>\r\n perf.end<b> as </b><span style=\"color: maroon\">e</span><span style=\"color: navy\"><b> -> </b></span>tgt.ende = <span style=\"color: maroon\">e</span> <i>"SetEndoEnde"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapEndoPeriod"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Endo_Stellung aus MII Onko Intention-Extension</span>\r\n src.extension<b> as </b><span style=\"color: maroon\">ext</span><b> where </b>url.contains('mii-ex-onko-systemische-therapie-intention')<b> then</b><span style=\"color: navy\"> {\r\n</span> ext.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> then</b><span style=\"color: navy\"> {\r\n</span> c.code<b> as </b><span style=\"color: maroon\">cd</span><b> where </b>$this = 'K'<span style=\"color: navy\"><b> -> </b></span>tgt.stellungZurOP = <span style=\"color: blue\">'A'</span> <i>"SetEndoAdj"</i><span style=\"color: navy\">;</span>\r\n c.code<b> as </b><span style=\"color: maroon\">cd</span><b> where </b>$this = 'P'<span style=\"color: navy\"><b> -> </b></span>tgt.stellungZurOP = <span style=\"color: blue\">'P'</span> <i>"SetEndoPal"</i><span style=\"color: navy\">;</span>\r\n c.code<b> as </b><span style=\"color: maroon\">cd</span><b> where </b>$this = 'N'<span style=\"color: navy\"><b> -> </b></span>tgt.stellungZurOP = <span style=\"color: blue\">'N'</span> <i>"SetEndoNeo"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapEndoStellCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapEndoStellVal"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapEndoStellExt"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Endo_Substanz aus ATC-Code (Procedure.code oder usedCode)</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Tamoxifen = L02BA01, Aromatasehemmer = L02BG*, GnRH = L02AE*,</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Fulvestrant = L02BA03, CDK4/6i = L01EF*</span>\r\n src.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span> code.coding<b> as </b><span style=\"color: maroon\">c</span><b> where </b>system = 'http://fhir.de/CodeSystem/bfarm/atc'<b> then</b><span style=\"color: navy\"> {\r\n</span> c.code<b> as </b><span style=\"color: maroon\">cd</span><b> where </b>$this = 'L02BA01'<span style=\"color: navy\"><b> -> </b></span>tgt.substanz = <span style=\"color: blue\">'1'</span> <i>"SetEndoTamox"</i><span style=\"color: navy\">;</span>\r\n c.code<b> as </b><span style=\"color: maroon\">cd</span><b> where </b>$this = 'L02BA03'<span style=\"color: navy\"><b> -> </b></span>tgt.substanz = <span style=\"color: blue\">'4'</span> <i>"SetEndoFulv"</i><span style=\"color: navy\">;</span>\r\n c.code<b> as </b><span style=\"color: maroon\">cd</span><b> where </b>$this.startsWith('L02BG')<span style=\"color: navy\"><b> -> </b></span>tgt.substanz = <span style=\"color: blue\">'2'</span> <i>"SetEndoAI"</i><span style=\"color: navy\">;</span>\r\n c.code<b> as </b><span style=\"color: maroon\">cd</span><b> where </b>$this.startsWith('L02AE')<span style=\"color: navy\"><b> -> </b></span>tgt.substanz = <span style=\"color: blue\">'3'</span> <i>"SetEndoGnRH"</i><span style=\"color: navy\">;</span>\r\n c.code<b> as </b><span style=\"color: maroon\">cd</span><b> where </b>$this.startsWith('L01EF')<span style=\"color: navy\"><b> -> </b></span>tgt.substanz = <span style=\"color: blue\">'5'</span> <i>"SetEndoCDK"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapEndoSubstanzATCCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"MapEndoSubstanzATC"</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/SenologieToOncoBoxBrustTherapie",
"version" : "0.9.0",
"name" : "SenologieToOncoBoxBrustTherapie",
"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 Procedure (Syst / RT) to OncoBox Brust Therapie\r\nstatus: draft",
"structure" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/Bundle",
"mode" : "source",
"alias" : "Bundle"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Procedure",
"mode" : "source",
"alias" : "Procedure"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Observation",
"mode" : "source",
"alias" : "Observation"
}
],
"group" : [
{
"name" : "MapSystemtherapie",
"typeMode" : "none",
"documentation" : "Import-only map: no target `uses` declaration — the calling map\r\n(SenologieToOncoBoxBrustPrimaerfall) provides the correct BackboneElement\r\ncontext (primaerfall.systemtherapie / primaerfall.strahlentherapie /\r\nprimaerfall.endokrineTherapie). Omitting the root-level target type avoids\r\nSM_TARGET_PATH false positives where the validator would resolve property\r\nnames against oncobox-brust-meldung root.\r\n============================================================================\r\nSystemtherapie: Procedure (Senologie_Systemtherapie_Procedure) -> Syst-Block\r\nRelevante Felder fuer OncoBox / Kennzahlen:\r\n- KB-4 / KB-5: adjuvante Chemo (invasiv / DCIS)\r\n- KB-7: Trastuzumab bei HER2-positiven Patientinnen\r\n- KB-8: First-Line-Therapie bei Metastasierung\r\n============================================================================",
"input" : [
{
"name" : "src",
"type" : "Procedure",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "BackboneElement",
"mode" : "target"
}
],
"rule" : [
{
"name" : "SetSystLnr",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "lnr",
"transform" : "copy",
"parameter" : [
{
"valueInteger" : 1
}
]
}
]
},
{
"name" : "MapSystArt",
"source" : [
{
"context" : "src",
"element" : "code",
"variable" : "code"
}
],
"rule" : [
{
"name" : "MapSystArtCoding",
"source" : [
{
"context" : "code",
"element" : "coding",
"variable" : "c",
"condition" : "system = 'http://snomed.info/sct'"
}
],
"rule" : [
{
"name" : "SetSystChemo",
"source" : [
{
"context" : "c",
"element" : "code",
"variable" : "cd",
"condition" : "$this = '367336001'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "therapieart",
"transform" : "copy",
"parameter" : [
{
"valueString" : "1"
}
]
}
]
},
{
"name" : "SetSystImmun",
"source" : [
{
"context" : "c",
"element" : "code",
"variable" : "cd",
"condition" : "$this = '76334006'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "therapieart",
"transform" : "copy",
"parameter" : [
{
"valueString" : "2"
}
]
}
]
},
{
"name" : "SetSystZiel",
"source" : [
{
"context" : "c",
"element" : "code",
"variable" : "cd",
"condition" : "$this = '169413002'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "therapieart",
"transform" : "copy",
"parameter" : [
{
"valueString" : "3"
}
]
}
]
}
]
}
]
},
{
"name" : "MapStellExt",
"source" : [
{
"context" : "src",
"element" : "extension",
"variable" : "ext",
"condition" : "url = 'https://www.senologie.org/fhir/StructureDefinition/ex-senologie-therapiestellung'"
}
],
"rule" : [
{
"name" : "MapStellVal",
"source" : [
{
"context" : "ext",
"element" : "value",
"variable" : "val"
}
],
"rule" : [
{
"name" : "SetStellNeo",
"source" : [
{
"context" : "val",
"element" : "coding",
"variable" : "c",
"condition" : "code = 'neoadjuvant'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "stellungZurOP",
"transform" : "copy",
"parameter" : [
{
"valueString" : "N"
}
]
}
]
},
{
"name" : "SetStellAdj",
"source" : [
{
"context" : "val",
"element" : "coding",
"variable" : "c",
"condition" : "code = 'adjuvant'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "stellungZurOP",
"transform" : "copy",
"parameter" : [
{
"valueString" : "A"
}
]
}
]
},
{
"name" : "SetStellPal",
"source" : [
{
"context" : "val",
"element" : "coding",
"variable" : "c",
"condition" : "code = 'palliativ'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "stellungZurOP",
"transform" : "copy",
"parameter" : [
{
"valueString" : "P"
}
]
}
]
}
]
}
]
},
{
"name" : "MapSystPeriod",
"source" : [
{
"context" : "src",
"element" : "performed",
"variable" : "perf",
"condition" : "$this.is(Period)"
}
],
"rule" : [
{
"name" : "SetSystBeginn",
"source" : [
{
"context" : "perf",
"element" : "start",
"variable" : "s"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "beginn",
"transform" : "copy",
"parameter" : [
{
"valueId" : "s"
}
]
}
]
},
{
"name" : "SetSystEnde",
"source" : [
{
"context" : "perf",
"element" : "end",
"variable" : "e"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "ende",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e"
}
]
}
]
}
]
},
{
"name" : "MapTrastu",
"source" : [
{
"context" : "src",
"element" : "code",
"variable" : "code"
}
],
"rule" : [
{
"name" : "MapTrastuCoding",
"source" : [
{
"context" : "code",
"element" : "coding",
"variable" : "c",
"condition" : "system = 'http://snomed.info/sct'"
}
],
"rule" : [
{
"name" : "SetTrastuJa",
"source" : [
{
"context" : "c",
"element" : "code",
"variable" : "cd",
"condition" : "$this = '387208009'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "enthaeltTrastuzumab",
"transform" : "copy",
"parameter" : [
{
"valueString" : "1"
}
]
}
]
}
]
}
]
},
{
"name" : "MapFirstLine",
"source" : [
{
"context" : "src",
"element" : "extension",
"variable" : "ext",
"condition" : "url = 'https://www.senologie.org/fhir/StructureDefinition/ex-senologie-first-line-therapy'"
}
],
"rule" : [
{
"name" : "SetFirstLineJa",
"source" : [
{
"context" : "ext",
"element" : "value",
"variable" : "val",
"condition" : "$this = true"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "firstLine",
"transform" : "copy",
"parameter" : [
{
"valueString" : "1"
}
]
}
]
},
{
"name" : "SetFirstLineNein",
"source" : [
{
"context" : "ext",
"element" : "value",
"variable" : "val",
"condition" : "$this = false"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "firstLine",
"transform" : "copy",
"parameter" : [
{
"valueString" : "0"
}
]
}
]
}
]
},
{
"name" : "MapSystProtokoll",
"source" : [
{
"context" : "src",
"element" : "usedCode",
"variable" : "uc"
}
],
"rule" : [
{
"name" : "SetSystProtokollText",
"source" : [
{
"context" : "uc",
"element" : "text",
"variable" : "t"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "protokoll",
"transform" : "copy",
"parameter" : [
{
"valueId" : "t"
}
]
}
]
}
]
}
]
},
{
"name" : "MapStrahlentherapie",
"typeMode" : "none",
"documentation" : "============================================================================\r\nStrahlentherapie: Procedure (Senologie_Strahlentherapie) -> RT-Block\r\n============================================================================",
"input" : [
{
"name" : "src",
"type" : "Procedure",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "BackboneElement",
"mode" : "target"
}
],
"rule" : [
{
"name" : "SetRTLnr",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "lnr",
"transform" : "copy",
"parameter" : [
{
"valueInteger" : 1
}
]
}
]
},
{
"name" : "MapRTPeriod",
"source" : [
{
"context" : "src",
"element" : "performed",
"variable" : "perf",
"condition" : "$this.is(Period)"
}
],
"rule" : [
{
"name" : "SetRTBeginn",
"source" : [
{
"context" : "perf",
"element" : "start",
"variable" : "s"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "beginn",
"transform" : "copy",
"parameter" : [
{
"valueId" : "s"
}
]
}
]
},
{
"name" : "SetRTEnde",
"source" : [
{
"context" : "perf",
"element" : "end",
"variable" : "e"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "ende",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e"
}
]
}
]
}
]
},
{
"name" : "MapRTStellExt",
"source" : [
{
"context" : "src",
"element" : "extension",
"variable" : "ext",
"condition" : "url = 'https://www.senologie.org/fhir/StructureDefinition/ex-senologie-therapiestellung'"
}
],
"rule" : [
{
"name" : "MapRTStellVal",
"source" : [
{
"context" : "ext",
"element" : "value",
"variable" : "val"
}
],
"rule" : [
{
"name" : "SetRTNeo",
"source" : [
{
"context" : "val",
"element" : "coding",
"variable" : "c",
"condition" : "code = 'neoadjuvant'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "stellungZurOP",
"transform" : "copy",
"parameter" : [
{
"valueString" : "N"
}
]
}
]
},
{
"name" : "SetRTAdj",
"source" : [
{
"context" : "val",
"element" : "coding",
"variable" : "c",
"condition" : "code = 'adjuvant'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "stellungZurOP",
"transform" : "copy",
"parameter" : [
{
"valueString" : "A"
}
]
}
]
},
{
"name" : "SetRTPal",
"source" : [
{
"context" : "val",
"element" : "coding",
"variable" : "c",
"condition" : "code = 'palliativ'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "stellungZurOP",
"transform" : "copy",
"parameter" : [
{
"valueString" : "P"
}
]
}
]
}
]
}
]
},
{
"name" : "MapRTGesamtdosis",
"source" : [
{
"context" : "src",
"element" : "extension",
"variable" : "ext",
"condition" : "url = 'https://www.medizininformatik-initiative.de/fhir/ext/modul-onko/StructureDefinition/mii-ex-onko-strahlentherapie-bestrahlung-gesamtdosis'"
}
],
"rule" : [
{
"name" : "ExtractRTGesamtdosisValue",
"source" : [
{
"context" : "ext",
"element" : "value",
"variable" : "val"
}
],
"rule" : [
{
"name" : "SetRTGesamtdosis",
"source" : [
{
"context" : "val",
"element" : "value",
"variable" : "v"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "gesamtdosisGy",
"transform" : "copy",
"parameter" : [
{
"valueId" : "v"
}
]
}
]
}
]
}
]
},
{
"name" : "MapRTEinzeldosis",
"source" : [
{
"context" : "src",
"element" : "extension",
"variable" : "ext",
"condition" : "url = 'https://www.senologie.org/fhir/StructureDefinition/ex-senologie-einzeldosis'"
}
],
"rule" : [
{
"name" : "ExtractRTEinzeldosisValue",
"source" : [
{
"context" : "ext",
"element" : "value",
"variable" : "val"
}
],
"rule" : [
{
"name" : "SetRTEinzeldosis",
"source" : [
{
"context" : "val",
"element" : "value",
"variable" : "v"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "einzeldosisGy",
"transform" : "copy",
"parameter" : [
{
"valueId" : "v"
}
]
}
]
}
]
}
]
},
{
"name" : "MapRTZiel",
"source" : [
{
"context" : "src",
"element" : "bodySite",
"variable" : "bs"
}
],
"rule" : [
{
"name" : "MapRTZielCoding",
"source" : [
{
"context" : "bs",
"element" : "coding",
"variable" : "c",
"condition" : "system = 'http://snomed.info/sct'"
}
],
"rule" : [
{
"name" : "SetRTBrust",
"source" : [
{
"context" : "c",
"element" : "code",
"variable" : "cd",
"condition" : "$this = '76752008'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "zielgebiet",
"transform" : "copy",
"parameter" : [
{
"valueString" : "1"
}
]
}
]
},
{
"name" : "SetRTLAW",
"source" : [
{
"context" : "c",
"element" : "code",
"variable" : "cd",
"condition" : "$this = '59441001'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "zielgebiet",
"transform" : "copy",
"parameter" : [
{
"valueString" : "2"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "MapEndokrineTherapie",
"typeMode" : "none",
"documentation" : "============================================================================\r\nEndokrine Therapie: Procedure (therapieart=HO) -> EndokrineTherapie-Block\r\nEndokrine Therapien (Tamoxifen, Aromatasehemmer, GnRH, Fulvestrant,\r\nCDK4/6-Inhibitoren) werden als Systemtherapie-Procedures mit therapieart=HO\r\nmodelliert. Die Substanzklasse wird ueber ATC-Codes abgeleitet:\r\n1=Tamoxifen (L02BA01), 2=Aromatasehemmer (L02BG*),\r\n3=GnRH-Analogon (L02AE*), 4=Fulvestrant (L02BA03),\r\n5=CDK4/6-Inhibitor (L01EF*), 9=sonstige\r\n============================================================================",
"input" : [
{
"name" : "src",
"type" : "Procedure",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "BackboneElement",
"mode" : "target"
}
],
"rule" : [
{
"name" : "SetEndoLnr",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "lnr",
"transform" : "copy",
"parameter" : [
{
"valueInteger" : 1
}
]
}
]
},
{
"name" : "MapEndoPeriod",
"source" : [
{
"context" : "src",
"element" : "performed",
"variable" : "perf",
"condition" : "$this.is(Period)"
}
],
"rule" : [
{
"name" : "SetEndoBeginn",
"source" : [
{
"context" : "perf",
"element" : "start",
"variable" : "s"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "beginn",
"transform" : "copy",
"parameter" : [
{
"valueId" : "s"
}
]
}
]
},
{
"name" : "SetEndoEnde",
"source" : [
{
"context" : "perf",
"element" : "end",
"variable" : "e"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "ende",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e"
}
]
}
]
}
]
},
{
"name" : "MapEndoStellExt",
"source" : [
{
"context" : "src",
"element" : "extension",
"variable" : "ext",
"condition" : "url.contains('mii-ex-onko-systemische-therapie-intention')"
}
],
"rule" : [
{
"name" : "MapEndoStellVal",
"source" : [
{
"context" : "ext",
"element" : "value",
"variable" : "val"
}
],
"rule" : [
{
"name" : "MapEndoStellCoding",
"source" : [
{
"context" : "val",
"element" : "coding",
"variable" : "c"
}
],
"rule" : [
{
"name" : "SetEndoAdj",
"source" : [
{
"context" : "c",
"element" : "code",
"variable" : "cd",
"condition" : "$this = 'K'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "stellungZurOP",
"transform" : "copy",
"parameter" : [
{
"valueString" : "A"
}
]
}
]
},
{
"name" : "SetEndoPal",
"source" : [
{
"context" : "c",
"element" : "code",
"variable" : "cd",
"condition" : "$this = 'P'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "stellungZurOP",
"transform" : "copy",
"parameter" : [
{
"valueString" : "P"
}
]
}
]
},
{
"name" : "SetEndoNeo",
"source" : [
{
"context" : "c",
"element" : "code",
"variable" : "cd",
"condition" : "$this = 'N'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "stellungZurOP",
"transform" : "copy",
"parameter" : [
{
"valueString" : "N"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "MapEndoSubstanzATC",
"source" : [
{
"context" : "src",
"element" : "code",
"variable" : "code"
}
],
"rule" : [
{
"name" : "MapEndoSubstanzATCCoding",
"source" : [
{
"context" : "code",
"element" : "coding",
"variable" : "c",
"condition" : "system = 'http://fhir.de/CodeSystem/bfarm/atc'"
}
],
"rule" : [
{
"name" : "SetEndoTamox",
"source" : [
{
"context" : "c",
"element" : "code",
"variable" : "cd",
"condition" : "$this = 'L02BA01'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "substanz",
"transform" : "copy",
"parameter" : [
{
"valueString" : "1"
}
]
}
]
},
{
"name" : "SetEndoFulv",
"source" : [
{
"context" : "c",
"element" : "code",
"variable" : "cd",
"condition" : "$this = 'L02BA03'"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "substanz",
"transform" : "copy",
"parameter" : [
{
"valueString" : "4"
}
]
}
]
},
{
"name" : "SetEndoAI",
"source" : [
{
"context" : "c",
"element" : "code",
"variable" : "cd",
"condition" : "$this.startsWith('L02BG')"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "substanz",
"transform" : "copy",
"parameter" : [
{
"valueString" : "2"
}
]
}
]
},
{
"name" : "SetEndoGnRH",
"source" : [
{
"context" : "c",
"element" : "code",
"variable" : "cd",
"condition" : "$this.startsWith('L02AE')"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "substanz",
"transform" : "copy",
"parameter" : [
{
"valueString" : "3"
}
]
}
]
},
{
"name" : "SetEndoCDK",
"source" : [
{
"context" : "c",
"element" : "code",
"variable" : "cd",
"condition" : "$this.startsWith('L01EF')"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "substanz",
"transform" : "copy",
"parameter" : [
{
"valueString" : "5"
}
]
}
]
}
]
}
]
}
]
}
]
}