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

Hi,

nachdem das Thema Scannen und Patientenzuordnung angesprochen wurde, habe ich ein wenig Rumprobiert...

Es ist möglich, mit dem unten angehangenen Pythonskript eine KI (hier noch testweise openai, daher auch nicht für den echten Betrieb geeinget) dazu zu bringen, aus einem Scan den Vornamen, Nachnamen und das Geburtsdatum eines Patienten zu extrahieren und die Dateien nach dem Schema "Vorname_Nachname_Geburtsdatum" zu benennen. 

Per Lauschordner ist aber scheinbar eine Patientenzuordnung ausschließlich mit Hilfe der Tomedointernen Patienten-ID möglich. 

--> Es wäre eine große Erleichterung für das alltägliche Scannen der MFA, wenn man eine Patientenzuordnung Vorname, Nachname Geburtsdatum ausreichend wäre

--> Diese Zuordnung könnte man mit einer lokal laufenden KI oder mittels regex realisieren

--> Es könnten im Alltag viele MFA-Klicks eingespart werden, da das manuelle Öffnen der Patientenkarte wegfällt

 

Mein Vorschlag wäre es, den Dateilauscher anzufassen und den Import eben auch nur über Vorname, Nachname, Geburtstag möglich zu machen, um die MFA bei ihrer täglichen Arbeit zu entlasten.

 

from openai import OpenAI
from PyPDF2 import PdfReader
import os
import shutil  # Hinzugefügt für das Kopieren von Dateien

# OpenAI API-Client initialisieren
client = OpenAI(api_key='sk-x')


def extract_text_from_pdf(pdf_path):
    if not os.path.isfile(pdf_path):
        print("Fehler: Datei existiert nicht.")
        return ""

    with open(pdf_path, 'rb') as file:
        reader = PdfReader(file)
        text = ""
        for page in reader.pages:
            text_content = page.extract_text()
            if text_content:
                text += text_content
    return text


def rename_and_copy_pdf_based_on_content(pdf_path, output_directory):
    if not pdf_path:
        print("Fehler: Kein Dateipfad angegeben.")
        return

    text = extract_text_from_pdf(pdf_path)
    if not text:
        print("Fehler: Text konnte nicht aus der PDF extrahiert werden.")
        return

    try:
        response = client.completions.create(
            model="gpt-3.5-turbo-instruct",  # Aktualisiertes Modell
            prompt="Extract the first name, last name, and birth date from the text: " + text,
            max_tokens=150
        )
        print("OpenAI API Response:", response)

        if response.choices:
            result_text = response.choices[0].text.strip()
            extracted_info = [info.split(': ')[1] for info in result_text.split('\n') if ': ' in info]
            new_name = f"{extracted_info[0]}_{extracted_info[1]}_{extracted_info[2]}.pdf"

            # Datei kopieren
            new_path = os.path.join(output_directory, new_name)
            shutil.copy(pdf_path, new_path)  # Kopiert die Datei in das Zielverzeichnis
            print(f"Datei kopiert und umbenannt von {pdf_path} zu {new_path}")

        else:
            print("Keine Daten in der Antwort.")

    except Exception as e:
        print(f"Fehler bei der API-Anfrage: {e}")


# Beispielaufruf der Funktion
pdf_path = '/Users/jansmid/Desktop/Pythonprojekte/testimportordner/input.pdf'
output_directory = '/Users/jansmid/Desktop/Pythonprojekte/testlauschordner'  # Zielverzeichnis
rename_and_copy_pdf_based_on_content(pdf_path, output_directory)


Gefragt in Wunsch von (5.4k Punkte)
+3 Punkte

1 Antwort

Hallo Herr Smid,

Ich weiß, dass gerade an der Erprobung von ähnlichen Konzepten gearbeitet wird. Eventuell meldet sich nochmal ein Kollege in ein paar Tagen zu dem Thema.
Beantwortet von (1.8k Punkte)
0 Punkte
Hi,

 

immer gern.

 

 

-js
18,368 Beiträge
26,628 Antworten
47,742 Kommentare
28,918 Nutzer