Bevor Sie beginnen
- Öffnen Sie die Aktivität “Sick Note DE” im Activity Editor.
- Wählen Sie eines der Dokumente 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, und es ist hilfreich zu sehen, welche Objekte im Bild gefunden wurden. Klicken Sie auf das Symbol. Wenn Sie dieses Symbol aufgrund der Größe Ihres Bildschirms 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 zum Beispiel beim Auffinden von Absätzen hilfreich sein, 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 das Abgleichergebnis 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.
Wenn ein element nicht gefunden wurde, sehen Sie einen orangefarbenen Punkt neben seinem Namen und einen orangefarbenen Rahmen um das Dokumentbild. Beachten Sie, dass die Hypothesengüte eines Elements den Zustand der nachfolgenden Elemente in der Kette und die Gesamtqualität einer Kette beeinflusst. Detaillierte Informationen zur Hypothesengüte finden Sie in der Dokumentation.
- 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 werden sehen, dass der Tree of Hypotheses viele grüne Punkte enthält. Diese entsprechen verschiedenen Separatoren, die den Suchkriterien entsprechen. 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 Bereichs Properties klicken Sie auf Draw on Image. Wählen Sie im Dokument das Element “kwPatientTitle” aus und klicken Sie auf das Symbol mit dem Abwärtspfeil, um den Suchbereich unterhalb des Schlüsselworts sowie das Symbol für das nächstgelegene Objekt festzulegen, damit 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. - Eine Beschriftung 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 Text der Beschriftung nicht erkannt wird oder der Separator nicht gefunden wird. Um gute Extraktionsergebnisse sicherzustellen, suchen wir nach einem Absatz, der zwischen der Beschriftung und dem Separator liegt. Ein Absatz ist ein einheitlicher Textblock und kann daher auch dann erfolgreich gefunden werden, wenn einige der Begrenzungselemente nicht gefunden 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 sollten Sie das Menü Add im Abschnitt Where to search verwenden. Das Element sollte sich unterhalb des Elements “kwPatientTitle” und oberhalb des Elements “SeparatorBottom” befinden.
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: ,-.()’. Wir möchten nicht, dass die Zeichenfolge nur Satzzeichen enthält, daher setzen Sie Portion in text, % für den zweiten Satz auf 40 %. Diese Eigenschaft definiert den maximal zulässigen Prozentsatz von Zeichen aus einem bestimmten Satz.
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.
g. Geben Sie den Suchbereich für das Element “NameLine” an: unterhalb des Elements “kwPatientTitle” und möglichst nah daran.
h. Klicken Sie auf Match und überprüfen Sie den Tree of Hypotheses. 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 kann durch Hinzufügen einer einfachen Skript-Suchbedingung erfolgen. Wählen Sie das Suchelement “NameLine” aus und öffnen Sie den Code-Editor Search Conditions.
j. Wir gehen davon aus, dass die erste Zeile einen vollständigen Namen enthält, wenn sie ein Komma und ein Leerzeichen enthält. Wenn sie einen vollständigen Namen enthält, möchten wir nicht nach einem zweiten Vorkommen der wiederholbaren Gruppe suchen. Fügen Sie das folgende Skript in den Editor ein:
- Der in Schritt 7 extrahierte Name des Patienten wird dem Feld “Name” zugeordnet. Wir werden außerdem die Adresse des Patienten extrahieren und zuordnen.
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 sich unterhalb der “NameLine” oder – falls dieses Element nicht gefunden wurde – unterhalb der ersten Zeile des Elements “NameAddressParagraph” befinden.
d. Klicken Sie auf Match. So sollte die Struktur des Suchelements aussehen:

- Öffnen Sie den Dialog Manage Fields, erstellen Sie die entsprechenden Felder und ordnen Sie sie den Suchelementen wie folgt zu:
| Name | Typ | Suchelement |
|---|---|---|
| Name | Textfeld in der “Patient”-Gruppe | NameLine |
| Address | Textfeld in der “Patient”-Gruppe | Address |
- Löschen Sie die Suchelemente, die automatisch für die neuen Felder erstellt wurden.
Extrahieren des Typs der Arbeitsunfähigkeitsbescheinigung
- 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 Repeating Group-Suchelement und nennen Sie es “PrimaryGroup”.
a. Es empfiehlt sich, 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 immer die Bedingung “Exists” an, wenn Sie später definierte Elemente verwenden.
c. Erstellen Sie ein Object Collection-Suchelement mit dem Namen “Checkmark” mit den 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 ihm 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 als Suchbereich den Bereich unterhalb des Elements “kwPrimary” aus der “PrimaryGroup” an.
b. Geben Sie den Suchbereich für das Element “Checkmark” an: links von “kwSecondary” und ihm am nächsten.
c. Das Object Collection-Suchelement findet eine Sammlung aller geeigneten Objekte innerhalb des Suchbereichs. Wenn sich die Häkchen in derselben Zeile befinden, 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” aus der “SecondaryGroup” aus.
d. Klicken Sie auf Match.

- Öffnen Sie das Fenster Manage Fields, erstellen Sie die entsprechenden Felder und ordnen Sie sie den Suchelementen wie folgt zu:
| Name | Typ | Suchelement |
|---|---|---|
| Type of Sick Note | Checkmark group | |
| Primary | Checkmark in der Checkmark group “Type of Sick Note” | PrimaryGroup -> Checkmark |
| Secondary | Checkmark in der Checkmark group “Type of Sick Note” | 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.
- Der Kasten, nach dem wir suchen, enthält eine Beschriftung. Um ihn zu finden, erstellen Sie ein Static Text-Element namens “kwDoctorTitle” (zu suchender Text: “Unterschrift des Arztes”).
- Erstellen Sie innerhalb der Gruppe “DoctorAreaGroup” eine weitere Gruppe mit dem Namen “DataArea”.
- Der Kasten, der die Arztinformationen und die Unterschrift enthält, wird durch eine Kombination aus vier Trennlinien begrenzt. Sie befinden sich rund um das Element “kwDoctorTitle”. Wir sollten die Elemente jedoch so konfigurieren, dass das Programm sie auch dann finden kann, wenn das Element “kwDoctorTitle” nicht gefunden wurde. Erstellen Sie in der Gruppe “DataArea” vier Separator-Suchelemente mit den folgenden Eigenschaften:
| Name | Ausrichtung | Mindestlänge | Suchbereich |
|---|---|---|---|
SeparatorRight | Vertikal | 180 | Rechts von “kwDoctorTitle”, dem rechten Seitenrand am nächsten |
SeparatorLeft | Vertikal | 180 | Links von “kwDoctorTitle”, links von “SeparatorRight” (falls “kwDoctorTitle” nicht gefunden wurde), “SeparatorRight” am nächsten, unterhalb von “SeparatorRight” (klicken Sie auf das Symbol rechts neben dem Trennliniennamen 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”, dem unteren Seitenrand am nächsten (diese Einstellung ist nützlich, falls “kwDoctorTitle” nicht gefunden wurde) |
SeparatorTop | Horizontal | 200 | Oberhalb von “kwDoctorTitle”, rechts von “SeparatorLeft”, “TypeOfSickNoteGroup” am nächsten, “SeparatorBottom” ausschließen |
- Wir könnten den Suchbereich für die Arztunterschrift und die Arztdaten manuell in Bezug auf die gefundenen Trennlinien angeben. Stattdessen erstellen wir ein Region-Element, das dem mit den 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 Arztunterschrift zu finden, erstellen Sie innerhalb der “DoctorGroup” ein Object Collection-Element mit den folgenden Einstellungen:
| Eigenschaft | Wert |
|---|---|
| Name | Signature |
| Type | Picture |
| Minimum width | 15 |
| Minimum height | 15 |
| Maximum width | 600 |
| Maximum height | 350 |
| Abschnitt Search Conditions im Code Editor | Die Unterschrift kann teilweise außerhalb des Kastens liegen. Um das gesamte Bild zu finden, erweitern wir den Suchbereich in jede Richtung um 100 Punkte: RSA: DoctorAreaGroup.DataArea.BoxRegion.Rect.GetInflated(100dot,100dot); |
- Um die Textinformationen im Kasten zu extrahieren, erstellen Sie ein Paragraph-Element mit den folgenden Einstellungen:
| Eigenschaft | Wert |
|---|---|
| Name | DoctorInformation |
| Maximum line count | 6 |
| Suchbereich | Oberhalb von “kwDoctorTitle”, “Signature” ausschließen |
| Abschnitt Search Conditions im 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 | Typ | Suchelement |
|---|---|---|
| Doctor Information | Text-Feld in der Gruppe “Doctor” | DoctorInformation |
| Signature | Bildfeld in der Gruppe “Doctor” | Signature |
- Löschen Sie die Suchelemente, die automatisch für die neuen Felder erstellt wurden.
