Patienten-Exportdatei – Inhalt verändern?
Zitat von Ulf Hambach am 5. April 2026, 16:21 UhrJa, das habe ich versucht. Es wird an der Stelle leider gar nichts ausgegeben. Die anderen Variablen (Hausarzt, Überweiser) funktionieren. Man könnte es über eine externe Kotegorie lösen. Aber die übergibt nur den Überweiser, nicht den Hausarzt. Leider habe ich noch keine Lösung gefunden, die alles so löst, wie ich es mir vorstelle. Ich hatte bisher auch die interne Briefschreibung mit vielen PHP-Bausteinen benutzt, muss dann aber regelmäßig die Formatierung noch korrigieren und überflüssige Leerzeilen für nicht genutzte Platzhalter löschen etc. Das hat mich auf die Dauer genervt. Das Programm, dass ich jetzt dafür entwickelt habe, macht das so wie ich es möchte, aber kann leider nicht auf alle Informationen aus MO zugreifen. Auch der KIM-Versand ist dann umständlicher, wenn das Dokument nicht aus der eigenen Textverarbeitung kommt. Irgendwie noch nicht optimal …
Ja, das habe ich versucht. Es wird an der Stelle leider gar nichts ausgegeben. Die anderen Variablen (Hausarzt, Überweiser) funktionieren. Man könnte es über eine externe Kotegorie lösen. Aber die übergibt nur den Überweiser, nicht den Hausarzt. Leider habe ich noch keine Lösung gefunden, die alles so löst, wie ich es mir vorstelle. Ich hatte bisher auch die interne Briefschreibung mit vielen PHP-Bausteinen benutzt, muss dann aber regelmäßig die Formatierung noch korrigieren und überflüssige Leerzeilen für nicht genutzte Platzhalter löschen etc. Das hat mich auf die Dauer genervt. Das Programm, dass ich jetzt dafür entwickelt habe, macht das so wie ich es möchte, aber kann leider nicht auf alle Informationen aus MO zugreifen. Auch der KIM-Versand ist dann umständlicher, wenn das Dokument nicht aus der eigenen Textverarbeitung kommt. Irgendwie noch nicht optimal …
Zitat von Peter Quick am 5. April 2026, 16:56 UhrIch denke in der externen Kategorie können Sie so ziemlich alles mittels php schreiben. Die Frage wäre, brauchen Sie unbedingt gdt? Nimmt das externe Programm gdt auf? Oder könnte man auch xml exportieren oder mittels php eine eigene Datei erzeugen, die dann das externe Programm wieder ausliest?
Das gibt z.B. meine DocuSeal Kategorie an die Webapp aus
Chrome.exe „http://192.168.100.98:5000/formular?patid={Patient.PatID}&name={Patient.Nachname}&vorname={Patient.Vorname}&geburtsdatum={Patient.Geburtsdatum}&email={Patient.Email}&geschlecht={Patient.Geschlecht}&eltern={Patient.Eltern}“
Und wenn Sie eine Webapp haben oder die Software im Browser läuft könnte man damit arbeiten. Oder Sie haben eine Webapp, die die Informationen aufnimmt und dann daraus einen Programmaufruf mit Argumenten generiert…. es gibt viele Möglichkeiten
Ich denke in der externen Kategorie können Sie so ziemlich alles mittels php schreiben. Die Frage wäre, brauchen Sie unbedingt gdt? Nimmt das externe Programm gdt auf? Oder könnte man auch xml exportieren oder mittels php eine eigene Datei erzeugen, die dann das externe Programm wieder ausliest?
Das gibt z.B. meine DocuSeal Kategorie an die Webapp aus
Chrome.exe „http://192.168.100.98:5000/formular?patid={Patient.PatID}&name={Patient.Nachname}&vorname={Patient.Vorname}&geburtsdatum={Patient.Geburtsdatum}&email={Patient.Email}&geschlecht={Patient.Geschlecht}&eltern={Patient.Eltern}“
Und wenn Sie eine Webapp haben oder die Software im Browser läuft könnte man damit arbeiten. Oder Sie haben eine Webapp, die die Informationen aufnimmt und dann daraus einen Programmaufruf mit Argumenten generiert…. es gibt viele Möglichkeiten
Zitat von Ulf Hambach am 5. April 2026, 23:59 UhrDas externe Programm nimmt tatsächlich gdt auf, aber nur von externen Untersuchungsmodulen. Welches Format MO ausgibt, wäre für dass Programm nicht so wichtig, da ich es ja selbst darauf abstimmen kann, Werde das mit xml oder der Webapp mal testen. Danke schonmal!
Das externe Programm nimmt tatsächlich gdt auf, aber nur von externen Untersuchungsmodulen. Welches Format MO ausgibt, wäre für dass Programm nicht so wichtig, da ich es ja selbst darauf abstimmen kann, Werde das mit xml oder der Webapp mal testen. Danke schonmal!
Zitat von HSH KL am 7. April 2026, 14:34 UhrHallo Herr Hambach,
versuchen Sie grne folgendes php:
{PHP} $f=“C:\\gdt\\dummy.gdt„; $id=“{Patient.PatID}“; $nn=“{Patient.Nachname}“;$vn=“{Patient.Vorname}“; $gd=“{Patient.Geburtsdatum}“; $ti=“{Patient.Stammdaten.Titel}“;$ve=“{Kostenträger.Versichertennummer}“; $po=“{Patient.Plz} {Patient.Ort}“;$st=“{Patient.Strasse}“; $ge=“{Patient.Geschlecht}“; $pl=“{Patient.Plz}“;$or=“{Patient.Ort}“; $em=“{Patient.Email}“; $te=“{Patient.Telefon}“;$t2=“{Patient.TelefonB}“; $ks=“{Kostenträger.Status}“; $kl=“{Kostenträger.Langname}“;$sg=“{Kostenträger.Fallbis}“; $vk=“{Kostenträger.VKNR}“; $sg=“{Kostenträger.Fallbis}“;$kvg=“{Kostenträger.Gültigbis}“; $ik=“{Kostenträger.IK}“;$se=“{Kostenträger.Statusergänzung}“; $üw=“{Kostenträger.Überweiser.Praxisname}“; $icds = „{Diagnosen:Fall}“;$icd_list = explode(„\n“, $icds); $bsnr=“{ArztBSNR}“; $lanr=“{AArzt.LANR}“; $c=“01380006301\r\n“; $c.=“014810000000\r\n“; $c.=“01092062\r\n“; $gl=37; $l =strlen($id)+9;$gl+=$l; $c.=“0″.$l.“3000″.$id.“\r\n“; $l=strlen($nn)+9; $gl+=$l;$c.=“0″.$l.“3101″.$nn.“\r\n“; $l=strlen($vn)+9; $gl+=$l; $c.=“0″.$l.“3102″.$vn.“\r\n“; $gd= str_replace(„.“,““,$gd); $l=strlen($gd)+9; $gl+=$l; $c.=“0″.$l.“3103″.$gd.“\r\n“; if(strlen($ve) > 0) { $l=strlen($ve)+9; $gl+=$l; $c.=“0″.$l.“3105″.$ve.“\r\n“; } if(strlen($po) > 0) { $l=strlen($po)+9; $gl+=$l; $c.=“0″.$l.“3106″.$po.“\r\n“; } if(strlen($st) > 0) { $l=strlen($st)+9; $gl+=$l; $c.=“0″.$l.“3107″.$st.“\r\n“; }$l=strlen($ge)+9; $gl+=$l; $c.=“0″.$l.“3110″.$ge.“\r\n“; if(strlen($ks) > 0) { $l=strlen($ks)+9; $gl+=$l; $c.=“0″.$l.“3108″.$ks.“\r\n“; } if(strlen($em) > 0) { $l=strlen($em)+9; $gl+=$l; $c.=“0″.$l.“3619″.$em.“\r\n“; } if(strlen($kl) > 0) { $kl=$kl; $l=strlen($kl)+9; $gl+=$l; $c.=“0″.$l.“2002″.$kl.“\r\n“; } $c.=“0118402ALLG00\r\n“;$gl+=14; if(strlen($sg) > 0) { $sg = floor(date(’n‘,strtotime($sg))/4+1).date(‚Y‘,strtotime($sg)); $l=strlen($sg)+9; $gl+=$l;$c.=“0″.$l.“4101″.$sg.“\r\n“; } if(strlen($vk) > 0) { $l=strlen($vk)+9; $gl+=$l;$c.=“0″.$l.“4104″.$vk.“\r\n“; } if(strlen($se) > 0) { $l=strlen(„0″.$se)+9; $gl+=$l;$c.=“0″.$l.“41060″.$se.“\r\n“; } if(strlen($kvg) > 0) { $kvg = floor(date(’n‘,strtotime($kvg))/4+1).date(‚y‘,strtotime($kvg)); $l=strlen($kvg)+9; $gl+=$l;$c.=“0″.$l.“4110″.$kvg.“\r\n“; } if(strlen($üw) > 0) { $l=strlen($üw)+9; $gl+=$l;$c.=“0″.$l.“4111″.$üw.“\r\n“; } if(strlen($ik) > 0) { $l=strlen($ik)+9; $gl+=$l;$c.=“0″.$l.“4111″.$ik.“\r\n“; } if(strlen($bsnr) > 0) { $l=strlen($bsnr)+9; $gl+=$l;$c.=“0″.$l.“4218″.$bsnr.“\r\n“; } if(strlen($lanr) > 0) { $l=strlen($lanr)+9; $gl+=$l;$c.=“0″.$l.“4242″.$lanr.“\r\n“; } foreach($icd_list as &$diag) { if(strlen($diag) > 2) { $seite_sicherheit = „“;if(substr($diag,0,1) == „[„) { $seite_sicherheit =substr($diag,0,strpos($diag,“]“)); } $icd =substr($diag,strpos($diag,“(„)+1,strpos($diag,“)“)-strpos($diag,“(„)-1); $text =substr($diag,strpos($diag,“)“)+2); if(strlen($text) > 2) { $l=strlen($text)+9;$sl+=$l; $c.= „0“.$l.“6000″.$text.“\r\n“; } if(strlen($icd) > 2) {$l=strlen($icd)+9; $sl+=$l; $c.= „0“.$l.“6001″.$icd.“\r\n“; }if(strpos($seite_sicherheit,“V“)) { $sl+=10; $c.= „0106003V\r\n“; }if(strpos($seite_sicherheit,“Z“)) { $sl+=10; $c.= „0106003Z\r\n“; }if(strpos($seite_sicherheit,“A“)) { $sl+=10; $c.= „0106003A\r\n“; }if(strpos($seite_sicherheit,“G“)) { $sl+=10; $c.= „0106003G\r\n“; }if(strpos($seite_sicherheit,“R“)) { $sl+=10; $c.= „0106004R\r\n“; }if(strpos($seite_sicherheit,“L“)) { $sl+=10; $c.= „0106004L\r\n“; }if(strpos($seite_sicherheit,“B“)) { $sl+=10; $c.= „0106004B\r\n“; } } }$c = str_replace(„014810000000″,“014810000“.$gl,$c); file_put_contents($f,$c); {/PHP}
Datei wird unter C:\GDT abgelegt.
Sollten Sie die Datei an einem anderen Pfad erwarten, den Pfad bitt im Script anpassen!
Cave!
CAVE!
Die Fedkennung 4111 ist nicht für die Angabe der überweisenden Praxis angedacht.Ich habe die Felkennung sozusagen zweckentfremdet.
Solange Sie die Datei nicht für eine Geräteanbindung nutzen sollte dies aber kein Problem darstellen.
Hallo Herr Hambach,
versuchen Sie grne folgendes php:
{PHP} $f=“C:\\gdt\\dummy.gdt„; $id=“{Patient.PatID}“; $nn=“{Patient.Nachname}“;$vn=“{Patient.Vorname}“; $gd=“{Patient.Geburtsdatum}“; $ti=“{Patient.Stammdaten.Titel}“;$ve=“{Kostenträger.Versichertennummer}“; $po=“{Patient.Plz} {Patient.Ort}“;$st=“{Patient.Strasse}“; $ge=“{Patient.Geschlecht}“; $pl=“{Patient.Plz}“;$or=“{Patient.Ort}“; $em=“{Patient.Email}“; $te=“{Patient.Telefon}“;$t2=“{Patient.TelefonB}“; $ks=“{Kostenträger.Status}“; $kl=“{Kostenträger.Langname}“;$sg=“{Kostenträger.Fallbis}“; $vk=“{Kostenträger.VKNR}“; $sg=“{Kostenträger.Fallbis}“;$kvg=“{Kostenträger.Gültigbis}“; $ik=“{Kostenträger.IK}“;$se=“{Kostenträger.Statusergänzung}“; $üw=“{Kostenträger.Überweiser.Praxisname}“; $icds = „{Diagnosen:Fall}“;$icd_list = explode(„\n“, $icds); $bsnr=“{ArztBSNR}“; $lanr=“{AArzt.LANR}“; $c=“01380006301\r\n“; $c.=“014810000000\r\n“; $c.=“01092062\r\n“; $gl=37; $l =strlen($id)+9;$gl+=$l; $c.=“0″.$l.“3000″.$id.“\r\n“; $l=strlen($nn)+9; $gl+=$l;$c.=“0″.$l.“3101″.$nn.“\r\n“; $l=strlen($vn)+9; $gl+=$l; $c.=“0″.$l.“3102″.$vn.“\r\n“; $gd= str_replace(„.“,““,$gd); $l=strlen($gd)+9; $gl+=$l; $c.=“0″.$l.“3103″.$gd.“\r\n“; if(strlen($ve) > 0) { $l=strlen($ve)+9; $gl+=$l; $c.=“0″.$l.“3105″.$ve.“\r\n“; } if(strlen($po) > 0) { $l=strlen($po)+9; $gl+=$l; $c.=“0″.$l.“3106″.$po.“\r\n“; } if(strlen($st) > 0) { $l=strlen($st)+9; $gl+=$l; $c.=“0″.$l.“3107″.$st.“\r\n“; }$l=strlen($ge)+9; $gl+=$l; $c.=“0″.$l.“3110″.$ge.“\r\n“; if(strlen($ks) > 0) { $l=strlen($ks)+9; $gl+=$l; $c.=“0″.$l.“3108″.$ks.“\r\n“; } if(strlen($em) > 0) { $l=strlen($em)+9; $gl+=$l; $c.=“0″.$l.“3619″.$em.“\r\n“; } if(strlen($kl) > 0) { $kl=$kl; $l=strlen($kl)+9; $gl+=$l; $c.=“0″.$l.“2002″.$kl.“\r\n“; } $c.=“0118402ALLG00\r\n“;$gl+=14; if(strlen($sg) > 0) { $sg = floor(date(’n‘,strtotime($sg))/4+1).date(‚Y‘,strtotime($sg)); $l=strlen($sg)+9; $gl+=$l;$c.=“0″.$l.“4101″.$sg.“\r\n“; } if(strlen($vk) > 0) { $l=strlen($vk)+9; $gl+=$l;$c.=“0″.$l.“4104″.$vk.“\r\n“; } if(strlen($se) > 0) { $l=strlen(„0″.$se)+9; $gl+=$l;$c.=“0″.$l.“41060″.$se.“\r\n“; } if(strlen($kvg) > 0) { $kvg = floor(date(’n‘,strtotime($kvg))/4+1).date(‚y‘,strtotime($kvg)); $l=strlen($kvg)+9; $gl+=$l;$c.=“0″.$l.“4110″.$kvg.“\r\n“; } if(strlen($üw) > 0) { $l=strlen($üw)+9; $gl+=$l;$c.=“0″.$l.“4111″.$üw.“\r\n“; } if(strlen($ik) > 0) { $l=strlen($ik)+9; $gl+=$l;$c.=“0″.$l.“4111″.$ik.“\r\n“; } if(strlen($bsnr) > 0) { $l=strlen($bsnr)+9; $gl+=$l;$c.=“0″.$l.“4218″.$bsnr.“\r\n“; } if(strlen($lanr) > 0) { $l=strlen($lanr)+9; $gl+=$l;$c.=“0″.$l.“4242″.$lanr.“\r\n“; } foreach($icd_list as &$diag) { if(strlen($diag) > 2) { $seite_sicherheit = „“;if(substr($diag,0,1) == „[„) { $seite_sicherheit =substr($diag,0,strpos($diag,“]“)); } $icd =substr($diag,strpos($diag,“(„)+1,strpos($diag,“)“)-strpos($diag,“(„)-1); $text =substr($diag,strpos($diag,“)“)+2); if(strlen($text) > 2) { $l=strlen($text)+9;$sl+=$l; $c.= „0“.$l.“6000″.$text.“\r\n“; } if(strlen($icd) > 2) {$l=strlen($icd)+9; $sl+=$l; $c.= „0“.$l.“6001″.$icd.“\r\n“; }if(strpos($seite_sicherheit,“V“)) { $sl+=10; $c.= „0106003V\r\n“; }if(strpos($seite_sicherheit,“Z“)) { $sl+=10; $c.= „0106003Z\r\n“; }if(strpos($seite_sicherheit,“A“)) { $sl+=10; $c.= „0106003A\r\n“; }if(strpos($seite_sicherheit,“G“)) { $sl+=10; $c.= „0106003G\r\n“; }if(strpos($seite_sicherheit,“R“)) { $sl+=10; $c.= „0106004R\r\n“; }if(strpos($seite_sicherheit,“L“)) { $sl+=10; $c.= „0106004L\r\n“; }if(strpos($seite_sicherheit,“B“)) { $sl+=10; $c.= „0106004B\r\n“; } } }$c = str_replace(„014810000000″,“014810000“.$gl,$c); file_put_contents($f,$c); {/PHP}
Datei wird unter C:\GDT abgelegt.
Sollten Sie die Datei an einem anderen Pfad erwarten, den Pfad bitt im Script anpassen!
Cave!
CAVE!
Die Fedkennung 4111 ist nicht für die Angabe der überweisenden Praxis angedacht.
Ich habe die Felkennung sozusagen zweckentfremdet.
Solange Sie die Datei nicht für eine Geräteanbindung nutzen sollte dies aber kein Problem darstellen.