Vorbereitungsschritte
- Öffnen Sie die Aktivität „Sick Note DE“ im Activity Editor.
- Wählen Sie ein Dokument aus dem Dokumentensatz aus.
- Vergewissern Sie sich, dass der erweiterte Modus für die Elementeigenschaften aktiviert ist. Um diesen Modus ein- oder auszuschalten, klicken Sie auf das Symbol im Bereich Properties.
- Alle hochgeladenen Dokumente wurden vorab erkannt; es ist hilfreich zu sehen, welche Objekte im Bild gefunden wurden. Klicken Sie auf das Symbol. Wenn Sie dieses Symbol aufgrund Ihrer Bildschirmgröße nicht sehen, klicken Sie auf das Symbol und wählen Sie Recognized Words. Die entsprechenden Objekte werden im Dokumentbild hervorgehoben. Sie können jederzeit zwischen verschiedenen Arten hervorgehobener Objekte wechseln. Das Umschalten auf Recognized Lines kann z. B. beim Auffinden von Absätzen helfen, und das Umschalten auf Separators erleichtert die Konfiguration eines Separator-Suchelements.
- Befindet sich ein Suchelement außerhalb des Suchbereichs, wird es nicht gefunden. Aktivieren Sie die Option Show search area im Kontextmenü des Dokumentbilds. Der Suchbereich für jedes Element wird grün hervorgehoben, wenn Sie die Übereinstimmungsergebnisse auswerten.
Extrahieren der Patientendaten
- Klicken Sie auf Create Element und wählen Sie das Element Group aus der Dropdown-Liste. Benennen Sie es in „PatientDataArea“ um.
- Ein neues Gruppensuchelement ist standardmäßig als erforderlich festgelegt. Wenn ein erforderliches Element nicht gefunden wird, tritt im Activity Editor ein Fehler auf und der Abgleich wird abgebrochen. Dieses Verhalten ermöglicht es, Aktivitäten zu überspringen, wenn sie für ein bestimmtes Dokument nicht geeignet sind. In diesem Tutorial erstellen wir jedoch eine Aktivität, um Daten aus allen eingehenden Dokumenten zu extrahieren, daher soll die Gruppe optional sein. Ändern Sie im Abschnitt Under what conditions den Wert Element is auf Optional.
- Wir möchten den Absatz finden, der den Namen und die Adresse des Patienten enthält. In deutschen Dokumenten befindet sich der gesuchte Absatz stets in dem Feld mit der Beschriftung „Name, Vorname …“. Wir müssen diesen Text auf dem Dokument finden und ihn als Referenz verwenden, um nach den Daten zu suchen, die wir extrahieren möchten.
a. Schlüsselwörter können mit dem Suchelement Static Text gefunden werden. Klicken Sie auf Create Element und wählen Sie das Element Static Text aus der Dropdown-Liste. Benennen Sie es in „kwPatientTitle“ um.
b. Geben Sie den Text „Name, Vorname“ in das Feld Text to find im Bereich Properties ein.
c. Klicken Sie auf Match. Wenn die Verarbeitung abgeschlossen ist, sehen Sie unter dem Dokument den Tree of Hypotheses. Stellen Sie sicher, dass Advanced Designer den gewünschten statischen Text erfolgreich gefunden hat. Ein grüner Punkt neben dem Elementnamen zeigt an, dass ein entsprechendes Element auf dem Dokument erfolgreich gefunden wurde. Wenn Sie auf den Elementnamen im Tree of Hypotheses klicken, sehen Sie einen violetten Rahmen um den entsprechenden Bereich auf dem Dokument.
- Finden wir nun die untere Begrenzung der Zelle, die den Namen und die Adresse des Patienten enthält. Dafür verwenden wir ein Separator-Element.
a. Fügen Sie der Gruppe ein Separator-Element hinzu und nennen Sie es „SeparatorBottom“. Setzen Sie die Mindestlänge auf 200.
b. Klicken Sie mit der rechten Maustaste auf das Element und wählen Sie im Kontextmenü Match Element. Sie sehen, dass der Tree of Hypotheses viele grüne Punkte enthält. Diese entsprechen verschiedenen Separatoren, die den Suchkriterien genügen. Sie können auf jeden Punkt klicken, um das zugehörige Objekt im Bild anzuzeigen.
c. Um die Suchkriterien einzugrenzen, geben Sie den Suchbereich für den Separator an. Klicken Sie auf Match, um das Element „kwPatientTitle“ zu finden, das als Ankerelement verwendet wird. Im Abschnitt Where to search des Properties-Bereichs klicken Sie auf Draw on Image. Wählen Sie auf dem Dokument das Element „kwPatientTitle“ aus und klicken Sie auf das Abwärtspfeilsymbol, um den Suchbereich unterhalb des Schlüsselworts sowie das nächstgelegene Symbol festzulegen, sodass der dem Schlüsselwort nächstgelegene Separator gefunden wird. Eine ausführliche Beschreibung der Ankerelemente finden Sie in der Dokumentation.
d. Klicken Sie auf Match und prüfen Sie, ob Advanced Designer den Separator unterhalb des Elements „kwPatientTitle“ gefunden hat. Sie können die Hypothese für jedes Element prüfen, indem Sie im Abschnitt Tree of Hypotheses auf seinen Namen klicken. - Ein Label und ein Separator sind zuverlässige Referenzelemente für die Daten des Patienten. Ist jedoch die Druckqualität zu gering, kann es sein, dass der Label-Text nicht erkannt wird oder der Separator nicht gefunden wird. Um gute Extraktionsergebnisse sicherzustellen, suchen wir nach einem Absatz, der zwischen dem Label und dem Separator liegt. Ein Absatz ist ein einheitlicher Textblock und kann daher auch dann erfolgreich gefunden werden, wenn einige der Begrenzungselemente nicht erkannt wurden.
a. Erstellen Sie ein Paragraph-Suchelement und nennen Sie es „NameAddressParagraph“.
b. Ändern Sie Text alignment auf Left.
c. Die Daten des Patienten umfassen zwei bis fünf Zeilen, daher geben Sie Line count von 2 bis 5 an.
d. Geben Sie den Suchbereich für den Absatz an. Dieses Mal verwenden Sie das Add-Menü im Abschnitt Where to search. Das Element sollte unterhalb des Elements „kwPatientTitle“ und oberhalb des Elements „SeparatorBottom“ liegen.
e. Klicken Sie auf Match. - Nun möchten wir die Daten des Patienten extrahieren. Erstellen Sie ein neues Gruppenelement mit dem Namen „PatientGroup“.
- Der Name des Patienten kann eine oder zwei Zeilen umfassen. Um mehrere Instanzen eines Elements zu erfassen, verwenden wir eine wiederholbare Gruppe.
a. Erstellen Sie ein Repeating Group-Suchelement und nennen Sie es „NameGroup“. Geben Sie 2 als maximale Anzahl von Wiederholungen an. Machen Sie das Element optional.
b. Wir möchten nach den Zeilen suchen, die Teil des Absatzes „NameAddressParagraph“ sind. Um die Region des Elements als Suchbereich festzulegen, klicken Sie auf das Code-Editor-Symbol unter dem Dokumentbild und fügen Sie das folgende Skript in den Abschnitt Search Conditions des Code Editor ein:
d. Der gesuchte Text kann Groß- und Kleinbuchstaben sowie eine Reihe von Satzzeichen enthalten, die in Namen vorkommen können. Konfigurieren Sie zwei separate Zeichensätze. Der erste Satz sollte alle lateinischen Groß- und Kleinbuchstaben enthalten. Um Zeichen mit diakritischen Zeichen hinzuzufügen, ändern Sie den Unicode-Teilbereich oder fügen Sie die Zeichen direkt in das Feld Selected characters ein.
e. Der andere Satz sollte die folgenden Satzzeichen enthalten: ,-.()’. Damit die Zeichenfolge nicht nur aus Satzzeichen besteht, setzen Sie den Portion in text, % für den zweiten Satz auf 40 %. Diese Eigenschaft definiert den maximal zulässigen Prozentsatz von Zeichen aus einem bestimmten Satz. Hinweis: Die Standardeinstellungen erlauben, dass die Zeichenfolge bis zu 30 % Zeichen enthält, die in keinem Satz enthalten sind. Dies hilft, Zeichenfolgen zu finden, selbst wenn einige Zeichen falsch erkannt werden oder nicht im Satz enthalten sind (z. B. Zeichen mit diakritischen Zeichen). Sie können diese Einstellung anpassen, indem Sie den Wert Allowed errors im Bereich Properties ändern. f. Deaktivieren Sie die Option Nach Wortteilen suchen.
g. Geben Sie den Suchbereich für das Element „NameLine“ an: unterhalb des Elements „kwPatientTitle“ und möglichst nahe daran.
h. Klicken Sie auf Abgleichen und überprüfen Sie den Hypothesenbaum. Sie werden sehen, dass zwei Zeichenfolgen gefunden werden. Allerdings enthält die zweite Zeichenfolge die Adresse des Patienten.
i. Um die Adresse aus den Suchergebnissen auszuschließen, prüfen wir, ob die erste Zeichenfolge sowohl den Vor- als auch den Nachnamen enthält. Dies lässt sich durch Hinzufügen einer einfachen Skript-Suchbedingung erreichen. Wählen Sie das Suchelement „NameLine“ aus und öffnen Sie den Code-Editor Suchbedingungen.
j. Wir gehen davon aus, dass die erste Zeile einen vollständigen Namen enthält, wenn sie ein Komma und ein Leerzeichen enthält. Falls ein vollständiger Name erkannt wird, soll keine zweite Instanz der wiederholbaren Gruppe gesucht werden. Fügen Sie das folgende Skript in den Editor ein:
- Der in Schritt 7 extrahierte Patientenname wird dem Feld „Name“ zugeordnet. Außerdem extrahieren und ordnen wir die Patientenadresse zu.
a. Erstellen Sie innerhalb der „PatientGroup“ ein Suchelement vom Typ Character String mit dem Namen „Address“ und derselben Zeichensatzkonfiguration wie das Element „NameLine“.
b. Geben Sie den Suchbereich für das Element per Code an: Die Adresse muss unterhalb der „NameLine“ liegen oder—falls dieses Element nicht gefunden wurde—unterhalb der ersten Zeile des Elements „NameAddressParagraph“.

- Öffnen Sie den Dialog Felder verwalten, erstellen Sie die entsprechenden Felder und ordnen Sie sie wie folgt den Suchelementen zu:
| Name | Typ | Suchelement |
|---|---|---|
| Name | Textfeld in der Gruppe „Patient“ | NameLine |
| Address | Textfeld in der Gruppe „Patient“ | Address |
- Löschen Sie die Suchelemente, die für die neuen Felder automatisch erstellt wurden.
Typ der Arbeitsunfähigkeitsbescheinigung extrahieren
- Erstellen Sie ein Group-Element mit dem Namen „TypeOfSickNoteGroup“. Machen Sie das Element optional.
- Um die Informationen zu beiden Häkchen zu speichern, erstellen Sie ein Suchelement vom Typ Repeating Group und nennen Sie es „PrimaryGroup“.
a. Es ist sinnvoll, den Suchbereich für die Elementgruppe einzuschränken. Geben Sie den Suchbereich per Code an: rechts vom Element „PatientGroup“ und oberhalb des Elements „DoctorAreaGroup“ (das später erstellt wird). Hinweis: Geben Sie beim Verwenden zukünftiger Elemente immer die Bedingung „Exists“ an.
c. Erstellen Sie ein Suchelement vom Typ Object Collection mit dem Namen „Checkmark“ mit folgenden Einstellungen: Type:
Checkmark, Checkmark state: Checked, Minimum height: 10, Maximum width: 20, Maximum height: 20. Geben Sie an, dass sich das Element links vom Element „kwPrimary“ befindet und diesem am nächsten ist. d. Klicken Sie auf Match.
- Kopieren Sie die Gruppe „PrimaryGroup“ und fügen Sie sie ein. Benennen Sie die kopierte Gruppe in „SecondaryGroup“ um. Diese Gruppe ist erforderlich.
-
Bearbeiten Sie die „SecondaryGroup“.
a. Benennen Sie das Element „kwPrimary“ in „kwSecondary“ um und setzen Sie den zu suchenden Text auf „Folgebescheinigung“. Geben Sie den Suchbereich an: unterhalb des Elements „kwPrimary“ aus der „PrimaryGroup“.
b. Geben Sie den Suchbereich für das Element „Checkmark“ an: links von „kwSecondary“ und diesem am nächsten.
c. Das Suchelement Object Collection findet eine Sammlung aller passenden Objekte innerhalb des Suchbereichs. Befinden sich die Häkchen in derselben Zeile, kann das Element „Checkmark“ der „SecondaryGroup“ auch das primäre Häkchen finden. Um dies zu vermeiden, schließen Sie das primäre Häkchen (Element „Checkmark“ der „PrimaryGroup“) aus dem Suchbereich für das Element „Checkmark“ der „SecondaryGroup“ aus.
d. Klicken Sie auf Match.

- Öffnen Sie das Fenster Felder verwalten, erstellen Sie die entsprechenden Felder und ordnen Sie sie wie folgt den Suchelementen zu:
| Name | Type | Search element |
|---|---|---|
| Type of Sick Note | Checkmark group | |
| Primary | Checkmark in the “Type of Sick Note” checkmark group | PrimaryGroup -> Checkmark |
| Secondary | Checkmark in the “Type of Sick Note” checkmark group | SecondaryGroup -> Checkmark |
- Löschen Sie die Suchelemente, die automatisch für die neuen Felder erstellt wurden.
Extrahieren der Arztdaten
- Erstellen Sie ein Group-Element mit dem Namen “DoctorAreaGroup”. Machen Sie das Element optional.
- Die Box, nach der wir suchen, enthält eine Beschriftung. Um sie zu finden, erstellen Sie ein Static Text-Element mit dem Namen “kwDoctorTitle” (zu suchender Text: „Unterschrift des Arztes“).
- Erstellen Sie innerhalb der Gruppe “DoctorAreaGroup” eine weitere Gruppe mit dem Namen “DataArea”.
- Die Box, die die Informationen des Arztes und die Unterschrift enthält, wird durch vier Trennlinien begrenzt. Diese befinden sich um das Element “kwDoctorTitle” herum. Wir sollten die Elemente jedoch so konfigurieren, dass das Programm sie auch dann findet, wenn das Element “kwDoctorTitle” nicht gefunden wurde. Erstellen Sie in der Gruppe “DataArea” vier Separator-Suchelemente mit den folgenden Eigenschaften:
| Name | Orientation | Minimum length | Search area |
|---|---|---|---|
SeparatorRight | Vertical | 180 | Rechts von “kwDoctorTitle”, am nächsten an der rechten Seitenkante |
SeparatorLeft | Vertical | 180 | Links von “kwDoctorTitle”, links von “SeparatorRight” (falls “kwDoctorTitle” nicht gefunden wurde), am nächsten zu “SeparatorRight”, unterhalb von “SeparatorRight” (klicken Sie auf das icon rechts neben dem Separator-Namen und wählen Sie Top Boundary of Region), “SeparatorRight” ausschließen |
SeparatorBottom | Horizontal | 200 | Unterhalb von “kwDoctorTitle” (mit einer Anpassung von −10 Punkten), rechts von “SeparatorLeft”, links von “SeparatorRight”, am nächsten an der unteren Seitenkante (diese Einstellung ist hilfreich, falls “kwDoctorTitle” nicht gefunden wurde) |
SeparatorTop | Horizontal | 200 | Oberhalb von “kwDoctorTitle”, rechts von “SeparatorLeft”, am nächsten zu “TypeOfSickNoteGroup”, “SeparatorBottom” ausschließen |
- Wir könnten den Suchbereich für die Unterschrift des Arztes und die Arztdaten manuell relativ zu den gefundenen Trennlinien angeben. Stattdessen erstellen wir ein Region-Element, das dem durch die Trennlinien begrenzten Bereich entspricht. Erstellen Sie ein Region-Suchelement mit dem Namen “BoxRegion” und geben Sie den Suchbereich an: links von “SeparatorRight”, rechts von “SeparatorLeft”, oberhalb von “SeparatorBottom” und unterhalb von “SeparatorTop”.
- Erstellen Sie eine neue Gruppe mit dem Namen “DoctorGroup”.
- Um die Unterschrift des Arztes zu finden, erstellen Sie innerhalb der “DoctorGroup” ein Object Collection-Element mit den folgenden Einstellungen:
| Property | Value |
|---|---|
| Name | Signature |
| Type | Picture |
| Minimum width | 15 |
| Minimum height | 15 |
| Maximum width | 600 |
| Maximum height | 350 |
| Search Conditions section of the Code Editor | Die Unterschrift kann teilweise außerhalb der Box liegen. Um das vollständige Bild zu finden, erweitern wir den Suchbereich in alle Richtungen um 100 Dots: RSA: DoctorAreaGroup.DataArea.BoxRegion.Rect.GetInflated(100dot,100dot); |
- Um die Textinformationen in der Box zu extrahieren, erstellen Sie ein Paragraph-Element mit den folgenden Einstellungen:
| Property | Value |
|---|---|
| Name | DoctorInformation |
| Maximum line count | 6 |
| Search area | Oberhalb von “kwDoctorTitle”, “Signature” ausschließen |
| Search Conditions section of the Code Editor | RSA: DoctorAreaGroup.DataArea.BoxRegion.Rect; |
- Klicken Sie auf Match und stellen Sie sicher, dass die Elemente korrekt gefunden werden.

- Öffnen Sie den Dialog Manage Fields, erstellen Sie die entsprechenden Felder und ordnen Sie sie den Suchelementen wie folgt zu:
| Name | Type | Search element |
|---|---|---|
| Doctor Information | Text field in the “Doctor” group | DoctorInformation |
| Signature | Image field in the “Doctor” group | Signature |
- Löschen Sie die Suchelemente, die automatisch für die neuen Felder erstellt wurden.
