HL7 V2

Post on 07-Jun-2015

3.141 views 4 download

Transcript of HL7 V2

HL7 V2 –Introducción

Diego Kaminker

HL7 Argentina

dkaminker@fibertel.com.ar

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 &nbsp; &nbsp; &nbsp;.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