From 1ea3e1b4224d18f46571c2d3f29d815bf68ed2a5 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Wed, 27 Sep 2023 20:20:44 +0200 Subject: [PATCH] Issue #46: Berechne Offset zur verwendeten Zeitzone --- forms/dnpm-formulare.osc | 6 +++--- scripts/klinik_anamnese-getEcogStatus.js | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/forms/dnpm-formulare.osc b/forms/dnpm-formulare.osc index 31a4c3b..4ba1125 100644 --- a/forms/dnpm-formulare.osc +++ b/forms/dnpm-formulare.osc @@ -1,7 +1,7 @@ - 2023-09-26Z + 2023-09-27Z OnkoStar 2.11.1.6 @@ -6301,7 +6301,7 @@ true - patient = getPatient();&#10;setFieldValue('Geburtsdatum', patient.geburtsdatum);&#10;setFieldValue('Todesdatum', patient.sterbedatum);&#10;setFieldValue('Geschlecht', patient.geschlecht);&#10;setFieldValue('Krankenkasse', patient.krankenkassennummer);&#10;&#10;erkrankung = getCurrentDisease();&#10;setFieldValue('DatumErstdiagnose', erkrankung.diagnosisDate);&#10;setFieldVersion('ICDO3Lokalisation', erkrankung.diagnosisDate)&#10;setFieldValue('ICDO3Lokalisation', erkrankung.localisationCode);&#10;setFieldVersion('ICDO3Histologie', erkrankung.diagnosisDate)&#10;setFieldValue('ICDO3Histologie', erkrankung.histologyCode);&#10;setFieldVersion('ICD10', erkrankung.diagnosisDate)&#10;setFieldValue('ICD10', erkrankung.icd10Code);&#10;&#10;executePluginMethod('DNPMHelper', 'getSystemischeTherapienFromDiagnose', {'DiagnoseId': getCurrentDisease().id},&#10;function(result) {&#10; setFieldValue('DNPMTherapielinie', result.result);&#10; for (var i = 0; i <= result.result.length; i++) setSubformFieldValue('Nummer', i, i) &#10;}, true);&#10;&#10;executePluginMethod('DNPMHelper', 'getEcogStatus', {PatientId: getPatient().id}, (resp) => {&#10; if (resp.status.code === 1) {&#10; // Hack: Get version id of ECOG status as stored in Database&#10; // by using initial empty entry and its version.&#10; // Since OS always creates an initial empty entry for subforms&#10; // this can be used to get required version id from within a form script.&#10; let version = getFieldValue('ECOGVerlauf')[0].ECOG.version;&#10;&#10; // Abort if no version available.&#10; if (version == null) {&#10; return;&#10; }&#10;&#10; let uf = resp.result&#10; .map(item => {&#10; let date = item.date.match(/^\d{4}-\d{2}-\d{2}/);&#10; let ecog = [];&#10; ecog.val = item.status;&#10; ecog.version = version;&#10; return {&#10; Datum: [date ? date[0] : null, 'exact'], ECOG: ecog&#10; };&#10; })&#10; // Ignore items without valid values&#10; .filter(item => item.Datum[0] && (item.ECOG >= 0 && item.ECOG <= 5));&#10; setFieldValue('ECOGVerlauf', uf);&#10; }&#10;}, false); + patient = getPatient();&#10;setFieldValue('Geburtsdatum', patient.geburtsdatum);&#10;setFieldValue('Todesdatum', patient.sterbedatum);&#10;setFieldValue('Geschlecht', patient.geschlecht);&#10;setFieldValue('Krankenkasse', patient.krankenkassennummer);&#10;&#10;erkrankung = getCurrentDisease();&#10;setFieldValue('DatumErstdiagnose', erkrankung.diagnosisDate);&#10;setFieldVersion('ICDO3Lokalisation', erkrankung.diagnosisDate)&#10;setFieldValue('ICDO3Lokalisation', erkrankung.localisationCode);&#10;setFieldVersion('ICDO3Histologie', erkrankung.diagnosisDate)&#10;setFieldValue('ICDO3Histologie', erkrankung.histologyCode);&#10;setFieldVersion('ICD10', erkrankung.diagnosisDate)&#10;setFieldValue('ICD10', erkrankung.icd10Code);&#10;&#10;executePluginMethod('DNPMHelper', 'getSystemischeTherapienFromDiagnose', {'DiagnoseId': getCurrentDisease().id},&#10;function(result) {&#10; setFieldValue('DNPMTherapielinie', result.result);&#10; for (var i = 0; i <= result.result.length; i++) setSubformFieldValue('Nummer', i, i) &#10;}, true);&#10;&#10;executePluginMethod('DNPMHelper', 'getEcogStatus', {PatientId: getPatient().id}, (resp) => {&#10; if (resp.status.code === 1) {&#10; // Hack: Get version id of ECOG status as stored in Database&#10; // by using initial empty entry and its version.&#10; // Since OS always creates an initial empty entry for subforms&#10; // this can be used to get required version id from within a form script.&#10; let version = getFieldValue('ECOGVerlauf')[0].ECOG.version;&#10;&#10; // Abort if no version available.&#10; if (version == null) {&#10; return;&#10; }&#10;&#10; let uf = resp.result&#10; .map(item => {&#10; let dateOffset = new Date(item.date).getTimezoneOffset() * -60 * 1000;&#10; let date = new Date(new Date(item.date).getTime() + dateOffset).toISOString().match(/^\d{4}-\d{2}-\d{2}/);&#10; let ecog = [];&#10; ecog.val = item.status;&#10; ecog.version = version;&#10; return {&#10; Datum: [date ? date[0] : null, 'exact'], ECOG: ecog&#10; };&#10; })&#10; // Ignore items without valid values&#10; .filter(item => item.Datum[0] && (item.ECOG >= 0 && item.ECOG <= 5));&#10; setFieldValue('ECOGVerlauf', uf);&#10; }&#10;}, false); true @@ -6310,7 +6310,7 @@ 20119 21334cad-91c9-4817-9cba-550b544cd71a - 226 + 227 true diff --git a/scripts/klinik_anamnese-getEcogStatus.js b/scripts/klinik_anamnese-getEcogStatus.js index 763b683..344c002 100644 --- a/scripts/klinik_anamnese-getEcogStatus.js +++ b/scripts/klinik_anamnese-getEcogStatus.js @@ -15,7 +15,8 @@ executePluginMethod('DNPMHelper', 'getEcogStatus', {PatientId: getPatient().id}, let uf = resp.result .map(item => { - let date = item.date.match(/^\d{4}-\d{2}-\d{2}/); + let dateOffset = new Date(item.date).getTimezoneOffset() * -60 * 1000; + let date = new Date(new Date(item.date).getTime() + dateOffset).toISOString().match(/^\d{4}-\d{2}-\d{2}/); let ecog = []; ecog.val = item.status; ecog.version = version;