Este documento presenta una introducción a los tipos de datos utilizados en CDA. Explica el concepto de tipo de datos y describe los tipos más importantes como enteros, cadenas de caracteres, cantidades físicas y tipos de datos codificados. También cubre la representación de tipos de datos en XML y los tipos de datos temporales de acuerdo con ISO 8601.
2. Contenido
1. Objetivos del tema
2. Concepto de tipo de datos
3. Tipos de datos en CDA
4. Representación en XML
5. Tipos de datos más importantes
12/09/2016 Tema 2. Tipos de datos 2
3. 1. Objetivos del tema
• Describir el concepto de tipo de datos
• Introducir los diversos tipos de datos
utilizados en CDA
• Describir brevemente y proporcionar
ejemplos de los tipos de datos más
comunes
12/09/2016 Tema 2. Tipos de datos 3
4. 2. Concepto de tipo de datos
• Todos los elementos de información tienen un
tipo de datos
• Un tipo de dato define la estructura y significado
de los valores que pueden ser asignados a un
elemento de información
• Por tanto: definen los elementos básicos a partir
de los cuales se construye el resto de estructuras
hasta llegar al documento
12/09/2016 Tema 2. Tipos de datos 4
5. 2. Concepto de tipo de datos
• Un aspecto importante en CDA es que los
tipos de datos no tienen identidad (es
decir sus instancias no tiene identificador)
sino que solamente importa su valor
• La especificación de los tipos de datos en
HL7 es independiente de la
representación, es decir independiente de
la tecnología
12/09/2016 Tema 2. Tipos de datos 5
6. 3. Tipos de datos en CDA
• CDA utiliza un conjunto amplio de tipos de
datos con diversa complejidad. Algunos
ejemplos son los enteros, lógicos (sí/no) o
más complejos como PQ (physical Quantity)
que permite representar medidas físicas
(incluye la magnitud y la unidad de medida)
• A continuación veremos algunos de los más
importantes. Para el listado completo
consultar la sección “Data Types – Abstract
Specification” del estándar
12/09/2016 Tema 2. Tipos de datos 6
7. 3. Tipos de datos en CDA
(algunos de los más importantes)
12/09/2016 Tema 2. Tipos de datos 7
8. 4. Representación en XML
• Dada la importancia de XML, el estándar
proporciona una representación en XML por medio
de un conjunto de XML Schemas
• En esta representación los elementos constitutivos
de los tipos de datos se representan como
atributos en XML
• Los esquemas de los tipos de datos se encuentra
en: datatypes.xsd y datatypes-base.xsd
Atributo valor
Valor 30
Unidad mg
<xs:elemento valor="30" unidad=“mg"/>
12/09/2016 Tema 2. Tipos de datos 8
9. 5. Tipos de datos más importantes
• A continuación describiremos y daremos
ejemplos de algunos de los tipos de datos
más comunes
12/09/2016 9Tema 2. Tipos de datos
10. Tipo ANY
• Es el tipo raíz, es decir todos los tipos de datos son
subtipos de ANY. Por tanto, los atributos comunes a
todos los tipos de datos aparecen en este tipo
• Es abstracto. Esto significa que en los datos no pueden
aparecer instancias de ANY, sino instancias de alguno
de sus subtipos no abstractos
• Sin embargo, sí que se gasta en la especificación ya que
hay ocasiones donde múltiples tipos de datos son
admisibles, por ejemplo en el atributo “value” de una
observación (puede ser un número, un texto, valor
codificado, fecha, etc.)
<xs:element name="value" type="ANY" minOccurs="0" maxOccurs="unbounded"/>
12/09/2016 Tema 2. Tipos de datos 10
11. NULL FLAVOR
• En CDA el tipo de dato “ANY” tiene un
atributo: nullFlavor de tipo NullFlavor
• Permite especificar el porqué de un valor
faltante (desconocido, no se preguntó, sin
información, etc.). El estándar define 11
“razones”
• La siguiente tabla recoge estas 11 razones
o “flavor” de nulo. Las 4 en negrita son las
más comunes
12/09/2016 Tema 2. Tipos de datos 11
12. Null Flavor
Valor Explicación
NI Sin información, es decir el valor no está y no sabemos nada más
OTH El valor no está en el domino previsto para la variable. Se aplica
principalmente a valores codificados
NINF Infinito negativo
PINF Infinito positivo
UNK Desconocido
ASKU A pesar de que se preguntó es desconocido
NASK No se preguntó
NAV Temporalmente desconocido. Puede saberse en el futuro
TRC Valor mayor que cero, pero no puede cuantificarse
MSK La información existe pero no puede facilitarse por razones de
seguridad, privacidad o del negocio
NA No aplicable, por ejemplo fecha de la última menstruación en
hombres
12/09/2016 Tema 2. Tipos de datos 12
13. BL-Booleano
• Puede tomar dos valores: verdadero (true)
o falso (false)
• En el siguiente ejemplo utilizamos un
booleano para dar valor al atributo “value”
de una observación. Nótese que en la
representación en XML tenemos que
indicar explícitamente el tipo ya que
“value” es de tipo “ANY”
<value xsi:type=‘BL’ value=‘false’>
12/09/2016 Tema 2. Tipos de datos 13
14. INT-Entero
• Número entero (por tanto sin decimales)
• Puede incluir signo al principio
• Ejemplos:
<versionNumber value="2"/>
<value xsi:type="INT" value="-100"/>
12/09/2016 Tema 2. Tipos de datos 14
15. REAL
• Número con decimales
• Puede contener signo al principio
• Ejemplo:
<value xsi:type="REAL" value="12.32"/>
12/09/2016 Tema 2. Tipos de datos 15
16. PQ – Cantidad Física
• Una cantidad con unidades de medida
estandarizadas
• Por defecto se considera que las unidades
siguen el formato estándar UCUM
(http://unitsofmeasure.org/ucum.html), por
ejemplo: Ej. 182 mmHG
• Puede incluir una representación alternativa
en un sistema de medición diferente
• Ejemplo:
<value xsi:type=“PQ” value=“300” unit=“mg”/>
12/09/2016 Tema 2. Tipos de datos 16
17. ST-Cadena de caracteres
• Cadena de texto plano sin compresión
• Permite especificar el idioma (atributo
language)
• Ejemplos:
<value xsi:type=“ST” language=“es/ES”>esto es una
cadena de texto</value>
<value xsi:type=”ST” nullFlavour=“UNK”>
12/09/2016 Tema 2. Tipos de datos 17
18. ED-Datos encapsulados
• Permite representar datos en formatos no
definidos por HL7 como imágenes, video,
audio, secuencias de genes, etc
• Los datos pueden estar referenciados, por
ejemplo por medio de una URL o incluidos
directamente en el documento CDA
• Incluyo diversos atributos como el tipo de
multimedia (media type), compresión,
idioma, etc
12/09/2016 Tema 2. Tipos de datos 18
19. Tipos de datos codificados
• Este conjunto de tipos de datos (CS, CV, CE,
CD) tiene como propósito representar
conceptos de un sistema de codificación
• Permite representar desde sólo el código
(CS) hasta codificar utilizando distintos
sistemas de codificación y calificadores
(CD)
12/09/2016 Tema 2. Tipos de datos 19
20. Tipos de datos codificados
• Atributos:
– Code: identificador del concepto
representado. Es de tipo ST
– DisplayName: descripción textual del
concepto codificado, por ejemplo “diabetes
tipo II”
– codeSystem: identificación del sistema de
codificación utilizado. Es de tipo OID
– codeSystemName: nombre del sistema de
codificación, por ejemplo “Snomed-CT”
12/09/2016 Tema 2. Tipos de datos 20
21. Tipos de datos codificados
• Atributos (continuación):
– codeSystemVersion: versión del sistema de codificación
– originalText: texto original que fue codificado. Es de tipo
ED
– Qualifier: permite representar expresiones
postcoordinadas
Ejemplo: 22298006 : 363698007=73050001
<code code='22298006‘ displayName='myocardial infarction‘
codeSystem='2.16.840.1.113883.6.96‘ codeSystemName='SNOMED CT'>
<qualifier>
<name code='363698007' displayName='finding site'
codeSystem='2.16.840.1.113883.6.96'/>
<value code='73050001‘ displayName='anterolateral region'
codeSystem='2.16.840.1.113883.6.96'/>
</qualifier>
</code>
12/09/2016 Tema 2. Tipos de datos 21
22. Tipos de datos codificados
• Atributos (continuación):
– Translation: permite representar la traducción
del concepto codificado a otros sistemas de
codificación
Ejemplo:
<code code='410.9' displayName='myocardial infarction'
codeSystem='2.16.840.1.113883.6.103‘ codeSystemName='ICD-9-CM'>
<translation code='22298006‘ codeSystem='2.16.840.1.113883.6.96'
codeSystemName='SNOMED CT'/>
</code>
12/09/2016 Tema 2. Tipos de datos 22
23. Tipos de datos codificados
• Cada tipo de dato codificado incluye
diferentes combinaciones de los atributos
anteriores
atributo CD CE CV CS
Code
displayName
codeSystem
codeSystemName
codeSystemVersion
originalText
Translation
Qualifier
12/09/2016 Tema 2. Tipos de datos 23
24. II-Identificador de Instancia
• Utilizado para identificar únicamente una
ocurrencia, cosa u objeto. Compuesto por:
– un dominio (root) obligatorio. Es un
identificador de tipo OID o UUID que garantiza
la unicidad global del identificador. En algunas
ocasiones es suficiente para identificar a la
instancia
– identificador (extension) opcional. Identifica
una instancia dentro del alcance del root
12/09/2016 Tema 2. Tipos de datos 24
25. II-Identificador de instancia
• Ejemplos:
– “root” es suficiente para identificar la
instancia, en este caso un hospital:
<representedOrganization>
<id root="2.16.840.1.113883.2.35.2"/>
</representedOrganization>
– Necesitamos la extensión, en este caso
identificamos un médico “4001” dentro del
hospital anterior
<id root="2.16.840.1.113883.2.35.2“ extension="4001"/>
12/09/2016 Tema 2. Tipos de datos 25
26. Tipos de datos temporales
• Los tipos de datos temporales de CDA se
basan en el estándar ISO 8601
• Permite representar desde horas a sucesos
que se repiten cada cierto tiempo durante
un periodo
• Se sigue el criterio de especificar en primer
lugar los períodos de tiempo más largos y
posteriormente los más cortos (por
ejemplo: año, mes, día)
12/09/2016 Tema 2. Tipos de datos 26
27. TS-marca de tiempo
• Representa un instante en el tiempo.
Puede contener la hora o la fecha y hora
(incluyendo milisegundos y franja horaria)
• Al contrario que ISO 8601 en CDA no se
incluye caracteres de separación entre la
fecha y la hora
– Ejemplo: 20160720175020.035-0500
Representa el 20/07/2016 a las 17:50:20 y 35
milisegundos en la zona horaria +5 GMT.
12/09/2016 Tema 2. Tipos de datos 27
28. PIVL_TS : intervalo periódico de
tiempo
• Permite representar eventos que se
repiten periódicamente. Por ejemplo 10
minutos cada 12 horas.
• Tiene dos atributos (entre otros):
– period: cantidad de tiempo entre dos eventos
(en el ejemplo anterior 12 horas)
– Phase: duración del evento que se repite (el
estándar ofrece hasta de 8 maneras diferentes
de representación). En el ejemplo 10 minutos.
12/09/2016 Tema 2. Tipos de datos 28
29. PIVL_TS : intervalo periódico de
tiempo
• Ejemplos
– Cada 12 horas:
<effectiveTime xsi:type=“PIVL_TS”>
<period value='12' unit='h' />
</effectiveTime>
– Cada 12 horas, durante 10 minutos
<effectiveTime xsi:type=“PIVL_TS”>
<period value='12' unit='h' />
<phase>
<width value='10‘ unit='min'/>
</phase>
</effectiveTime>
12/09/2016 Tema 2. Tipos de datos 29
30. 12/09/2016 Tema 2. Tipos de datos 30
Material desarrollado por:
• José Alberto Maldonado Segura (HL7 CDA especialista certificado)
• David Moner Cano (HL7 CDA especialista certificado)
http://www.veratech.es