Nº 65 - Sociedad Española de Informática de la Salud

Transcripción

Nº 65 - Sociedad Española de Informática de la Salud
Foro de Normalización
Coordinador: Adolfo Muñoz
ADL - LENGUAJE DE DEFINICIÓN DE ARQUETIPOS
Para el desarrollo de la norma europea EN13606 para la transferencia de historias clínicas electrónicas se han
seguido, principalmente, los 3 paradigmas que actualmente gobiernan la definición de normas: separación
de responsabilidades, según el cual es necesario descomponer un sistema complejo, como es el caso de la
informática sanitaria, en otros más simples y manejables, separación de puntos de vista, que sigue el modelo
de referencia de ISO para el desarrollo de sistemas abiertos de procesamiento distribuido (RM/ODP) y
separación de información y conocimiento paradigma mediante el que se diferencian los datos conocidos de
una determinada entidad del dominio (la información:
Juan Español tiene una tensión arterial de 150 – 95 mmHg) de aquellos conceptos que son ciertos para
todas las entidades (el conocimiento: una medida de la presión arterial humana está compuesta por dos valores,
la presión sistólica y la diastólica). Este último paradigma es el que va a permitir que los sistemas de
información compatibles con la norma estén, por un lado protegidos frente a los cambios del conocimiento que,
como fruto de la investigación o de la práctica diaria, tan comunes son en el campo clínico y, por otro, sean
semánticamente interoperables entre sí.
En la norma EN13606 la separación de información y conocimiento se implementa mediante la especificación
de un doble modelo, de referencia y de arquetipos. El modelo de referencia representa las características
generales de los componentes del registro de salud, cómo se organizan y la información de contexto
necesaria para satisfacer los requerimientos tanto éticos como legales. Define el conjunto de clases para
representar los bloques constitutivos del registro, es decir, sus características estables. Sin embargo, para
alcanzar la interoperabilidad semántica deseada, este modelo debe ser complementado en el dominio del
conocimiento por un método formal para transmitir y compartir estructuras de clases predefinidas, acordadas
por una comunidad, que se correspondan con fragmentos del registro, creados en situaciones clínicas
específicas: los arquetipos. Un arquetipo es una combinación jerárquica de componentes del modelo de
referencia a los que restringe (fijando sus nombres, los tipos de datos posibles, valores por defecto,
cardinalidad, etc.) para modelar conceptos clínicos del dominio del conocimiento.
La norma EN13606 define en su primera parte el modelo de referencia, mientras que en la segunda
define el modelo de arquetipos, así como propone un lenguaje para la definición de los mismos, el ADL
(Archetype Definition Language).
El ADL es un lenguaje creado para la expresión de arquetipos que puede ser utilizado en cualquier dominio
en el que los conceptos se puedan describir como instancias de un modelo de referencia subyacente,
pues no está basado en ningún modelo de referencia concreto, ni comparte ninguna palabra clave con él.
ADL especifica restricciones sobre los tipos o las clases del modelo por medio de una sintaxis concreta, el
cADL (constraint ADL - ADL de restricciones) definiendo las características que deben cumplir las instancias
del modelo de referencia para ser conformes al arquetipo.
Además del cADL, ADL utiliza una segunda sintaxis, en este caso para definir instancias de los datos también
acordes a un modelo de referencia, el dADL (data ADL - ADL de datos). Es decir, mientras el cADL se usa
para determinar restricciones que deben cumplir las instancias e datos, dADL se emplea para expresar
instancias de los mismos.
1.1 dADL - ADL de datos
El dADL es una sintaxis que proporciona una manera de expresar instancias de datos, acordes a un modelo de
referencia, de tal manera que sean procesables por una máquina y legibles por un humano. El siguiente ejemplo
es una muestra de su aspecto:
PERSONA [01234] = <
nombre = NOMBRE_PERSONA <-- nombre de persona
nombre = <”Irene”>
apellido = <”Adler”>
>
direccion = DIRECCION <-- dirección de persona
nombre_calle = <”Baker”>
número_calle = <”223 b”>
ciudad = <”Londres”>
país = <”Inglaterra”>
>
El ejemplo es una instancia de datos acordes a un hipotético modelo de referencia en el que se definiese una
clase llamada “PERSONA” que contuviese, al menos, dos atributos: nombre, de tipo NOMBRE_PERSONA y
dirección, de tipo DIRECCION. A su vez la clase NOMBRE_PERSONA contendría como mínimo dos
atributos, ambos de tipo CADENA: nombre y apellido. Por su parte, la clase DIRECCIÓN contendría los
atributos, también de tipo CADENA: nombre_calle, número_calle, ciudad y país. Un documento dADL
siempre expresará una jerarquía de una o más instancias de objetos de un modelo de referencia. En su forma
más básica, la estructura es una repetición del siguiente esquema:
identificador_atributo = {TIPO_VALOR} <valor>
donde valor puede ser un valor literal de uno de los tipos primitivos definidos en el lenguaje (carácter, entero,
cadena, etc.) con lo que representaría una hoja de la jerarquía, o una anidación de atributos (es decir, uno de los
tipos de datos definidos en el modelo de referencia) y nuevos valores. El valor también puede ser una cadena
vacía, para indicar que en esa particular instancia de un objeto, no se da valor a un determinado atributo.
Ante el parecido de dADL parecido con XML puede surgir la duda de por qué no utilizar aquél en lugar de
proponer un lenguaje nuevo. La principal razón para la creación de dADL reside en que el objetivo principal
del lenguaje es que sea fácilmente leído por un humano y esa característica no está presente en XML (cualquier
ejemplo real de XML es difícilmente comprensible por un humano) porque XML es un lenguaje enfocado al
procesamiento automático y que se mantiene legible únicamente como una consecuencia de otra de sus
características, que es asegurar la interoperabilidad sintáctica. Otras razones para el uso de dADL son: un
conjunto de tipos primitivos más completo, incluyendo intervalos, listas y fechas, que XML no define,
dADL se adhiere a una semántica orientada a objetos, característica que XML generalmente no ofrece, y, por
último, evitar la confusa notación de XML que diferencia entre atributos y elementos para representar lo que en
el fondo son propiedades de objetos.
1.2 cADL - ADL de restricciones
cADL es un lenguaje para la definición de restricciones sobre datos definidos por un modelo de referencia.
Estas restricciones pueden ser incluidas en arquetipos o en otros formalismos de definición de conocimiento, de
tal manera que puedan emplearse tanto por los diseñadores, para modelar conceptos de un dominio, como en
tiempo de ejecución de manera que los sistemas de información puedan validar si unos datos determinados
son conformes o no a un modelo. El siguiente ejemplo muestra su aspecto general:
PERSONA [at0000] matches
{-- Restricciones para instancias de PERSONA
nombre matches {
TEXTO matches { /.+/} -- Cadena no vacía
}
dirección cardinality matches { 0..*} matches {
DIRECCIÓN_POSTAL matches {
--- etc ---
En el ejemplo se establecen restricciones sobre elmismo modelo de referencia utilizado anteriormente,
para definir cómo deben ser las instancias de datos del tipo PERSONA que nos interesan. En concreto se dice
que una instancia ha de tener un nombre, que éste es de tipo TEXTO y que debe ser una cadena no vacía y
también que puede tener de 0 a varias direcciones.
La estructura general de las restricciones escritas en cADL es anidada. Siempre se comienza expresando las
restricciones sobre un tipo. Estas restricciones se definen a su vez por medio de restricciones sobre las
propiedades (atributos) del tipo original. A su vez, las restricciones sobre las propiedades se definen
estableciendo restricciones sobre sus tipos de datos. El proceso continúa hasta que el tipo de la propiedad es
uno de los tipos de datos primitivos y se establece una restricción sobre los valores que puede tomar. En el
ejemplo de la sección anterior se establecen restricciones sobre el tipo PERSONA.
Para ello se definen restricciones sobre sus propiedades (atributos nombre y dirección) y para definir estas
restricciones se plantean restricciones sobre los tipos de los atributos (TEXTO y DIRECCIÓN_POSTAL).
Únicamente se establecen restricciones para aquellos nodos que sea necesario. Si alguno de los atributos
pertenecientes a una clase no aparece entre las restricciones establecidas para dicha clase, lo que se indica es
que no se establecen para ese atributo más restricciones que las establecidas por el modelo de referencia. Las
restricciones establecidas por medio de cADL no pueden ser más fuertes que las que establece el propio
modelo de referencia subyacente. Es decir, si, por ejemplo, el modelo de referencia establece que de los
atributos del tipo PERSONA, nombre es obligatorio, ninguna restricción cADL de un arquetipo puede
establecer que dicho atributo sea opcional.
1.3 Definición de un arquetipo
Utilizando estas dos sintaxis vistas, ADL permite definir arquetipos para modelar conceptos del conocimiento
del dominio tratado. En la figura pueden verse las distintas secciones que componen un arquetipo, junto con
la sintaxis utilizada en cada una de ellas.
Las primeras secciones se usan para dar un nombre al arquetipo (archetype), para indicar si se trata de una
especialización de otro (specialize) y para especificar el concepto del dominio que modela (concept). Este
concepto puede, como cualquier otro nodo incluido en la definición del arquetipo, codificarse utilizando un
sistema propio o cualquiera de las terminologías disponibles, como SNOMED. A continuación se indica el
idioma original del arquetipo así como las traducciones disponibles (language). La siguiente sección
(description) sirve para informar sobre el autor y la organización para la que trabaja, así como detalles de usos
recomendados y prohibidos del arquetipo. La sección de definición (definition) es la única escrita en cADL y
es la que expresa las restricciones sobre el modelo de referencia. En la sección de ontología se da valor a los
códigos definidos en los nodos del arquetipo y se enlazan éstos con las ontologías deseadas. También en esta
sección se incluyen las traducciones de cada elemento textual a los diferentes idiomas de los que dispone el
arquetipo. En la última sección (revision_history) se puede incluir la historia de la evolución del arquetipo.

Documentos relacionados