From 0127eafac99f92df3a9df93512b7a8b6dfad1a39 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Tue, 17 Mar 2026 12:21:21 +0100 Subject: feat: add broad consent information (#257) --- forms/dnpm-formulare.osc | 193 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 175 insertions(+), 18 deletions(-) diff --git a/forms/dnpm-formulare.osc b/forms/dnpm-formulare.osc index debdb2c..4c571fe 100644 --- a/forms/dnpm-formulare.osc +++ b/forms/dnpm-formulare.osc @@ -1,7 +1,7 @@ - 2026-03-16Z + 2026-03-17Z OnkoStar 2.14.2 @@ -8433,7 +8433,7 @@ Gemäß DNPM-Datenmodell 2.1 false 20119 8ac8ca4e-e415-41be-ab7e-53208af6270b - 3 + 4 date @@ -8534,6 +8534,30 @@ Gemäß DNPM-Datenmodell 2.1 73e3761d-7003-4680-b6c1-d41c8450f84a 1 + + e_broadconsent_present + e_broadconsent_present + Broad Consent elektronisch vorhanden + boolean + + + 0 + + true + false + false + false + 0.0 + + false + false + 0 + false + + 20119 + 0728c440-96be-44c4-82c7-be0bcd82fd5e + 1 + @@ -8911,8 +8935,8 @@ Gemäß DNPM-Datenmodell 2.1 empfehlungskategorie <> 'studie' true - studie empfehlungskategorie + studie false @@ -9281,8 +9305,8 @@ Gemäß DNPM-Datenmodell 2.1 empfehlungskategorie <> 'studie' true - studie empfehlungskategorie + studie false @@ -17373,8 +17397,8 @@ Gemäß DNPM-Datenmodell 2.1 AntragKostenuebernahme = '1'&#10;and&#10;GrundAblehnungKosten = 'w' true - AntragKostenuebernahme GrundAblehnungKosten + AntragKostenuebernahme false @@ -20921,7 +20945,7 @@ Gemäß DNPM-Datenmodell 2.1 false 20119 85f99b8b-2b5d-4493-b001-edf8b0e6ac4c - 5 + 7 @@ -22907,8 +22931,8 @@ Gemäß DNPM-Datenmodell 2.1 not ICD10.getCategories()->includes('Gehirn') and not(isEmptyString(TumorgradingAlt)) true - ICD10 TumorgradingAlt + ICD10 false @@ -26067,8 +26091,8 @@ Gemäß DNPM-Datenmodell 2.1 0 0 false - <div style="margin-left:10px">&#10;<font style="font-weight: bold;color: orange">DNPM Consent MV §64e</font>&#10;<p>&#10; <b>Einwilligungen</b>&#10; <p>Teilnahme: {sequencing.shortdesc},</p>&#10; <p>Fallidentifz.: {caseidentification.shortdesc},</p>&#10; <p>Re-Identifiz: {reidentification.shortdesc}</p>&#10;</p>&#10;</div> - <div style="margin-left:10px">&#10;<font style="font-weight: bold;color: orange">DNPM Consent MV §64e</font>&#10;<p>&#10; <b>Einwilligungen</b>&#10; <p>Teilnahme: {sequencing.shortdesc},</p>&#10; <p>Fallidentifz.: {caseidentification.shortdesc},</p>&#10; <p>Re-Identifiz: {reidentification.shortdesc}</p>&#10;</p>&#10;</div> + <div style="margin-left:10px">&#10;<font style="font-weight: bold;color: orange">DNPM Consent MV §64e</font>&#10;<p>&#10; <b>Einwilligungen MV §64e</b>&#10; <if test="sequencing = 'permit'">&#10; <then><p style="color: green">Teilnahme: zugestimmt,</p></then>&#10; <else><p style="color: red">Teilnahme: abgelehnt,</p></else>&#10; </if>&#10; <if test="caseidentification = 'permit'">&#10; <then><p style="color: green">Fallidentifz: zugestimmt,</p></then>&#10; <else><p style="color: red">Fallidentifz: abgelehnt,</p></else>&#10; </if>&#10; <if test="reidentification = 'permit'">&#10; <then><p style="color: green">Re-Identifiz: zugestimmt</p></then>&#10; <else><p style="color: red">Re-Identifiz: abgelehnt</p></else>&#10; </if>&#10;</p>&#10;<p>&#10; <b>Broad Consent</b>&#10; <if test="ebroadconsentpresent">&#10; <then><p style="color: green">elektronisch vorhanden</p></then>&#10; <else><p style="color: red">nicht elektronisch vorhanden</p></else>&#10; </if>&#10;</p>&#10;</div> + <div style="margin-left:10px">&#10;<font style="font-weight: bold;color: orange">DNPM Consent MV §64e</font>&#10;<p>&#10; <b>Einwilligungen MV §64e</b>&#10; <if test="sequencing = 'permit'">&#10; <then><p style="color: green">Teilnahme: zugestimmt,</p></then>&#10; <else><p style="color: red">Teilnahme: abgelehnt,</p></else>&#10; </if>&#10; <if test="caseidentification = 'permit'">&#10; <then><p style="color: green">Fallidentifz: zugestimmt,</p></then>&#10; <else><p style="color: red">Fallidentifz: abgelehnt,</p></else>&#10; </if>&#10; <if test="reidentification = 'permit'">&#10; <then><p style="color: green">Re-Identifiz: zugestimmt</p></then>&#10; <else><p style="color: red">Re-Identifiz: abgelehnt</p></else>&#10; </if>&#10;</p>&#10;<p>&#10; <b>Broad Consent</b>&#10; <if test="ebroadconsentpresent">&#10; <then><p style="color: green">elektronisch vorhanden</p></then>&#10; <else><p style="color: red">nicht elektronisch vorhanden</p></else>&#10; </if>&#10;</p>&#10;</div> @@ -26090,18 +26114,18 @@ Gemäß DNPM-Datenmodell 2.1 true - // Stand&#10;let date = Array.from(getFieldValue('Verlauf'))&#10; .sort((sf1, sf2) => sf1.date[0] < sf2.date[0])&#10; .map((sf) => sf.date);&#10;if (date.length > 0) {&#10; setFieldValue('date', date[0]);&#10;}&#10;&#10;// Teilnahme&#10;let sequencing = Array.from(getFieldValue('Verlauf'))&#10; .sort((sf1, sf2) => sf1.date[0] < sf2.date[0])&#10; .filter((sf) => sf.sequencing.val != null && sf.sequencing.val != '')&#10; .map((sf) => sf.sequencing.val);&#10;if (sequencing.length > 0) {&#10; setFieldValue('sequencing', sequencing[0]);&#10;} else {&#10; setFieldValue('sequencing', 'deny');&#10;}&#10;&#10;// Fallidentifizierung&#10;let caseidentification = Array.from(getFieldValue('Verlauf'))&#10; .sort((sf1, sf2) => sf1.date[0] < sf2.date[0])&#10; .filter((sf) => sf.caseidentification.val != null && sf.caseidentification.val != '')&#10; .map((sf) => sf.caseidentification.val);&#10;if (caseidentification.length > 0) {&#10; setFieldValue('caseidentification', caseidentification[0]);&#10;} else {&#10; setFieldValue('caseidentification', 'deny');&#10;}&#10;&#10;// Re-Identifikation&#10;let reidentification = Array.from(getFieldValue('Verlauf'))&#10; .sort((sf1, sf2) => sf1.date[0] < sf2.date[0])&#10; .filter((sf) => sf.reidentification.val != null && sf.reidentification.val != '')&#10; .map((sf) => sf.reidentification.val);&#10;if (reidentification.length > 0) {&#10; setFieldValue('reidentification', reidentification[0]);&#10;} else {&#10; setFieldValue('reidentification', 'deny');&#10;} + // Stand&#10;let date = Array.from(getFieldValue('VerlaufEinwilligungMV'))&#10; .sort((sf1, sf2) => sf1.date[0] < sf2.date[0])&#10; .map((sf) => sf.date);&#10;if (date.length > 0) {&#10; setFieldValue('date', date[0]);&#10;}&#10;&#10;// Teilnahme&#10;let sequencing = Array.from(getFieldValue('VerlaufEinwilligungMV'))&#10; .sort((sf1, sf2) => sf1.date[0] < sf2.date[0])&#10; .filter((sf) => sf.sequencing.val != null && sf.sequencing.val != '')&#10; .map((sf) => sf.sequencing.val);&#10;if (sequencing.length > 0) {&#10; setFieldValue('sequencing', sequencing[0]);&#10;} else {&#10; setFieldValue('sequencing', 'deny');&#10;}&#10;&#10;// Fallidentifizierung&#10;let caseidentification = Array.from(getFieldValue('VerlaufEinwilligungMV'))&#10; .sort((sf1, sf2) => sf1.date[0] < sf2.date[0])&#10; .filter((sf) => sf.caseidentification.val != null && sf.caseidentification.val != '')&#10; .map((sf) => sf.caseidentification.val);&#10;if (caseidentification.length > 0) {&#10; setFieldValue('caseidentification', caseidentification[0]);&#10;} else {&#10; setFieldValue('caseidentification', 'deny');&#10;}&#10;&#10;// Re-Identifikation&#10;let reidentification = Array.from(getFieldValue('VerlaufEinwilligungMV'))&#10; .sort((sf1, sf2) => sf1.date[0] < sf2.date[0])&#10; .filter((sf) => sf.reidentification.val != null && sf.reidentification.val != '')&#10; .map((sf) => sf.reidentification.val);&#10;if (reidentification.length > 0) {&#10; setFieldValue('reidentification', reidentification[0]);&#10;} else {&#10; setFieldValue('reidentification', 'deny');&#10;} true 20119 85f99b8b-2b5d-4493-b001-edf8b0e6ac4c - 5 + 7 true section AktuelleAngaben - Aktuelle Angaben zur Einwilligung + Aktuelle Angaben zur Einwilligung MV true false true @@ -26118,7 +26142,6 @@ Gemäß DNPM-Datenmodell 2.1 none 0 - 0 false BOTH @@ -26139,6 +26162,73 @@ Gemäß DNPM-Datenmodell 2.1 false + 0 + 0 + 0 + 0 + 0 + false + false + false + 1 + 14004 + 0 + true + + false + false + 0 + 0 + true + false + 0 + 20119 + dcd16503-5e82-47d5-b886-50703ae88edb + 2 + false + false + + + section + BroadConsent + Broad Consent + true + false + true + 3.0 + + + + false + false + + 0 + 0 + + + none + 0 + + 0 + false + BOTH + false + + + + 1 + true + false + 0 + 0 + false + + + true + false + false + + 0 0 @@ -26161,19 +26251,19 @@ Gemäß DNPM-Datenmodell 2.1 false 0 20119 - dcd16503-5e82-47d5-b886-50703ae88edb + 8e795f42-a129-415e-a654-f341f7499f46 1 false false subform - Verlauf - Verlauf + VerlaufEinwilligungMV + Verlauf Einwilligung MV true false false - 2.0 + 4.0 @@ -26229,7 +26319,7 @@ Gemäß DNPM-Datenmodell 2.1 0 20119 3f2c5d45-11ae-4867-8444-5f23242e1e1a - 2 + 4 false false @@ -26367,6 +26457,73 @@ Gemäß DNPM-Datenmodell 2.1 false false + + checkbox + ebroadconsentpresent + Broad Consent elektronisch vorhanden + true + false + true + 4.0 + + + + false + false + + 0 + 0 + e_broadconsent_present + DNPM_ConsentMV + BroadConsent + none + 0 + 0 + false + BOTH + false + + + + 1 + true + false + 0 + 0 + false + Wenn der Broad Consent in elektrinischer Form vor liegt, hier markieren.&#10;&#10;Auch ein abgelehnter Broad Consent der in elektrinischer Form vor liegt gilt als vorhanden. + + true + false + false + + + 0 + 0 + 0 + 0 + 0 + false + false + false + 1 + 14069 + 0 + true + + false + false + 0 + 0 + true + false + 0 + 20119 + 4dcdb98d-d98f-48b8-821f-92a5a5939fad + 2 + false + false + combobox reidentification -- cgit v1.2.3