E-Rezept ist verpflichtend seit dem 01.01.2024
Alle Hinweise und Informationen zur Nutzung finden Sie unter folgendem Link.

Liebe Entwickler und Kollegen!

Ich habe neulich (mit Hilfe) ein CF erstellt mit Rechenfunktion. Aus mir unerfindlichen Gründen rechnet das Formular manchmal falsch. Wer findet den Fehler?

zuerst die Formeln:

So ist es richtig:

Und so ist es falsch: 

Gefragt in Bug von (33.7k Punkte)
Bearbeitet von
0 Punkte

3 Antworten

Beste Antwort
hier die konkrete Lösung:

es ist tatsächlich ein Rundungsfehler, weil die Datums-Informationen bezüglich der Uhrzeit unterschiedlich verarbeitet werden.

d0 übernimmt das Datum der letzten OP, aber mit Uhrzeit 00:00 Uhr.

d1 übernimmt das aktuelle Datum, aber mit der aktuellen Uhrzeit. Wenn man nach 12 Uhr den Eintrag anlegt, entsteht der besagte Rundungsfehler.

Workaround: d1 mit Vorbefüllung $[d S MN]$. Dies bewirkt, dass beim aktuellen Datum nicht die aktuelle Uhrzeit sondern auch 00:00 Uhr eingesetzt wird.

--> wir haben dann keinen Rundungsfehler mehr

 

--> Auf mich wirkt dieses Verhalten eher inkonsistent und ist eventuell nicht so gewollt?
Beantwortet von (23.2k Punkte)
ausgewählt von
+1 Punkt
Starke Leistung Andreas. Kann das alles momentan nicht ausprobieren. Habe auch in den Kommandobeschreibungen so auf die Schnelle nichts finden können. In dem CKE steckt eine Menge Arbeit.

Woher kommt denn $ [d E MN OP] $ und was schreibt der Befehl? Ich vermute OP ist der Karteieintrag dessen Datum ausgewertet wird. Das würde dann bedeuten, dass die Datumsangabe der Karteieinträge nicht die tatsächliche Uhrzeit sondern grundsätzlich nur 00:00:00 verwendet.

Wenn man das OP Datum als Vorbefüllung aus einem entsprechenden Karteieintrag übernimmt, sozusagen wie hier das Feld D1von heute, dürfte der Rundungsfehler eigentlich nicht auftreten, weil dann Datum und Uhrzeit mit übernommen werden.
Wow, Herr Tenzer! Sie blicken da offenbar richtig durch. Ganz herzlichen Dank für die Auflösung!

Da ist aber nun Herr Thierfelder angesprochen, bzgl. der Datumsverarbeitung...

@Klaproth: Ja, genau: OP ist der der Karteieintrag der OP mit dem entsprechenden Datum.
Habe wieder was dazu gelernt.

1.) SN in $[d S SN]$        26.06.15

    2.) MN in $[d S MN]$        26.06.2015

    3.) LN in $[d S14 LN]$    10. Juli 2015

    4.) LS in $[d B-7 LS]$    9. Juni 2015 19:23

    5.) SS in $[d S SS]$        26.06.15 15:15

Die Formatierung für das Datum sollte am besten SS sein, was dann auch für den Karteieintrag gelten sollte.

@Cepin Wer hat Ihnen denn bei dem CKE geholfen? Das ist ja auch nicht trivial. (falls ich auch mal Hilfe benötige)

Hier im Forum: Hilfe kam v.a. von Herrn Tenzer, auch Sie hatten glaube ich mitdiskutiert wink. Ich finde leider den Original-Faden nicht mehr ...

Wir hatten das glaube ich in direktem Kontakt per Mail gelöst wink

 

Kurz nochmal zur Erklärung:

Wenn wir uns das Datum des OP-Eintrags im Format MN ausgeben lassen, kann natürlich auch die Uhrzeit nicht verarbeitet werden.

Deswegen der Workaround, das tagesaktuelle Datum auch ohne Uhrzeit zu verarbeiten mittels Vorbefüllung $[d S MN]$.

Das Verhalten bezüglich der Auswertung der Datums-Information ist also doch ganz korrekt.

Liebe Grüße 

Ja, der Start war aber hier im Forum.

Sie haben ganz Recht, das Forum vergisst nichts wink

https://forum.tomedo.de/index.php/50435/datum-einfugen-durch-kontrollkastchen

Genau! Diesen Versatz um einen Tag hatte ich da auch schon, bin dem aber nicht weiter nachgegengen. Aber irgendwann nervt es dann so, dass man es nochmal anpackt.
Hallo Herr Cepin!

Kurze Anmerkung:

das ist kein CF sondern ein CKE.

-------

Wie müsste denn das korrekte Datum unten lauten?

Werden die Tage richtig berechnet und nur das Datum falsch?

 

Viele Grüße
Beantwortet von (23.2k Punkte)
0 Punkte
Natürlich, C-KarteiEintrag, ist schon geändert.

Na, ja, es verrechnet sich um einen Tag, damit stimmt das Datum und damit auch der Wochentag nicht mehr. So ist es mir auch erst aufgefallen. Statt von Montag auf Montag ging die Berechnung von Montag auf Sonntag.
Moin Herr Cepin

Um zu sehen wo der Rechenfehler liegt sollten Sie alle Scorefelder sichtbar anzeigen. Da können Sie dann schnelle erkennen wo der Fehler liegt.

Ich vermute v7, dort subtrahieren sie vom Systemdatum (D1) das Datum der Behandlung (D0) und dividieren durch einen Tag (Anzahl der Sekunden eines Tages). Wahrscheinlich müssen Sie dort eine kleine Änderung vornehmen.

 

Grüße aus Husum

CK
Also die Frage ist wohl, warum bei dem Beispiel 2 fälschlicherweise 5 Tage Differenz berechnet werden  und nicht korrekt 4...

Können Sie reproduzieren, ob bei der Anlage des Eintrags nach 12.00 Uhr der Tag falsch berechnet wird?

Also morgens bis 12 Uhr wird richtig berechnet, ab 12 Uhr falsch? Wäre dann ein Rundungsfehler in der Datumsberechnung...
Wann haben Sie das Bild gemacht? Sicher gestern, also an dem "heute" Feld ... dem 15.8.2022 (Montag). D.h. 42 Tages später (=6 Wochen) ist Montag der 26.9.2022. Weitere 2 Tage drauf - was dann die 44 Tage Differenz sind - und wir sind am 28.9.2022 (Mittwoch).

Sie wollen Sicher von der letzten Injektion gehen ... dann sind da 4 Tage Differnz in den Datums aber 5 Tage Differnenz zwischen "Interv. Tage" und "echte Differenz". Evtl ist da der Fehler?
Beantwortet von (83.3k Punkte)
0 Punkte
16,003 Beiträge
23,762 Antworten
41,802 Kommentare
11,494 Nutzer