KEINE Freigabe der macOS Version Sequoia für tomedo®
Alle Hinweise und Informationen finden Sie unter folgendem Link.

mit dem x-Kommando läßt sich der Inhalt von Karteieinträgen auslesen.

Folgendes  x-Kommando

$[x RECHN 1 sel 0-d NN NNJN NNNN _ K _]$

gibt den Inhalt des Karteieintrags "RECHN" aus:

Erst12.09.2024 - SP/2024 - 5 - Rechnung (SP) - abg. - unbez. - CK

ich möchte aber nur das Datum und die Rechnungsnummer – also den rot markierten Teil - übernehmen

Folgendes Regex Kommando

$[regex ^(.*?)(?=\s-\sRechnung) x RECHN 1 sel 0-d NN NNJN NNNN _ K _]$

tut es teilweise indem es hinter dem Rechnugskürzel die Informationen abschneidet.

Erst. 12.09.2024 - SP/2024 - 5

Ich möchte aber nur das Datum und die Rechnungsnummer übernehmen

 

Chat GPT macht folgenden Vorschlag

$[regex (?<=Erst\.\s)(.*?)(?=\s-\sRechnung) x RECHN 1 sel 0-d NN NNJN NNNN _ K _]$#

Erläuterung:

  • (?<=Erst\.\s): Dies ist ein sogenanntes "lookbehind", das sicherstellt, dass der Text direkt nach "Erst." und einem Leerzeichen beginnt. Das "lookbehind" sorgt dafür, dass "Erst." selbst nicht in das Ergebnis aufgenommen wird.
  • (.*?): Eine nicht-gierige Version des Platzhalters .*, die den gewünschten Teil erfasst.
  • (?=\s-\sRechnung): Ein "lookahead", das dafür sorgt, dass der erfasste Text bis zum Bindestrich vor dem Wort "Rechnung" reicht, ohne das Wort selbst oder den Bindestrich einzuschließen.

 

Das funktioniert aber nicht, es wird jetzt gar nichts mehr übernommen.

Weiß jemand Rat?

 

Gefragt in Frage von (33.9k Punkte)
Bearbeitet vor von
0 Punkte

Um möglicherweise zusätzliche, unsichtbare Zeichen oder ein Problem beim Umgang mit mehreren Zeilen im Ausgabeformat des Systems auszuschließen habe ich es durch Chat GPT mit einem Ansatz versucht, der explizit nach einem flexiblen Muster sucht, um sowohl den Text als auch mögliche Formatierungsabweichungen abzufangen.

Neuer Ansatz:

(?<=Erst\.\s)(\d{2}\.\d{2}\.\d{4})\s-\s(\w+\/\d+)\s-\s(\d+)

Erklärung:

  1. (?<=Erst.\s): Lookbehind, das sicherstellt, dass die Erfassung nach „Erst.“ beginnt, ohne dieses mit einzuschließen.

  2. (\d{2}.\d{2}.\d{4}): Erfasst das Datum im Format „TT.MM.JJJJ“.

  3. \s-\s: Erfasst den Bindestrich mit Leerzeichen davor und danach.

  4. (\w+/\d+): Erfasst die Rechnungsnummer (wie „SP/2024“).

  5. \s-\s(\d+): Erfasst die Zahl, die nach der Rechnungsnummer kommt (wie „5“).

Endgültiges Kommando:

$[regex (?<=Erst\.\s)(\d{2}\.\d{2}\.\d{4})\s-\s(\w+\/\d+)\s-\s(\d+) x RECHN 1 sel 0-d NN NNJN NNNN _ K _]$

 

Trotzdem funktioniert es nicht. Habe ich irgendetwas übersehen?

Selbst Chat GPT hilft da nicht weiter!

1 Antwort

Beste Antwort

Moin Christian,

die Erfahrung, dass ChatGPT-kreierte Lösungen in tomedo bei komplexeren Regexen nicht funktionieren, habe ich auch schon gemacht. Das liegt meiner Ansicht nach daran, dass bestimmte Anteile der regex-Regeln ja in verschiedenen Umgebungen (damit auch innerhalb von tomedo) nicht so funktionieren wie z.B. in regex101.com getestet.

Für Deine Fragestellung sollte es aber eigentlich so klappen:

$[regex Erst.\s+([\w\W]+)\s+\-\s+Re x N 1 _ _ NN NNNN NNNN _ U _]$

Du musst nur die Textteile, die vor und nach dem auszulesenden Bereich stehen, angeben, dann klappt es. 

Beantwortet vor von (4.8k Punkte)
ausgewählt vor von
+1 Punkt
Moin Hans Jörg,

Vielen Dank, das habe ich auch versucht, es hat aber leider ncht geklappt.

Du hast mich aber ermutigt das noch mal zu versuchen. Chat GPT hat mir da nicht helfen können.

Mit diesem Kommando klappt es jetzt aber:

$[regex Erst.\s+(.*?)(?=\s-\sRechnung) x RECHN 1 sel 0-d NN NNJN NNNN _ K _]$

Das Kommando dient nur dazu, die FiBu im Kliinikum zu informieren, Rechnungen für Säumnisgebühren zu stornieren, z.B. wenn Patienten verstorben sind. Dann teilen wir auf diesem Wege mit, Rechnungen zu stornieren. Dafür lesen wir den Karteieintrag aus und generieren eine  Mail aus den Vorlagen an die FiBu.

Mich hat nur gestört, dass ich das Problem nicht 100%ig lösen konnte. Insgesamt mal ein paar Stunden darauf verwendet. Aberr nun klappt es.

Also bei mir klappt es so. Dein Regex sieht ja etwas anders aus. 

Dein Regex

$[regex Erst.\s+([\w\W]+)\s+\-\s+Re x N 1 _ _ NN NNNN NNNN _ U _]$

 Mein Regex

$[regex Erst.\s+(.*?)(?=\s-\sRechnung) x RECHN 1 sel 0-d NN NNJN NNNN _ K _]$

meins funktioniert jetzt bei mir. Hast mir mit Deinem Beispiel auf die Sprünge geholfen, auch wenn es anders aussieht. Aber bekanntlich führen viele Wege nach Rom.

17,360 Beiträge
25,441 Antworten
45,190 Kommentare
18,120 Nutzer