Sie sind nicht angemeldet.

MarcAllef

unregistriert

1

Freitag, 24. März 2023, 10:26

PHP in der GDT-Datei mit Listenfeldern möglich?

Hallo Forum!
Klar funktioniert eine GDT-Anbindung.
Per PHP-Script in der Geräte-Aufruf-Zeile kann ich sogar dafür sorgen, dass die erzeugte Datei komplett anders aussieht, als der formale Standard das verlangt.
Aber das folgende Script erzeugt leider eben nicht eine "GDT-Datei" mit irgendwelchen, gerne auch kryptischen Infos, sondern bricht schlicht ab.
Und zwar nur, wenn der Patient auch Termine hat. Sonst bekomme ich eine Zeile "termine", ohne weiteren Inhalt.
Ist meine Beobachtung richtig oder habe ich einen kleinen Kniff übersehen?

{PHP}
$f="C:\\GDT\\export.gdt";
$te="{Patient.Termine}";
$c.="termine".$te;
file_put_contents($f,$c);
{/PHP};
(Natürlich trage ich das Script ohne Zeilenumbrüche ein)

Letztenendes suche ich weiterhin nach einer Lösung, dass MO irgendwie die Termine eines Patienten in eine Datei schreibt. Dann könnte ein externes Programm diese Datei auslesen.
Vielen Dank vorab!
Marc Allef

2

Freitag, 24. März 2023, 11:06

Hallo,
mit einer anderen Variable hat es bei mir funktioniert:

Quellcode

1
{PHP}$f="D:\\gdt\\export\\termin.gdt";$te="{Extended-Patient.PatTermine[0].StartZeitpunktBem}";$text="nächste Termine:\r\n";$c="$text";$c.="$te";file_put_contents($f,$c);{/PHP}notepad.exe D:\gdt\export\termin.gdt

MarcAllef

unregistriert

3

Freitag, 24. März 2023, 11:18

Super! Exakt, was ich brauchte!
Danke!

4

Freitag, 24. März 2023, 12:33

$c.="termine".$te;

Ist der erste Punkt korrekt? meines Wissens verbindet der Punkt (.) Variablen miteinander, hier wäre er aber Teil der variablenbereichung.
Freundliche Grüße, Jörg Sprenger

5

Freitag, 24. März 2023, 14:21

$c.="termine".$te;

Ist der erste Punkt korrekt? meines Wissens verbindet der Punkt (.) Variablen miteinander, hier wäre er aber Teil der variablenbereichung.


Hallo Herr Sprenger,
Das ist eine Kurzschreibweise für $c = $c."termine".te;

Da $c vermutlich leer sein wird aber eigentlich überflüssig. Und da nicht initialisiere Variablen in PHP einen leeren String ergeben macht es im Ergebnis auch keinen Unterschied.

VG Julian Hartig

6

Freitag, 24. März 2023, 17:19

Hallo Herr Sprenger,
Das ist eine Kurzschreibweise für $c = $c."termine".te;
Danke. Wieder was gelernt :)
Freundliche Grüße, Jörg Sprenger

MarcAllef

unregistriert

7

Sonntag, 26. März 2023, 23:27

Ja, sorry, das ist die Folge von "hier unnötiges Zeug löschen". Natürlich ist das Script in Wirklichkeit länger....
Aber: Es ist -siehe Herrn Hartig- folgenfrei.

Im Übrigen ist die Lösung für meine Zwecke völlig ausreichend, aber letztlich nicht perfekt: Es wird der nächste Termin ausgegeben, dazu kann man mit
{Extended-Patient.PatTermine[1].StartZeitpunktBem} und
{Extended-Patient.PatTermine[2].StartZeitpunktBem} auch noch den nächsten und übernächsten Termin ausgeben. Das reicht völlig, ein Hausarzt macht sehr selten mehr als 3 Termine für einen Patienten aus. Aber eine Listenvariable ist das nicht. Bei 3 Terminen ist Schluss.