HL7 V2
-
Upload
api-26645842 -
Category
Documents
-
view
3.141 -
download
4
Transcript of HL7 V2
HL7 V2 –Introducción
Diego Kaminker
HL7 Argentina
Montevideo, Uruguay
Noviembre 2004
12/04/23 2
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
12/04/23 3
Un protocolo para el intercambiode información clínica
Arquitectura de comunicaciones del modelo ISO-OSI
1 Física 1 Física 2 Enlace 2 Enlace 3 Red 3 Red 4 Transporte 4 Transporte
Communicación
Función
5 Sesión 5 Sesión 6 Presentación 6 Presentación 7 Applicación 7 Applicación HL7
¿Qué significa siete en HL7?
12/04/23 4
¿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
12/04/23 5
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.
12/04/23 6
Modelo básico de transacciones HL7
RED
ENVIA MENSAJE
Sistema A
Sistema B
RECIBE MENSAJE
Evento disparador
RECIBERESPUESTA
ENVIA RESPUESTA
12/04/23 7
Paradigmas de respuestas HL7
SistemaA
ORM msg
ORR (opt)
Aceptar ACK (opt)
Aceptar ACK (opt)
SistemaB
Eventodisparador
Eventodisparador
12/04/23 8
¿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)
12/04/23 9
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
12/04/23 10
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
12/04/23 11
• 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
12/04/23 12
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
12/04/23 13
¿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
12/04/23 14
¿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.
12/04/23 15
[...] 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
Ejemplo de mensaje HL7 abstracto (ADT^A01)
12/04/23 16
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
12/04/23 17
MSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2.3||||AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA||19780113000000|F|||POTOSI 4032 108^^CAPITAL FEDERAL^^1899<cr>
NK1|1|CAMUS^ALBERTO|PAD|RIVADAVIA 253|42539686<cr>
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ^NORBERTO|998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBERTO|OB|H0100240|||||||||||||||||ALV||||||||20010823095130|20010823102455<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD<cr>
Un mensaje es la unidad transferida entre sistemas informáticos. Esta compuesto de por un grupo de segmentos en una secuencia definida. El primer segmento (MSH) identifica el tipo de mensaje y el evento disparador que hizo que el mensaje sea enviado.
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.
Mensajes HL7
12/04/23 18
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..
12/04/23 19
• 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 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.
Especificación de segmentos
12/04/23 20
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”
12/04/23 21
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) 00108Components: <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) >
3.3.2.5 Patient name (XPN) 00108Components: <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) >
12/04/23 22
MSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2.3||||AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA^LIDIA||19780113|F|||POTOSI 4032 108^^CAPITAL FEDERAL^^1899<cr>
NK1|1|CAMUS^ALBERTO|PAD|RIVADAVIA 253|42539686<cr>
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ^NORBERTO|998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBERTO|OB|H0100240|||||||||||||||||ALV||||||||20010823095130|20010823102455<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD<cr>
Componentes de un campo ( separador = ^ )
Un campo también puede tener partes o componentes ‘separables’. Por ejemplo, el nombre del paciente se registra como Apellido, Nombre, Inicial de Segundo Nombre.
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.
Componentes de un campo
12/04/23 23
MSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2.3||||AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA^LUZ||19780113000000|F|||POTOSI 4032^^CAPITAL FEDERAL^^1899||(011)4959-0200 |(011)4959-0353~(011)4959-0354<cr>
NK1|1|CAMUS^ALBERTO|PAD|RIVADAVIA 253|(011)4253-9686<cr>
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ^NORBERTO|998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBERTO|OB|H0100240|||||||||||||||||ALV||||||||20010823095130|20010823102455<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD<cr>
Valores repetitivos de un campo ( separador = ~ )
Algunos campos permiten incluir valores repetitivos. Por ejemplo: el campo ‘Telefono Laboral’ permite incluir varios distintos.
Valores repetitivos de un campo ( separador = ~ )
Algunos campos permiten incluir valores repetitivos. Por ejemplo: el campo ‘Telefono Laboral’ permite incluir varios distintos.
Valores repetitivos de un campo
12/04/23 24
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
12/04/23 25
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)
12/04/23 26
MSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2.3||||AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA||19780113000000|F|||POTOSI 4032 108^^CAPITAL FEDERAL^^1899<cr>
NK1|1|CAMUS^ALBERTO|PAD|RIVADAVIA 253|42539686<cr>
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ^NORBERTO|998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBERTO|OB|H0100240|||||||||||||||||ALV||||||||20010823095130|20010823102455<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD<cr>
Los delimitadores: separador de campos, separador de componentes, separador de repetición, caracter de escape, separador de subcomponentes están definidos en el segmento MSH a partir del 4to. caracter.
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.
Delimitadores
12/04/23 27
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
12/04/23 28
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
12/04/23 29
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
12/04/23 30
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
12/04/23 31
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
12/04/23 32
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>
12/04/23 33
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
12/04/23 34
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^A01MSH|^-\&|ADT|LIS|…
PID|...Reglas de Codificación
12/04/23 35
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
12/04/23 36
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 Perez^Jose^Alberto^^^^ -> Perez^Jose^Alberto
12/04/23 37
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>
ORM|…|Ultimo Campo Presente|…|||||<CR>
Puede ser reemplazado por:
ORM|…|Ultimo Campo Presente<CR>
12/04/23 38
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
12/04/23 39
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
12/04/23 40
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) >
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
12/04/23 41
Tipos de Datos
• Alfanuméricos – ST – STRING
• Cadena de caracteres
– Justificado a izquierda con espacios a derecha opcionales. Se acepta cualquier caracter ASCII imprimible
12/04/23 42
Tipos de Datos
• Alfanuméricos– TX – TEXT
• Texto
– Texto preparado para su visualización o impresión
12/04/23 43
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
12/04/23 44
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
12/04/23 45
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>
12/04/23 46
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
12/04/23 47
Tipos de datos numéricos
• Numéricos
– CQ (cantidad compuesta)– MO (dinero)– NM (numérico)– SI (id de secuencia)– SN (numérico estructurado)
12/04/23 48
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+|
12/04/23 49
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|
12/04/23 50
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|
12/04/23 51
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.)
12/04/23 52
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
12/04/23 53
Tablas e Identificadores
• HL7 provee tablas para utilizar en los mensajes– Tablas definidas por HL7– Tablas definidas por el usuario
• IdentificadoresID Valor para tablas definidas por HL7IS Valor para tablas definidas por el usuarioHD Denominador Jerárquico (Hierarchic Designator)EI Idenficador de EntidadRP Puntero de referenciaPL Ubicación de PacientePT Tipo de Procesamiento
12/04/23 54
Ejemplos de tablas
• Tablas definidas por el usuario
User 0002 MaritalStatus
PID-16, NK1-14, GT1-32,IN2-44
0002 A Separated
0002 D Divorced
0002 M Married
0002 S Single
0002 W Widowed
12/04/23 55
Ejemplos de tablas
• Tablas definidas por HL7
HL7 0027 Priority OM4-13
0027 S Stat (do immediately)
0027 A As soon as possible (a prioritylower than stat)
0027 R Routine
0027 P Preoperative (to be done prior tosurgery)
0027 T Timing critical (do as near aspossible to requested time)
12/04/23 56
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
12/04/23 57
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
12/04/23 58
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
12/04/23 59
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|
12/04/23 60
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
12/04/23 61
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
12/04/23 62
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
12/04/23 63
Reglas de procesamiento de mensajes
• Existen dos formas de procesamiento de mensajes:
– ORIGINAL PROCESSING RULES
– ENHANCED PROCESSING RULES
12/04/23 64
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.
12/04/23 65
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
12/04/23 66
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
12/04/23 67
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
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
12/04/23 68
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
12/04/23 69
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
12/04/23 70
Protocolos especiales
• Extensiones al protocolo HL7
– Protocolo de secuencia numérica
– Mensajes y segmentos de continuación
– Protocolo Batch HL7
12/04/23 71
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
12/04/23 72
Ejemplo de mensaje ADT^A01 (Admisión)MSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2.3||||AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA||19780113000000|F|||POTOSI 4032 108^^CAPITAL FEDERAL^^1899<cr>
NK1|1|CAMUS^ALBERTO|PAD|RIVADAVIA 253|42539686<cr>
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ^NORBERTO|998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBERTO|OB|H0100240|||||||||||||||||ALV||||||||20010823095130|20010823102455<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD<cr>
12/04/23 73
Ejemplo de mensaje ORM^O01 (Orden)MSH|^~\&|NSI||LAB||20010817102050||ORM^O01|NSI6734401|P|2.3||||
AL<cr>
PID|1||60719^^^^HI|26690979^^^^DNI|TORRALBA^AIDA^LUZ||19780113000000|F|||POTOSI 4032^^CAPITAL FEDERAL^^1899||(011)4959-0200 |(011)4959-0353~(011)4959-0354<cr>
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ^NORBERTO|998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBERTO|OB|H0100240|||||||||||||||||ALV||||||||20010823095130|20010823102455<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD |||||||||||||||||||||||||||||||||||||||||||||950359<cr>
ORC|NW|678701^NSI||678701^NSI|IP|E|1^^^20010817110000^^R||20010817100723|IDUSER||1026^LOPEZ^NORBERTO|||||NGP||IDUSER<cr>
OBR|1|678701^NSI||2656^SIALOGRAFIA RDC^NSI||||||||||||||||||||RAY|||1^^^20010817110000^^R<cr>
DG1|1|||IAM||W<cr>
12/04/23 74
Ejemplo de mensaje ORU^R01 (Lab.)MSH|^~\&|LAB||HCE||20010913141958||ORU^R01|LAB562901|T|1.0||||ERPID|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…)
12/04/23 75
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
12/04/23 76
Ejemplo de mensaje ORU^R01 (M. Nucl.)MSH|^~\&|MNC||HCE||20010824115646||ORU^R01|MNC544169|T|2.3
PID|1||999999^^^^AFPLAN|99999999^^^^DNI|PRUEBA^PACIENTE||19220415|F||||||||||
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD
ORC|SC|MNC1-1^MNC||MNC1^MNC|CM||1||20010606|||326^MEDICA^CARMEN
OBR|1|MNC1-1^MNC||1688^DENSITOMETRIA ANTEBRAZO IZQUIERDO^MNC||||||||||||||||||||387
OBX|1|TX|01^DO AI^MNC||ANTEBRAZO IZQUIERDO: LA DENSIDAD MINERAL OSEA DEL RADIO ULTRADISTAL CORRESPONDE AL 106% DEL HOMBRE JOVEN NORMAL. SIN MAYOR RIESGO APARENTE DE FACTURA. LA DENSIDAD MINERAL OSEA DEL RADIO MEDIO ( RADIO 33 % ) CORRESPONDE AL 106 % DEL HOMBRE JOVEN NORMAL. SIN MAYOR RIESGO APARENTE DE FACTURA.|||N|||F|20010605123000|326^MEDICA^CARMEN
12/04/23 77
Ejemplo de mensaje ORU^R01 (Cardiol.)MSH|^~\&|CAR||HCE||20010605135518||ORU^R01|EDTT00028|T|2.3
PID|1||999999^^^^AFPLAN|99999999^^^^DNI|PRUEBA^PACIENTE||19220415|F||||||||||
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD ORC|SC|EDTT00028^CAR||EDTT00028^CAR|CM
OBR|1|EDTT00028^CAR||5030^ECO CARDIOGRAMA DOPPLER COLOR TRANSTORACICO||||||||||||||||||||215
OBX|1|TX|^EVAL. DOPP. BIDIMENSIONAL (MEDICIONES)^ECO||DIÁMETRO DE FIN DE DIÁSTOLE= 5,36 CM. * DIÁMETRO DE FIN DE SISTOLE= 3,8 * CM.FRACCIÓN DE ACORTAMIENTO= 29 % * ESPESOR SEPTAL= 0,95 CM. * ESPESOR PARED POSTERIOR= 0,95 CM. * DIÁMETRO PARED AORTICA= 0 CM. * DIÁMETRO DIASTÓLICO DE VD= 1,97 CM. * DIÁMETRO RAÍZ AÓRTICA= 2,92 CM. * DIÁMETRO AURÍCULA IZQUIERDA= 4,27 CM. * VOLUMEN DE FIN DE DIÁSTOLE= 0 ML. * VOLUMEN DE FIN DE SÍSTOLE= 0 ML. * FRACCIÓN DE EYECCIÓN= 50 % * MASA VENTRICULAR IZQUIERDA= 0 GRS.||||||F|||20010222000000||^MEDICO^RODOLFO
(continua…)
12/04/23 78
Ejemplo de segmento Z
• Segmento ZFC # Name DT O/R Longitud Reps Notas1 SetID SI 0. 42 IDFacturacion EI 0. 223 IDEfector EI 0. 224 Fecha Facturacion TS 0. 265 Codigo Facturacion CE 0. 2006 Cantidad Facturacion NM 0. 37 Estado Facturacion IS 0. 3 Tabla (0500)8 Horario Especial IS 0. 29 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. 2014 Medico Solicitante XCN 0. 12015 Servicio Efector IS 0. 2016 Ubicación Efector CE 0. 10017 Medico Efector XCN 0. 12018 Medico Anestesista XCN 0. 12019 Medico Ayudante 1 XCN 0. 12020 Medico Ayudante 2 XCN 0. 12021 Medico Ayudante 3 XCN 0. 12022 Medico Ayudante 4 XCN 0. 12023 Perfusionista XCN 0. 12024 Consorcio Facturador ST 0. .325 Financiador CX 0. .426 Cuenta NM 0. .927 Modalidad Operativa ST 0. 928 Porcentaje Cargo Paciente NM 0. 329 Importe Cargo Paciente Sin IVA CP 0. .1230 Importe Obra Social Sin IVA CP 0. .1231 Importe Total Neto Sin IVA CP 0. .1232 Importe IVA Paciente CP 0. .1233 Importe IVA Obra Social CP 0. .12
12/04/23 79
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
12/04/23 80
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?
12/04/23 81
• 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
¿Cómo implementar HL7?
12/04/23 82
Importante
• Leer la Guía de implementación
• Seguir el Checklist
12/04/23 83
• 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
HL7 V-2.X No es “Plug and Play”
12/04/23 84
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
12/04/23 85
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