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)