Lucinda

Synopsis

Lucinda (Lucene powered file indexa) ist ein Programm, das ein oder mehrere Verzeichnisse beobachten kann und Dokumente, die dort abgelegt werden, indiziert. Ausserdem kann es Dokumente über eine definierte Netzwerkschnittstelle entgegennehmen und indizieren. In beiden Fällen ist eine Vielzahl von Dokumentformaten möglich. So können OpenOffice und Microsoft-Office Dokumente ebenso leicht indiziert werden, wie etwa PDF. Letztere werden, wenn sie beispielsweise von einem Scanner kommen, vor dem Indizieren durch eine OCR geschickt, um als Text interpretiert zu werden.

Installation

Der Lucinda-Client ist in der Elexis Ungrad Update-Site und kann über den Elexis-Updatemanager eingebunden werden. Der Lucinda Server muss separat (auf einem beliebigen PC, idealerweise aber nicht zwingend auf dem Elexis-Server) installiert werden. Am einfachsten geschieht das via Docker

Konfiguration

Preferences

Geben Sie hier die Adresse des Lucinda-Servers und dessen Port (standardmässig 9997) ein. “Maximum hit count” bezeichnet, wie viele Dokumente maximal geladen und angezeigt werden (je nach Eingabe könnte eine Suche ja Tausende von Treffern liefern).

Unter “Einlese-Scripts” können Sie ein oder mehrere Scripts/Batchfiles angeben, die zum Importieren neuer Dokumente dienen können. Dabei ist das Format “Name:Pfad/zur/ausführbaren/datei” Ein Beispiel für ein Einlese-Script finden Sie hier.

Unter “Auszuschliessende Metadaten” können Sie Dateieigenschaften angeben, die Sie uninteressant finden und darum nicht anzeigen möchten. Ich gehe weiter unten darauf näher ein.

Die nächsten Einträge werden verwendet. wenn ein Dokument per Mail versendet werden soll. Geben Sie hier die Vorgabetexte für Betreff und Mailtext ein. (Sie können beides vor dem Senden einer Mail noch ändern). Sie können die üblichen Elexis-Platzhalter wie [Patient.Name] einsetzen.

Klicken Sie “Ungrad-Dokumentenverzeichnis verwenden” an. wenn Lucinda das selbe Dokumentenverzeichnis wie die anderen Ungrad-Plugins (z.B. Forms) verwenden soll.

Anwendung

Lucinda hat zwei Betriebsmodi:

Entweder können Sie sich einfach das Dokumentenverzeichnis anzeigen lassen:

Dateiansicht

Oder ein Fenster mit Suchoptionen und mehreren Dokumentenquellen:

Bild 1

Die Umschaltung der beiden Modi erfolgt über den Button (1).

Die Bedienung im Suchmodus ist sehr einfach: Im Prinzip tippen Sie einfach einen oder mehrere Suchbegriffe (s. unten) ins Textfeld und drücke die Eingabetaste (oder klicken “Suche”)

Das rote x dient dazu, das Suchfeld mit einem Klick zu leeren. Die Buttons in der Toolbar stellen den Betriebsmodus ein:

Der Button (2) weist Lucinda an, im “Omnivore-Modus” zu arbeiten, also nur Dokumente des aktuell selektierten Patienten anzuzeigen. Wenn dieser Knopf nicht gedrückt ist, dann wirken Suchanfragen immer auf sämtliche Dokumente in System.

Die Knöpfe (3) bis (5) bestimmen, welche Quellen bei der Suche berücksichtigt werden. Welche und wieviele das sind, hängt von den installierten Plugins und Fragmenten ab. Standardmässig kann Lucinda sein eigenes Eingangsverzeichnis (3), die Elexis-Konsultationseinträge (4) und die in Omnivore gespeicherten Dokumente (5) durchsuchen.

Suchbegriffe

Lucinda versteht Suchbegriffe ganz ähnlich, wie zum Beispiel Google™:

  • Baum findet jedes Dokument, in dem das Wort “Baum” vorkommt. Dabei werden auch abgeleitete Wörter wie “Bäume” oder “des Baums”, und in begrenztem Mass auch Synonyme oder verwandte Begriffe (Tanne, Wald) berücksichtig.
  • Baum Vogel findet jedes Dokument, in dem “Baum” oder “Vogel” oder beides vorkommt. Dokumente, in denen beide Begriffe vorkommen, werden weiter oben gelistet, als solche, in denen nur eines vorkommt.
  • +Baum +Vogel listet nur Dokumente, in denen beide Begriffe (oder Ableitungen davon) vorkommen.
  • “Baum Vogel” würde nur Dokumente listen, in denen genau diese Wortfolge vorkommt.
  • “Baum Vogel”~5 würde jedes Dokument listen, in denen Baum und Vogel in einem Abstand von maximal 5 Wörtern voneinander stehen.
  • +Baum -Vogel listet nur Dokumente, in denen “Baum”, aber nicht “Vogel” vorkommt.
  • Vog* findet Dokumente, in denen Wörter vorkommen, die mit “Vog” beginnen.

Suchterme können auch kombiniert werden, so wie etwa: (+Baum +Vogel) OR (+Hase -Pfeffer).

Und last but not least kann Lucinda auch in Metadaten von Dokumenten suchen:

  • +title:Operation* +category:Spitalberichte listet Dokumente, die im Titel etwas mit “Operation” stehen haben, und in der Kategorie “Spitalberichte” sind.

Die Metadaten eines Dokuments werden im unteren Teil des Lucinda-Fensters angezeigt, wenn das Dokument selektiert ist. Manche Dokumenttypen bringen eine sehr grosse Zahl von Metadaten mit, die nicht alle in jeder Anwendung sinnvoll sind. Sie können daher in den Einstellungen von Lucinda unter “auszuschliessende Metadaten” auch angeben, welche Metadaten Sie gar nicht gezeigt bekommen wollen.

Aquisition

Wie kommen Dokumente nach Lucinda?

Grundsätzlich speichert Lucinda selbst keine Dokumente, sondern indiziert sie nur zusammen mit einer Referenz, wo und wie sie zu finden sind. Der Speicherort ist daher gundsätzlich beliebig.

Standard-Betriebsmodus, Lucinda nativ:

  • Es wird ein Verzeichnis definiert, auf das sowohl die Arbeitsstationen als auch der Lucinda-Server Zugriff haben. Aus praktischen Gründen wird man dieses Verzeichnis oft auf dem Datenbank-Server erstellen und via SMB-Freigaben für die mit Scannern versehenen Arbeitsstationen vom inneren Netz aus erreichbar machen. (Nicht aber vom Internet von ausserhalb der Praxis).
  • Man weist den Lucinda-Server an, dieses Verzeichnis zu überwachen.
  • In diesem Verzeichnis werden nach und nach Unterverzeichnisse für Patientendokumente erstellt. Dabei sind mehrere Schemata möglich. Ich verwende Nachname_Vorname_Geburtsdatum, also etwa Testperson_Armeswesen_21.05.1965. Allerdings führt das dazu, dass bald sehr viele Unterverzeichnisse existieren. Manchmal ist darum eine zusätzliche Ebene sinnvoll: Te/Testperson_Armeswesen_21.05.1965, also in diesem Beispiel eine zusätzliche Verzeichnisebene, die nach den ersten beiden Buchstaben des Namens benannt wird. Welches Schema Sie wählen, ist grundsätzlich egal.
  • Wenn man ein Dokument einscannt, tut man das mit der Anwendung des Scanners. Die funktioniert im Allgmeinen am schnellsten und kann bei vielen Scanner mehrere Seiten in einem Rutsch doppelseitig einlesen. Das so eingescannte Dokument schiebt man in das (ggf. zu erstellende) passende Verzeichnis. Auch E-Mails oder anderswie eingetroffene Dokumente speichert man einfach ins passende Verzeichnis.
  • Lucinda kann obigen Schritt auch für Sie übernehmen, s. weiter unten.
  • Der Lucinda Server registriert die neue Datei automatisch und indiziert sie. Wenn es eine Datei ohne Textinhalt ist (z.B. eine PDF vom Scanner, die ja als Bild abgespeichert wird), dann schickt Lucinda diese Datei automatisch durch eine OCR-Anwendung (Tesseract). Dies klappt allerdings nur, wenn der Server auf einer Linux- oder Mac-Maschine ist, da Tesseract meines Wissens nicht für Windows erhältlich ist. Falls Sie einen Windows-Server haben, sollten Sie einen etwas besseren Scanner anschaffen, der gescannte Dokumente selbst mit einer Texterkennung bearbeiten und als durchsuchbare PDF speichern kann. Lucinda erkennt, wenn die PDF durchsuchbar ist und indexiert dann den Textinhalt, ohne die OCR zu bemühen.

Dokumente direkt einscannen

Unter Datei->Einstellungen->Elexis-Ungrad->Lucinda können Sie ein oder mehrere Scripts bzw. Batch-Dateien eintragen, die zum Einscannen von Dokumenten dienen. Sie können die so deklarierten Scripts über das Lucinda-Menu aufrufen:

Scanner Menu

Das Script erhält den Verzeichnisnamen (name-vorname-geburtsdatum) und den Dokumentennamen als Parameter. Für Lucinda ist es irrelevant, was das Script dann tut. Der korrekte Speicherort muss im Script selbst ermittel werden.

Beispielsweise kann ein solches Script unter Linux dann so aussehen, wie hier gezeigt.

Omnivore-Dokumente

Da Lucinda als Ablösung für Omnivore gedacht ist, kann Lucinda auch Omnivore-Dokumente (genauer gesagt: Jedes in einer Elexis Standard-Dokumentenverwaltung abgespeicherte Dokument) verwalten. Dabei gibt es zwei Möglichkeiten:

  • Die Omnivore-Dokumente werden weiterhin von Omnivore verwaltet, aber von Lucinda indiziert und damit durchsuchbar gemacht.
  • Die Omnivore-Dokumente werden indiziert und ins Standardverzeichnis wie oben beschrieben verschoben. Danach werden sie am Ursprungsort gelöscht, so dass die Elexis Datenbank kleiner wird.

Um Omnivore-Dokumente für Lucinda zu indizieren und/oder zu verwalten, muss das Omnivore-Fragment für Lucinda installiert sein. Das ist normalerweise der Fall. Dann finden Sie einerseits in der Lucinda-Toolbar den Omnivore-Filterknopf (6) und andererseits im View-Menu von Lucinda die Option ‘Omnivore-Import’.

Omnivore Import

Wenn Sie diese Option anwählen, können Sie im folgenden Dialog genauer definieren, was mit den Omnivore-Dokumenten geschehen soll:

Omnivore Methode

Falls Sie nicht alle Omnivore-Kategorien bearbeiten wollen, können Sie diese hier angeben. Zum Beispiel “Ausgang,EKG,Persönlich” würde die drei genannten Kategorien nicht indizieren und unverändert in Omnivore belassen. Darunter findet sich eine Checkbox “Dokumente aus Omnivore löschen”. Wenn Sie diese Checkbox auswählen, dann werden die Doumente nicht nur indiziert, sondern in den Dateiordner von Lucinda verschoben, also aus Omnivore gelöscht.

Der Omnivore-Import Vorgang kann sehr lange dauern (Bei mir für rund 40000 Dokumente etwa 30 Stunden). Sie können den Import aber jederzeit unterbrechen (Einfach den Menüpunkt Omnivore-Import wieder deselektieren und warten, bis das aktuelle Dokument fertig importiert ist). Beim nächsten Mal wird der Importer dann an dieser Stelle weiter machen.

Nach vollständigem Import werden bei einer Suche Omnivore-Dateien ebenso schnell gefunden, wie Lucinda-Inbox-Dateien. (Lucinda erreicht durchaus Google-ähnliche Geschwindigeit: Eine Trefferliste aus 50000 Dokumenten zu erstellen dauert deutlich weniger als eine halbe Sekunde). Wenn ein Dokument aus der Trefferliste doppelt geklickt wird, wird Omnivore angewiesen, es zu öffnen.

Auch wenn Sie “Dokumente aus Omnivore löschen” gewählt haben, wird zunächst Ihre Datenbank nicht kleiner sein, da die Dokumente wie in Elexis üblich nicht “wirklich” gelöscht, sondern nur als gelöscht markiert werden. Wenn Sie ganz sicher sind, dass Sie die Dokumente ganz löschen wollen, müssen Sie folgenden Befehl an die Datenbank absetzen:

 DELETE FROM CH_ELEXIS_OMNIVORE_DATA where deleted='1';

Danach wird Ihre Datenbank je nach Zahl der Omnivore-Dokumente erheblich kleiner und handlicher sein.

Konsultationseinträge

Lucinda kann auch Ihre Konsultationseinträge indizieren und bei einer Suche bereitstellen. Dazu muss das Konsultationstexte-Fragment für Lucinda installiert sein. Dies ist standardmässig der Fall. Konsultationstexte werden selbstverständlich grundsätzlich nur indiziert und nie verschoben. Lucinda speichert nur einen Verweis auf die Konsultation, so dass sie beim Anklicken aufgerufen werden kann. Wàhlen Sie im View-Menu “synchronisiere Kons”. Dieser Vorgang geht wesentlich schneller, als der Omnivore Import (bei mir rund 60000 Konsultationstexte in weniger als einer halben Stunde). Danach werden bei einer Suche auch die dazu passenden Konsultationseinträge aufgelistet, sofern der Konsultations-Filter-Butten gerdrückt ist.

Technik

Die Technologie hinter Lucinda stammt von verschiedenen OpenSource Projekten: Die Texte werden von Tika analysiert und danach von Lucene indexiert. Im Fall von PDF Dateien kommt Apaches PDFBox zum Einsatz. Als OCR wird Tesseract eingesetzt.

Lucinda ist Copyright © 2016-2023 by G. Weirich und unter der EPL 1.0 publiziert. Das Lucinda Maskottchen Lucinda stammt von http://www.fatcow.com/free-icons