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

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. (Anmerkung: Der Lucinda-Server ist derzeit in Migration zum Ungrad-Server, diese Anleitung ist somit noch nicht stabil)

Konfiguration

Preferences

Stellen Sie entsprechend Ihrem Server die Netzwerk- oder Serveradresse ein (Wenn die Serveradresse fix ist, dann ist es günstiger, wenn Sie direkt die Serveradresse eintragen. Wenn die Adresse variabel ist, oder Sie sie nicht kennen, tragen Sie unter ‘Netzwerk’ das Segment ein, in dem sich auch Ihre Arbeitsstation befindet, dann wird Lucinda den Server selbst finden).

‘Message Prefix’ und ‘Server Port’ müssen Sie nur eintragen, wenn der Server nicht mit seinen Default-Einstellungen läuft.

Anwendung

Bild 1

Die Bedienung von Lucinda ist sehr einfach. Der grüne Punkt (1) zeigt, dass eine Verbindung zum Server hergestellt worden ist. Wenn der Punkt rot sein sollte, klicken Sie einmal darauf, um es noch einmal zu versuchen. Wenn er dann immer noch rot ist, prüfen Sie, ob der Lucinda-Server läut, und ob die Parameter Server-Adresse und Server-Port korrekt eingestellt sind.

Das x (2) dient dazu, das Suchfeld mit einem Klick zu leeren. Der Knopf (3) 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 4 bis 6 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 (4), die Elexis-Konsultationseinträge (5) und die in Omnivore gespeicherten Dokumente (6) 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 Vogelfindet 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, wenn Sie ein Programm oder ein Script haben, welches ein Dokument vom Scanner (oder einer sonstigen Quell) holt und ins passende Verzeichnis schiebt: Wenn Sie auf den “Import”-Button in der Lucinda-View klicken, werden sie nach einem Titel für das Dokument gefrsagt, und anschliessend wird das eingestellte Script mit den Personalien des aktuellen Patienten und dem Titel aufgerufen. Beispielsweise kann ein solches Script unter Linux dann so aussehen, wie hier gezeigt.
  • 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.

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. Der Aufbau des Servers und die Client-Server Kommunikation erfolgt mit Vert.x.

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