Introducción a HL7 · El estándar HL7 asume que el entorno de comunicaciones proveerá lo...
Transcript of Introducción a HL7 · El estándar HL7 asume que el entorno de comunicaciones proveerá lo...
© 2005-2012, HL7 Argentina 1
Introducción a HL7 v2.X
Jornada HL7
HL7 Argentina Mar del Plata
Argentina
© 2005-2012, HL7 Argentina 2
Contenido
1. Recordatorio / Objetivos
2. Documentación de HL7 v2
3. Cómo leer el estándar: capítulos
4. Eventos disparadores
5. Estructura de mensajes. Sintaxis
abstracta
© 2005-2012, HL7 Argentina 3
Contenido
1. Elementos de V2: campos, segmentos,
separadores, opcionalidad
2. Tipos de Datos
3. Vocabulario en HL7 V2.X
4. ACK y reporte de errores
5. Herramientas, Interfaces, Motores
© 2005-2012, HL7 Argentina 4
Tareas al enfocar una interface
1. Entender los requerimientos de interoperabilidad
2. Definir para cada caso el estándar aplicable y los artefactos (mensajes, llamadas, documentos) requeridos
3. Trabajar el vocabulario
4. Especificar el entorno de comunicaciones
5. Determinar el movimiento de datos a artefacto y viceversa.
6. Construir la interface
7. Documentar la implementación
Recordatorio
© 2005-2012, HL7 Argentina 5
Objetivos
Objetivos de este módulo
Conocer el ALCANCE del estándar: para qué puede
usarse.
Entender la MECANICA del intercambio de mensajes
Poder ESCRIBIR un encabezado de mensaje HL7 (y
algún otro fragmento)
Poder LEER un mensaje HL7 V2.X y “entenderlo”.
Conocer superficialmente los TIPOS DE DATOS de
HL7 V2.X
© 2005-2012, HL7 Argentina 6
Alcance
1. Una vez que entendimos los
requerimientos de interoperabilidad: ¿qué requerimientos de los que encontramos nos
puede cubrir el estándar HL7 V2.x?
1. Documentación de
HL7 v2
2. Cómo leer el
estándar: capítulos
© 2005-2012, HL7 Argentina 7
Alcance
Qué significa HL7
Qué es HL7 v2.x
Entorno de comunicaciones
Dominios o capítulos
© 2005-2012, HL7 Argentina 8
Un protocolo para el intercambio de información clínica
Arquitectura de comunicaciones del modelo ISO-OSI
1 Física
2 Enlace
3 Red
4 Transporte
Communicación
Función
5 Sesión
6 Presentación
7 Aplicación HL7
¿Qué significa siete en HL7? – para la versión 2x
Alcance
© 2005-2012, HL7 Argentina 9
¿Qué es HL7 v2.x?
Es un protocolo para el intercambio de información
clínica a través de mensajes
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
Alcance
© 2005-2012, HL7 Argentina 10
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.
Alcance
© 2005-2012, HL7 Argentina 11
El capítulo 2 define como se codifican y decodifican los mensajes.
El resto de los capítulos representa el trabajo de un comité técnico sobre un área de la informática en salud. Este trabajo es aprobado posteriormente por el consenso de todos los miembros de HL7.
Este comité (al que puede ingresar cualquier miembro) es el responsable de incorporar agregados o cambios.
El capítulo contiene la información requerida para implementar mensajes referidos al área en cuestión y referencias al contenido de otros capítulos.
Ejemplo: ’TURNOS’ refiere obviamente a Pacientes, pero agrega contenido propio.
Alcance
¿Que representa un capítulo?
© 2005-2012, HL7 Argentina 12
Cómo leer el estándar
Alcance
Conocer profundamente el capítulo 2 (control).
(por eso existe la Certificación Internacional en HL7 v2.x ‘Control’: el dominio de ‘Control’ permite entender con facilidad el resto del estándar.
Cada capítulo contiene los elementos requeridos para armar mensajes referidos al área en cuestión:
1. introducción / alcance
2. eventos
3. definiciones de mensajes
4. ejemplos
5. temas pendientes de resolución
© 2005-2012, HL7 Argentina 13
Alcance
Una vez definido el o los capítulos
involucrados, debo definir los eventos
disparadores que generan mensajes y
cuáles debo utilizar.
(Siempre y cuando decida utilizar mensajería HL7 V2, veremos más
adelante el tipo de decisiones involucradas)
Alcance
© 2005-2012, HL7 Argentina 14
Paradigmas de respuestas HL7
Sistema
A
ORM msg
ORR (opt)
Aceptar ACK (opt)
Aceptar ACK (opt)
Sistema
B
Evento
disparador
Evento
disparador
Eventos disparadores
© 2005-2012, HL7 Argentina 15
Modelo básico de transacciones HL7
RED
ENVIA
MENSAJE
Sistema A
Sistema B
RECIBE MENSAJE
Evento disparador
RECIBE
RESPUESTA
ENVIA RESPUESTA
Eventos disparadores
© 2005-2012, HL7 Argentina 16
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.
Ejemplo de evento disparador
Eventos disparadores
© 2005-2012, HL7 Argentina 17 JORNADA HL7 MDP
MSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2.3||||
AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA||1978011
3000000|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^NORBE
RTO|998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBER
TO|OB|H0100240|||||||||||||||||ALV||||||||2001082309513
0|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.
Elementos de Mensajes HL7 V2.X
© 2005-2012, HL7 Argentina 18 JORNADA HL7 MDP
¿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.
Elementos de Mensajes HL7 V2.X
© 2005-2012, HL7 Argentina 19 JORNADA HL7 MDP
[...] 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
Ejemplo de mensaje HL7 abstracto
(ADT^A01)
Elementos de Mensajes HL7 V2.X
© 2005-2012, HL7 Argentina 20 JORNADA HL7 MDP
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..
Elementos de Mensajes HL7 V2.X
© 2005-2012, HL7 Argentina 21 JORNADA HL7 MDP
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.
Especificación de segmentos Elementos de Mensajes HL7 V2.X
© 2005-2012, HL7 Argentina 22 JORNADA HL7 MDP
Definición de segmento PV1
S E Q L E N D T O P T R P / # T B L # I T E M # E L E M E N T N A M E
1 4 S I O 0 0 1 3 1 S e t I D - P V 1
2 1 I S R 0 0 0 4 0 0 1 3 2 P a t i e n t C l a s s
3 8 0 P L O 0 0 1 3 3 A s s i g n e d P a t i e n t L o c a t i o n
4 2 I S O 0 0 0 7 0 0 1 3 4 A d m i s s i o n T y p e
5 2 0 C X O 0 0 1 3 5 P r e a d m i t N u m b e r
6 8 0 P L O 0 0 1 3 6 P r i o r P a t i e n t L o c a t i o n
7 6 0 X C N O Y 0 0 1 0 0 0 1 3 7 A t t e n d i n g D o c t o r
8 6 0 X C N O Y 0 0 1 0 0 0 1 3 8 R e f e r r i n g D o c t o r
9 6 0 X C N O Y 0 0 1 0 0 0 1 3 9 C o n s u l t i n g D o c t o r
1 0 3 I S O 0 0 6 9 0 0 1 4 0 H o s p i t a l S e r v i c e
1 1 8 0 P L O 0 0 1 4 1 T e m p o r a r y L o c a t i o n
1 2 2 I S O 0 0 8 7 0 0 1 4 2 P r e a d m i t T e s t I n d i c a t o r
1 3 2 I S O 0 0 9 2 0 0 1 4 3 R e a d m i s s i o n I n d i c a t o r
1 4 3 I S O 0 0 2 3 0 0 1 4 4 A d m i t S o u r c e
1 5 2 I S O Y 0 0 0 9 0 0 1 4 5 A m b u l a t o r y S t a t u s
1 6 2 I S O 0 0 9 9 0 0 1 4 6 V I P I n d i c a t o r
1 7 6 0 X C N O Y 0 0 1 0 0 0 1 4 7 A d m i t t i n g D o c t o r
1 8 2 I S O 0 0 1 8 0 0 1 4 8 P a t i e n t T y p e
• PV1 - Atributos del “Patient Visit Segment”
Elementos de Mensajes HL7 V2.X
© 2005-2012, HL7 Argentina 23 JORNADA HL7 MDP
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) >
Elementos de Mensajes HL7 V2.X
© 2005-2012, HL7 Argentina 24 JORNADA HL7 MDP
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)
Son “modificables”, excepto <CR>
Elementos de Mensajes HL7 V2.X
© 2005-2012, HL7 Argentina 25 JORNADA HL7 MDP
Resumen de Elementos HL7 V2.X
mensaje: formado por segmentos separados entre sí por <CR>.
segmento: formado por campos separados por el separador de campos (|1)
campo: formado por uno o más componentes separados por el separador de componentes
(^1) y es de un tipo de datos específico.
componente: formado por uno o más subcomponentes separados por el separador de subcomponentes (&1)
1 (puede ser modificado)
Elementos de Mensajes HL7 V2.X
© 2005-2012, HL7 Argentina 26 JORNADA HL7 MDP
Resumen de Opcionalidad HL7 V2.X
Un segmento puede ser opcional o repetitivo.
Ejemplo: “Diagnóstico(s)”
Un campo puede ser opcional o repetitivo.
Ejemplo: “Teléfono(s)”
Un componente de un campo puede ser
opcional. Ejemplo: ‘Inicial Media de Nombre”
Un subcomponente de un componente puede
ser opcional. Ejemplo: “Grado de precisión de la
fecha”
Elementos de Mensajes HL7 V2.X
© 2005-2012, HL7 Argentina 27 JORNADA HL7 MDP
Resumen de Elementos (del mensaje al atributo)
Elementos de Mensajes HL7 V2.X
Mensaje Abstracto Tabla de atributos para cada
segmento
Narrativa para cada atributo
Def. de Tipos de Datos
© 2005-2012, HL7 Argentina 28 JORNADA HL7 MDP
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) >
Tipos de Datos
Tipos de Datos
© 2005-2012, HL7 Argentina 29 JORNADA HL7 MDP
Tipos de Datos Alfanuméricos
ST – STRING
Cadena de caracteres
Justificado a izquierda con espacios a derecha
opcionales. Se acepta cualquier caracter ASCII
imprimible
Tipos de Datos
© 2005-2012, HL7 Argentina 30 JORNADA HL7 MDP
Tipos de Datos Alfanuméricos
TX – TEXT
Texto
Texto preparado para su visualización o impresión
Tipos de Datos
© 2005-2012, HL7 Argentina 31 JORNADA HL7 MDP
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
Tipos de Datos
© 2005-2012, HL7 Argentina 32 JORNADA HL7 MDP
Tipos de Datos Numéricos Numéricos
CQ (cantidad compuesta)
MO (dinero)
NM (numérico)
SI (id de secuencia)
SN (numérico estructurado)
Tipos de Datos
© 2005-2012, HL7 Argentina 33 JORNADA HL7 MDP
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+|
Tipos de Datos
© 2005-2012, HL7 Argentina 34
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|
Tipos de Datos
© 2005-2012, HL7 Argentina 35 JORNADA HL7 MDP
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|
Tipos de Datos
© 2005-2012, HL7 Argentina 36 JORNADA HL7 MDP
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.)
Tipos de Datos
© 2005-2012, HL7 Argentina 37 JORNADA HL7 MDP
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
Tipos de Datos
© 2005-2012, HL7 Argentina 38 JORNADA HL7 MDP
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
Tipos de Datos
© 2005-2012, HL7 Argentina 39 JORNADA HL7 MDP
Ejemplos de tablas Tablas definidas por el usuario
User 0002Marital
Status
PID-16, NK1-
14, GT1-32,
IN2-44
0002 A Separated
0002 D Divorced
0002 M Married
0002 S Single
0002 W Widowed
Tipos de Datos
© 2005-2012, HL7 Argentina 40 JORNADA HL7 MDP
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)
Tipos de Datos
© 2005-2012, HL7 Argentina 41 JORNADA HL7 MDP
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
Tipos de Datos
© 2005-2012, HL7 Argentina 42 JORNADA HL7 MDP
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
Tipos de Datos
© 2005-2012, HL7 Argentina 43 JORNADA HL7 MDP
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
Tipos de Datos
© 2005-2012, HL7 Argentina 44 JORNADA HL7 MDP
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|
Tipos de Datos
© 2005-2012, HL7 Argentina 45 JORNADA HL7 MDP
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
Tipos de Datos
© 2005-2012, HL7 Argentina 46 JORNADA HL7 MDP
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
Tipos de Datos
© 2005-2012, HL7 Argentina 47 JORNADA HL7 MDP
Vocabulario en v 2.x
¿Dónde se presentan ‘problemas de vocabulario’?
Tablas HL7 (se ‘guardan’ o se ‘codifican’)
Campos codificados (prácticas, diagnósticos, sexo administrativo, tipo de muestra, etc.)
Identificadores de entidades (personas, pacientes, médicos, prestadores, hospitales, servicios, etc.)
Posibilidad de usar el cap. 8 para compartir tablas maestras o cualquier otra estrategia.
Vocabulario en v 2.x
© 2005-2012, HL7 Argentina 48 JORNADA HL7 MDP
Reglas de proceso 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.
ACK y reporte de errores
© 2005-2012, HL7 Argentina 49 JORNADA HL7 MDP
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
ACK y reporte de errores
© 2005-2012, HL7 Argentina 50 JORNADA HL7 MDP
Mensaje ACK – Respuesta general
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
ACK y reporte de errores
© 2005-2012, HL7 Argentina 51 JORNADA HL7 MDP
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
ACK y reporte de errores
© 2005-2012, HL7 Argentina 52 JORNADA HL7 MDP
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
ACK y reporte de errores
© 2005-2012, HL7 Argentina 53 JORNADA HL7 MDP
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
ACK y reporte de errores
© 2005-2012, HL7 Argentina 54 JORNADA HL7 MDP
Herramientas, interfaces y motores Hay que tomar decisiones acerca de herramientas para:
Generación de mensajes (cómo y cuándo partir de nuestros datos y llegar a generar el texto del mensaje)
Decodificación de mensajes (que hacer cuando se recibe un mensaje y como mapear los datos obtenidos a nuestro sistema)
Enviar y recibir los mensajes (bajo nivel, ruteo de mensajes)
Control, registro y auditoria (¿que pasa cuando la interface no funciona? ¿que pasa cuando un mensaje no llega? ¿que pasa si queremos revisar el contenido de un mensaje enviado previamente?)
Herramientas, interfaces, motores
© 2005-2012, HL7 Argentina 55 JORNADA HL7 MDP
Generación/Decodificación de Mensajes
Opciones:
Desarrollo propio
Open source
Componentes comerciales
Middleware
Herramientas, interfaces, motores
© 2005-2012, HL7 Argentina 56 JORNADA HL7 MDP
Desarrollo propio
Herramientas, interfaces, motores
Los mensajes no son otra cosa que cadenas de caracteres.
Axioma: Podemos agregar a cualquier aplicación existente en cualquier plataforma utilizando cualquier lenguaje de programación la capacidad de generar mensajes HL7.
Desventaja: Caro en tiempo de desarrollo, pruebas y validación. Posibilidades de error.
Es muy dificil programar un parser, a menos que sea limitado en alcance (específico para algunos capítulos, eventos y uso de los mismos)
Ventajas: Libertad, Independencia, Posibilidad de re-uso posterior.
© 2005-2012, HL7 Argentina 57 JORNADA HL7 MDP
Herramientas de uso libre (v2.x)
HAPI : Interface HL7 open source (2.1 a 2.6)
http://hl7api.sourceforge.net/
MIRTH (Connect/Results/Match)
(2.x, V3, CDA, xml en gral, DICOM)
http://www.mirthcorp.com/community/overview
(Hay más pero son las mas usadas)
Herramientas, interfaces, motores
© 2005-2012, HL7 Argentina 58 JORNADA HL7 MDP
Componentes comerciales Hay disponibles diversos componentes comerciales para generación y decodificación de mensajes V2
Algunos de ellos (no es publicidad, es información):
Chameleon www.Interfaceware.com
Neointegrate www.neotool.com
IDK Interface Engine www.linktools.com
Symphonia www.orionhealth.com
En general permiten agregar componentes que generan objetos para integrar con programas en Visual Studio, Java, etc o permiten mapear directamente los datos recibidos en mensajes a la base de datos.
Desventaja: $$ gastados comprando el producto, capacitación, pruebas y validación. Dependencia posterior del proveedor según la flexibilidad del producto. Costo de licencia run-time (si es que existe).
Ventajas: Aprovechamiento más veloz. No nos preocupamos por ‘la interface’.
Herramientas, interfaces, motores
© 2005-2012, HL7 Argentina 59 JORNADA HL7 MDP
Middleware específico
Se encargan de todos los aspectos de la integración : comunicación, registro, codificación y decodificación.
Big Guys:
Biztalk (Microsoft)
http://www.microsoft.com/biztalk/en/us/accelerator-hl7.aspx
Healthcare Transaction Base HTB (Oracle) http://www.oracle.com/solutions/integration/health.h
tml
Sun (Componentes para BPEL)
Herramientas, interfaces, motores
© 2005-2012, HL7 Argentina 60 JORNADA HL7 MDP
Herramientas de Envío/Recepción
Desarrollo propio Es bastante sencillo desarrollar una interface de bajo nivel a
través de TCP (MLLP)
También se pueden implementar a través de e-mail y web services.
Componentes Los mismos vendedores de componentes comerciales ofrecen
soluciones para envío y/o recepción
Open/Source Vienen en general con soluciones MLLP
Colas de mensajería (permiten ruteo, persistencia, etc) MQSeries (IBM)
MSMQ (Microsoft)
Advanced Queueing (Oracle)
Java Queue
Herramientas, interfaces, motores
© 2005-2012, HL7 Argentina 61 JORNADA HL7 MDP
Motores de Mensajería
Los motores de mensajería son productos
de middleware específico para HL7
destinados a las grandes instalaciones
(hospitales, financiadores). Tienen en
cuenta ruteo, registro, auditoría,
traducción entre versiones (2.3->2.4, etc.),
transposición de mensajes (transformar un
mensaje en otro), etc.
Herramientas, interfaces, motores