Está en la página 1de 85

HL7 V2 –Introducción

Diego Kaminker
HL7 Argentina
dkaminker@fibertel.com.ar
Montevideo, Uruguay
Noviembre 2004
Contenido
• Enfoque conceptual
• Construcción de Mensajes versión 2.X
– Mensajes, Segmentos, Campos
– Delimitadores
– Reglas de ensamblado y desensamblado
– Tipos de datos
• Reglas de procesamiento
• Ejemplos de mensajes HL7 V2.X
• Recomendación para implementación de version 2.X
• Breve introducción a mensajería utilizando versión 3.0

14/10/08 2
¿Qué significa siete en HL7?
Un protocolo para el intercambio
de información clínica

7 Applicación HL7
Función 6 Presentación
5 Sesión
4 Transporte
Communicación
3 Red
2 Enlace
1 Física
Arquitectura de comunicaciones del modelo ISO-OSI

14/10/08 3
¿Qué es HL7?
• Es un protocolo para el intercambio de información
clínica

– NO es una aplicación

– NO es una estructura de datos o especificación de base de datos

– NO es una arquitectura para diseñar aplicaciones hospitalarias

– NO es una especificación para un ruteador de mensajes

14/10/08 4
Entorno de comunicaciones
El estándar HL7 asume que el entorno de comunicaciones proveerá lo siguiente:

– Trasmisión sin errores. Las aplicaciones pueden asumir que recibirán


correctamente toda cadena de bytes trasmitida. Esto implica el chequeo de errores
es realizado en un nivel inferior.

– Conversión de caracteres. En el caso de que diferentes máquinas utilicen distintas


representaciones de caracteres (ej. ASCII-EBCDIC) será el entorno de
comunicaciones el que realice esta tarea.

– Largo del mensaje. HL7 no especifica ninguna restricción al largo de un mensaje.

14/10/08 5
Modelo básico de transacciones HL7

Sistema B

RECIBE MENSAJE
Evento disparador ENVIA RESPUESTA

ENVIA
MENSAJE

RECIBE RED
RESPUESTA

Sistema A

14/10/08 6
Paradigmas de respuestas HL7

ORM msg
Evento
disparador

Aceptar ACK (opt)

Sistema Sistema
A B

ORR (opt)
Evento
disparador

Aceptar ACK (opt)

14/10/08 7
¿Qué es Control/Query?
• Es el capítulo 2 del estándar.
• Define la forma en que se describen los mensajes en
cada capítulo
• Propósito
• Contenido
• Relaciones

• Las reglas para convertir un mensaje abstracto en una


cadena de caracteres
• Los procedimientos requeridos para intercambiar
mensajes
• Algunos segmentos comunes a todos los mensajes
• La forma de realizar consultas (Queries)

14/10/08 8
Contenido
• Enfoque conceptual
• Construcción de Mensajes versión 2.X
– Mensajes, Segmentos, Campos
– Delimitadores
– Reglas de ensamblado y desensamblado
– Tipos de datos
• Reglas de procesamiento
• Ejemplos de mensajes HL7 V2.X
• Recomendación para implementación de version 2.X
• Breve introducción a mensajería utilizando versión 3.0

14/10/08 9
Conceptos
• Eventos disparadores
– El evento disparador es el hecho que genera la transmisión del
mensaje.
– La relación entre TIPOS DE MENSAJE y CODIGOS DE
EVENTO DISPARADOR es UNO a MUCHOS:
El mismo evento disparador no puede asociarse a mas de un tipo
de mensaje.

• Actualizaciones no solicitadas
– Cuando la transferencia de informacion es iniciada por el sistema
que controla el evento, la transacción se denomina
‘ACTUALIZACION NO SOLICITADA’.
Ejemplo: se concluye un estudio diagnóstico

14/10/08 10
Ejemplo de evento disparador
• Cuándo
– Un evento A01 es enviado cuando se realiza el ingreso/admisión
del paciente.

• Qué
– Normalmente, esta información es ingresada por el sistema de
admisión de pacientes e informada al resto de los sistemas que
conforman la organización

• Uso
– Por ejemplo, un evento A01 puede ser usado para notificar al
sistema de Laboratorio que un paciente ha sido admitido y al que
se le puede fehacientemente solicitar estudios.

14/10/08 11
Ejemplos de eventos
• Ejemplos de eventos del Capítulo 3 - Admisión
A01 ADT/ACK - Admit a patient
A02 ADT/ACK - Transfer a patient
A03 ADT/ACK - Discharge a patient
A04 ADT/ACK - Register a patient
A05 ADT/ACK - Preadmit a patient
A06 ADT/ACK - Transfer an outpatient to inpatient
A07 ADT/ACK - Transfer an inpatient to outpatient
A08 ADT/ACK - Update patient information
A09 ADT/ACK - Patient departing
A10 ADT/ACK - Patient arriving
A11 ADT/ACK - Cancel admit
A12 ADT/ACK - Cancel transfer
A13 ADT/ACK - Cancel discharge
A14 ADT/ACK - Pending admit
A15 ADT/ACK - Pending transfer
A16 ADT/ACK - Pending discharge
A17 ADT/ACK - Swap patients
A18 ADT/ACK - Merge patient information
A19 QRY/ACK - Patient query
A20 ADT/ACK - Nursing/Census application updates
A21 ADT/ACK - Leave of absence - out (leaving)
A22 ADT/ACK - Leave of absence - in (returning)
A23 ADT/ACK - Delete a patient record

14/10/08 12
¿Qué es un mensaje HL7 abstracto?
• Mensaje Abstracto
– El nivel básico de definición dentro del estándar HL7
es el del mensaje abstracto asociado a cada evento
particular.

– La definición del mensaje incluye:

• DATOS : Los campos de datos a enviar dentro del mensaje


• RESPUESTAS : Las respuestas válidas
• ERRORES : El tratamiento de errores de aplicación (datos
erróneos) o fallas de comunicación

14/10/08 13
¿Qué es un mensaje HL7 abstracto?
• Describe los Datos …

• Cuándo son enviados …

• Y cuales son las condiciones de error …

• Pero NO describe la cadena de Bytes que


conforman el mensaje.

14/10/08 14
Ejemplo de mensaje HL7 abstracto (ADT^A01)
[...] opcional, {...} permite repetirse

MSH Encabezado de Mensaje


EVN Tipo de evento
PID Identificación del paciente
[ PD1 ] Datos adicionales demográficos
[{ NK1 }] Familiares a cargo
PV1 Información del episodio
[ PV2 ] Información adicional del episodio
[{ DB1 }] Información de discapacidades
[{ ALG }] Información sobre alergias
[{ DG1 }] Diagnóstico
[ DRG ] Grupo relacionado de Diagnóstico
[{ PR1 Procedimento
[{ ROL }] Rol
}]
[{ GT1 }] Garante
[{ IN1 Datos de la obra social
[ IN2 ] Datos de la obra social - Addicionales
[ IN3 ] Datos de la obra social - Addicionales
}]
[ ACC ] Información de Accidente
14/10/08 15
Interpretación de mensajes abstractos
• ¿Cómo interpretar la definición de los mensajes en
cuánto a la cantidad de segmentos por mensaje?

[…] Significa 0 a 1 (Puede o no existir)


{…} Significa 1 a N (Puede haber 1 o mas)
[{…}] Significa 0 a N (Puede haber 0 o mas)
… Debe existir solamente 1 vez en el mensaje

14/10/08 16
Mensajes HL7
MSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2.3||||AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA||
19780113000000|F|||POTOSI 4032 108^^CAPITAL FEDERAL^^1899<cr>
NK1|1|CAMUS^ALBERTO|PAD|RIVADAVIA 253|42539686<cr>
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ^NORBERTO|
998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBERTO|OB|
H0100240|||||||||||||||||ALV||||||||20010823095130|
20010823102455<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD<cr>

Un mensaje es la unidad transferida entre sistemas informáticos. Esta


compuesto de por un grupo de segmentos en una secuencia definida. El
primer segmento (MSH) identifica el tipo de mensaje y el evento disparador
que hizo que el mensaje sea enviado.

14/10/08 17
Segmentos
• Características de los segmentos
– Un segmento HL7 es una agrupación de campos.

– Los segmentos dentro de un mensaje:


• Pueden ser REQUERIDOS u OPCIONALES

• Pueden ocurrir UNA SOLA VEZ o permitir REPETICIONES

• Se identifican por un código único de tres caracteres denominado


‘SEGMENT ID’

– HL7 permite en cada implementación definir segmentos específicos


para intercambiar información no prevista
• Segmentos Z..

14/10/08 18
Especificación de segmentos
• El segmento PV1 es utilizado por las aplicaciones de
registración y admisión para comunicar la información
específica de la visita del paciente
SEQ LEN DT OPT RP# TBL# ITEM# ELEMENT NAME

2 1 IS R 0004 00132 PATIENT CLASS
3 80 PL O 00133 ASSIGNED PATIENT LOC
4 2 IS O 0007 00134 ADMISSION TYPE

3.3.3.0 PV1 field definitions



3.3.3.2 Patient class (IS) 00132
Definition: This field is used by systems to categorize patients by site. It does not have
a consistent industry-wide definition. It is subject to site-specific variations. Refer to
user-defined table 0004 - Patient class for suggested values.

14/10/08 19
Definición de segmento PV1
• PV1 - Atributos del “Patient Visit Segment”
SEQ LEN DT OPT RP/# TBL# ITEM# ELEMENT NAME
1 4 SI O 00131 Set ID - PV1
2 1 IS R 0004 00132 Patient Class
3 80 PL O 00133 Assigned Patient Location
4 2 IS O 0007 00134 Admission Type
5 20 CX O 00135 Preadmit Number
6 80 PL O 00136 Prior Patient Location
7 60 XCN O Y 0010 00137 Attending Doctor
8 60 XCN O Y 0010 00138 Referring Doctor
9 60 XCN O Y 0010 00139 Consulting Doctor
10 3 IS O 0069 00140 Hospital Service
11 80 PL O 00141 Temporary Location
12 2 IS O 0087 00142 Preadmit Test Indicator
13 2 IS O 0092 00143 Readmission Indicator
14 3 IS O 0023 00144 Admit Source
15 2 IS O Y 0009 00145 Ambulatory Status
16 2 IS O 0099 00146 VIP Indicator
17 60 XCN O Y 0010 00147 Admitting Doctor
18 2 IS O 0018 00148 Patient Type

14/10/08 20
Campos
• Campo
– Un campo es una cadena de caracteres definida por un
tipo de datos de HL7.

– El apendice A del estándar, el diccionario de datos,


brinda un listado alfabético de los campos, listados de
codificación recomendada, y una referencia cruzada
de los campos contra los segmentos

3.3.2.5 Patient name (XPN) 00108


Components: <family name (ST)> ^ <given name (ST)> ^
<middle initial or name (ST)> ^ <suffix (e.g., JR or III)
(ST)> ^ <prefix (e.g., DR) (ST)> ^ <degree (e.g., MD) (ST)>
^ <name type code (ID) >
14/10/08 21
Componentes de un campo
MSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2.3||||AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA^LIDIA||
19780113|F|||POTOSI 4032 108^^CAPITAL FEDERAL^^1899<cr>
NK1|1|CAMUS^ALBERTO|PAD|RIVADAVIA 253|42539686<cr>
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ^NORBERTO|
998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBERTO|OB|
H0100240|||||||||||||||||ALV||||||||20010823095130|
20010823102455<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD<cr>

Componentes de un campo ( separador = ^ )

Un campo también puede tener partes o componentes ‘separables’. Por


ejemplo, el nombre del paciente se registra como Apellido, Nombre, Inicial
de Segundo Nombre.

14/10/08 22
Valores repetitivos de un campo
MSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2.3||||AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA^LUZ||
19780113000000|F|||POTOSI 4032^^CAPITAL FEDERAL^^1899||
(011)4959-0200 |(011)4959-0353~(011)4959-0354<cr>
NK1|1|CAMUS^ALBERTO|PAD|RIVADAVIA 253|(011)4253-9686<cr>
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ^NORBERTO|
998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBERTO|OB|
H0100240|||||||||||||||||ALV||||||||20010823095130|
20010823102455<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD<cr>

Valores repetitivos de un campo ( separador = ~ )

Algunos campos permiten incluir valores repetitivos. Por ejemplo: el


campo ‘Telefono Laboral’ permite incluir varios distintos.

14/10/08 23
Contenido
• Enfoque conceptual
• Construcción de Mensajes versión 2.X
– Mensajes, Segmentos, Campos
– Delimitadores
– Reglas de ensamblado y desensamblado
– Tipos de datos
• Reglas de procesamiento
• Ejemplos de mensajes HL7 V2.X
• Recomendación para implementación de version 2.X
• Breve introducción a mensajería utilizando versión 3.0

14/10/08 24
Caracteres de Codificación
• Delimitadores: | ^ ˜ \ & <CR>

– Al construir un mensaje, se utilizan determinados caracteres


como DELIMITADORES

• Terminador de Segmento <CR> (ASCII 13)


• Separador de Campo | (ASCII 124)
• Separador de Componente ^ (ASCII 94)
• Separador de Subcomponente & (ASCII 38)
• Caracter de Repetición ~ (ASCII 126)
• Caracter de Escape \ (ASCII 92)

14/10/08 25
Delimitadores
MSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2.3||||AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA||
19780113000000|F|||POTOSI 4032 108^^CAPITAL FEDERAL^^1899<cr>
NK1|1|CAMUS^ALBERTO|PAD|RIVADAVIA 253|42539686<cr>
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ^NORBERTO|
998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBERTO|OB|
H0100240|||||||||||||||||ALV||||||||20010823095130|
20010823102455<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD<cr>

Los delimitadores: separador de campos, separador de componentes,


separador de repetición, caracter de escape, separador de
subcomponentes están definidos en el segmento MSH a partir del 4to.
caracter.

14/10/08 26
Delimitadores
• Separador de Campos

– El separador de campos se utiliza para separar dos campos


adyacentes dentro de un segmento. Tambien separa al
identificador de segmento del primer campo del segmento

| MSH|^¨\&|NSI||LAB||19990923165100||ORM^O01|NSI798|P|2.3||||AL

14/10/08 27
Delimitadores
• Separador de Componentes

– EL separador de componentes se usa para separar


componentes adyacentes de algunos campos. Su uso se
describe en la definicion de cada campo. Es el primero
caracter del campo MSH Encoding Characters.

^ FELICE^LUIS^A

14/10/08 28
Delimitadores
• Separador de Repeticiones

– El separador de repeticiones se usa para separar multiples


ocurrencias de un campo. Puede utilizarse unicamente cuando
esta especificamente autorizado en la definicion del campo.

˜ |20401^DIARREA^HI ˜20402^INFECCION URINARIA^HI

14/10/08 29
Delimitadores
• Caracter de Escape

– En campos de texto alfanuméricos (tipos ST, TX o FT), se


permite otro caracter especial: el caracter de escape

\H\Aspecto:\N\\.sp\\.ti+4\Limpido
\

14/10/08 30
Delimitadores
• Separador de Subcomponentes

– El separador de subcomponentes permite separar


subcomponentes adyacentes dentro de un componente. Su uso
se describe en la definicion del campo. Es el cuarto caracter
en el campo MSH Encoding characters.

& |1^C^^^^^^^c&124B&SMS&&&*ES+0M

14/10/08 31
Delimitadores
• Es el último caracter de cada segmento.

• SIEMPRE es el caracter ASCII <CR> (hexa 0D)

PV1|1|I|01-02^11^23|||01-02^11^23|||||||||||||H0000171|||||||||||||||||||||||||
19990831103712<CR>
<CR> IN1|1|INT|2|PLAN DE SALUD|||||||||||||||||||||||||||||||||||||||||||||123456789-9<CR>

14/10/08 32
Contenido
• Enfoque conceptual
• Construcción de Mensajes versión 2.X
– Mensajes, Segmentos, Campos
– Delimitadores
– Reglas de ensamblado y desensamblado
– Tipos de datos
• Reglas de procesamiento
• Ejemplos de mensajes HL7 V2.X
• Recomendación para implementación de version 2.X
• Breve introducción a mensajería utilizando versión 3.0

14/10/08 33
Reglas de codificación
• Reglas de Codificación

– Para determinar la representación exacta de un mensaje


abstracto, se aplican las reglas de codificación descriptas en
el capítulo 2, a la definición abstracta que se brinda en el
capítulo correspondiente.

CAP. 3
MSH|^-\&|ADT|LIS|…
ADT^A01 Reglas de Codificación PID|...

14/10/08 34
Reglas para ENVIAR
• Reglas de ENVIO para codificar mensajes HL7

– 1) Codificar cada segmento en el orden especificado en el


formato abstracto del mensaje

– 2) Poner el ID de segmento al comienzo del segmento

– 3) Cada campo debe ser precedido por el separador de campos

– 4) Codificar cada campo en el orden especificado por la tabla de


definición de segmentos

14/10/08 35
Reglas para ENVIAR
• Reglas de ENVIO para codificar mensajes HL7
(cont.)
– 5) Los campos que NO ESTAN PRESENTES no
requieren ningun caracter

– 6) Los campos que ESTAN PRESENTES, PERO


CON VALOR = NULO , deben ser codificados
utilizando : “”

– 7) Si los componentes, subcomponentes o repeticiones


al final de un campo no estan presentes, su separador
correspondiente puede ser omitido.

Perez^Jose^Alberto^^^^ -> Perez^Jose^Alberto

14/10/08 36
Reglas para ENVIAR
• Reglas de ENVIO para codificar mensajes HL7
(cont.)

– 8) Si no hay más campos al final de un segmento, los


separadores restantes pueden ser omitidos

ORM|…|Ultimo Campo Presente|…|||||<CR>

Puede ser reemplazado por:

ORM|…|Ultimo Campo Presente<CR>

14/10/08 37
Reglas para RECIBIR
• Reglas de RECEPCION de mensajes HL7

– Si un segmento que se espera no se recibe, tratar todos los


campos involucrados como ‘NO PRESENTES’

– Si se recibe un segmento que no se esperaba, ignorarlo:


NO ES UN ERROR

– Si se reciben campos no esperados al final de un segmento,


ignorarlos: NO ES UN ERROR

14/10/08 38
Contenido
• Enfoque conceptual
• Construcción de Mensajes versión 2.X
– Mensajes, Segmentos, Campos
– Delimitadores
– Reglas de ensamblado y desensamblado
– Tipos de datos
• Reglas de procesamiento
• Ejemplos de mensajes HL7 V2.X
• Recomendación para implementación de version 2.X
• Breve introducción a mensajería utilizando versión 3.0

14/10/08 39
Tipos de datos
Alfanuméricos (ST,TX,FT)
Numéricos (CQ,MO,NM,SI,SN)
Identificadores (ID,IS,HD,EI,RP,PL,PT)
Fecha/Hora (DT,TM,TS)
Valores Codificados (CE,CF,CK,CN,CX,XCN)
Genéricos (CM)
Forma de Onda (CD,MA,NA,ED)
Precios (CP)
Finanzas (FC)
Consultas extendidas (QSC,QIP,RCD)
Archivos maestros (DLN,JCC,VH)
Registros médicos (PPN)
Series temporales (DR,RI,TQ)
Datos Demográficos (AD,PN,TN,XAD,XPN,XON,XTN)

XPN data type: <family name (ST)> ^ <given name (ST)> ^ <middle initial or
name (ST)> ^ <suffix (e.g., JR or III) (ST)> ^ <prefix (e.g., DR) (ST)> ^ <degree
(e.g., MD) (ST)> ^ <name type code (ID) >

14/10/08 40
Tipos de Datos
• Alfanuméricos
– ST – STRING
• Cadena de caracteres

– Justificado a izquierda con espacios a derecha opcionales. Se


acepta cualquier caracter ASCII imprimible

14/10/08 41
Tipos de Datos
• Alfanuméricos
– TX – TEXT
• Texto

– Texto preparado para su visualización o impresión

14/10/08 42
Tipos de Datos
• Alfanuméricos
– FT – TEXT
• Texto formateado

– Este tipo de datos se derivo del TX permitiendo la inserción


de instrucciones de formateo embebidas

14/10/08 43
Formato de textos
• Códigos para establecer el formato de texto

Código Significado
.sp# Fin de linea, saltar # lineas
.br Comenzar nueva linea
.fi Comenzar word-wrap
.nf Sin word-wrap
.in# Indentar # espacios
.ti# Indentar # espacios (temporario)
.ce Terminar linea y centrar linea siguiente
\H Enfatizar
\N Normal

14/10/08 44
Formato de textos
• Equivalencia con HTML

Código Equivalente HTML


.sp4 <BR><BR><BR><BR><BR>
.br <BR>
.fi (por omisión)
.ti3 &nbsp; &nbsp; &nbsp;
.ce <BR><CENTER>…</CENTER>

14/10/08 45
Formato de textos
• Códigos para formateo de texto (secuencias de escape)

Código Significado
\H\ Enfatizado
\N\ Texto normal (fin enfatizado)
\F\ Separador de campo
\S\ Separador de componente
\R\ Separador de Repeticion
\T\ Separador de Subcomponente
\E\ Caracter de Escape
\Xdddd\ Caracter hexa
\Zdddd\ Secuencia local de escape

14/10/08 46
Tipos de datos numéricos
• Numéricos

– CQ (cantidad compuesta)
– MO (dinero)
– NM (numérico)
– SI (id de secuencia)
– SN (numérico estructurado)

14/10/08 47
Tipos de datos numéricos
• Numéricos
– CQ – Cantidad compuesta
• Cantidad con unidades

– El primer componente es la cantidad, el segundo la


unidad en la cual se expresa la cantidad.

<cantidad (NM)>^<unidad (CE)>

|123.7^kg| |150^lb&&ANSI+|

14/10/08 48
Tipos de datos numéricos
• Numéricos
– MO – Dinero
• Tipo de dato para dinero.

– El primer componente es la cantidad y el segundo la


denominación de la moneda

|99.50^USD|

14/10/08 49
Tipos de datos numéricos
• Numéricos
– NM – Numérico
• Tipo de dato numérico

– Un número representado por caracteres ASCII numéricos con un


signo y punto decimal opcional.

|-1233.22|

– SI – Id de Secuencia
• Un entero positivo

|1233|

14/10/08 50
Tipos de datos numéricos
• Numéricos
– SN – Números estructurados

– Ejemplos:

|>^100| Mayor que 100


|^100^-^200| Entre 100 y 200
|^1^:^128| Título 1:128 (resultado de serología)
|^2^+| Positivo “2 cruces” (respuesta categ.)

14/10/08 51
Tipos de Datos
• Fecha / Hora
– DT: Fecha -YYYY[MM[DD]]
• Permite impresión (solo año, solo año/mes)

– TM: Hora -
HH[MM[SS[.S[S[S]]]]]][+/-ZZZZ]
• Siempre en formato de 24 hs, permite especificar diferencia
con tiempo universal coordinado (Greenwich)

– TS: Time Stamp -


YYYY[MM[DD[HH[MM[SS[.S[S[S]]]]]]]][+/-ZZZZ]
^ <grado de precision]
• Permite especificar el tiempo preciso del evento, con hora y
fecha

14/10/08 52
Tablas e Identificadores
• HL7 provee tablas para utilizar en los mensajes
– Tablas definidas por HL7
– Tablas definidas por el usuario

• Identificadores
ID Valor para tablas definidas por HL7
IS Valor para tablas definidas por el usuario
HD Denominador Jerárquico (Hierarchic Designator)
EI Idenficador de Entidad
RP Puntero de referencia
PL Ubicación de Paciente
PT Tipo de Procesamiento

14/10/08 53
Ejemplos de tablas
• Tablas definidas por el usuario

User 0002 Marital PID-16, NK1-


Status 14, GT1-32,
IN2-44
0002 A Separated

0002 D Divorced

0002 M Married

0002 S Single

0002 W Widowed

14/10/08 54
Ejemplos de tablas
• Tablas definidas por HL7

HL7 0027 Priority OM4-13

0027 S Stat (do immediately)

0027 A As soon as possible (a priority


lower than stat)
0027 R Routine

0027 P Preoperative (to be done prior to


surgery)
0027 T Timing critical (do as near as
possible to requested time)

14/10/08 55
Identificadores
• Identificadores
– ID – Valor codificado por HL7
• Debe ser elegida de una lista definida por HL7

Ejemplo : Sexo : F/M/O/U

– IS – Valor codificado por el USUARIO


• Debe ser elegida de una lista definida por las partes que consensuan
una implementacion determinada

Ejemplo : Religión

14/10/08 56
Identificadores
• Identificadores
– HD – Hierachic Designator (Denominador Jerárquico)

– EI – Identificador de Entidad

<identificador de entidad (ST)>^


<ID de namespace (IS)> ^
<ID universal (ST)> ^
<Tipo ID universal (ID)>

• El Identificador de entidad es único dentro del objeto definido por los


componentes 2 a 4

14/10/08 57
Punteros de referencia
• Identificadores
– RP – Puntero de Referencia
• Este tipo de datos transmite informacion acerca de datos almacenados
en otro sistema.

<pointer (ST)>^<application ID(HD)>


^<type of data(ID)>^<subtype(ID)

• Tipos de datos referenciados:


– TIFF - PICT
– DICOM - FAX
– JOT - BASIC
– ISDN - PostScript
– JPEG - GIF
– HTML - RTF

14/10/08 58
Ejemplo: Ubicación de personas
• PL – Ubicación de personas

Lógicamente el orden es: El orden sintáctico es:


• 1 Tipo de ubicacion de persona
• 2 Conjunto de edificios (facility) <point of care (IS)> ^
<room (IS)> ^
• 3 Edificio
<bed (IS)> ^
• 4 Piso
<facility (HD)> ^
• 5 Sector (Sala, etc. -Point of Care) <location status (IS)> ^
• 6 Habitación <person location type (IS)> ^
• 7 Cama <building (IS)> ^
• 8 Descripción de Ubicación <floor (IS)> ^
• 9 Estado de Ubicación <location description (ST)>

PV1|1|I|01-02^11^23|

14/10/08 59
Tipos de Datos
• PT – Tipo de Procesamiento

<processing ID (ID)> ^ <processing type (ID)>

– Processing ID:
• D=Debug
• P=Producción
• T=Prueba/Capacitación

– Processing Mode:
• A=Archivo
• R=Restore
• I=Carga Inicial

14/10/08 60
Tipos de Datos
• Valores Codificados

– CE- Elementos codificados


– CF- Elementos codificados con valores formateados
– CK- Compuesto con digito verificador
– CN- Número compuesto
– CX- Número compuesto con digito verificador
– XCN-Número compuesto extendido

– CWE Codificados con Excepciones


– CNE Codificados sin Excepciones

14/10/08 61
Contenido
• Enfoque conceptual
• Construcción de Mensajes versión 2.X
– Mensajes, Segmentos, Campos
– Delimitadores
– Reglas de ensamblado y desensamblado
– Tipos de datos
• Reglas de procesamiento
• Ejemplos de mensajes HL7 V2.X
• Recomendación para implementación de version 2.X
• Breve introducción a mensajería utilizando versión 3.0

14/10/08 62
Reglas de procesamiento de mensajes
• Existen dos formas de procesamiento de mensajes:

– ORIGINAL PROCESSING RULES

– ENHANCED PROCESSING RULES

14/10/08 63
Reglas de proceso (Nivel 7 - Aplicación)
• Secuencia de intercambio de mensajes
– Paso 1. El sistema emisor construye un mensaje HL7
basado en datos de la aplicación y lo envía al sistema
receptor.

– Paso 2. El sistema receptor recibe el mensaje y …


• a) Valida sintácticamente el mensaje de acuerdo a reglas de
iniciación basadas en el segmento MSH. Si falla envía un
mensaje de rechazo al emisor; si no continua ...

• b) Pasa el mensaje a la aplicación, la cual:


– 1) crea un mensaje de respuesta, o …
– 2) crea un mensaje de error, o …
– 3) crea un mensaje de rechazo.

• c) Envía el mensaje de respuesta, error o rechazo.

14/10/08 64
Segmento MSH
• Encabezado del mensaje - Segmento MSH
Campo Notas
– MSH-3-sending application
– MSH-4-sending facility
– MSH-5-receiving application
– MSH-6-receiving facility
– MSH-7-date/time of message Este campo no es utilizado en la
lógica de procesamiento del
protocolo HL7.
Es opcional.
– MSH-9-message type
– MSH-10-message control ID Identificador único de mensaje
utilizado para responder al
mensaje inicial.
– MSH-11-processing ID
– MSH-12-version ID
– MSH-13-sequence number
– MSH-14-continuation pointer
14/10/08 65
Mensajes de respuesta - ACK
• Mensaje ACK - general acknowledgment
– Mensaje de uso general para indicar un acuse de recibo de un
mensaje. Indica si hubo o no un error al procesar el mensaje.

ACK General acknowledgment Chapter


MSH Message Header 2
MSA Message acknowledgment 2
[ ERR ] Error
2

14/10/08 66
Reglas mínimas de validación
• Criterios mínimos a validar en la recepción de mensajes:
– El valor del campo MSH-9-message type debe ser el de un tipo
de mensaje reconocido por la aplicación receptora.
– El valor del campo MSH-12-version ID (versión de HL7) debe
ser la apropiada.
– El valor del campo MSH-11-processing ID (Producción
/Prueba/Debug) debe ser corresponder la aplicación receptora.

En caso de que cualquiera de falle, se rechaza el mensaje y


se crea un mensaje ACK, con AR en el campo
MSA-1-acknowledgement code

14/10/08 67
Procesamiento de la aplicación
• Procesamiento de mensajes a nivel aplicación:

– Una vez que la validación inicial del protocolo,


analizando el encabezado MSH, se ha realizado se
ejecuta una de las siguientes acciones:
• 1) Se procesa satisfactoriamente el mensaje, generando una
respuesta con el valor AA en MSA-1-ack code.

• 2) Se crea una respuesta de error, proveyendo la información


del error y el valor AE en el campo MSA-1

• 3) Falla al procesar el mensaje (Rechazo) por razones ajenas


al contenido o formato (Caída del sistema, error interno, etc).
Enviandose un mensaje con el valor AR en el campo MSA-1

14/10/08 68
Especificación del tipo de respuesta
• En cada envío de un mensaje se puede especificar el campo
MSH-15-Accept acknowledgment type

– Este campo identifica las condiciones de requerimiento de


mensajes de respuesta. Este campo es requerido para el modo
extendido.

Valor Descripción
AL Siempre requiere respuesta
NE Nunca requiere respuesta
ER Unicamente ante un error
SU Unicamente cuando es satisfactorio

14/10/08 69
Protocolos especiales
• Extensiones al protocolo HL7

– Protocolo de secuencia numérica

– Mensajes y segmentos de continuación

– Protocolo Batch HL7

14/10/08 70
Contenido
• Enfoque conceptual
• Construcción de Mensajes versión 2.X
– Mensajes, Segmentos, Campos
– Delimitadores
– Reglas de ensamblado y desensamblado
– Tipos de datos
• Reglas de procesamiento
• Ejemplos de mensajes HL7 V2.X
• Recomendación para implementación de version 2.X
• Breve introducción a mensajería utilizando versión 3.0

14/10/08 71
Ejemplo de mensaje ADT^A01 (Admisión)
MSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2.3||||AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA||
19780113000000|F|||POTOSI 4032 108^^CAPITAL FEDERAL^^1899<cr>
NK1|1|CAMUS^ALBERTO|PAD|RIVADAVIA 253|42539686<cr>
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ^NORBERTO|
998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBERTO|OB|
H0100240|||||||||||||||||ALV||||||||20010823095130|
20010823102455
<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD<cr>

14/10/08 72
Ejemplo de mensaje ORM^O01 (Orden)
MSH|^~\&|NSI||LAB||20010817102050||ORM^O01|NSI6734401|P|2.3||||
AL<cr>
PID|1||60719^^^^HI|26690979^^^^DNI|TORRALBA^AIDA^LUZ||
19780113000000|F|||POTOSI 4032^^CAPITAL FEDERAL^^1899||
(011)4959-0200 |(011)4959-0353~(011)4959-0354<cr>
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ^NORBERTO|
998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBERTO|OB|
H0100240|||||||||||||||||ALV||||||||20010823095130|
20010823102455<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD
|||||||||||||||||||||||||||||||||||||||||||||950359<cr>
ORC|NW|678701^NSI||678701^NSI|IP|E|1^^^20010817110000^^R||
20010817100723|IDUSER||1026^LOPEZ^NORBERTO|||||NGP||
IDUSER<cr>
OBR|1|678701^NSI||2656^SIALOGRAFIA RDC^NSI|||||||||
|||||||||||RAY|||1^^^20010817110000^^R<cr>
DG1|1|||IAM||W<cr>

14/10/08 73
Ejemplo de mensaje ORU^R01 (Lab.)
MSH|^~\&|LAB||HCE||20010913141958||ORU^R01|LAB562901|T|1.0||||
ER
PID|1||999999^^^^AFPLAN|99999999^^^^DNI|PRUEBA^PACIENTE||
19220415|F||||||||||
ORC|SC|P999999/5^LAB|P999999/5^LAB|P999999/5^LAB|CM||||
20010913141930||||||||||HL7|
OBR|1|P999999/5^LAB||
475^HEMOGRAMA^LAB^490475^HEMOGRAMA^NSI||||||||||||||||||||
DMT500|||1^^^20010911075500|||||||||
OBX|1|NM|470^HEMOGLOBINA SANGRE TOTAL^LAB^4546-
8^HEMOGLOBIN:MCNC:PT:BLD:QN^LN||14.31|g/dL||||A|F|
OBX|2|NM|466^HEMATOCRITO^LAB^20570-
8^HEMATOCRIT:VFR:PT:BLD:QN^LN||41.86|%||||A|F|
OBX|3|NM|410^HEMATIES RECUENTO^LAB^789-
8^ERYTHROCYTES:NCNC:PT:BLD:QN^LN||4.46|mill/mm3|4.50&5.90|||
A|F|
OBX|4|NM|409^LEUCOCITOS RECUENTO^LAB^6690-
2^LEUCOCYTES:NCNC:PT:BLD:QN^LN||7350.00|/mm3|0.00&10000.00|||
A|F|
OBX|5|NM|354-01^Neutrofilos mielocitos:^LAB^750-
0^MYELOCYTES/100 LEUKOCYTES:VFR:PT:BLD:QN^LN||0.00|%||||A|F|
(continua…)
14/10/08 74
Ejemplo de mensaje ORU^R01 (Imágenes)
MSH|^~\&|DPI||HCE||20010824115646||ORU^R01|DPI144169|T|2.3
PID|1||999999^^^^AFPLAN|99999999^^^^DNI|PRUEBA^PACIENTE||
19220415|F||||||||||
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD
ORC|RE|98169-1^AMB||98169^AMH||||||||7280^MEDICO^MARCELO^F
OBR|1|98169-1||EST-1507-0^COLUMNA LUMBOSACRA
S/CTE.||||||||||||||||||||DMT260
OBX|1|TX|0^Impresión Diagnóstica^TIAR||||||||F|||20010823000000
OBX|2|TX|0^Informes^TIAR||Se ha efectuado una RNM de la columna
lumbosacra en cortes multiplanares. El examen realizado
muestra : -Espondilolistesis grado I de L4-L5.
-Degeneraciones discales múltiples. -Protrusión
posteromedial y bilateral del 5to disco lumbar a predominio
izquierdo. -Protrusión posteromedial y bilateral del 4to
disco lumbar a predominio derecho. -Protrusión central del
1er y 2do discos lumbares. -Hipertrofia facetaria difusa.
Atte.- ||||||F|||20010823000000||
72594^RASUMOFF^ALEJANDRO^^^^^^^NACIONAL^^^1
14/10/08 75
Ejemplo de mensaje ORU^R01 (M. Nucl.)
MSH|^~\&|MNC||HCE||20010824115646||ORU^R01|MNC544169|T|2.3
PID|1||999999^^^^AFPLAN|99999999^^^^DNI|PRUEBA^PACIENTE||
19220415|F||||||||||
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD
ORC|SC|MNC1-1^MNC||MNC1^MNC|CM||1||20010606
|||326^MEDICA^CARMEN
OBR|1|MNC1-1^MNC||1688^DENSITOMETRIA ANTEBRAZO
IZQUIERDO^MNC||||||||||||||||||||387
OBX|1|TX|01^DO AI^MNC||ANTEBRAZO IZQUIERDO: LA DENSIDAD MINERAL
OSEA DEL RADIO ULTRADISTAL CORRESPONDE AL 106% DEL HOMBRE
JOVEN NORMAL. SIN MAYOR RIESGO APARENTE DE FACTURA. LA
DENSIDAD MINERAL OSEA DEL RADIO MEDIO ( RADIO 33 % )
CORRESPONDE AL 106 % DEL HOMBRE JOVEN NORMAL. SIN MAYOR
RIESGO APARENTE DE FACTURA.|||N|||F|20010605123000|
326^MEDICA^CARMEN

14/10/08 76
Ejemplo de mensaje ORU^R01 (Cardiol.)
MSH|^~\&|CAR||HCE||20010605135518||ORU^R01|EDTT00028|T|2.3
PID|1||999999^^^^AFPLAN|99999999^^^^DNI|PRUEBA^PACIENTE||
19220415|F||||||||||
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD ORC|SC|
EDTT00028^CAR||EDTT00028^CAR|CM
OBR|1|EDTT00028^CAR||5030^ECO CARDIOGRAMA DOPPLER COLOR
TRANSTORACICO||||||||||||||||||||215
OBX|1|TX|^EVAL. DOPP. BIDIMENSIONAL (MEDICIONES)^ECO||DIÁMETRO
DE FIN DE DIÁSTOLE= 5,36 CM. * DIÁMETRO DE FIN DE SISTOLE=
3,8 * CM.FRACCIÓN DE ACORTAMIENTO= 29 % * ESPESOR SEPTAL=
0,95 CM. * ESPESOR PARED POSTERIOR= 0,95 CM. * DIÁMETRO PARED
AORTICA= 0 CM. * DIÁMETRO DIASTÓLICO DE VD= 1,97 CM. *
DIÁMETRO RAÍZ AÓRTICA= 2,92 CM. * DIÁMETRO AURÍCULA
IZQUIERDA= 4,27 CM. * VOLUMEN DE FIN DE DIÁSTOLE= 0 ML. *
VOLUMEN DE FIN DE SÍSTOLE= 0 ML. * FRACCIÓN DE EYECCIÓN= 50 %
* MASA VENTRICULAR IZQUIERDA= 0 GRS.||||||F|||
20010222000000||^MEDICO^RODOLFO
(continua…)

14/10/08 77
Ejemplo de segmento Z
• Segmento ZFC #
1 SetID
Name DT
SI
O/R Longitud Reps
0. 4
Notas

2 IDFacturacion EI 0. 22
3 IDEfector EI 0. 22
4 Fecha Facturacion TS 0. 26
5 Codigo Facturacion CE 0. 200
6 Cantidad Facturacion NM 0. 3
7 Estado Facturacion IS 0. 3 Tabla (0500)
8 Horario Especial IS 0. 2
9 Misma Vía IS 0. 2
10 Procedimiento IS 0. 3 Tabla (0501)
11 Codigo anestesia IS 0. 2 Tabla (0502)
12 Recargo Anestesia IS 0. 2 Tabla (0503)
13 Servicio Solicitante IS 0. 20
14 Medico Solicitante XCN 0. 120
15 Servicio Efector IS 0. 20
16 Ubicación Efector CE 0. 100
17 Medico Efector XCN 0. 120
18 Medico Anestesista XCN 0. 120
19 Medico Ayudante 1 XCN 0. 120
20 Medico Ayudante 2 XCN 0. 120
21 Medico Ayudante 3 XCN 0. 120
22 Medico Ayudante 4 XCN 0. 120
23 Perfusionista XCN 0. 120
24 Consorcio Facturador ST 0. .3
25 Financiador CX 0. .4
26 Cuenta NM 0. .9
27 Modalidad Operativa ST 0. 9
28 Porcentaje Cargo Paciente NM 0. 3
29 Importe Cargo Paciente Sin IVA CP 0. .12
30 Importe Obra Social Sin IVA CP 0. .12
31 Importe Total Neto Sin IVA CP 0. .12
32 Importe IVA Paciente CP 0. .12
33 Importe IVA Obra Social CP 0. .12

14/10/08 78
Contenido
• Enfoque conceptual
• Construcción de Mensajes versión 2.X
– Mensajes, Segmentos, Campos
– Delimitadores
– Reglas de ensamblado y desensamblado
– Tipos de datos
• Reglas de procesamiento
• Ejemplos de mensajes HL7 V2.X
• Recomendación para implementación de version 2.X
• Breve introducción a mensajería utilizando versión 3.0

14/10/08 79
Desafíos al utilizar HL7
• Necesidad de especificaciones detalladas
– ¿Es correcta mi interpretación?
– ¿Es correcta la interpretación del otro?
– ¿Estoy de acuerdo?

• Decidir:
– ¿Qué mensajes utilizar?
– ¿Qué eventos utilizar?
– ¿Qué segmentos dentro de los mensajes?
– ¿Qué campos dentro de los segmentos?
– ¿Qué valores de las tablas definidas por el
usuario?
14/10/08 80
¿Cómo implementar HL7?
• Establecer un ambiente de comunicaciones
• Especificar el protocolo de bajo nivel más aplicable
• Identificar los mensajes y eventos
• Establecer procedimientos
– “Generales” para todos
– “Particulares” para sistemas específicos

• Identificar Datos opcionales


• Generar una especificación detallada
• Escribir el plan de pruebas
• Desarrollar un plan de contingencias y mantenimiento

14/10/08 81
Importante
• Leer la Guía de implementación
• Seguir el Checklist

14/10/08 82
HL7 V-2.X No es “Plug and Play”

• Problemas
– Diferentes modelos de datos
– Mala comprensión de las especificaciones
– Falta de vocabulario específico
– Codificación de estudios, resultados, observaciones, etc.
– Conversión de datos a los sugeridos por HL7
– Identificar Mensajes, Eventos y Campos

14/10/08 83
Contenido
• Enfoque conceptual
• Construcción de Mensajes versión 2.X
– Mensajes, Segmentos, Campos
– Delimitadores
– Reglas de ensamblado y desensamblado
– Tipos de datos
• Reglas de procesamiento
• Ejemplos de mensajes HL7 V2.X
• Recomendación para implementación de version 2.X
• Breve introducción a mensajería utilizando versión 3.0

14/10/08 84
Introducción a la Versión 3.X
• Las versiones previas de HL7 tienen:
– Una estructura que sugiere entidades
– Una estructura de eventos que indica comportamientos
– Y sugiere casos de uso

• Versión 3 intenta de formalizar esto aplicando


métodología de análisis orientado a objetos
– para mejorar la consistencia interna de HL7
– para proveer definiciones semánticas
– para permitir utilizar en el futuro nuevas tecnologías
– para producir una evolución y no una revolución

14/10/08 85

También podría gustarte