Sie sind nicht angemeldet.

1

Freitag, 12. Juni 2015, 17:54

Schnellinfo - Kindervorsorge - Fehler bei der Anzeige der nächsten Vorsorguntersuchung

Hallo,

wir nützen seit einiger Zeit die Schnellinfo für die Anzeige der nächsten
Kindervorsorgeuntersuchung. Bei einer Patientin, die am heutigen Tage
Geburstag hat, wurde anstelle der U10 gleich die J2 angezeigt.
Anscheinend gibt es ein Problem bei der Datumsberechnung wenn die
Schnellinfo am Geburtstag des Patienten abgerufen wird.


Geburstag: 12.06.2007
U10 (sollte angezeigt werden) ab 12.06.2015
J2 wird angezeigt

Hat jemand evtl. einen Tipp wie man das Problem lösen könnte?

Viele Grüße!

M. Möller
»A. Möller« hat folgende Datei angehängt:
  • vorsorge.txt (3,74 kB - 27 mal heruntergeladen - zuletzt: 8. Januar 2025, 12:48)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »A. Möller« (12. Juni 2015, 18:05)


2

Freitag, 12. Juni 2015, 18:29

Hallo,

Mit den Vergleichsoperanden < und > prüfen sie, ob das Kind jünger oder älter als ein bestimmtes Alter ist - hier 8 Jahre. Wenn es aber genau dieses Alter hat stimmt die Berechnung nicht. Vielleicht versuchen sie es mal mit <= und >= .


viele Grüße

M.Meier

PS: Hab gerade gesehen, in einigen Zeilen des Scripts steht auch <= ! In den fraglichen allerdings nicht.

else if(($h>$u2e) && ($h<=$u3e))

else if(($h> $u9e) && ($h<$u10e)) oder else if(($h> $u10e) && ($h<$u11e))

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »mime« (12. Juni 2015, 18:41)


3

Freitag, 12. Juni 2015, 18:52

Geburstag: 12.06.2007
U10 (sollte angezeigt werden) ab 12.06.2015
Hallo,

ich verstehe zwar das Problem, kann es mir aber ohne Debugger nicht programmtechnisch erklären. Das Problem läßt sich aber lösen: Man ersetzt wie mime schon sagte, die > -Zeichen durch >= Zeichen, dann geht es. Allerdings ist bei uns (und vermutlich auch bei Ihnen) die U10 bis 8 Jahre und damit bis 1 Tag vor dem 9. Geburtstag möglich, die U11 äquivalent. Ich habe mal den php-Code angepaßt:

Damit geht es bei mir...

Grüße,

Peter Quick




$h=date('Y-m-d',strtotime("now"));
$g=substr($g,6,4)."-".substr($g,3,2)."-".substr($g,0,2);
$u2a=date("Y-m-d", strtotime($g."+2 day"));
$u2e=date("Y-m-d", strtotime($g."+9 day"));

$u3a=date("Y-m-d", strtotime($g."+3 weeks"));
$u3e=date("Y-m-d", strtotime($g."+5 weeks"));

$u4a=date("Y-m-d", strtotime($g."+2 month"));
$u4e=date("Y-m-d", strtotime($g."+4 month"));

$u5a=date("Y-m-d", strtotime($g."+5 month"));
$u5e=date("Y-m-d", strtotime($g."+7 month"));

$u6a=date("Y-m-d", strtotime($g."+9 month"));
$u6e=date("Y-m-d", strtotime($g."+12 month"));

$u7a=date("Y-m-d", strtotime($g."+20 month"));
$u7e=date("Y-m-d", strtotime($g."+24 month"));

$u7aa=date("Y-m-d", strtotime($g."+33 month"));
$u7ae=date("Y-m-d", strtotime($g."+36 month"));

$u8a=date("Y-m-d", strtotime($g."+42 month"));
$u8e=date("Y-m-d", strtotime($g."+4 years"));

$u9a=date("Y-m-d", strtotime($g."+59 months"));
$u9e=date("Y-m-d", strtotime($g."+64 months"));

$u10a=date("Y-m-d", strtotime($g."+ 7 years"));
$u10e=date("Y-m-d", strtotime($g."+ 9 years"));

$u11a=date("Y-m-d", strtotime($g."+ 9 years"));
$u11e=date("Y-m-d", strtotime($g."+11 years"));

$j1a=date("Y-m-d", strtotime($g."+12 years"));
$j1e=date("Y-m-d", strtotime($g."+15 years"));

$j2a=date("Y-m-d", strtotime($g."+16 years"));
$j2e=date("Y-m-d", strtotime($g."+17 years"));


if($h==$g)
echo "U1 - Geburtstag";
else if(($h>$g) && ($h<=$u2e))
echo "U2: ".substr($u2a,8,2).".".substr($u2a,5,2).".".substr($u2a,0,4)." - ".substr($u2e,8,2).".".substr($u2e,5,2).".".substr($u2e,0,4);
else if(($h>=$u2e) && ($h<=$u3e))
echo "U3: ".substr($u3a,8,2).".".substr($u3a,5,2).".".substr($u3a,0,4)." - ".substr($u3e,8,2).".".substr($u3e,5,2).".".substr($u3e,0,4);
else if(($h>= $u3e) && ($h<=$u4e))
echo "U4: ".substr($u4a,8,2).".".substr($u4a,5,2).".".substr($u4a,0,4)." - ".substr($u4e,8,2).".".substr($u4e,5,2).".".substr($u4e,0,4);
else if(($h>= $u4e) && ($h<$u5e))
echo "U5: ".substr($u5a,8,2).".".substr($u5a,5,2).".".substr($u5a,0,4)." - ".substr($u5e,8,2).".".substr($u5e,5,2).".".substr($u5e,0,4);
else if(($h>= $u5e) && ($h<=$u6e))
echo "U6: ".substr($u6a,8,2).".".substr($u6a,5,2).".".substr($u6a,0,4)." - ".substr($u6e,8,2).".".substr($u6e,5,2).".".substr($u6e,0,4);
else if(($h>= $u6e) && ($h<=$u7e))
echo "U7: ".substr($u7a,8,2).".".substr($u7a,5,2).".".substr($u7a,0,4)." - ".substr($u7e,8,2).".".substr($u7e,5,2).".".substr($u7e,0,4);
else if(($h>= $u7e) && ($h<=$u7ae))
echo "U7a: ".substr($u7aa,8,2).".".substr($u7aa,5,2).".".substr($u7aa,0,4)." - ".substr($u7ae,8,2).".".substr($u7ae,5,2).".".substr($u7ae,0,4);
else if(($h>= $u7aae) && ($h<$u8e))
echo "U8: ".substr($u8a,8,2).".".substr($u8a,5,2).".".substr($u8a,0,4)." - ".substr($u8e,8,2).".".substr($u8e,5,2).".".substr($u8e,0,4);
else if(($h>= $u8e) && ($h<$u9e))
echo "U9: ".substr($u9a,8,2).".".substr($u9a,5,2).".".substr($u9a,0,4)." - ".substr($u9e,8,2).".".substr($u9e,5,2).".".substr($u9e,0,4);
else if(($h>= $u9e) && ($h<$u10e))
echo "U10: ".substr($u10a,8,2).".".substr($u10a,5,2).".".substr($u10a,0,4)." - ".substr($u10e,8,2).".".substr($u10e,5,2).".".substr($u10e,0,4);
else if(($h>= $u10e) && ($h<$u11e))
echo "U11: ".substr($u11a,8,2).".".substr($u11a,5,2).".".substr($u11a,0,4)." - ".substr($u11e,8,2).".".substr($u11e,5,2).".".substr($u11e,0,4);
else if(($h>= $u11e) && ($h<$j1e))
echo "J1: ".substr($j1a,8,2).".".substr($j1a,5,2).".".substr($j1a,0,4)." - ".substr($j1e,8,2).".".substr($j1e,5,2).".".substr($j1e,0,4);
else if(($h>= $uj1e) && ($h<$j2e))
echo "J2: ".substr($j2a,8,2).".".substr($j2a,5,2).".".substr($j2a,0,4)." - ".substr($j2e,8,2).".".substr($j2e,5,2).".".substr($j2e,0,4);

4

Dienstag, 16. Juni 2015, 14:36

Vielen Dank für die Hilfe!

Es lag anscheinend wirklich an den Operatoren. Ich habe das geänderte Skript gerade ausprobiert. Das Problem scheint damit behoben zu sein. Die korrekten Vorsorgen werden nun wieder angezeigt.

Viele Grüße aus Heidenheim! :thumbsup:


M.Möller