Download Contenido Contenido Tareas al enfocar una interface

Document related concepts
no text concepts found
Transcript
18/09/2013
Contenido
1.
2.
Introducción a HL7 v2.X
3.
4.
Jornada HL7
HL7 Argentina
CAIS, Córdoba
Argentina
JORNADA HL7 SAN LUIS
5.
1
© 2005-2012, HL7 Argentina
Recordatorio / Objetivos
Documentación de HL7 v2
Cómo leer el estándar: capítulos
Eventos disparadores
Estructura de mensajes. Sintaxis
abstracta
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
2
Recordatorio
Contenido
Tareas al enfocar una interface
1.
1.
2.
3.
4.
5.
Elementos de V2: campos, segmentos,
separadores, opcionalidad
Tipos de Datos
Vocabulario en HL7 V2.X
ACK y reporte de errores
Herramientas, Interfaces, Motores
2.
3.
4.
5.
6.
7.
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
3
Entender
los
requerimientos
de
interoperabilidad
Definir para cada caso el estándar aplicable
y los artefactos (mensajes, llamadas,
documentos) requeridos
Trabajar el vocabulario
Especificar el entorno de comunicaciones
Determinar el movimiento de datos a
artefacto y viceversa.
Construir la interface
Documentar la implementacion
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
4
1
18/09/2013
Objetivos
Objetivos de este módulo
Conocer
1.
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
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
Alcance
5
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
6
© 2005-2012, HL7 Argentina
JORNADA HL7 SAN LUIS
Alcance
Alcance
¿Qué significa siete en HL7? –
para la versión 2x
Un protocolo para el intercambio
de información clínica
Qué significa HL7
Qué es HL7 v2.x
Entorno de comunicaciones
Dominios o capítulos
Función
Communicación
7
6
5
4
3
2
1
Aplicación HL7
Presentación
Sesión
Transporte
Red
Enlace
Física
Arquitectura de comunicaciones del modelo ISO-OSI
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
7
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
8
2
18/09/2013
Alcance
Alcance
¿Qué es HL7 v2.x?
Es un protocolo para el intercambio de información
clínica a través de mensajes
NO
Entorno de comunicaciones
El estándar HL7 asume que el entorno de comunicaciones
proveerá lo siguiente:
NO
es una estructura de datos o especificación de base
de datos
NO
es una arquitectura para diseñar aplicaciones
hospitalarias
NO
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.
es una especificación para un ruteador de mensajes
JORNADA HL7 SAN LUIS
es una aplicación
9
© 2005-2012, HL7 Argentina
10
© 2005-2012, HL7 Argentina
Alcance
Alcance
¿Que representa un capítulo?
Pero, ¿cómo hago?
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.
JORNADA HL7 SAN LUIS
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
11
¿Cómo saber que mi requerimiento está
cubierto por HL7 V2.x?
¿El dominio está cubierto por alguno de los
capítulos?
Veamos la lista de capítulos
(la tienen en el apéndice 2)
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
12
3
18/09/2013
Alcance
Alcance
Ejercicio 1
Ejercicio 1 para cada grupo
Determinar para cada uno de estos
requerimientos basados en el Caso
Clínico, los actores, y que capítulo(s) de la
versión 2.x utilizaría para resolverlo.
El caso clínico está en el Apéndice 1.
JORNADA HL7 SAN LUIS
13
© 2005-2012, HL7 Argentina
1-Enviar datos de admisión desde el sistema de admisión al
sistema de diagnóstico por imágenes.
2-Enviar solicitud de exámen de laboratorio desde el CPOE al LIS
3-Enviar resultados de química clínica , hematología y
microbiologia del laboratorio a la HCE.
5-Enviar recetas desde el CPOE al sistema de farmacia
6-Enviar interconsulta y pedido de turno desde la HCE al sistema
del infectólogo en el centro de referencia.
7-Enviar solicitud de autorización ante la cobertura de salud del
paciente al sistema de autorización electrónica.
8-Enviar notificación electrónica al sistema del Ministerio de Salud
JORNADA HL7 SAN LUIS
14
© 2005-2012, HL7 Argentina
Alcance
Alcance
Cómo leer el estándar
Conocer profundamente el capítulo 2 (control).
Alcance
(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
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
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)
15
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
16
4
18/09/2013
Eventos disparadores
Eventos disparadores
Paradigmas de respuestas HL7
Modelo básico de transacciones HL7
Sistema B
RECIBE MENSAJE
ORM msgEvento
Evento disparador
disparador
ENVIA RESPUESTA
ACK (opt)
ENVIA
MENSAJE
Sistema
B
Sistema
A
RECIBE
RESPUESTA
Evento
disparador
ORR (opt)
RED
Sistema A
Aceptar ACK (opt)
17
© 2005-2012, HL7 Argentina
JORNADA HL7 SAN LUIS
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
18
Eventos disparadores
Eventos disparadores
Ejemplo de evento disparador
Ejercicio 2
Cuándo
Un
evento A01 es enviado cuando se realiza el
ingreso/admisión del paciente.
Definir qué eventos disparadores y que tipos
de mensajes deberían enviarse para cada
caso del Ejercicio 1.
Escribirlo en la forma MENSAJE^EVENTO
(Ver lista de mensajes en el apéndice 3)
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.
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
19
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
20
5
18/09/2013
Elementos de Mensajes HL7 V2.X
Elementos de Mensajes HL7 V2.X
¿Qué es un mensaje HL7 abstracto?
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>
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.
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.
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
21
JORNADA HL7 SAN LUIS
Elementos de Mensajes HL7 V2.X
Elementos de Mensajes HL7 V2.X
Ejemplo de mensaje HL7 abstracto
[...] opcional,
{...} permite repetirse
(ADT^A01)
MSH
EVN
PID
[ PD1 ]
[{ NK1 }]
PV1
[ PV2 ]
[{ DB1 }]
[{ ALG }]
[{ DG1 }]
[ DRG ]
[{ PR1
[{ ROL }]
}]
[{ GT1 }]
[{
IN1
[ IN2 ]
[ IN3 ]
}]
[ ACC ]
JORNADA HL7 SAN LUIS
Encabezado de Mensaje
Tipo de evento
Identificación del paciente
Datos adicionales demográficos
Familiares a cargo
Información del episodio
Información adicional del episodio
Información de discapacidades
Información sobre alergias
Diagnóstico
Grupo relacionado de Diagnóstico
Procedimento
Rol
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’
Garante
Datos de la obra social
Datos de la obra social - Addicionales
Datos de la obra social - Addicionales
HL7
permite en cada implementación definir
segmentos específicos para intercambiar
información no prevista
Información de Accidente
© 2005-2012, HL7 Argentina
22
© 2005-2012, HL7 Argentina
23
Segmentos Z..
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
24
6
18/09/2013
Elementos de Mensajes HL7 V2.X
Elementos de Mensajes HL7 V2.X
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
2
1
IS
CLASS
3
80
PL
PATIENT LOC
4
2
ADMISSION TYPE
OPT
R
O
IS
RP#
TBL#
ITEM#
0004
Definición de segmento PV1
• PV1 - Atributos del “Patient Visit Segment”
ELEMENT NAME
00132
PATIENT
00133
ASSIGNED
0007
00134
O
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.
JORNADA HL7 SAN LUIS
25
© 2005-2012, HL7 Argentina
LEN
DT
OPT
1
4
SI
O
2
1
IS
R
3
80
PL
RP/#
TBL# ITEM# ELEMENT NAME
00131 Set ID - PV1
0004
00132 Patient Class
0007
00134 Admission Type
O
00133 Assigned Patient Location
4
2
IS
O
5
20
CX
O
6
80
PL
O
7
60
XCN
O
Y
0010
00137 Attending Doctor
8
60
XCN
O
Y
0010
00138 Referring Doctor
Y
0010
00139 Consulting Doctor
0069
00140 Hospital Service
00135 Preadmit Number
00136 Prior Patient Location
9
60
XCN
O
10
3
IS
O
11
80
PL
O
12
2
IS
O
0087
00142 Preadmit Test Indicator
13
2
IS
O
0092
00143 Readmission Indicator
14
3
IS
O
15
2
IS
O
16
2
IS
O
17
60
XCN
O
18
2
IS
O
JORNADA HL7 SAN LUIS
00141 Temporary Location
0023
00144 Admit Source
Y
0009
00145 Ambulatory Status
0099
00146 VIP Indicator
Y
0010
00147 Admitting Doctor
0018
00148 Patient Type
26
© 2005-2012, HL7 Argentina
Elementos de Mensajes HL7 V2.X
Elementos de Mensajes HL7 V2.X
Campos
Caracteres de Codificación
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) >
JORNADA HL7 SAN LUIS
SEQ
© 2005-2012, HL7 Argentina
27
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
\
Son
JORNADA HL7 SAN LUIS
(ASCII 92)
“modificables”, excepto <CR>
© 2005-2012, HL7 Argentina
28
7
18/09/2013
Elementos de Mensajes HL7 V2.X
Elementos de Mensajes HL7 V2.X
Resumen de Elementos HL7 V2.X
Resumen de Opcionalidad 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)
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”
1 (puede ser modificado)
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
29
JORNADA HL7 SAN LUIS
Mensaje Abstracto
Tabla de atributos para cada
segmento
Def. de Tipos de Datos
Narrativa para cada atributo
30
Tipos de Datos
Elementos de Mensajes HL7 V2.X
Resumen de Elementos (del mensaje al atributo)
© 2005-2012, HL7 Argentina
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) >
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
31
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
32
8
18/09/2013
Tipos de Datos
Tipos de Datos
Alfanuméricos
ST
Tipos de Datos
– STRING
TX
Cadena de caracteres
Justificado
a izquierda con espacios a derecha
opcionales. Se acepta cualquier caracter ASCII
imprimible
JORNADA HL7 SAN LUIS
Alfanuméricos
© 2005-2012, HL7 Argentina
– TEXT
Texto
Texto
33
preparado para su visualización o impresión
JORNADA HL7 SAN LUIS
Tipos de Datos
Alfanuméricos
FT
© 2005-2012, HL7 Argentina
34
Tipos de Datos
Tipos de Datos
Tipos de Datos
Numéricos
Tipos de Datos Numéricos
– TEXT
Texto formateado
CQ
MO
Este
tipo de datos se derivo del TX permitiendo la
inserción de instrucciones de formateo embebidas
NM
SI
SN
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
35
JORNADA HL7 SAN LUIS
(cantidad compuesta)
(dinero)
(numérico)
(id de secuencia)
(numérico estructurado)
© 2005-2012, HL7 Argentina
36
9
18/09/2013
Tipos de Datos
Tipos de Datos
Numéricos
Tipos de Datos Numéricos
CQ – Cantidad compuesta
Cantidad con unidades
Numéricos
MO
El
primer componente es la cantidad, el segundo
la unidad en la cual se expresa la cantidad.
Tipos de Datos Numéricos
– Dinero
Tipo de dato para dinero.
El
primer componente es la cantidad y el
segundo la denominación de la moneda
<cantidad (NM)>^<unidad (CE)>
|123.7^kg|
JORNADA HL7 SAN LUIS
|99.50^USD|
|150^lb&&ANSI+|
© 2005-2012, HL7 Argentina
37
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
Tipos de Datos
Numéricos
38
Tipos de Datos
Tipos de Datos Numéricos
Numéricos
SN
NM – Numérico
Tipo de dato numérico
Tipos de Datos Numéricos
– Números estructurados
Ejemplos:
Un
número representado por caracteres ASCII
numéricos con un signo y punto decimal
opcional.
|>^100|
|^100^-^200|
|^1^:^128|
|-1233.22|
Mayor que 100
Entre 100 y 200
Título 1:128 (resultado de
serología)
SI
|^2^+|
– Id de Secuencia
Positivo “2 cruces” (respuesta
categ.)
Un entero positivo
|1233|
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
39
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
40
10
18/09/2013
Tipos de Datos
Tipos de Datos
Tipos de Datos
Fecha / Hora
Tablas
DT: Fecha
-YYYY[MM[DD]]
Permite impresión (solo año, solo año/mes)
Tablas
TM:
Hora
HH[MM[SS[.S[S[S]]]]]][+/-ZZZZ]
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
41
© 2005-2012, HL7 Argentina
JORNADA HL7 SAN LUIS
definidas por HL7
definidas por el usuario
Identificadores
ID
IS
HD
EI
RP
PL
PT
Siempre en formato de 24 hs, permite especificar
diferencia con tiempo universal coordinado (Greenwich)
TS:
Tablas e Identificadores
HL7 provee tablas para utilizar en los mensajes
Valor para tablas definidas por HL7
Valor para tablas definidas por el usuario
Denominador Jerárquico (Hierarchic Designator)
Idenficador de Entidad
Puntero de referencia
Ubicación de Paciente
Tipo de Procesamiento
Tipos de Datos
Tipos de Datos
Ejemplos de tablas
Tablas definidas por el usuario
User 0002 Marital
Status
0002
0002
PID-16, NK114, GT1-32,
IN2-44
A
D
Ejemplos de tablas
Tablas definidas por HL7
HL7 0027 Priority
OM4-13
Separated
0027
S
Stat (do immediately)
Divorced
0027
A
R
As soon as possible (a priority
lower than stat)
Routine
0002
M
Married
0027
0002
S
Single
0027
P
0002
W
Widowed
0027
T
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
42
© 2005-2012, HL7 Argentina
JORNADA HL7 SAN LUIS
43
JORNADA HL7 SAN LUIS
Preoperative (to be done prior to
surgery)
Timing critical (do as near as
possible to requested time)
© 2005-2012, HL7 Argentina
44
11
18/09/2013
Tipos de Datos
Identificadores
Identificadores
ID
Tipos de Datos
– Valor codificado por HL7
Debe ser elegida de una lista definida por HL7
Ejemplo : Sexo : F/M/O/U
IS
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)>
– Valor codificado por el USUARIO
Debe ser elegida de una lista definida por las partes
que consensuan una implementacion determinada
Ejemplo : Religión
© 2005-2012, HL7 Argentina
JORNADA HL7 SAN LUIS
45
El Identificador de entidad es único dentro del objeto definido
por los componentes 2 a 4
© 2005-2012, HL7 Argentina
JORNADA HL7 SAN LUIS
Tipos de Datos
Tipos de Datos
Punteros de referencia
Identificadores
RP
– Puntero de Referencia
Tipos de datos referenciados:
TIFF
DICOM
JOT
ISDN
JPEG
HTML
JORNADA HL7 SAN LUIS
- PICT
- FAX
- BASIC
- PostScript
- GIF
- RTF
© 2005-2012, HL7 Argentina
Ejemplo: Ubicación de personas
PL – Ubicación de personas
Lógicamente el orden es:
Este tipo de datos transmite informacion acerca de datos
almacenados en otro sistema.
<pointer (ST)>^<application ID(HD)>
^<type of data(ID)>^<subtype(ID)
46
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|
47
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
48
12
18/09/2013
Tipos de Datos
PT – Tipo de Procesamiento
Tipos de Datos
Tipos de Datos
<processing ID (ID)> ^ <processing type (ID)>
Tipos de Datos
CE-
Elementos codificados
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
CF-
Processing ID:
D=Debug
P=Producción
T=Prueba/Capacitación
Processing Mode:
A=Archivo
R=Restore
I=Carga Inicial
JORNADA HL7 SAN LUIS
Valores Codificados
CWE Codificados
CNE
49
© 2005-2012, HL7 Argentina
con Excepciones
Codificados sin Excepciones
JORNADA HL7 SAN LUIS
Vocabulario en v 2.x
ACK y reporte de errores
Vocabulario en v 2.x
Secuencia de intercambio de mensajes
1. El sistema emisor construye un mensaje HL7
basado en datos de la aplicación y lo envía al sistema
receptor.
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.
© 2005-2012, HL7 Argentina
Reglas de proceso
Paso
¿Dónde se presentan ‘problemas de
vocabulario’?
JORNADA HL7 SAN LUIS
50
© 2005-2012, HL7 Argentina
51
Paso 2. El sistema receptor recibe el mensaje y U
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.
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
52
13
18/09/2013
ACK y reporte de errores
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
MSH-9-message type
MSH-10-message control ID
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.
Este campo no es utilizado en la
lógica de procesamiento del
protocolo HL7.
Es opcional.
ACK
General acknowledgment
Chapter
Identificador único de mensaje
utilizado para responder al
mensaje inicial.
MSH
MSA
[ ERR ]
Message Header
Message acknowledgment
Error
2
2
2
MSH-11-processing ID
MSH-12-version ID
MSH-13-sequence number
MSH-14-continuation pointer
JORNADA HL7 SAN LUIS
ACK y reporte de errores
53
© 2005-2012, HL7 Argentina
JORNADA HL7 SAN LUIS
ACK y reporte de errores
ACK y reporte de errores
Reglas mínimas de validación
Criterios mínimos a validar en la recepción
de mensajes:
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.
54
© 2005-2012, HL7 Argentina
Procesamiento de la aplicación
Procesamiento de mensajes a nivel
aplicación:
El
Una
vez que la validación inicial del protocolo,
analizando el encabezado MSH, se ha realizado
se ejecuta una de las siguientes acciones:
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
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
55
1) Se procesa satisfactoriamente el mensaje,
generando una respuesta con el valor AA en MSA-1ack 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
© 2005-2012, HL7 Argentina
en LUIS
el campo MSA-1
JORNADA HL7 SAN
56
14
18/09/2013
ACK y reporte de errores
Especificación del tipo de respuesta
En cada envío de un mensaje se puede
especificar el campo MSH-15-Accept
acknowledgment type
Mensaje:
MSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2.
3||||AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA||19
780113000000|F|||POTOSI 4032 108^^CAPITAL
FEDERAL^^1899<cr>
NK1|1|CAMUS^ALBERTO|PAD|RIVADAVIA 253|42539686<cr>
PV1|1|I|12^301^1211|R|||1436^PEREZ^JORGE^ALBERTO|102
6^LOPEZ^NORBERTO|998^GARCIA^ALEJANDRO|M|||A|4|A0|N
|1026^LOPEZ^NORBERTO|OB|H0100240|||||||||||||||||A
LV||||||||20010823095130|20010823102455<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD<cr>
Este
campo identifica las condiciones de
requerimiento de mensajes de respuesta. Este
campo es requerido para el modo extendido.
Valor
AL
NE
ER
SU
JORNADA HL7 SAN LUIS
satisfactorio
Descripción
Siempre requiere respuesta
Nunca requiere respuesta
Unicamente ante un error
Unicamente cuando es
© 2005-2012, HL7 Argentina
Ejercicio 04
57
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
58
Herramientas, interfaces, motores
Ejercicio 04
Herramientas, interfaces y motores
Del mensaje del enunciado, definir y justificar:
Grupo 1: ¿Que tipo de mensaje es, y para qué se usa?. ¿Qué aplicación
envió el mensaje y a qué hora?
Grupo 2: ¿Cuál es la identificación del paciente?. ¿Cuál es el teléfono de su
pariente cercano a cargo.?
Grupo 3: ¿Quién es el médico que atiende al paciente?. ¿Dónde se
encuentra internado el paciente?
Grupo 4: ¿Cuál es la cobertura del paciente?. ¿En que direccion vive?.
¿Cuándo fue internado?
Grupo 5: ¿Con qué número de episodio se internó el paciente?. ¿Cual es
su apellido?
Grupo 6: ¿Qué médicos están involucrados? ¿En qué roles? ¿Que edad
tiene el paciente?
Grupo 7: ¿En qué caso hay que contestar a este mensaje? ¿Que aplicación
debe recibirlo? ¿Cual es el separador de subcomponentes?
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
59
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?)
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
60
15
18/09/2013
Herramientas, interfaces, motores
Herramientas, interfaces, motores
Desarrollo propio
Generación/Decodificación de Mensajes
Los mensajes no son otra cosa que cadenas
de caracteres.
Opciones:
Desarrollo
propio
Open source
Componentes comerciales
Middleware
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
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.
61
JORNADA HL7 SAN LUIS
Herramientas, interfaces, motores
© 2005-2012, HL7 Argentina
62
Herramientas, interfaces, motores
Herramientas de uso libre (v2.x)
Componentes comerciales
Hay disponibles diversos componentes comerciales para
generación y decodificación de mensajes V2
HAPI : Interface HL7 open source (2.1 a 2.6)
http://hl7api.sourceforge.net/
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’.
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)
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
63
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
64
16
18/09/2013
Herramientas, interfaces, motores
Herramientas, interfaces, motores
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)
Herramientas de Envío/Recepción
Desarrollo propio
Componentes
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)
Open/Source
Colas de mensajería (permiten ruteo, persistencia, etc)
© 2005-2012, HL7 Argentina
65
Los mismos vendedores de componentes comerciales ofrecen
soluciones para envío y/o recepción
JORNADA HL7 SAN LUIS
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.
Vienen en general con soluciones MLLP
MQSeries (IBM)
MSMQ (Microsoft)
Advanced Queueing (Oracle)
Java Queue
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
66
Herramientas, interfaces, motores
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.
JORNADA HL7 SAN LUIS
© 2005-2012, HL7 Argentina
67
17