diff --git a/forms/dnpm-formulare.osc b/forms/dnpm-formulare.osc
index c111ed8..10e7c96 100644
--- a/forms/dnpm-formulare.osc
+++ b/forms/dnpm-formulare.osc
@@ -1258,6 +1258,62 @@
1
+
+ DNPM.Empfehlungskategorie
+ Empfehlungskategorie
+ SIMPLE
+ false
+ MTB-Empfehlungskategorie gem. DNPM-Datenmodell V 2.1
+ 20119
+ 8a9596a4-71e8-4ad9-8a8c-bcde51a5143c
+ 2
+
+
+ 1
+ 2025-04-19Z
+ DNPM.Empfehlungskategorie.v1
+ true
+ v1
+ 20119
+ 1feaf8e3-698b-47be-bc67-54189cc76872
+ 2
+
+
+ systemisch
+ Systemische Therapie-Empfehlung
+ Systemische Therapie-Empfehlung
+
+
+ 1.0
+
+
+ studie
+ Studienempfehlung
+ Studienempfehlung
+
+
+ 2.0
+
+
+ sonstige
+ Sonstige Empfehlung
+ Sonstige Empfehlung
+
+
+ 3.0
+
+
+
+
+
+
+
+ BENUTZER Bibliothek
+
+ DNPM
+ 1
+
+
DNPM.LeitlinienStatus
DNPM.LeitlinienStatus
@@ -3095,7 +3151,7 @@ Gemäß DNPM-Datenmodell 2.1
false
20119
3de135fd-6d55-4280-9889-6ea73e08d668
- 78
+ 79
DNPM.Evidenzlevel
@@ -3803,6 +3859,31 @@ Gemäß DNPM-Datenmodell 2.1
903ec668-3227-400d-bf3b-a3eb1e4cdf2c
1
+
+ DNPM.Empfehlungskategorie
+ empfehlungskategorie
+ empfehlungskategorie
+ Empfehlungskategorie
+ propertyCatalogue
+
+
+ 0
+
+ true
+ false
+ false
+ false
+ 0.0
+
+ false
+ false
+ 2
+ false
+
+ 20119
+ 2e9e7db9-f049-45d4-93be-f9f09e1eb577
+ 1
+
@@ -6725,7 +6806,7 @@ Gemäß DNPM-Datenmodell 2.1
20119
06847050-ff8f-46c4-87b8-9584c0cef990
- 257
+ 261
true
@@ -6871,6 +6952,9 @@ Gemäß DNPM-Datenmodell 2.1
true
8.0
+
+
+ false
false
0
@@ -6882,9 +6966,17 @@ Gemäß DNPM-Datenmodell 2.1
0
false
BOTH
+
+ empfehlungskategorie <> 'systemisch'
+ true
+
+ empfehlungskategorie
+
+
false
+
1
true
false
@@ -6907,7 +6999,7 @@ Gemäß DNPM-Datenmodell 2.1
false
false
1
- 0
+ 12362
0
true
@@ -6920,7 +7012,7 @@ Gemäß DNPM-Datenmodell 2.1
0
20119
683d43e2-e797-4ece-b348-5bae78d41247
- 2
+ 3
false
false
@@ -7080,19 +7172,21 @@ Gemäß DNPM-Datenmodell 2.1
false
BOTH
- hatstudie = '1'
+ hatstudie = '1' or empfehlungskategorie <> 'systemisch'
true
+ empfehlungskategorie
hatstudie
false
- let addText = function() { let v = getFieldValue('studienalle'); let ie = getFieldValue('studieinternextern') == 'i' ? ' (intern)' : ' (extern)'; v = v + getFieldValue('studienct') + '; ' + getFieldValue('studie') + ie + '; ' + getFieldValue('studieort') + '\n'; setFieldValue('studienalle', v); } var addJSON = function() { let v = []; try { v = JSON.parse(getFieldValue('studienallejson')); if (!Array.isArray(v)) { v = []; } } catch (e) { v = []; } v.push({ studie: getFieldValue('studie'), nct: getFieldValue('studienct'), ort: getFieldValue('studieort'), internextern: getFieldValue('studieinternextern') }); setFieldValue('studienallejson', JSON.stringify(v)); } addText(); addJSON(); setFieldValue('studie', ''); setFieldValue('studienct', ''); setFieldValue('studieort', ''); setFieldValue('studieinternextern', '');
+ let addText = function() { let v = getFieldValue('studienalle'); let ie = getFieldValue('studieinternextern') == 'i' ? ' (intern)' : ' (extern)'; v = v + getFieldValue('studienct') + '; ' + getFieldValue('studie') + ie + '; ' + getFieldValue('studieort') + '\n'; setFieldValue('studienalle', v); } var addJSON = function() { let v = []; try { v = JSON.parse(getFieldValue('studienallejson')); if (!Array.isArray(v)) { v = []; } } catch (e) { v = []; } v.push({ studie: getFieldValue('studie'), system: getFieldValue('studiensystem'), // New: ID id: getFieldValue('studienct'), // Old: NCT (from NCT-ID) nct: getFieldValue('studienct'), ort: getFieldValue('studieort'), internextern: getFieldValue('studieinternextern') }); setFieldValue('studienallejson', JSON.stringify(v)); } addText(); addJSON(); setFieldValue('studie', ''); setFieldValue('studiensystem', ''); setFieldValue('studienct', ''); setFieldValue('studieort', ''); setFieldValue('studieinternextern', '');
true
+
1
true
false
@@ -7115,7 +7209,7 @@ Gemäß DNPM-Datenmodell 2.1
false
false
1
- 0
+ 12355
0
true
@@ -7128,7 +7222,7 @@ Gemäß DNPM-Datenmodell 2.1
0
20119
57064ddd-5793-43cf-b85f-6eb236c9381b
- 24
+ 26
false
false
@@ -7225,9 +7319,10 @@ Gemäß DNPM-Datenmodell 2.1
false
BOTH
- hatstudie = '1'
+ hatstudie = '1' or empfehlungskategorie <> 'systemisch'
true
+ empfehlungskategorie
hatstudie
@@ -7238,6 +7333,7 @@ Gemäß DNPM-Datenmodell 2.1
+
1
true
false
@@ -7260,7 +7356,7 @@ Gemäß DNPM-Datenmodell 2.1
false
false
1
- 0
+ 12373
0
true
@@ -7273,7 +7369,7 @@ Gemäß DNPM-Datenmodell 2.1
0
20119
a14f08b9-4751-4730-ab5b-846ab84cc6bc
- 6
+ 7
false
false
@@ -7298,6 +7394,81 @@ Gemäß DNPM-Datenmodell 2.1
none
0
+ 0
+ false
+ BOTH
+
+ empfehlungskategorie <> 'studie'
+ true
+
+ empfehlungskategorie
+ studie
+
+
+ false
+
+
+
+ 1
+ true
+ false
+ 0
+ 0
+ false
+ Empfehlungsart gemäß DNPM-Datenmodell V 2.1. Angabe ist optional.
+
+ true
+ false
+ false
+ code
+ code,kurz
+ 0
+ 0
+ 0
+ 0
+ 0
+ false
+ false
+ false
+ 1
+ 13971
+ 0
+ true
+
+ false
+ false
+ 1
+ 0
+ true
+ false
+ 0
+ 20119
+ 9f549070-4f23-4aa8-8ae8-b39f548ac828
+ 2
+ false
+ false
+
+
+ combobox
+ empfehlungskategorie
+ Empfehlungskategorie
+ true
+ false
+ true
+ 3.25
+
+
+
+ false
+ false
+
+ 1
+ 0
+ empfehlungskategorie
+ DNPM_UF_Einzelempfehlung
+
+ none
+ 0
0
false
@@ -7312,7 +7483,7 @@ Gemäß DNPM-Datenmodell 2.1
0
0
false
- Empfehlungsart gemäß DNPM-Datenmodell V 2.1. Angabe ist optional.
+
true
false
@@ -7341,7 +7512,7 @@ Gemäß DNPM-Datenmodell 2.1
false
0
20119
- 9f549070-4f23-4aa8-8ae8-b39f548ac828
+ 201cc444-59b8-4bc7-9be8-8d473315bd46
1
false
false
@@ -7892,6 +8063,9 @@ Gemäß DNPM-Datenmodell 2.1
true
4.0
+
+
+ false
false
0
@@ -7903,9 +8077,17 @@ Gemäß DNPM-Datenmodell 2.1
0
false
BOTH
+
+ empfehlungskategorie <> 'sonstige'
+ true
+
+ empfehlungskategorie
+
+
false
+
1
true
false
@@ -7928,7 +8110,7 @@ Gemäß DNPM-Datenmodell 2.1
false
false
1
- 0
+ 12365
0
true
@@ -7941,7 +8123,7 @@ Gemäß DNPM-Datenmodell 2.1
0
20119
96e76da7-0ec5-4744-acb9-47b7c7ce957c
- 4
+ 5
false
false
@@ -7967,8 +8149,13 @@ Gemäß DNPM-Datenmodell 2.1
none
0
0
- mandatory
+ false
BOTH
+
+ false
+ true
+
+
false
if (getFieldValue('hatstudie') == 'Nein') { setFieldValue('studienalle', ''); setFieldValue('studienallejson', ''); }
@@ -7976,7 +8163,8 @@ Gemäß DNPM-Datenmodell 2.1
- 1
+
+ 0
true
false
0
@@ -7998,7 +8186,7 @@ Gemäß DNPM-Datenmodell 2.1
false
false
1
- 0
+ 12354
0
true
@@ -8011,7 +8199,7 @@ Gemäß DNPM-Datenmodell 2.1
0
20119
51ed5d9e-d3f8-4a7f-aaea-f2a8af80cb01
- 4
+ 6
false
false
@@ -8491,15 +8679,17 @@ Gemäß DNPM-Datenmodell 2.1
false
BOTH
- hatstudie = '1'
+ hatstudie = '1' or empfehlungskategorie <> 'systemisch'
true
+ empfehlungskategorie
hatstudie
false
+
1
true
false
@@ -8522,7 +8712,7 @@ Gemäß DNPM-Datenmodell 2.1
false
false
1
- 0
+ 12370
0
true
@@ -8535,7 +8725,7 @@ Gemäß DNPM-Datenmodell 2.1
0
20119
8f08ebac-6d34-4e12-ba1e-d27eec3954f4
- 3
+ 4
false
false
@@ -8564,15 +8754,17 @@ Gemäß DNPM-Datenmodell 2.1
false
BOTH
- hatstudie = '1'
+ hatstudie = '1' or empfehlungskategorie <> 'systemisch'
true
+ empfehlungskategorie
hatstudie
false
+
1
true
false
@@ -8595,7 +8787,7 @@ Gemäß DNPM-Datenmodell 2.1
false
false
1
- 0
+ 12363
0
true
@@ -8608,7 +8800,7 @@ Gemäß DNPM-Datenmodell 2.1
0
20119
3c561c27-2dc3-4bf0-ae49-72472d47ac16
- 3
+ 4
false
false
@@ -8637,19 +8829,21 @@ Gemäß DNPM-Datenmodell 2.1
false
BOTH
- hatstudie = '1'
+ hatstudie = '1' or empfehlungskategorie <> 'systemisch'
true
+ empfehlungskategorie
hatstudie
false
- let text = getFieldValue('studienalle'); let json = []; let newJson = []; try { json = JSON.parse(getFieldValue('studienallejson')); if (!Array.isArray(json)) { json = []; } } catch (e) { json = []; } if (typeof text === 'string' || text instanceof String) { text.split('\n').forEach(line => { let nct = line.split(';')[0]; json.forEach(entry => { if (nct === entry.nct) { newJson.push(entry); } }); }); setFieldValue('studienallejson', JSON.stringify(newJson)); } else { setFieldValue('studienallejson', JSON.stringify([])); }
+ let text = getFieldValue('studienalle'); let json = []; let newJson = []; try { json = JSON.parse(getFieldValue('studienallejson')); if (!Array.isArray(json)) { json = []; } } catch (e) { json = []; } if (typeof text === 'string' || text instanceof String) { text.split('\n').forEach(line => { let id = line.split(';')[0]; json.forEach(entry => { if (id === entry.nct) { newJson.push(entry); } }); }); setFieldValue('studienallejson', JSON.stringify(newJson)); } else { setFieldValue('studienallejson', JSON.stringify([])); }
true
+
1
true
false
@@ -8672,7 +8866,7 @@ Gemäß DNPM-Datenmodell 2.1
false
false
1
- 0
+ 12371
0
true
@@ -8685,7 +8879,7 @@ Gemäß DNPM-Datenmodell 2.1
0
20119
1bb8b677-1d9e-4d66-8ab2-670b0f0c6980
- 10
+ 12
false
false
@@ -8785,9 +8979,10 @@ Gemäß DNPM-Datenmodell 2.1
false
BOTH
- hatstudie = '1'
+ hatstudie = '1' or empfehlungskategorie <> 'systemisch'
true
+ empfehlungskategorie
hatstudie
@@ -8830,7 +9025,7 @@ Gemäß DNPM-Datenmodell 2.1
0
20119
97dce1b6-62be-4a42-b1e8-dc79b4cdf371
- 9
+ 10
false
false
@@ -8859,9 +9054,10 @@ Gemäß DNPM-Datenmodell 2.1
false
BOTH
- hatstudie = '1'
+ hatstudie = '1' or empfehlungskategorie <> 'systemisch'
true
+ empfehlungskategorie
hatstudie
@@ -8904,7 +9100,7 @@ Gemäß DNPM-Datenmodell 2.1
0
20119
d269344e-37d8-43af-9ebc-be120cf74a44
- 2
+ 3
false
false
@@ -8917,6 +9113,9 @@ Gemäß DNPM-Datenmodell 2.1
false
3.0
+
+
+ false
false
0
@@ -8930,15 +9129,17 @@ Gemäß DNPM-Datenmodell 2.1
false
BOTH
- hatstudie = '1'
+ hatstudie = '1' or empfehlungskategorie <> 'systemisch'
true
+ empfehlungskategorie
hatstudie
false
+
1
true
false
@@ -8961,7 +9162,7 @@ Gemäß DNPM-Datenmodell 2.1
false
false
1
- 0
+ 12358
0
true
@@ -8974,7 +9175,7 @@ Gemäß DNPM-Datenmodell 2.1
0
20119
15a10da3-89d8-4700-acdd-0fadcd17d197
- 8
+ 9
false
false
@@ -10691,7 +10892,7 @@ Gemäß DNPM-Datenmodell 2.1
false
20119
06847050-ff8f-46c4-87b8-9584c0cef990
- 257
+ 261
@@ -13459,8 +13660,8 @@ Gemäß DNPM-Datenmodell 2.1
AntragKostenuebernahme = '1' and GrundAblehnungKosten = 'w'
true
- GrundAblehnungKosten
AntragKostenuebernahme
+ GrundAblehnungKosten
false
@@ -14527,8 +14728,8 @@ Gemäß DNPM-Datenmodell 2.1
AntragKostenuebernahme = '1' and StatusKostenuebernahme = 'rejected'
true
- StatusKostenuebernahme
AntragKostenuebernahme
+ StatusKostenuebernahme
false
@@ -14865,7 +15066,7 @@ Gemäß DNPM-Datenmodell 2.1
false
20119
06847050-ff8f-46c4-87b8-9584c0cef990
- 257
+ 261
diff --git a/scripts/studien-add-button.js b/scripts/studien-add-button.js
new file mode 100644
index 0000000..8f86c4e
--- /dev/null
+++ b/scripts/studien-add-button.js
@@ -0,0 +1,38 @@
+let addText = function() {
+ let v = getFieldValue('studienalle');
+ let ie = getFieldValue('studieinternextern') == 'i' ? ' (intern)' : ' (extern)';
+ v = v + getFieldValue('studienct') + '; ' + getFieldValue('studie') + ie + '; ' + getFieldValue('studieort') + '\n';
+ setFieldValue('studienalle', v);
+}
+
+var addJSON = function() {
+ let v = [];
+ try {
+ v = JSON.parse(getFieldValue('studienallejson'));
+ if (!Array.isArray(v)) {
+ v = [];
+ }
+ } catch (e) {
+ v = [];
+ }
+ v.push({
+ studie: getFieldValue('studie'),
+ system: getFieldValue('studiensystem'),
+ // New: ID
+ id: getFieldValue('studienct'),
+ // Old: NCT (from NCT-ID)
+ nct: getFieldValue('studienct'),
+ ort: getFieldValue('studieort'),
+ internextern: getFieldValue('studieinternextern')
+ });
+ setFieldValue('studienallejson', JSON.stringify(v));
+}
+
+addText();
+addJSON();
+
+setFieldValue('studie', '');
+setFieldValue('studiensystem', '');
+setFieldValue('studienct', '');
+setFieldValue('studieort', '');
+setFieldValue('studieinternextern', '');
diff --git a/scripts/studien-edit.js b/scripts/studien-edit.js
new file mode 100644
index 0000000..d22b4f6
--- /dev/null
+++ b/scripts/studien-edit.js
@@ -0,0 +1,26 @@
+let text = getFieldValue('studienalle');
+let json = [];
+let newJson = [];
+
+try {
+ json = JSON.parse(getFieldValue('studienallejson'));
+ if (!Array.isArray(json)) {
+ json = [];
+ }
+} catch (e) {
+ json = [];
+}
+
+if (typeof text === 'string' || text instanceof String) {
+ text.split('\n').forEach(line => {
+ let id = line.split(';')[0];
+ json.forEach(entry => {
+ if (id === entry.nct) {
+ newJson.push(entry);
+ }
+ });
+ });
+ setFieldValue('studienallejson', JSON.stringify(newJson));
+} else {
+ setFieldValue('studienallejson', JSON.stringify([]));
+}