Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt

Use this file to discover all available pages before exploring further.

Continuando con los documentos alemanes, configure la actividad Extraction Rules para ellos. Fast Learning ya se ha encargado de algunos campos; esta actividad abarca el resto.

Antes de comenzar

1

Abra la actividad en el Activity Editor

  1. Abra la actividad “Sick Note DE” en el Activity Editor.
  2. Seleccione uno de los documentos del conjunto de documentos.
2

Habilite las propiedades avanzadas del elemento

Asegúrese de que el modo avanzado para las propiedades del elemento esté habilitado. Para activar o desactivar este modo, haga clic en el icono en el panel Properties.
Todos los documentos cargados han pasado por un prerreconocimiento. Haga clic en el icono (o haga clic en el icono de más y seleccione Recognized Words si el icono no cabe en su pantalla) para resaltar los objetos detectados en la imagen del documento. Puede alternar entre tipos de objetos en cualquier momento; por ejemplo, Recognized Lines ayuda al buscar párrafos y Separators facilita la configuración de un elemento de búsqueda separador.
Si un elemento de búsqueda está fuera del área de búsqueda, no se encontrará. Habilite la opción Show search area en el menú contextual de la imagen del documento. El área de búsqueda de cada elemento se resaltará en verde cuando evalúe los resultados de coincidencia.
Tenga en cuenta que puede ser útil experimentar con las propiedades avanzadas de los elementos de búsqueda para mejorar la precisión de la extracción. También le recomendamos hacer clic con frecuencia en Match para comprobar cómo funcionan sus reglas de extracción y comparar los resultados de extracción en distintos documentos del conjunto. Puede probar un único elemento sin relaciones con otros elementos haciendo clic en Match Element en su menú contextual. En este caso, la calidad de la hipótesis de los elementos anteriores no afectará los resultados de coincidencia.

Extracción de los datos del paciente

Extraiga los datos faltantes del paciente creando varios elementos de búsqueda. Agrupe los elementos relacionados con una entidad. Los elementos de búsqueda se comparan uno tras otro: si falla un elemento al principio, la calidad de la hipótesis disminuye para el resto de la cadena. Los grupos, sin embargo, se procesan de forma independiente con su propia hipótesis, por lo que agrupar le permite controlar cómo se afectan entre sí los elementos y evaluar los resultados de la coincidencia de un vistazo. La agrupación también puede reducir el tiempo de coincidencia.
1

Cree el grupo PatientDataArea

  1. Haga clic en Create Element y seleccione el elemento grupo en la lista desplegable. Cambie su nombre a “PatientDataArea”.
  2. En la sección En qué condiciones, cambie el valor de Element is a Optional.
De forma predeterminada, un nuevo elemento de búsqueda de grupo se establece como obligatorio. Si no se encuentra un elemento obligatorio, el Activity Editor genera un error y se interrumpe la coincidencia. Este escenario permite omitir actividades cuando no son adecuadas para un documento determinado. Sin embargo, en este tutorial estamos creando una actividad para extraer datos de todos los documentos entrantes, por lo que queremos que el grupo sea opcional.
2

Localice la etiqueta del paciente con un elemento de texto estático

En los documentos alemanes, el párrafo que contiene el nombre y la dirección del paciente siempre está ubicado en el campo con la etiqueta “Name, Vorname …”. Necesitamos encontrar este texto en el documento y usarlo como referencia para buscar los datos que queremos extraer.
  1. Haga clic en Create Element y seleccione el elemento Texto estático de la lista desplegable. Cambie su nombre a “kwPatientTitle”.
  2. Introduzca el texto “Name, Vorname” en el campo Texto para buscar del panel Propiedades.
  3. Haga clic en Match. Cuando finalice el procesamiento, verá el Árbol de hipótesis debajo del documento. Asegúrese de que Advanced Designer haya encontrado correctamente el texto estático deseado: un punto verde junto al nombre del elemento indica que la coincidencia se encontró correctamente. Haga clic en el nombre del elemento en el Árbol de hipótesis para ver un marco violeta alrededor de la región correspondiente del documento.
Si no se encontró un elemento, verá un punto naranja junto a su nombre y un marco naranja alrededor de la imagen del documento. Tenga en cuenta que la calidad de la hipótesis de un elemento afecta al estado de los elementos posteriores de la cadena y a la calidad general de la cadena. Puede encontrar información detallada sobre la calidad de las hipótesis en la documentación.
3

Encuentre el límite inferior con un separador

Encuentre el límite inferior de la celda que contiene el nombre y la dirección del paciente mediante un elemento separador.
  1. Agregue un elemento separador al grupo y asígnele el nombre “SeparatorBottom”. Establezca su longitud mínima en 200.
  2. Haga clic con el botón derecho en el elemento y seleccione Match Element en el menú contextual. El Árbol de hipótesis contiene muchos puntos verdes; corresponden a distintos separadores que cumplen los criterios de búsqueda. Haga clic en cada punto para ver el objeto correspondiente en la imagen.
  3. Para acotar los criterios de búsqueda, especifique el área de búsqueda del separador. Haga clic en Match para encontrar el elemento “kwPatientTitle”, que se utilizará como elemento de anclaje. En la sección Dónde buscar del panel Propiedades, haga clic en Draw on Image. Seleccione el elemento “kwPatientTitle” en el documento y haga clic en el icono de flecha hacia abajo para especificar el área de búsqueda debajo de la palabra clave, y en el icono más cercano para buscar el separador más próximo a la palabra clave.
  4. Haga clic en Match y compruebe que Advanced Designer haya encontrado el separador debajo del elemento “kwPatientTitle”.
4

Busque el párrafo con el nombre y la dirección

Una etiqueta y un separador son elementos de referencia fiables para los datos del paciente. Sin embargo, si la calidad de impresión es demasiado baja, es posible que no se reconozca el texto de la etiqueta o que no se encuentre el separador. Para garantizar buenos resultados de extracción, busque un párrafo situado entre la etiqueta y el separador: un párrafo es un bloque de texto uniforme y puede encontrarse correctamente aunque no se hayan encontrado algunos de los elementos delimitadores.
  1. Cree un elemento de búsqueda de Párrafo y asígnele el nombre “NameAddressParagraph”.
  2. Cambie Text alignment a Left.
  3. Los datos del paciente ocupan de dos a cinco líneas, así que especifique Line count de 2 a 5.
  4. Especifique el área de búsqueda del párrafo mediante el menú Add en la sección Where to search. El elemento debe estar situado debajo del elemento “kwPatientTitle” y encima del elemento “SeparatorBottom”.
  5. Haga clic en Match.
5

Crear PatientGroup

Cree un nuevo elemento de grupo llamado “PatientGroup” para agrupar los elementos de búsqueda que extraen los datos del paciente.
6

Configurar el grupo repetido NameGroup

El nombre del paciente puede ocupar una o dos líneas. Para capturar varias instancias de un elemento, use un grupo repetido.
  1. Cree un elemento de búsqueda Grupo repetido y asígnele el nombre “NameGroup”. Especifique 2 como número máximo de repeticiones. Haga que el elemento sea opcional.
  2. Para restringir el área de búsqueda a las líneas que forman parte del párrafo “NameAddressParagraph”, haga clic en el icono del editor de código situado debajo de la imagen del documento y pegue el siguiente script en la sección Search Conditions del Code Editor:
    RSA:PatientDataArea.NameAddressParagraph.Rect;
    
  3. Dentro del grupo repetido, cree un elemento Cadena de caracteres diseñado para capturar una línea de caracteres. Asígnele el nombre “NameLine”.
  4. El texto que buscamos puede contener letras mayúsculas y minúsculas, así como un conjunto de signos de puntuación. Configure dos conjuntos de caracteres independientes:
    • El primer conjunto contiene todas las letras latinas mayúsculas y minúsculas. Para agregar caracteres con signos diacríticos, cambie el subrango Unicode o pegue los caracteres directamente en el campo Selected characters.
    • El segundo conjunto contiene los signos de puntuación: ,-.()’. Para evitar que la cadena contenga únicamente signos de puntuación, establezca Portion in text, % para el segundo conjunto en 40%.
  5. Desactive la opción Search for parts of words.
  6. Especifique el área de búsqueda para el elemento “NameLine”: debajo del elemento “kwPatientTitle” y lo más cerca posible de él.
  7. Haga clic en Match y revise el Tree of Hypotheses. Se encuentran dos cadenas de caracteres, pero la segunda contiene la dirección del paciente.
  8. Para excluir la dirección de los resultados de búsqueda, agregue una condición de búsqueda mediante script. Seleccione el elemento de búsqueda “NameLine” y abra el editor de código de Search Conditions. Pegue el siguiente script: se asume que la primera línea contiene un nombre completo si incluye una coma y un espacio; si se encuentra un nombre completo, el grupo repetido deja de buscar una segunda instancia:
    if (NameGroup.HasInstances and LastFound.NameLine.Value.Find(", ") > 0) then DontFind;
    
  9. Haga clic en Match y asegúrese de que el nombre se haya encontrado correctamente.
La configuración predeterminada permite que la cadena contenga hasta un 30% de caracteres no incluidos en ningún conjunto. Esto ayuda a encontrar cadenas incluso cuando algunos caracteres se reconocen incorrectamente o no están incluidos en el conjunto (como los caracteres con signos diacríticos). Puede ajustar esta configuración cambiando el valor de Allowed errors en el panel Propiedades.
7

Configurar el elemento Address

El nombre del paciente extraído en el paso anterior se asignará al campo “Name”. Ahora extraiga la dirección del paciente.
  1. Dentro de “PatientGroup”, cree un elemento de búsqueda de cadena de caracteres llamado “Address” con la misma configuración del conjunto de caracteres que el elemento “NameLine”.
  2. Especifique el área de búsqueda del elemento mediante código. La dirección debe estar situada debajo de “NameLine” o, si no se encontró ese elemento, debajo de la primera línea del elemento “NameAddressParagraph”:
    RSA: PatientDataArea.NameAddressParagraph.Rect;
    if NameGroup.HasInstances then
      RSA.Top: Max(RSA.Top, LastFound.NameLine.Rect.Bottom);
    else
      RSA.Top: PatientDataArea.NameAddressParagraph.Lines[0].Rect.Bottom;
    
  3. Desactive la opción Buscar partes de palabras.
  4. Haga clic en Match.
La estructura del elemento de búsqueda debería verse así:
Jerarquía del elemento de búsqueda para los datos del paciente alemán: grupo PatientDataArea que contiene kwPatientTitle, SeparatorBottom, NameAddressParagraph y PatientGroup con NameGroup y Address
8

Crear y mapear los campos del paciente

Abra el cuadro de diálogo Manage Fields, cree los campos correspondientes y asígnelos a los elementos de búsqueda de la siguiente manera:
NombreTipoElemento de búsqueda
NameCampo de texto en el grupo “Paciente”NameLine
AddressCampo de texto en el grupo “Paciente”Address
Elimine los elementos de búsqueda que se crearon automáticamente para los nuevos campos.

Extracción del tipo de parte de baja por enfermedad

El campo del tipo de parte de baja por enfermedad tiene dos casillas de verificación. Sus etiquetas son “Erstbescheinigung” y “Folgebescheinigung”. La tarea consiste en localizar las etiquetas y, a continuación, comprobar si hay marcas de verificación seleccionadas junto a ellas.
1

Crear el TypeOfSickNoteGroup

Cree un elemento Group llamado “TypeOfSickNoteGroup” y hágalo opcional.
2

Configurar el PrimaryGroup

Cree un elemento de búsqueda grupo repetido llamado “PrimaryGroup” para almacenar la información sobre ambas marcas de verificación.
  1. Restrinja el área de búsqueda del grupo de elementos mediante código: a la derecha del elemento “PatientGroup” y por encima del elemento “DoctorAreaGroup” (que se creará más adelante):
    if PatientGroup.Exists then RSA.Left: PatientGroup.NameGroup.NameLine.Rect.Right;
    if DoctorAreaGroup.Exists then RSA.Bottom: DoctorAreaGroup.DataArea.SeparatorTop.Rect.Top;
    
  2. Cree un elemento de búsqueda texto estático llamado “kwPrimary” (texto que se debe buscar: “Erstbescheinigung”) y márquelo como obligatorio.
  3. Cree un elemento de búsqueda colección de objetos llamado “Checkmark” con esta configuración: Type Checkmark, Checkmark state Checked, Minimum height 10, Maximum width 20, Maximum height 20. Especifique que el elemento está situado a la izquierda del elemento “kwPrimary” y es el más cercano a este.
  4. Haga clic en Match.
Especifique siempre la condición Exists cuando haga referencia a elementos futuros (como “DoctorAreaGroup” arriba).
3

Crear y configurar el SecondaryGroup

  1. Copie y pegue el grupo “PrimaryGroup”. Cambie el nombre del grupo copiado a “SecondaryGroup”; este grupo es obligatorio.
  2. Cambie el nombre del elemento “kwPrimary” dentro de él a “kwSecondary” y establezca el texto que se debe buscar en “Folgebescheinigung”. Especifique el área de búsqueda: debajo del elemento “kwPrimary” de “PrimaryGroup”.
  3. Especifique el área de búsqueda para el elemento “Checkmark”: a la izquierda de “kwSecondary” y el más cercano a este.
  4. El elemento de búsqueda colección de objetos encuentra una colección de todos los objetos adecuados dentro del área de búsqueda. Si las marcas de verificación están situadas en la misma línea, el elemento “Checkmark” de “SecondaryGroup” también puede encontrar la marca de verificación principal. Para evitarlo, excluya la marca de verificación principal del área de búsqueda.
  5. Haga clic en Match.
La estructura del elemento de búsqueda debería verse así:
Jerarquía de elementos de búsqueda para el tipo de parte de baja por enfermedad en alemán: TypeOfSickNoteGroup contiene PrimaryGroup y SecondaryGroup, cada uno con elementos de palabra clave kwPrimary o kwSecondary y Checkmark
4

Crear y asignar los campos del tipo de parte de baja por enfermedad

Abra la ventana Manage Fields, cree los campos correspondientes y asígnelos a los elementos de búsqueda de la siguiente manera:
NombreTipoElemento de búsqueda
Tipo de parte de baja por enfermedadgrupo de marcas de verificación
Principalmarca de verificación en el grupo de marcas de verificación “Tipo de parte de baja por enfermedad”PrimaryGroup -> Checkmark
Secundariomarca de verificación en el grupo de marcas de verificación “Tipo de parte de baja por enfermedad”SecondaryGroup -> Checkmark
Elimine los elementos de búsqueda que se crearon automáticamente para los nuevos campos.

Extracción de los datos del médico

Ahora tenemos que procesar el último bloque de datos de estos documentos. Contiene los datos y la firma del médico. Primero buscaremos el cuadro que contiene los datos y luego extraeremos un párrafo con la información del médico y una región de imagen que contenga la firma.
1

Cree DoctorAreaGroup y DataArea

  1. Cree un elemento Group llamado “DoctorAreaGroup” y haga que el elemento sea opcional.
  2. Para encontrar la etiqueta del cuadro, cree un elemento Static Text llamado “kwDoctorTitle” (texto a buscar: “Unterschrift des Arztes”).
  3. Dentro del grupo “DoctorAreaGroup”, cree otro grupo llamado “DataArea”.
2

Agregue los cuatro separadores delimitadores

El cuadro que contiene la información y la firma del médico es una combinación de cuatro separadores ubicados alrededor del elemento “kwDoctorTitle”. Configure los elementos de forma que el programa pueda encontrarlos incluso si no se encontró “kwDoctorTitle”.En el grupo “DataArea”, cree cuatro elementos de búsqueda Separator con las siguientes propiedades:
NameOrientationMinimum lengthSearch area
SeparatorRightVertical180A la derecha de “kwDoctorTitle”, más cercano al borde derecho de la página
SeparatorLeftVertical180A la izquierda de “kwDoctorTitle”, a la izquierda de “SeparatorRight” (en caso de que no se haya encontrado “kwDoctorTitle”), más cercano a “SeparatorRight”, por debajo de “SeparatorRight” (haga clic en el icono a la derecha del nombre del separador y seleccione Top Boundary of Region), excluir “SeparatorRight”
SeparatorBottomHorizontal200Por debajo de “kwDoctorTitle” (con un ajuste de -10 puntos), a la derecha de “SeparatorLeft”, a la izquierda de “SeparatorRight”, más cercano al borde inferior de la página (esta configuración será útil en caso de que no se haya encontrado “kwDoctorTitle”)
SeparatorTopHorizontal200Por encima de “kwDoctorTitle”, a la derecha de “SeparatorLeft”, más cercano a “TypeOfSickNoteGroup”, excluir “SeparatorBottom”
Desactive la opción Fits entirely within search area para los cuatro elementos.
3

Cree BoxRegion

Cree un elemento de búsqueda Region llamado “BoxRegion” y especifique el área de búsqueda: a la izquierda de “SeparatorRight”, a la derecha de “SeparatorLeft”, por encima de “SeparatorBottom” y por debajo de “SeparatorTop”.Esta región corresponde al área delimitada por los cuatro separadores; usarla evita tener que especificar manualmente las áreas de búsqueda para la firma y la información del médico.
4

Crear el grupo DoctorGroup

Cree un nuevo grupo llamado “DoctorGroup” dentro de “DoctorAreaGroup” para incluir los elementos de firma e información.
5

Añada la colección de objetos Signature

Para localizar la firma del médico, cree un elemento Object Collection dentro de “DoctorGroup” con la siguiente configuración:
PropertyValue
NameSignature
TypePicture
Minimum width15
Minimum height15
Maximum width600
Maximum height350
Search Conditions section of the Code EditorLa firma puede estar ubicada parcialmente fuera del cuadro. Para encontrar la imagen completa, expandiremos el área de búsqueda en 100 puntos en cada dirección: RSA: DoctorAreaGroup.DataArea.BoxRegion.Rect.GetInflated(100dot,100dot);
6

Agregue el párrafo "DoctorInformation"

Para extraer la información de texto del cuadro, cree un elemento Paragraph con la siguiente configuración:
PropertyValue
NameDoctorInformation
Maximum line count6
Search areaPor encima de “kwDoctorTitle”, excluir “Signature”
Search Conditions section of the Code EditorRSA: DoctorAreaGroup.DataArea.BoxRegion.Rect;
7

Compruebe que se hayan encontrado los elementos

Haga clic en Match y asegúrese de que los elementos se encuentren correctamente.La estructura de elementos de búsqueda debe verse así:
Jerarquía de elementos de búsqueda para los datos del médico alemán: DoctorAreaGroup contiene kwDoctorTitle y DataArea (con cuatro Separators y BoxRegion como límites), además de DoctorGroup con Signature y DoctorInformation
8

Cree y asigne los campos del médico

Abra el cuadro de diálogo Manage Fields, cree los campos correspondientes y asígnelos a los elementos de búsqueda de la siguiente manera:
NameTypeSearch element
Doctor InformationCampo de texto en el grupo “Doctor”DoctorInformation
SignatureCampo de imagen en el grupo “Doctor”Signature
Elimine los elementos de búsqueda que se crearon automáticamente para los nuevos campos.

Probar la actividad

Hemos configurado todos los elementos de búsqueda y campos necesarios. Seleccione todos los documentos, haga clic en Match y cambie a la pestaña Fields para revisar las regiones de campo en las imágenes del documento. Tenga en cuenta que una región solo se asignará a un campo si pertenece a la hipótesis de la mejor ruta. Cuando esté satisfecho con los resultados, haga clic en el icono de copiar sobre la imagen del documento para copiar el etiquetado previsto al etiquetado de referencia.

Qué sigue

Step 8. Configurar la actividad Sick Note BE-NL

Configure la actividad Extraction Rules para los partes de baja por enfermedad de los Países Bajos y Bélgica.

Resumen del tutorial

Volver a la introducción del tutorial.