Departamento de Informática en Salud HL7 V2.X –Introducción Dr. Humberto Mandirola Ing. Fernando Portilla
Departamento de Informática en Salud
HL7 V2.X –Introducción
Dr. Humberto Mandirola
Ing. Fernando Portilla
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en Salud
¿Qué significa siete en HL7?
Un protocolo para el intercambiode información clínica
Arquitectura de comunicaciones del modelo ISO-OSI
1 Física2 Enlace3 Red4 Transporte
Communicación
Función
5 Sesión6 Presentación7 Applicación HL7
Departamento de Informática en SaludDepartamento de Informática en Salud
¿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
Departamento de Informática en Salud
Entorno de comunicacionesEl 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.
Departamento de Informática en SaludDepartamento de Informática en Salud
Modelo básico de transacciones HL7
RED
ENVIA
MENSAJE
Sistema A
Sistema B
RECIBE MENSAJE
Evento disparador
RECIBE
RESPUESTA
ENVIA RESPUESTA
Departamento de Informática en SaludDepartamento de Informática en Salud
Paradigmas de respuestas HL7
Sistema
A
(Orders and Results)ORM msg
ORR (opt)
Aceptar ACK (opt)
Aceptar ACK (opt)
Sistema
B
Evento
disparador
Evento
disparador
Departamento de Informática en SaludDepartamento de Informática en Salud
¿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)
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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.
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
¿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
Departamento de Informática en Salud
¿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.
Departamento de Informática en Salud
Ejemplo de mensaje HL7 abstracto (ADT^A01)
[...] opcional, {...} permite repetirse
MSH Encabezado de MensajeEVN Tipo de eventoPID Identificación del paciente[ PD1 ] Datos adicionales demográficos[{ NK1 }] Familiares a cargoPV1 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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
Mensajes HL7MSH|^~\&|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.
Departamento de Informática en SaludDepartamento de Informática en Salud
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..
Departamento de Informática en SaludDepartamento de Informática en Salud
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 pacienteSEQ LEN DT OPT RP# TBL# ITEM# ELEMENT NAME
…2 1 IS R 0004 00132 PATIENT CLASS3 80 PL O 00133 ASSIGNED PATIENT LOC4 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.
Departamento de Informática en SaludDepartamento de Informática en Salud
Definición de segmento PV1
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
• PV1 - Atributos del “Patient Visit Segment”
Departamento de Informática en SaludDepartamento de Informática en Salud
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) >
Departamento de Informática en SaludDepartamento de Informática en Salud
Componentes de un campoMSH|^~\&|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.
Departamento de Informática en SaludDepartamento de Informática en Salud
Valores repetitivos de un campoMSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2.3||||AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA^LUZ||1978011300
0000|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.
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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)
Departamento de Informática en SaludDepartamento de Informática en Salud
DelimitadoresMSH|^~\&|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.
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
Delimitadores
• Es el último caracter de cada segmento.
• SIEMPRE es el caracter ASCII <CR> (hexa 0D)
<CR>PV1|1|I|01-02^11^23|||01-
02^11^23|||||||||||||H0000171|||||||||||||||||||||||||19990831103712<CR>
IN1|1|INT|2|PLAN DE SALUD|||||||||||||||||||||||||||||||||||||||||||||123456789-9<CR>
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
ADT^A01
MSH|^-\&|ADT|LIS|…
PID|...Reglas de Codificación
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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>
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
Tipos de datosAlfanumé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) >
Departamento de Informática en SaludDepartamento de Informática en Salud
Tipos de Datos
• Alfanuméricos
– ST – STRING
• Cadena de caracteres
– Justificado a izquierda con espacios a derecha opcionales. Se
acepta cualquier caracter ASCII imprimible
Departamento de Informática en SaludDepartamento de Informática en Salud
Tipos de Datos
• Alfanuméricos
– TX – TEXT
• Texto
– Texto preparado para su visualización o impresión
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
Formato de textos
• Equivalencia con HTML
Código Equivalente HTML
.sp4 <BR><BR><BR><BR><BR>
.br <BR>
.fi (por omisión)
.ti3
.ce <BR><CENTER>…</CENTER>
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
Tipos de datos numéricos
• Numéricos
– CQ (cantidad compuesta)
– MO (dinero)
– NM (numérico)
– SI (id de secuencia)
– SN (numérico estructurado)
Departamento de Informática en SaludDepartamento de Informática en Salud
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+|
Departamento de Informática en SaludDepartamento de Informática en Salud
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|
Departamento de Informática en SaludDepartamento de Informática en Salud
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|
Departamento de Informática en SaludDepartamento de Informática en Salud
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.)
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
Ejemplos de tablas
• Tablas definidas por el usuario
User 0002 Marital
Status
PID-16, NK1-
14, GT1-32,
IN2-44
0002 A Separated
0002 D Divorced
0002 M Married
0002 S Single
0002 W Widowed
Departamento de Informática en SaludDepartamento de Informática en Salud
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)
Departamento de Informática en SaludDepartamento de Informática en Salud
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 unaimplementacion determinada
Ejemplo : Religión
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
Ejemplo: Ubicación de personas
• PL – Ubicación de personas
Lógicamente el orden es:
• 1 Tipo de ubicacion de persona• 2 Conjunto de edificios (facility)• 3 Edificio • 4 Piso• 5 Sector (Sala, etc. -Point of Care)• 6 Habitación• 7 Cama• 8 Descripción de Ubicación• 9 Estado de Ubicación
El orden sintáctico es:
<point of care (IS)> ^
<room (IS)> ^
<bed (IS)> ^
<facility (HD)> ^
<location status (IS)> ^
<person location type (IS)> ^
<building (IS)> ^
<floor (IS)> ^
<location description (ST)>
PV1|1|I|01-02^11^23|
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
Reglas de procesamiento de mensajes
• Existen dos formas de procesamiento de mensajes:
– ORIGINAL PROCESSING RULES
– ENHANCED PROCESSING RULES
Departamento de Informática en SaludDepartamento de Informática en Salud
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.
Departamento de Informática en SaludDepartamento de Informática en Salud
Segmento MSH
• Encabezado del mensaje - Segmento MSHCampo 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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
Protocolos especiales
• Extensiones al protocolo HL7
– Protocolo de secuencia numérica
– Mensajes y segmentos de continuación
– Protocolo Batch HL7
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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||1978011300000
0|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|99
8^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBERTO|OB|H01002
40|||||||||||||||||ALV||||||||20010823095130|20010823102455
<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD<cr>
Departamento de Informática en SaludDepartamento de Informática en Salud
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||197801130
00000|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|99
8^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||20010
817100723|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>
Departamento de Informática en SaludDepartamento de Informática en Salud
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…)
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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||192204
15|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
Departamento de Informática en SaludDepartamento de Informática en Salud
Ejemplo de mensaje ORU^R01 (Cardiol.)MSH|^~\&|CAR||HCE||20010605135518||ORU^R01|EDTT00028|T|2.3
PID|1||999999^^^^AFPLAN|99999999^^^^DNI|PRUEBA^PACIENTE||192204
15|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…)
Departamento de Informática en SaludDepartamento de Informática en Salud
Ejemplo de segmento Z
• Segmento ZFC
# Name DT O/R Longitud Reps Notas
1 SetID SI 0. 4
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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?
Departamento de Informática en SaludDepartamento de Informática en Salud
¿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
Departamento de Informática en SaludDepartamento de Informática en Salud
Importante
• Leer la Guía de implementación
• Seguir el Checklist
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
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
Departamento de Informática en SaludDepartamento de Informática en Salud
Gracias por su atención
Dr. Humberto F. Mandirola Brieux
Email: [email protected]