From f7936ad6cd70e501f4b0b0c3663169cc9a20bcda Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Sun, 20 Apr 2025 14:25:07 +0200 Subject: [PATCH] feat: add propcat and formfield for Studienkategorie --- forms/dnpm-formulare.osc | 281 +++++++++++++++++++++++++++++----- scripts/studien-add-button.js | 38 +++++ scripts/studien-edit.js | 26 ++++ 3 files changed, 305 insertions(+), 40 deletions(-) create mode 100644 scripts/studien-add-button.js create mode 100644 scripts/studien-edit.js 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() {&#10; let v = getFieldValue('studienalle');&#10; let ie = getFieldValue('studieinternextern') == 'i' ? ' (intern)' : ' (extern)';&#10; v = v + getFieldValue('studienct') + '; ' + getFieldValue('studie') + ie + '; ' + getFieldValue('studieort') + '\n';&#10; setFieldValue('studienalle', v);&#10;}&#10;&#10;var addJSON = function() {&#10; let v = [];&#10; try {&#10; v = JSON.parse(getFieldValue('studienallejson'));&#10; if (!Array.isArray(v)) {&#10; v = [];&#10; }&#10; } catch (e) {&#10; v = [];&#10; }&#10; v.push({&#10; studie: getFieldValue('studie'),&#10; nct: getFieldValue('studienct'),&#10; ort: getFieldValue('studieort'),&#10; internextern: getFieldValue('studieinternextern')&#10; });&#10; setFieldValue('studienallejson', JSON.stringify(v));&#10;}&#10;&#10;addText();&#10;addJSON();&#10;&#10;setFieldValue('studie', '');&#10;setFieldValue('studienct', '');&#10;setFieldValue('studieort', '');&#10;setFieldValue('studieinternextern', ''); + let addText = function() {&#10; let v = getFieldValue('studienalle');&#10; let ie = getFieldValue('studieinternextern') == 'i' ? ' (intern)' : ' (extern)';&#10; v = v + getFieldValue('studienct') + '; ' + getFieldValue('studie') + ie + '; ' + getFieldValue('studieort') + '\n';&#10; setFieldValue('studienalle', v);&#10;}&#10;&#10;var addJSON = function() {&#10; let v = [];&#10; try {&#10; v = JSON.parse(getFieldValue('studienallejson'));&#10; if (!Array.isArray(v)) {&#10; v = [];&#10; }&#10; } catch (e) {&#10; v = [];&#10; }&#10; v.push({&#10; studie: getFieldValue('studie'),&#10; system: getFieldValue('studiensystem'),&#10; // New: ID&#10; id: getFieldValue('studienct'),&#10; // Old: NCT (from NCT-ID)&#10; nct: getFieldValue('studienct'),&#10; ort: getFieldValue('studieort'),&#10; internextern: getFieldValue('studieinternextern')&#10; });&#10; setFieldValue('studienallejson', JSON.stringify(v));&#10;}&#10;&#10;addText();&#10;addJSON();&#10;&#10;setFieldValue('studie', '');&#10;setFieldValue('studiensystem', '');&#10;setFieldValue('studienct', '');&#10;setFieldValue('studieort', '');&#10;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.&#10;&#10;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.&#10;&#10;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') {&#10; setFieldValue('studienalle', '');&#10; setFieldValue('studienallejson', '');&#10;} @@ -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');&#10;let json = [];&#10;let newJson = [];&#10;&#10;try {&#10; json = JSON.parse(getFieldValue('studienallejson'));&#10; if (!Array.isArray(json)) {&#10; json = [];&#10; }&#10;} catch (e) {&#10; json = [];&#10;}&#10;&#10;if (typeof text === 'string' || text instanceof String) {&#10; text.split('\n').forEach(line => {&#10; let nct = line.split(';')[0];&#10; json.forEach(entry => {&#10; if (nct === entry.nct) {&#10; newJson.push(entry);&#10; }&#10; });&#10; });&#10; setFieldValue('studienallejson', JSON.stringify(newJson));&#10;} else {&#10; setFieldValue('studienallejson', JSON.stringify([]));&#10;} + let text = getFieldValue('studienalle');&#10;let json = [];&#10;let newJson = [];&#10;&#10;try {&#10; json = JSON.parse(getFieldValue('studienallejson'));&#10; if (!Array.isArray(json)) {&#10; json = [];&#10; }&#10;} catch (e) {&#10; json = [];&#10;}&#10;&#10;if (typeof text === 'string' || text instanceof String) {&#10; text.split('\n').forEach(line => {&#10; let id = line.split(';')[0];&#10; json.forEach(entry => {&#10; if (id === entry.nct) {&#10; newJson.push(entry);&#10; }&#10; });&#10; });&#10; setFieldValue('studienallejson', JSON.stringify(newJson));&#10;} else {&#10; setFieldValue('studienallejson', JSON.stringify([]));&#10;} 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'&#10;and&#10;GrundAblehnungKosten = 'w' true - GrundAblehnungKosten AntragKostenuebernahme + GrundAblehnungKosten false @@ -14527,8 +14728,8 @@ Gemäß DNPM-Datenmodell 2.1 AntragKostenuebernahme = '1'&#10;and&#10;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([])); +}