Está en la página 1de 75

Línea d’integració del Centre de Competències d’Integració

Centre de Transferència de Tecnologia

Centre de Competènciesd’Integració

Diseñotécnico-funcional integración OPTRetina


OPTRetina
Data 03/02/2015
Diseño técnico integración OPTRetina Página 2 de 75
Actualitzado: 03/02/2015
OPTRetina

CONTROL DE CAMBIOS DEL DOCUMENTO

Registro de cambios
Autor Versión Referencia de cambios Data
Marc Górriz 0.2 Creación del documento 17/11/2014
Manel Domingo 0.2 Correccions tipografiques y 19/12/2014
especificacions
Marc Górriz 0.3 Correcciones menores 24/12/2014
Marc Górriz 0.4 Reemplazado el tipo de dato CE por 31/12/2014
CWE. Eliminado MSH.5 ORU_R01
Albert Graupera 0.5 Mensajes de error. Especificaciones 15/01/2015
canales.

Revisores

Nombre Versión Aprobada Posición Data


Marc Górriz 0.2 Analista-programador 18/12/2014
Manel Domingo 0.2 Health IT Project Manager 19/12/2014
Marc Górriz 0.3 Analista-programador 24/12/2014
Marc Górriz 0.4 Analista-programador 31/12/2014
Marc Górriz 0.5 Analista-programador 26/01/2015
Manel Domingo 0.6 Health IT Project Manager 03/02/2015

Propiedades del documento


Propiedades Detalle
Título Diseño técnico-funcional integración OPTRetina
Proyecto Integración OPTRetina
Autor Marc Górriz
Nombre fichero Diseño_tecnicofuncional_integracion_OPTRetina_v06
Data de creación 17/11/2014
Última actualización 03/02/2015
Plantilla base -

Documentos relacionados

Nombre del documento Link al documento

- -

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 2 de 75
Diseño técnico integración OPTRetina Página 3 de 75
Actualitzado: 03/02/2015
OPTRetina

ÍNDICE

1 OBJETIVO DEL DOCUMENTO ............................................................................................................................... 4


2 ALCANCE DEL DOCUMENTO ................................................................................................................................ 4
3 PARTICIPANTES ................................................................................................................................................... 4
4 DEFINICIÓN DE LOS ACTORES .............................................................................................................................. 5
5 ESCENARIO INTEGRACIÓN .................................................................................................................................. 6
5.1 VISIÓN GENERAL ...................................................................................................................................................... 6
5.2 CASOS DE USO......................................................................................................................................................... 7
5.2.1 Crear nuevo caso ......................................................................................................................................... 7
5.2.2 Consultar listado casos ............................................................................................................................... 7
6 ESPECIFICACIONES DE LOS CANALES ................................................................................................................... 8
6.1 DIAGRAMA DETALLADO DE LOS CANALES .......................................................................................................... 8
6.1.1 Canal Servicio Web Crea Caso ..................................................................................................................... 9
6.1.2 Canal Recibir Callback Informe ................................................................................................................. 11
6.1.3 Canal Reintentos Callback ......................................................................................................................... 13
6.1.4 Canal Send ORU ........................................................................................................................................ 14
6.1.5 Canal Servicio Web Recupera Listado Casos ............................................................................................. 16
6.1.6 Canal Purga ............................................................................................................................................... 18
7 BASES DE DATOS ................................................................................................................................................19
7.1 TABLACENTROS ..................................................................................................................................................... 19
7.2 TABLA CASOS ........................................................................................................................................................ 19
8 PROTOCOLOS DE SEGURIDAD Y COMUNICACIÓN. .............................................................................................20
8.1 WEB SERVICES PUBLICADOS SERVIDOR MIRTH ............................................................................................................. 20
8.2 WEB SERVICES PUBLICADOS EN CENTRO CLIENTE. ......................................................................................................... 23
9 GESTIÓN ERRORES .............................................................................................................................................25
9.1 ERRORES ORDEN DE NUEVO CASO.............................................................................................................................. 25
9.2 ERRORES ENVÍO DEL INFORME. ................................................................................................................................. 25
9.3 ERRORES CONSULTA LISTADO CASOS. ......................................................................................................................... 25
9.4 CÓDIGOS DE ERROR................................................................................................................................................ 26
9.5 SISTEMA DE LOGS................................................................................................................................................... 26
ANEXO I: NUEVAPRUEBA OMG_O19 .........................................................................................................................27
ANEXO II: RESPUESTANUEVAPRUEBA ORG_O20 .......................................................................................................42
ANEXO III: ENVIO INFORME ORU_R01 .......................................................................................................................48
ANEXO IV: RESPUESTA ACKACEPTACIÓN ...................................................................................................................54
ANEXO V: CONSULTA CASOS ABIERTOS .....................................................................................................................60
ANEXO VI: RESPUESTA CONSULTA CASOS ABIERTOS .................................................................................................65
ANEXO VII: DESCRIPCIONES DE LOS ERRORES ............................................................................................................74

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 3 de 75
Diseño técnico integración OPTRetina Página 4 de 75
Actualitzado: 03/02/2015
OPTRetina

1 OBJETIVO DEL DOCUMENTO


El presente documento tiene como objetivo detallar los aspectos técnicos y funcionales del proyecto para poder integrar
OPTRetina con centros externos mediante estándares HL7 y DICOM.
Este documento se centra en definir las funcionalidades del sistema y los aspectos técnicos relevantes para la
comunicación con los centros oftalmológicos.

2 ALCANCE DEL DOCUMENTO


Este documento detalla todo el desarrollo que se realizará con Mirth para cumplir los casos de uso de los que dipone
actualmente OPTRetina.
En el presente escrito se muestra el funcionamiento general de la aplicación, sus casos de uso, los servicios que ofrece
la aplicación y la mensajería HL7 necesaria.

3 PARTICIPANTES
Tabla 1. Participantes
Participantes Marc Górriz, Manel Domingo, Albert Graupera
Departamento Centre de Transferència de Tecnologia
Teléfono 93 169 65 00
Rol Analista – Programador, Gestor de proyectos de integración, Analista – Programador

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 4 de 75
Diseño técnico integración OPTRetina Página 5 de 75
Actualitzado: 03/02/2015
OPTRetina

4 DEFINICIÓN DE LOS ACTORES


Tabla 2.Actores sistemas
Sistema Mirth
Versión 3.1.1
Objetivos asociados TODOS
Descripción Sistema encargado de comunicar los centros externos con el sistema OPTRetina
mediante estándares HL7 y DICOM.

Sistema OPTRetina
Versión 1.0
Objetivos asociados TODOS
Descripción Sistema encargado de recibir resultados de pruebas oftalmológicas, generar y
proporcionar el informe correspondiente.

Sistema Centro externo


Versión 1.0
Objetivos asociados TODOS
Descripción Sistema que requiere los servicios de OPTRetina y se interconecta a OPTRetina a través
de Mirth.

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 5 de 75
Diseño técnico integración OPTRetina Página 6 de 75
Actualitzado: 03/02/2015
OPTRetina

5 ESCENARIO INTEGRACIÓN
5.1 VISIÓN GENERAL
En esta sección se presenta de forma general la solución de integración diseñada para poder integrar OPTRetina con
diversos centros mediante estándares sanitarios internacionales.

Figura 1: Diagrama de Componentes

A continuación se detalla todo el flujo de trabajo de la aplicación desarrollada:

1. El centro oftalmológico envía las imágenes en formato DICOM o JPEG, mediante Webservice a Mirth
Connect, encapsuladas en un mensaje OMG_O19.
2. Mirth realiza un POST “Authorization” sobre la API de OPTretina usando las credenciales de cliente recibidas
en la petición, para obtener el token necesario para posteriores comunicaciones.
3. Mirth realiza un POST “Case Creation” sobre la API de OPTretina para crear un nuevo caso con las imágenes
recibidas del centro en el OMG_O19.
4. Mirth responderá de manera síncrona al centro oftalmologico, un ORG_O20 indicando si se acepta la petición
realizada mediante el mensaje OMG_O19.
5. Posteriormente Mirth recibe un POST “Callback” de OPTretina, indicando que el informe PDF
correspondiente a un case id esta listo para ser entregado al centro solicitante.
6. Mirth realiza un GET “Case report” para obtener el PDF a enviar al centro externo.
7. Mirth envía al centro externo un mensaje ORU_R01 de HL7 que contiene el informe PDF encapsulado.
8. El centro responde un ACK de manera síncrona a Mirth informando si ha recibido correctamente el informe.

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 6 de 75
Diseño técnico integración OPTRetina Página 7 de 75
Actualitzado: 03/02/2015
OPTRetina

Paralelamente al caso de uso principal expuesto previamente, los centros pueden consultar la lista de casos disponibles
en OPTretina.
1B. El centro oftalmológico envia una consulta en un mensaje QBP_Q11 de HL7 a Mirth.
2B. Mirth consulta a OPTRetina los casos de un centro a OPTRetina mediante un GET “Case List”.
3B. Mirth responderá síncronamente a la consulta del centro con un mensaje RSP_K11.

5.2 CASOS DE USO


Es esta sección se detallan los diferentes casos de uso que pueden llevar a cabo los centros que se integren con
OPTRetina.

5.2.1 Crear nuevo caso


En este caso de uso un centro solicita la apertura de un nuevo caso en OPTRetina.
1- El centro debe enviar un mensaje OMG_O19 al sistema Mirth indicando que se desea iniciar un nuevo caso. El
mensaje debe contener las imágenes en formato DICOM o JPEG y los datos correspondientes. Adicionalmente
se deben informar las credenciales del centro (usuario y contraseña), que le identifican en la aplicación
OPTRetina.
2- Mirth responderá de manera síncrona, un mensaje ORG_O20 indicando si se ha podido insertar en OPTRetina
la petición realizada mediante el mensaje OMG_O19.
3- Cuando el informe esté disponible, Mirth lo enviará al centro solicitante en un mensaje ORU_R01. El mensaje
HL7 se enviará al servicio configurado como “callback” en la petición OMG_O19.
a. En caso de haber cambiado la contraseña del centro despúes de solicitar un caso, es posible que Mirth
no pueda recuperar el informe ya que no tendrá las nuevas credenciales.Se recomienda modificar la
contraseña justo antes de enviar un nuevo caso, de esta manera al enviar un nuevo caso se actualizarà
la contraseña para el nuevo y los que están pendientes.
4- Finalmente el centro externo deberá responder síncronamente un ACK informando que ha recibido
correctamente el mensaje ORU_R01. Si Mirth no recibe este mensaje de respuesta realizará reintentos de
envío, hasta que el centro solicitante confirme que ha recibido el informe.

5.2.2 Consultar listado casos


En este caso de uso un centro puede consultar todos los casos que tiene registrados en la aplicación OPTRetina.
1- El centro debe enviar un mensaje HL7 v2.7 QBP_Q11, con las credenciales (usuario y contraseña), que le
identifican en la aplicación OPTRetina.
2- El sistema Mirth le responderá con un mensaje HL7v2.7 RSP_K11, en el que se incluirán los datos de cada
uno de los casos (id del caso, número de historia, nombre, primer apellido, segundo apellido, fecha de visita y
el estado del caso).

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 7 de 75
Diseño técnico integración OPTRetina Página 8 de 75
Actualitzado: 03/02/2015
OPTRetina

6 ESPECIFICACIONES DE LOS CANALES


6.1 DIAGRAMA DETALLADO DE LOS CANALES
En este esquema se pueden ver la interacción con los diferentes actores con los canales que Mirth utiliza para ello:

Figura 3: Diagrama de canales

A continuación se muestran los diagramas de actividad que representan los canales del Mirth:

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 8 de 75
Diseño técnico integración OPTRetina Página 9 de 75
Actualitzado: 03/02/2015
OPTRetina

6.1.1 Canal Servicio Web Crea Caso


Figura 4. DA ServicioWebCreaCaso

Ficha Técnica del canal

Nombre: ServicioWebCreaCaso Objetivo: Canal que recibe mensaje HL7 OMG_O19, valida
su formato y envia una petición de creación del caso a
OPTRetina. Finalmente responde al centro indicando el
resultado de la creación.

Connector de entrada: Web Service Objetivo: Recibe mensaje OMG_O19 y lo valida.


Listener
Filtro: Si

Transformador: Si Objetivo: Validar mensaje y verificar las credenciales


Steps: 2
Filtros:

Connector de salida(Destination 1): Objetivo: Petición de token a OPTRetina.


HTTP Sender
Transformador: No Steps: 0
Filtros: 1

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 9 de 75
Diseño técnico integración OPTRetina Página 10 de 75
Actualitzado: 03/02/2015
OPTRetina

Connector de salida(Destination 2): Objetivo: Gestión del mensaje de respuesta de OPTRetina.


Channel Writer
Transformador: Si Steps: 1
Filtros: 1

Connector de salida(Destination 3): Objetivo: Crea caso en OPTRetina. Gestión BBDD.


Channel Writer
Transformador: Si Steps: 2
Filtros: 1

Scripts: Si Objetivo:
Número de Scripts: 2
Script: PreProcessor Objetivo: Validar formato mensaje de entrada.
Script: PostProcessor Objetivo: Gestión de errores.

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 10 de 75
Diseño técnico integración OPTRetina Página 11 de 75
Actualitzado: 03/02/2015
OPTRetina

6.1.2 Canal Recibir Callback Informe


Figura 5. DA RecibirCallbackInforme

Ficha Técnica del canal

Nombre: RecibirCallbackInforme Objetivo: Canal que recibe mensaje de OPTRetina


informando que el informe de un caso esta finalizado.

Connector de entrada: HTTP Listener Objetivo: Recibe mensaje con el case_id del informe
finalizado.
Filtro: No

Transformador: Si Objetivo: Validar mensaje y verificar las credenciales


Steps: 2
Filtros:

Connector de salida(Destination 1): Objetivo: Petición de token a OPTRetina.


HTTP Sender
Transformador: No Steps: 0
Filtros: 1

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 11 de 75
Diseño técnico integración OPTRetina Página 12 de 75
Actualitzado: 03/02/2015
OPTRetina

Connector de salida(Destination 2): Objetivo: Gestión del mensaje de respuesta de OPTRetina.


Channel Writer
Transformador: Si Steps: 1
Filtros: 1

Connector de salida(Destination 3): Objetivo: Solicita informe


Channel Writer
Transformador: No Steps: 0
Filtros: 1

Connector de salida(Destination 4): Objetivo: Recoge respuesta del servidor OPTRetina.


Channel Writer
Transformador: Si Steps: 1
Filtros: 1

Scripts: Si Objetivo:
Número de Scripts: 1
Script: PostProcessor Objetivo: Gestión de errores.

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 12 de 75
Diseño técnico integración OPTRetina Página 13 de 75
Actualitzado: 03/02/2015
OPTRetina

6.1.3 Canal Reintentos Callback


Figura 6. DA ReintentosCallback

Ficha Técnica del canal

Nombre: ReintentosCallback Objetivo: Canal que reintenta la gestión del informe PDF.

Connector de entrada: File Reader Objetivo: Reintenta la gestión del informe.


Filtro: No

Transformador: Si Objetivo: Copia mensaje entrada


Steps: 1
Filtros:

Connector de salida(Destination 1): Objetivo: Reenvia el informe para ser tratado.


HTTP Sender
Transformador: No Steps: 0
Filtros:

Scripts: No Objetivo:
Número de Scripts:
Script: PostProcessor Objetivo:

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 13 de 75
Diseño técnico integración OPTRetina Página 14 de 75
Actualitzado: 03/02/2015
OPTRetina

6.1.4 Canal Send ORU


Figura 7. DA SendORU

Ficha Técnica del canal

Nombre: SendORU Objetivo: Canal que envia el informe PDF al centro


solicitante.

Connector de entrada: File Reader Objetivo: Envia mensaje ORU con el informe al centro
solicitante.
Filtro: No

Transformador: Si Objetivo: Gestión del informe para obtener los datos del
centro solicitante.
Steps: 1
Filtros:

Connector de salida(Destination 1): Objetivo: Envio del mensaje ORU_R01 con el informe al
Web Service Sender centro solicitante.
Transformador: Si Steps: 0
Filtros: 1

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 14 de 75
Diseño técnico integración OPTRetina Página 15 de 75
Actualitzado: 03/02/2015
OPTRetina

Connector de salida(Destination 2): Objetivo: Captura respuesta del centro emisor.


Channel Writer
Transformador: Si Steps: 1
Filtros: 1

Scripts: Si Objetivo:
Número de Scripts: 1
Script: PostProcessor Objetivo: Gestión de errores. Actualización de la BBDD.
Reintentos.

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 15 de 75
Diseño técnico integración OPTRetina Página 16 de 75
Actualitzado: 03/02/2015
OPTRetina

6.1.5 Canal Servicio Web Recupera Listado Casos


Figura 8. DA ServicioWebRecuperaListadoCasos

Ficha Técnica del canal

Nombre: Servicio Web Recupera Objetivo: Canal que recibe mensaje HL7 QBP_Q11, valida
Listado Casos su formato y envia una petición listado de casos a OPTRetina.
Finalmente responde al centro con la lista de casos.

Connector de entrada: Web Service Objetivo: Recibe mensaje QBP_Q11 y lo valida.


Listener
Filtro: Si

Transformador: Si Objetivo: Validar mensaje y verificar las credenciales


Steps: 2
Filtros:

Connector de salida(Destination 1): Objetivo: Petición de token a OPTRetina.


HTTP Sender
Transformador: No Steps: 0
Filtros: 1

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 16 de 75
Diseño técnico integración OPTRetina Página 17 de 75
Actualitzado: 03/02/2015
OPTRetina

Connector de salida(Destination 2): Objetivo: Gestión del mensaje de respuesta de OPTRetina.


Channel Writer
Transformador: Si Steps: 1
Filtros: 1

Connector de salida(Destination 3): Objetivo: Petición casos en OPTRetina.


HTTP Sender
Transformador: No Steps:
Filtros: 1

Connector de salida(Destination 4): Objetivo: Gestión del mensaje de respuesta de OPTRetina.


Channel Writer
Transformador: Si Steps: 1
Filtros: 1

Scripts: Si Objetivo:
Número de Scripts: 2
Script: PreProcessor Objetivo: Validar formato mensaje de entrada.
Script: PostProcessor Objetivo: Gestión de errores.

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 17 de 75
Diseño técnico integración OPTRetina Página 18 de 75
Actualitzado: 03/02/2015
OPTRetina

6.1.6 Canal Purga


Figura 6. DA Purga

Ficha Técnica del canal

Nombre: Purga Objetivo: Canal que limpia los logs y mensajes registrados
por Mirth con una antiguedad superior a la definida en la
variable de configuración. Este canal se ejecuta
automáticamente una vez al dia.

Connector de entrada: Javascript Objetivo: Eliminar los ficheros y carpetas con una
Reader antiguedad superior a la definida.
Filtro: No

Transformador: Si Objetivo: Eliminar ficheros y carpetas.


Steps: 1
Filtros:

Connector de salida(Destination 1): Objetivo: -.


Channel Writer
Transformador: No Steps: 0
Filtros:

Scripts: No Objetivo:
Número de Scripts:
Script: PostProcessor Objetivo:

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 18 de 75
Diseño técnico integración OPTRetina Página 19 de 75
Actualitzado: 03/02/2015
OPTRetina

7 BASES DE DATOS
Mirth requiere almacenar diversos datos para la correcta gestión de los servicios ofrecidos. A continuación se definen
las tablas necesarias. El gestor de base de datos seleccionado para almacenar estas tablas es MySQL. Todos los datos
mostrados en las tablas posteriores son gestionados de manera automática por Mirth.

7.1 TABLA CENTROS


En esta tabla se mantiene el registro de las credenciales de los diferentes centros para poder gestionar correctamente las
comunicaciones entre estos y OPTRetina.
Tabla 3. Tabla de centros
OPT_CENTRO
Campos Tipos de datos Restricción Descripción
id_centro NUMBER (8) PRIMARY KEY Id automático que identifica
el centro.
nombre_centro VARCHAR (255) UNIQUE KEY Nombre de usuario que usa
un centro para conectar a
OPTRetina.
password_centro VARCHAR (255) Password de usuario que usa
un centro para conectar a
OPTRetina. Se almacena
encriptado.
token_centro VARCHAR (255) Ultimo token obtenido de un
centro. Se almacena
encriptado.

7.2 TABLA CASOS


En esta tabla se mantiene el registro de todos los casos recibidos, los registros se eliminarán cuando se entregue el
informe al centro externo.
Tabla 4. Tabla de casos
OPT_CASO
Campos Tipos de datos Restricción Descripción
id_caso VARCHAR (255) PRIMARY KEY Id de caso asignado por
OPTRetina.
order_number VARCHAR (255) Ordernumber asignado por el
centro oftalmológico.
callback_url VARCHAR (255) Dirección del servicio web al
que enviar el informe.
id_centro NUMBER (8) FOREIGN KEY Id automático que identifica
el centro.

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 19 de 75
Diseño técnico integración OPTRetina Página 20 de 75
Actualitzado: 03/02/2015
OPTRetina

8 PROTOCOLOS DE SEGURIDAD Y COMUNICACIÓN.


En este apartado se detallan los protocolos de comunicación y seguridad usados para garantizar la confidencialidad y la
integridad de los datos transmitidos.
Todas las comunicaciones se deben realizar mediante servicios web securizados, a continuación se detallan los servicios
web implementados en Mirth y los servicios web que deberán implementar cada uno de los clientes interesados en
integrarse con este sistema. Adicionalmente los clientes se autenticaran mediante unas credenciales usuario y password
proporcionadas por OPTRetina.

8.1 WEB SERVICES PUBLICADOS SERVIDOR MIRTH


Se definen dos servicios web, uno que permite crear un caso nuevo en OPTRetina y otro para consultar los casos
abiertos. Estos servicios se corresponden con los dos casos de uso presentados anteriormente. Ambos servicios están
securizados mediante un Stunnel con certificado únicamente de servidor. Por tanto el centro que desee conectar con
estos servicios deberá configurar de manera apropiada un Stunnel, en el dispositivo que realiza el rol de consumidor de
estos servicios. Sin una conexión Stunnel no es posible consumir los servicios ni visualizar la definición del
servicio (WSDL).

Caso de Uso Crear nuevo caso


Nombre servicio web CreateCase
Parámetros de entrada user: Nombre de usuario registrado en OPTRetina
pass: Password correspondiente al nombre de usuario
hl7message: Mensaje HL7 OMG_O19 codificado en UTF-8 y
encapsulado en CDATA
Parámetros de salida return: mensaje HL7 ORG_O20 codificado en UTF-8 y encapsulado
en CDATA
URL servicio preproducción http://54.72.55.145:8082/services/CreateCaseService?wsdl

A continuación se presenta el WSDL usado por este servicio.


<definitionsxmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
wssecurity-utility-1.0.xsd"xmlns:wsp="http://www.w3.org/ns/ws-
policy"xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy"xmlns:wsam="ht
tp://www.w3.org/2007/05/addressing/metadata"xmlns:soap="http://schemas.xmlsoap.o
rg/wsdl/soap/"xmlns:tns="http://serviciosWeb.optretina.com/"xmlns:xsd="http://ww
w.w3.org/2001/XMLSchema"xmlns="http://schemas.xmlsoap.org/wsdl/"targetNamespace=
"http://serviciosWeb.optretina.com/"name="createCaseService">
<types>
<xsd:schema>
<xsd:importnamespace="http://serviciosWeb.optretina.com/"schemaLocation="http://
127.0.0.1:8089/services/CreateCaseService?xsd=1"/>
</xsd:schema>
</types>
<messagename="createCase">
<partname="parameters"element="tns:createCase"/>
</message>
<messagename="createCaseResponse">
<partname="parameters"element="tns:createCaseResponse"/>
</message>
<portTypename="createCaseService">
<operationname="createCase">

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 20 de 75
Diseño técnico integración OPTRetina Página 21 de 75
Actualitzado: 03/02/2015
OPTRetina

<inputwsam:Action="http://serviciosWeb.optretina.com/createCaseService/createCas
eRequest"message="tns:createCase"/>
<outputwsam:Action="http://serviciosWeb.optretina.com/createCaseService/createCa
seResponse"message="tns:createCaseResponse"/>
</operation>
</portType>
<bindingname="createCasePortBinding"type="tns:createCaseService">
<soap:bindingtransport="http://schemas.xmlsoap.org/soap/http"style="document"/>
<operationname="createCase">
<soap:operationsoapAction=""/>
<input>
<soap:bodyuse="literal"/>
</input>
<output>
<soap:bodyuse="literal"/>
</output>
</operation>
</binding>
<servicename="createCaseService">
<portname="createCasePort"binding="tns:createCasePortBinding">
<soap:addresslocation="http://127.0.0.1:8089/services/CreateCaseService"/>
</port>
</service>
</definitions>

Caso de Uso Consultar listado casos


Nombre servicio web ListCases
Parámetros de entrada user: Nombre de usuario registrado en OPTRetina
pass: Password correspondiente al nombre de usuario
hl7message: Mensaje HL7 QBP_Q11 codificado en UTF-
8encapsulado en CDATA
Parámetros de salida return: mensaje HL7 RSP_K11 codificado en UTF-8y encapsulado
en CDATA
URL servicio preproducción http://54.72.55.145:8083/services/listCasesService?wsdl

A continuación se presenta el WSDL usado por este servicio.


<definitionsxmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
wssecurity-utility-1.0.xsd"xmlns:wsp="http://www.w3.org/ns/ws-
policy"xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy"xmlns:wsam="ht
tp://www.w3.org/2007/05/addressing/metadata"xmlns:soap="http://schemas.xmlsoap.o
rg/wsdl/soap/"xmlns:tns="http://serviciosWeb.optretina.com/"xmlns:xsd="http://ww
w.w3.org/2001/XMLSchema"xmlns="http://schemas.xmlsoap.org/wsdl/"targetNamespace=
"http://serviciosWeb.optretina.com/"name="listCasesService">
<types>
<xsd:schema>
<xsd:importnamespace="http://serviciosWeb.optretina.com/"schemaLocation="http://
127.0.0.1:8090/services/listCasesService?xsd=1"/>
</xsd:schema>
</types>
<messagename="listCases">
<partname="parameters"element="tns:listCases"/>
</message>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 21 de 75
Diseño técnico integración OPTRetina Página 22 de 75
Actualitzado: 03/02/2015
OPTRetina

<messagename="listCasesResponse">
<partname="parameters"element="tns:listCasesResponse"/>
</message>
<portTypename="listCasesService">
<operationname="listCases">
<inputwsam:Action="http://serviciosWeb.optretina.com/listCasesService/listCasesR
equest"message="tns:listCases"/>
<outputwsam:Action="http://serviciosWeb.optretina.com/listCasesService/listCases
Response"message="tns:listCasesResponse"/>
</operation>
</portType>
<bindingname="listCasesPortBinding"type="tns:listCasesService">
<soap:bindingtransport="http://schemas.xmlsoap.org/soap/http"style="document"/>
<operationname="listCases">
<soap:operationsoapAction=""/>
<input>
<soap:bodyuse="literal"/>
</input>
<output>
<soap:bodyuse="literal"/>
</output>
</operation>
</binding>
<servicename="listCasesService">
<portname="listCasesPort"binding="tns:listCasesPortBinding">
<soap:addresslocation="http://127.0.0.1:8090/services/listCasesService"/>
</port>
</service>
</definitions>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 22 de 75
Diseño técnico integración OPTRetina Página 23 de 75
Actualitzado: 03/02/2015
OPTRetina

8.2 WEB SERVICES PUBLICADOS EN CENTRO CLIENTE.


El centro cliente deberá desarrollar un único servicio web para poder recibir el informe resultante de un caso creado
previamente. Este servicio web debe ser securizado mediante TLS con certificado servidor, es decir el webservice debe
ser HTTPS. Cuando un centro se registre en OPTRetina, deberá proporcionar el certificado con la clave pública usada
en este servicio web a OPTRetina.

Caso de Uso Crear nuevo caso


Nombre servicio web RecieveCaseReport
Parámetros de entrada arg0: Mensaje HL7 ORU_R01 codificado en UTF-8y encapsulado en
CDATA
Parámetros de salida return: mensaje HL7 ACK codificado en UTF-8yencapsulado en
CDATA

A continuación se presenta el wsdl que debe usar el servicio web desarrollado.


<definitionsxmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
wssecurity-utility-1.0.xsd"xmlns:wsp="http://www.w3.org/ns/ws-
policy"xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy"xmlns:wsam="ht
tp://www.w3.org/2007/05/addressing/metadata"xmlns:soap="http://schemas.xmlsoap.o
rg/wsdl/soap/"xmlns:tns="http://ws.connectors.connect.mirth.com/"xmlns:xsd="http
://www.w3.org/2001/XMLSchema"xmlns="http://schemas.xmlsoap.org/wsdl/"targetNames
pace="http://ws.connectors.connect.mirth.com/"name="DefaultAcceptMessageService"
>
<types>
<xsd:schema>
<xsd:importnamespace="http://ws.connectors.connect.mirth.com/"schemaLocation="ht
tp://127.0.0.1:8089/services/recieveCaseReport?xsd=1"/>
</xsd:schema>
</types>
<messagename="acceptMessage">
<partname="parameters"element="tns:acceptMessage"/>
</message>
<messagename="acceptMessageResponse">
<partname="parameters"element="tns:acceptMessageResponse"/>
</message>
<portTypename="DefaultAcceptMessage">
<operationname="acceptMessage">
<inputwsam:Action="http://ws.connectors.connect.mirth.com/DefaultAcceptMessage/a
cceptMessageRequest"message="tns:acceptMessage"/>
<outputwsam:Action="http://ws.connectors.connect.mirth.com/DefaultAcceptMessage/
acceptMessageResponse"message="tns:acceptMessageResponse"/>
</operation>
</portType>
<bindingname="DefaultAcceptMessagePortBinding"type="tns:DefaultAcceptMessage">
<soap:bindingtransport="http://schemas.xmlsoap.org/soap/http"style="document"/>
<operationname="acceptMessage">
<soap:operationsoapAction=""/>
<input>
<soap:bodyuse="literal"/>
</input>
<output>
<soap:bodyuse="literal"/>
</output>
</operation>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 23 de 75
Diseño técnico integración OPTRetina Página 24 de 75
Actualitzado: 03/02/2015
OPTRetina

</binding>
<servicename="DefaultAcceptMessageService">
<portname="DefaultAcceptMessagePort"binding="tns:DefaultAcceptMessagePortBinding
">
<soap:addresslocation="http://127.0.0.1:8089/services/recieveCaseReport"/>
</port>
</service>
</definitions>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 24 de 75
Diseño técnico integración OPTRetina Página 25 de 75
Actualitzado: 03/02/2015
OPTRetina

9 GESTIÓN ERRORES
En este apartado se detalla el comportamiento de la aplicación cuando se producen situaciones anómalas.

9.1 ERRORES ORDEN DE NUEVO CASO.


Si se produce un error en la validación del mensaje OMG_O19 se notificará en el ORG el error que se ha producido. El
mensaje inicialmente se valida a nivel de esquema y campos obligatorios. Si las validaciones anteriores son correctas se
validarán las credenciales del usuario contra el servidor OPTRetina, si las credenciales no son válidas se notificará el
error en el mensaje ORG_020.
Posteriormente a la validación del mensaje se procederá a enviar los datos a OPTRetina para la creación del nuevo caso.
Si OPTRetina no se encuentra disponible se informará del problema al centro para que lo reintente más tarde con un
ORG_O20 con el valor AR (Message Rejected). Si OPTRetina devuelve algún error al procesar el caso este error se
reenviara al centro un ORG_O20 con el valor AE (Message Error). Los mensajes con error (AE), el centro los debe
corregir, ya que significa que hay algún error en la forma o el contenido del mensaje OMG_O19.

9.2 ERRORES ENVÍO DEL INFORME.


Si se produce un error al enviar ORU_R01 se realizarán reintentos ya que es necesario que el mensaje se entregue. Se
definirá un máximo de reintentos para evitar mensajes que puedan reintentar-se de manera infinita.
En caso que el mensaje se haya entregado pero no se haya recibido un ACK correctamente, también se realizan
reintentos. Si se recibe un ACK AR se realizarán reintentos, si el ACK es AE se almacenara el informe como un error,
por ultimo si se recibe un ACK AA se dará por finalizado el caso de uso.

9.3 ERRORES CONSULTA LISTADO CASOS.


Si se produce un error en la validación del mensaje QBP_Q11 se notificará el error en el RSP_K11 indicando el error
que se ha producido. El mensaje se valida a nivel de esquema y campos obligatorios. Si las validaciones anteriores son
correctas se validarán las credenciales del usuario contra el servidor OPTRetina, si las credenciales no son válidas se
notificará el error en el mensaje RSP_K11. Si las credenciales son válidas se devolverán los casos obtenidos al centro
externo.

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 25 de 75
Diseño técnico integración OPTRetina Página 26 de 75
Actualitzado: 03/02/2015
OPTRetina

9.4 CÓDIGOS DE ERROR


A continuación se detallan los diferentes códigos de error, propios de la aplicación, que se pueden recibir como
respuesta a una petición. Estos códigos se recibirán en el campo ERR.3 del mensaje de respuesta.
Siglas Código Error Descripción
EVM Errores relacionados con el formato del mensaje HL7 o del formato de sus campos.
EAA Errores relacionados con la autenticación mediante las credenciales de OPTRetina.
ECO Errores relacionados con que la plataforma OPTRetina este fuera de servicio.
ECM Errores relacionados con que la plataforma Mirth este parcialmente fuera de servicio.
ECC Errores relacionados con el contenido de una petición de creación de nuevo caso.
EDD Errores no controlados por la aplicación.

*En el “Annexo VII” se pueden consultar todos los códigos de error existentes.

9.5 SISTEMA DE LOGS


Todos los mensajes recibidos y enviados por el sistema Mirth se almacenaran en una estructura de carpetas como
registró para su posterior análisis. Este registro se eliminara en los intervalos configurados por el administrador del
sistema Mirth.
En caso de error, además del mensaje se registrará en un fichero de texto la fecha y la descripción del error.

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 26 de 75
Diseño técnico integración OPTRetina Página 27 de 75
Actualitzado: 03/02/2015
OPTRetina

ANEXO I: NUEVAPRUEBA OMG_O19


Esta guía contiene la definición del mensaje XML usado para la creación de una nueva petición de prueba.

Inicialmente se muestra un ejemplo para ver el resultado final del mensaje, después se define el mensaje campo a
campo.

<?xml version="1.0" encoding="UTF-8"?>


<OMG_O19>
<MSH>
<MSH.1>|</MSH.1>
<MSH.2>^~\&amp;</MSH.2>
<MSH.3>
<HD.2>
<!--APLICACION ORIGEN-->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.3>
<MSH.5>
<HD.2>
<!--APLICACION DESTINO-->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.5>
<MSH.6>
<HD.2>
<!-- CENTRO RECEPTOR -->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.6>
<MSH.7>
<TS.1>
<!--FECHA/HORA DEL MENSAJE-->
</TS.1>
</MSH.7>
<MSH.9>
<MSG.1>OMG</MSG.1>
<MSG.2>O19</MSG.2>
<MSG.3>OMG_O19</MSG.3>
</MSH.9>
<MSH.10>
<!--ID UNICO MENSAJE-->
</MSH.10>
<MSH.11>
<PT.1>P</PT.1>
</MSH.11>
<MSH.12>
<VID.1>2.7</VID.1>
</MSH.12>
</MSH>
<OMG_O19.PATIENT>
<PID>
<PID.3>
<CX.1>
<!--NUMERO HISTORIA CLINICA PACIENTE -->
</CX.1>
<CX.5>
PI

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 27 de 75
Diseño técnico integración OPTRetina Página 28 de 75
Actualitzado: 03/02/2015
OPTRetina

</CX.5>

</PID.3>
<PID.5>
<XPN.1>
<FN.1>
<!-- PACIENTEAPELLIDO 1 -->
</FN.1>
</XPN.1>
<XPN.2>
<!-- PACIENTE NOMBRE PILA 1 -->
</XPN.2>
<XPN.3>
<!-- PACIENTE NOMBRE PILA 2 -->
</XPN.3>
</PID.5>
<PID.6>
<XPN.1>
<FN.1>
<!-- PACIENTE APELLIDO 2 -->
</FN.1>
</XPN.1>
</PID.6>
<PID.7>
<TS.1>
<!-- PACIENTE FECHA NACIMIENTO -->
</TS.1>
</PID.7>
<PID.8>
<!-- PACIENTE SEXO -->
</PID.8>
</PID>
<OMG_O19.PATIENT_VISIT>
<PV1>
<PV1.2>
<!--TIPO DE PACIENTE-->
</PV1.2>
<PV1.44>
<TS.1>
<!-- FECHA VISITA-->
</TS.1>
</PV1.44>
</PV1>
</OMG_O19.PATIENT_VISIT>
</OMG_O19.PATIENT>
<OMG_O19.ORDER>
<ORC>
<ORC.1>NW</ORC.1>
<ORC.2>
<EI.1>
<!-- ORDER NUMBER -->
</EI.1>
</ORC.2>
</ORC>
<OBR>
<OBR.2>
<EI.1>
<!-- ORDER NUMBER -->
</EI.1>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 28 de 75
Diseño técnico integración OPTRetina Página 29 de 75
Actualitzado: 03/02/2015
OPTRetina

</OBR.2>
<OBR.4>
<CWE.1>
<!-- TIPO DE PRUEBA -->
</CWE.1>
<CWE.2>
<!-- DESCRIPCION PRUEBA -->
</CWE.2>
</OBR.4>
</OBR>
<NTE>
<NTE.3>
<!-- COMENTARIOS PRUEBA -->
</NTE.3>
</NTE>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>diabetes</CWE.2>
</OBX.3>
<OBX.5>
<!--diabetes informar 0 para no o 1 para si-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>visit_reason</CWE.2>
</OBX.3>
<OBX.5>
<!--Motivo de la visita-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>ophthalmic_antecedents</CWE.2>
</OBX.3>
<OBX.5>
<!--Antecedentes oftalmológicos-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>other_relevant_info</CWE.2>
</OBX.3>
<OBX.5>
<!--Otra información relevante-->

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 29 de 75
Diseño técnico integración OPTRetina Página 30 de 75
Actualitzado: 03/02/2015
OPTRetina

</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>retinologist_notes</CWE.2>
</OBX.3>
<OBX.5>
<!--Notas para el retinólogo-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>od_iop</CWE.2>
</OBX.3>
<OBX.5>
<!--Oculus Dexter - Presión intra ocular-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>od_va</CWE.2>
</OBX.3>
<OBX.5>
<!--Oculus Dexter – Agudeza Visual-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>od_axis</CWE.2>
</OBX.3>
<OBX.5>
<!--Oculus Dexter – Axis-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>od_cylinder</CWE.2>
</OBX.3>
<OBX.5>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 30 de 75
Diseño técnico integración OPTRetina Página 31 de 75
Actualitzado: 03/02/2015
OPTRetina

<!--Oculus Dexter – Cylinder-->


</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>od_sphere</CWE.2>
</OBX.3>
<OBX.5>
<!--Oculus Dexter – Sphere-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>od_add</CWE.2>
</OBX.3>
<OBX.5>
<!--Oculus Dexter – Addition-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>od_prism</CWE.2>
</OBX.3>
<OBX.5>
<!--Oculus Dexter – Prism-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>od_prism_base</CWE.2>
</OBX.3>
<OBX.5>
<!--Oculus Dexter – Prism Base-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>os_iop</CWE.2>
</OBX.3>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 31 de 75
Diseño técnico integración OPTRetina Página 32 de 75
Actualitzado: 03/02/2015
OPTRetina

<OBX.5>
<!--OculusSinister - Presión intra ocular-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>os_va</CWE.2>
</OBX.3>
<OBX.5>
<!--OculusSinister – Agudeza Visual-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>os_axis</CWE.2>
</OBX.3>
<OBX.5>
<!--Oculus Sinister – Axis-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>os_cylinder</CWE.2>
</OBX.3>
<OBX.5>
<!--Oculus Sinister – Cylinder-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>os_sphere</CWE.2>
</OBX.3>
<OBX.5>
<!--Oculus Sinister – Sphere-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>os_add</CWE.2>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 32 de 75
Diseño técnico integración OPTRetina Página 33 de 75
Actualitzado: 03/02/2015
OPTRetina

</OBX.3>
<OBX.5>
<!--Oculus Sinister – Addition-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>os_prism</CWE.2>
</OBX.3>
<OBX.5>
<!--Oculus Sinister – Prism-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>os_prism_base</CWE.2>
</OBX.3>
<OBX.5>
<!--Oculus Sinister – Prism Base-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ED</OBX.2>
<OBX.3>
<CWE.2>img_n</CWE.2>
</OBX.3>
<OBX.5>
<ED.2>image</ED.2>
<ED.3>
<!--Subtipo de dato poner“application/dicom” si en ED5
se incluye un DICOM o “image/jpeg” (sin comillas) si se envían imágenes .jpg-->
</ED.3>
<ED.4>BASE 64</ED.4>
<ED.5>
<!--Imagen DICOM en Base 64 o JPG en BASE 64-->
</ED.5>
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
<OMG_O19.OBSERVATION>
<OBX>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.2>callback_url</CWE.2>
</OBX.3>
<OBX.5>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 33 de 75
Diseño técnico integración OPTRetina Página 34 de 75
Actualitzado: 03/02/2015
OPTRetina

<!--URL del servicio web donde se desea recibir el ORU con


el informe-->
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</OMG_O19.OBSERVATION>
</OMG_O19.ORDER>
</OMG_O19>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 34 de 75
Diseño técnico integración OPTRetina Página 35 de 75
Actualitzado: 03/02/2015
OPTRetina

1. Estructura del mensaje


Un mensaje HL7 contiene una serie de segmentos, cada uno de los cuales contiene los campos que almacenan los datos
a transmitir. El mensaje usado para sol.licitar el servició de OPTRetina es un OMG_O19 versión 2.7 en XML, que
tiene la siguiente estructura:

Segmento/Cabecera Descripción Cardinalidad

MSH Cabeceramensaje [1..1]


-- Inicio Paciente -- <OMG_O19.PATIENT> [1..1]
PID Identificación paciente [1..1]
-- Inicio Visita— <OMG_O19.PATIENT_VISIT> [1..1]
PV1 Visita del paciente [1..1]
-- Fin Visita-- </OMG_O19.PATIENT_VISIT>
-- Fin Paciente -- </OMG_O19.PATIENT>
-- Inicio Orden -- <OMG_O19.ORDER> [1..1]
ORC Orden [1..1]
OBR Observación [1..1]
--Inicio Observación-- <OMG_019.OBSERVATION> [1..N]
OBX [1..1]
--Fin Observación-- </OMG_019.OBSERVATION>
-- Fin Orden -- </OMG_O19.ORDER>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 35 de 75
Diseño técnico integración OPTRetina Página 36 de 75
Actualitzado: 03/02/2015
OPTRetina

2. Definición de segmentos
Se definen los segmentos siguiendo una tabla del siguiente estilo:
SEQ LEN DT OPT TABLE NAME

Contiene el numero de seqüencia del segmento (SEQ), la longitud máxima del contenido (LEN), el tipo de dato (DT), la
obligatoriedad (OPT) que puede ser requerida (R) o opcional (O), la referencia a las tablas definidas por HL7 (TABLE)
y el nombre del campo (NAME).

MSH
Este segmento es la cabecera obligatoria en todos los mensajes y define la sintaxi del mensaje así como el origen y el
destino de este.

1 1 ST R Campo separador
2 4 ST R Carácteres de codificación
3 227 HD R Aplicación emisora
5 227 HD R Aplicación receptora
6 227 HD R Centro receptor
7 26 TS R Fecha/Hora del mensaje
9 15 MSG R Tipo de mensaje
10 20 ST R ID de control de mensaje
11 3 PT R ID procesamiento
12 60 VID R ID versión

MSH.1 – Campo separador


Contiene el valor separador de segmentos por defecto “|”.
<MSH.1>|</MSH.1>

MSH.2 – Carácteres de codificación


Contiene los caracteres de codificación usados.
<MSH.2>^~\&amp;</MSH.2>

MSH.3 – Aplicación emisora


Contiene el identificador de la aplicación emisora del mensaje.
<MSH.3>
<HD.2>
<!--APLICACION ORIGEN -->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.3>

MSH.5 – Aplicación receptora


Contiene el identificador de la aplicación receptora del mensaje.
<MSH.5>
<HD.2>
<!-- APLICACION DESTINACIÓ -->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.5>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 36 de 75
Diseño técnico integración OPTRetina Página 37 de 75
Actualitzado: 03/02/2015
OPTRetina

MSH.6 – Centro receptor


Contiene el identificador del centro receptor del mensaje.
<MSH.6>
<HD.2>
<!-- CENTRO RECEPTOR -->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.6>

MSH.7 – Fecha/Hora del mensaje


Contiene la data y la hora en que se ha enviado el mensaje.
<MSH.7>
<TS.1>AAAAMMDDhhmmss</TS.1>
</MSH.7>

MSH.9 – Tipo de mensaje


Se debe indicar el tipo de mensaje HL7
<MSH.9 >
<MSG.1 >OMG</MSG.1>
<MSG.>019</MSG.2>
<MSG.3 >OMG_019</MSG.3>
</MSH.9>

MSH.10 – ID de control de mensaje


Contiene el ID del mensaje a identificar en la transacción de la aplicación.
<MSH.10 >NUMERO_MENSAJE</MSH.10>

MSH.11 – ID de procesamiento
Indica en que estado se envía el mensaje. Se pueden indicar 2 tipos Producción (P) y Debugging (D)
<MSH.11 >
<PT.1 >P</PT.1>
</MSH.11>

MSH.12 – ID versión
Contiene la versión de la mensajería HL7, en este caso 2.7
<MSH.12 >
<VID.1 >2.7</VID.1>
</MSH.12>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 37 de 75
Diseño técnico integración OPTRetina Página 38 de 75
Actualitzado: 03/02/2015
OPTRetina

PID
Este segmento contiene datos demográficos del paciente.
3 250 CX R Id paciente
5 250 XPN R Nombrey primer apellido
6 250 XPN R Segundo apellido
7 26 TS R Fecha de nacimiento
8 1 IS R Sexo

PID 3 – Id paciente
Contiene el código de identificación del paciente, numero de historia clínica.
<PID.3>
<CX.1>ID PACIENTE</CX.1>
<CX.5>PI</CX.5>
</PID.3>

PID 5 – Nombre y primer apellido


Contiene el nombre y el primer apellido del paciente.
<PID.5 >
<XPN.1>
<FN.1 >PRIMER_APELLIDO</FN.1>
</XPN.1>
<XPN.2 >NOMBRE_PILA_1</XPN.2>
<XPN.3 > NOMBRE _PILA_2 </XPN.3>
</PID.5>

PID 6 – Segundo apellido


Contiene el segundo apellido del paciente, si no tiene se dejará vacio.
<PID.6 >
<XPN.1>
<FN.1>SEGUNDO_APELLIDO</FN.1>
</XPN.1>
</PID.6>

PID 7 – Fecha de nacimiento


Se informa la data de nacimiento del paciente, en formatoYYYYMMDDHHMMSS.

<PID.7 >
<TS.1>FECHA NACMIENTO</TS.1>
</PID.7>

PID 8 - Sexo
Campo para informar el sexo del paciente usando los valores M (Masculino) o F (Femenino).

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 38 de 75
Diseño técnico integración OPTRetina Página 39 de 75
Actualitzado: 03/02/2015
OPTRetina

PV1
Segmento que contiene los datos de la visita del paciente, únicamente datos administrativos.
2 1 IS R Clase de paciente
44 26 TS R Fecha visita

PV1 2 – Clase de paciente


Indica el tipo de paciente. Por ejemplo I (Ingresado), O (Consulta externa) o E (Urgencias).

PV1 44 – Data visita


Indica la fecha de la visita del paciente en formato YYYYMMDDHHMMSS.
<PV1.44>
<TS.1>
<!-- FECHA VISITA-->
</TS.1>
</PV1.44>

ORC
Este segmento contiene la información de la orden realizada.
1 2 ID R Orden de control
2 22 EI R Ordernumber

ORC 1 – Orden de control


Contiene el identificador de orden, el valor es NW (new order).

ORC 2 – Numero de la petición


Define el OrderNumber de la prueba.
<ORC.2>
<EI.1><!-- ORDER NUMBER --></EI.1>
</ORC.2>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 39 de 75
Diseño técnico integración OPTRetina Página 40 de 75
Actualitzado: 03/02/2015
OPTRetina

OBR
Identifica la prueba a ejecutar, así como el centro que la llevarà a cabo.

2 22 EI R Ordernumber
4 250 CWE R Codigo descripciónprueba

OBR 2 – Numero de la petición


Define el OrderNumber de la prueba.
<OBR.2>
<EI.1><!-- ORDER NUMBER --></EI.1>
</OBR.2>

OBR 4 – Codigo descripción de la prueba

Define el codigo de la prueba.


<OBR.4 >
<CWE.1>IDENTIFICADOR_DE_PRUEBA</CWE.1>
<CWE.2>DESCRIPCIO_DE_ PRUEBA</CWE.2>
</OBR.4>

NTE
Segmento que permite añadir comentarios

3 65536 FT O Comentario

NTE 3 – Comentario
Contiene el comentario.

OBX
Segmento OBX que permite informar un dato de la observación realizada. Se deben poner tantos OBX como los
mostrados en el ejemplo XML.
1 4 SI O Identificador del segmento
2 2 ID R HL70125 Tipo de valor
3 250 CWE R Contiene la codificación del valor observado
5 99999 Varios R Contiene el valor correspondiente a la observación
11 1 ID R Estado de la información de la observación (F: Final, C:
Corrección)

OBX 1 – Identificador del segmento


Define el numero identificador del segmento . Tiene que estar informado con valor 1.
<OBX.1>
<!-- Identificador del segment -->
</OBX.1>

OBX 2 – Tipo de valor


Define el tipo de dato del campo 5 en este caso ED.
<OBX.2>
<!—TIPUS VALOR -->
</OBX.2>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 40 de 75
Diseño técnico integración OPTRetina Página 41 de 75
Actualitzado: 03/02/2015
OPTRetina

OBX 3 – Codigo del valor


Contiene la codificación del valor observado. En el ejemplo XML se puede ver los valores de este campo para cada
OBX.
<OBX.3 >
<CWE.2 >Text</CWE.2>
</OBX.3>

OBX 5 – Valor
Contiene el valor correspondiente al codigo indicado en OBX.3.
<OBX.5 >Valor</OBX.5>

OBX 11 – Estado información


Contiene el estado de la información, debe tener valor F.
<OBX.11 >Estadoinformacion</OBX.11>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 41 de 75
Diseño técnico integración OPTRetina Página 42 de 75
Actualitzado: 03/02/2015
OPTRetina

ANEXO II: RESPUESTANUEVAPRUEBA ORG_O20


Esta guía contiene la definición de la respuesta HL7 ORG_O20 que se debe generar cuando se recibe una petición de
prueba OMG_O19.

Inicialmente se muestra un ejemplo para ver el resultado final y después se define el mensaje campo a campo.

<?xml version="1.0" encoding="UTF-8"?>


<ORG_O20>
<MSH>
<MSH.1>|</MSH.1>
<MSH.2>^~&amp;</MSH.2>
<MSH.3>
<HD.2>
<!--identificador unicoaplicacion emisora del ACK-->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.3>
<MSH.5>
<HD.2>
<!--APLICACION DESTINO-->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.5>
<MSH.7>
<TS.1>
<!--fecha y hora del mensaje-->
</TS.1>
</MSH.7>
<MSH.9>
<MSG.1>ORG</MSG.1>
<MSG.2>O20</MSG.2>
<MSG.3>ORG_O20</MSG.3>
</MSH.9>
<MSH.10>
<!--Identificador unico del mensaje ACK-->
</MSH.10>
<MSH.11>
<PT.1>P</PT.1>
</MSH.11>
<MSH.12>
<VID.1>2.7</VID.1>
</MSH.12>
</MSH>
<MSA>
<MSA.1>
<!--Debe tener el valor AA si el OMG_O19 se ha aceptado o un AE en
caso contrario-->
</MSA.1>
<MSA.2>
<!--Debe contener el valor MSH.10 del mensaje OMG_O19 que se esta
respondiendo -->
</MSA.2>
</MSA>
<ERR>
<ERR.3>
<CWE.1>
<!--Identificador del error-->

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 42 de 75
Diseño técnico integración OPTRetina Página 43 de 75
Actualitzado: 03/02/2015
OPTRetina

</CWE.1>
<CWE.2>
<!--Descripción del error-->
</CWE.2>
</ERR.3>
<ERR.4>E</ERR.4>
</ERR>
<ORG_O20.RESPONSE>
<ORG_O20.ORDER>
<ORC>
<ORC.1>OK</ORC.1>
<ORC.2>
<EI.1>
<!--ORDER NUMBER del centro externo-->
</EI.1>
</ORC.2>
<ORC.3>
<EI.1>
<!--CASE ID asignado por OPTRetina-->
</EI.1>
</ORC.3>
</ORC>
</ORG_O20.ORDER>
</ORG_O20.RESPONSE>
</ORG_O20>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 43 de 75
Diseño técnico integración OPTRetina Página 44 de 75
Actualitzado: 03/02/2015
OPTRetina

1. Estructura del mensaje


Un mensaje HL7 contiene una serie de segmentos, cada uno de los cuales contiene los campos que almacenan los datos
a transmitir. El mensaje usado para responder una petición de servicio de OPTRetina es un ORG_O20 versión 2.7 en
XML, que tiene la siguiente estructura:

Segmento/Caberceras Descripción Cardinalidad

MSH Capçaleramensaje [1..1]


MSA Identificaciónmensaje [1..1]
ERR Error [0..N]
--Inicio Respuesta-- <ORG_O20.RESPONSE> [0..1]
--Inicio Orden-- <ORG_O20.ORDER> [1..N]
ORC Orden [1..1]
--FinOrden-- </ORG_O20.ORDER>
--FinRespuesta-- </ORG_O20.RESPONSE>

2. Definición de segmentos
Se definen los segmentos siguiendo una tabla del siguiente estilo:
SEQ LEN DT OPT TABLE NAME

Contiene el numero de seqüencia del segmento (SEQ), la longitud máxima del contenido (LEN), el tipo de dato (DT), la
obligatoriedad (OPT) que puede ser requerida (R) o opcional (O), la referencia a las tablas definidas por HL7 (TABLE)
y el nombre del campo (NAME).

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 44 de 75
Diseño técnico integración OPTRetina Página 45 de 75
Actualitzado: 03/02/2015
OPTRetina

MSH
Este segmento es la cabecera obligatoria en todos los mensajes y define la sintaxi del mensaje así como el origen y el
destino de este.

1 1 ST R Campo separador
2 4 ST R Carácteres de codificación
3 227 HD R Aplicación emisora
5 227 HD R Aplicación receptora
7 26 TS R Fecha/Hora del mensaje
9 15 MSG R Tipo de mensaje
10 20 ST R ID de control de mensaje
11 3 PT R ID procesamiento
12 60 VID R ID versión

MSH.1 – Campo separador


Contiene el valor separador de segmentos por defecto “|”.
<MSH.1>|</MSH.1>

MSH.2 – Carácteres de codificación


Contiene los caracteres de codificación usados.
<MSH.2>^~\&amp;</MSH.2>

MSH.3 – Aplicación emisora


Contiene el identificador de la aplicación emisora del mensaje.
<MSH.3>
<HD.2>
<!--APLICACION ORIGEN -->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.3>

MSH.5 – Aplicación receptora


Contiene el identificador de la aplicación receptora del mensaje.
<MSH.5>
<HD.2>
<!-- APLICACION DESTINACIÓ -->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.5>

MSH.7 – Fecha/Hora del mensaje


Contiene la data y la hora en que se ha enviado el mensaje.
<MSH.7>
<TS.1>AAAAMMDDhhmmss</TS.1>
</MSH.7>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 45 de 75
Diseño técnico integración OPTRetina Página 46 de 75
Actualitzado: 03/02/2015
OPTRetina

MSH.9 – Tipo de mensaje


Se debe indicar el tipo de mensaje HL7
<MSH.9 >
<MSG.1 >ORG</MSG.1>
<MSG.>020</MSG.2>
<MSG.3 >ORG_020</MSG.3>
</MSH.9>

MSH.10 – ID de control de mensaje


Contiene el ID del mensaje a identificar en la transacción de la aplicación.
<MSH.10 >NUMERO_MENSAJE</MSH.10>

MSH.11 – ID de procesamiento
Indica en que estado se envía el mensaje. Se pueden indicar 2 tipos Producción (P) y Debugging (D)
<MSH.11 >
<PT.1 >P</PT.1>
</MSH.11>

MSH.12 – ID versión
Contiene la versión de la mensajería HL7, en este caso 2.7
<MSH.12 >
<VID.1 >2.7</VID.1>
</MSH.12>

MSA
Este segmento informa a que mensaje se esta respondiendo y si se ha aceptado.

1 2 ID R CodigoRespuesta
2 20 ST R ID mensaje original

MSA.1 – Codigo Respuesta


Debe tener el valor AA si el OMG_O19 se ha aceptado o un AE en caso contrario
<MSA.1><!--Debe tener el valor AA si el OMG_O19 se ha aceptado o un AE en caso contrario --></MSA.1>

MSA.2 – ID mensaje original


Contiene el identificador único del mensaje original.
<MSA.2><!--Debe contener el valor MSH.10 del mensaje OMG_O19 que se esta respondiendo--></MSA.2>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 46 de 75
Diseño técnico integración OPTRetina Página 47 de 75
Actualitzado: 03/02/2015
OPTRetina

ERR
Este segmento se usa para añadir comentarios sobre los errores, solo se debe poner este segmento en caso que se este
enviando un NO ACK.

3 705 CWE R HL70357 Codigo de error


4 2 ID R HL70516 Severidad

ERR.3 – Codigo de error


Contiene el código de error y la descripción.
<ERR.3>
<CWE.1><!--Identificador del errorcorrespondiente a la tabla HL70357 --></CWE.1>
<CWE.2><!--Descripción del error--></CWE.2>
</ERR.3>

ERR.4 – Severidad
Identifica la gravedad del error, se informa con el valor E que indica que se ha producido un error.
<ERR.4>E</ERR.4>

ORC
Este segmento contiene la información de la orden realizada.
1 2 ID R Orden de control
2 22 EI R Ordernumber

ORC 1 – Orden de control


Contiene el identificador de orden, el valor es OK (Orderaccepted).

ORC 2 – Numero de la petición


Define el OrderNumber de la prueba asignado por el centro sol.licitante.
<ORC.2>
<EI.1><!-- ORDER NUMBER --></EI.1>
</ORC.2>

ORC 3 – Numero de la prueba


Define el OrderNumber de la prueba asignado por el centro proveedor. En este caso el Case ID asignado por
OPTRetina.
<ORC.3>
<EI.1><!—CASE ID asignado por OPTRetina--></EI.1>
</ORC.3>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 47 de 75
Diseño técnico integración OPTRetina Página 48 de 75
Actualitzado: 03/02/2015
OPTRetina

ANEXO III: ENVIO INFORME ORU_R01


Esta guía contiene la definición del mensajeHL7 que se usará para enviar el informe en formato pdf al centro
oftalmologico.

Inicialmente se muestra un ejemplo para ver el resultado final y después se define el mensaje campo a campo.

<?xml version="1.0" encoding="UTF-8"?>


<ORU_R01>
<MSH>
<MSH.1>|</MSH.1>
<MSH.2>^~\&amp;</MSH.2>
<MSH.3>
<HD.2>
<!--APLICACION ORIGEN-->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.3>
<MSH.7>
<TS.1>
<!--FECHA/HORA DEL MENSAJE-->
</TS.1>
</MSH.7>
<MSH.9>
<MSG.1>ORU</MSG.1>
<MSG.2>R01</MSG.2>
<MSG.3>ORU_R01</MSG.3>
</MSH.9>
<MSH.10>
<!--ID UNICO MENSAJE-->
</MSH.10>
<MSH.11>
<PT.1>P</PT.1>
</MSH.11>
<MSH.12>
<VID.1>2.7</VID.1>
</MSH.12>
</MSH>
<ORU_R01.PATIENT_RESULT>
<ORU_R01.ORDER_OBSERVATION>
<ORC>
<ORC.1>SC</ORC.1>
<ORC.2>
<EI.1>
<!--ORDER NUMBER del centro externo-->
</EI.1>
</ORC.2>
<ORC.3>
<EI.1>
<!--CASE ID asignado por OPTRetina-->
</EI.1>
</ORC.3>
</ORC>
<OBR>
<OBR.2>
<EI.1>
<!--ORDER NUMBER del centro externo-->
</EI.1>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 48 de 75
Diseño técnico integración OPTRetina Página 49 de 75
Actualitzado: 03/02/2015
OPTRetina

</OBR.2>
<OBR.3>
<EI.1>
<!--CASE ID asignado por OPTRetina-->
</EI.1>
</OBR.3>
<OBR.4>
<CWE.1>
<!-- CASE ID asignado por OPTRetina-->
</CWE.1>
<CWE.2>
<!--Descripcion de la prueba-->
</CWE.2>
</OBR.4>
</OBR>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>1</OBX.1>
<OBX.2>ED</OBX.2>
<OBX.3>
<CWE.2>PDF</CWE.2>
</OBX.3>
<OBX.4>
<!-- CASE ID asignado por OPTRetina-->
</OBX.4>
<OBX.5>
<ED.2>AP</ED.2>
<ED.4>BASE64</ED.4>
<ED.5>
<!--Informe PDF en BASE 64-->
</ED.5>
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
</ORU_R01.ORDER_OBSERVATION>
</ORU_R01.PATIENT_RESULT>
</ORU_R01>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 49 de 75
Diseño técnico integración OPTRetina Página 50 de 75
Actualitzado: 03/02/2015
OPTRetina

1. Estructura del mensaje


Un mensaje HL7 contiene una serie de segmentos, cada uno de los cuales contiene los campos que almacenan los datos
a transmitir. El mensaje usado para enviar el PDF al centro externo es un ORU_R01 versión 2.7 en XML, a
continuación se define su estructura:
Segmentos/Cabeceras Descripción Cardinalidad

MSH Cabeceramensaje [1..1]


-- Inicio PacienteResultado -- <ORU_R01.PATIENT_RESULT> [1..N]
-- Inicio Orden Resultado -- <ORU_R01.ORDER_OBSERVATION> [1..N]
ORC Orden [1..1]
OBR Observación [1..1]
--Inicio Observación-- <ORU_R01.OBSERVATION> [1..1]
OBX [1..1]
--Fin Observación-- </ORU_R01.OBSERVATION>
-- FinOrdenResultado -- </ORU_R01.ORDER_OBSERVATION>
-- FinPacienteResultado -- </ORU_R01.PATIENT_RESULT>

2. Definición de segmentos
Se definen los segmentos siguiendo una tabla del siguiente estilo:
SEQ LEN DT OPT TABLE NAME

Contiene el numero de seqüencia del segmento (SEQ), la longitud máxima del contenido (LEN), el tipo de dato (DT), la
obligatoriedad (OPT) que puede ser requerida (R) o opcional (O), la referencia a las tablas definidas por HL7 (TABLE)
y el nombre del campo (NAME).

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 50 de 75
Diseño técnico integración OPTRetina Página 51 de 75
Actualitzado: 03/02/2015
OPTRetina

MSH
Este segmento es la cabecera obligatoria en todos los mensajes y define la sintaxidel mensaje así como el origen y el
destino de este.

1 1 ST R Campo separador
2 4 ST R Carácteres de codificación
3 227 HD R Aplicación emisora
7 26 TS R Fecha/Hora del mensaje
9 15 MSG R Tipo de mensaje
10 20 ST R ID de control de mensaje
11 3 PT R ID procesamiento
12 60 VID R ID versión

MSH.1 – Campo separador


Contiene el valor separador de segmentos por defecto “|”.
<MSH.1>|</MSH.1>

MSH.2 – Carácteres de codificación


Contiene los caracteres de codificación usados.
<MSH.2>^~\&amp;</MSH.2>

MSH.3 – Aplicación emisora


Contiene el identificador de la aplicación emisora del mensaje.
<MSH.3>
<HD.2>
<!--APLICACION ORIGEN -->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.3>

MSH.7 – Fecha/Hora del mensaje


Contiene la data y la hora en que se ha enviado el mensaje.
<MSH.7>
<TS.1>AAAAMMDDhhmmss</TS.1>
</MSH.7>

MSH.9 – Tipo de mensaje


Se debe indicar el tipo de mensaje HL7
<MSH.9 >
<MSG.1 >ORU</MSG.1>
<MSG.>R01</MSG.2>
<MSG.3 >ORU_R01</MSG.3>
</MSH.9>

MSH.10 – ID de control de mensaje


Contiene el ID del mensaje a identificar en la transacción de la aplicación.
<MSH.10 >NUMERO_MENSAJE</MSH.10>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 51 de 75
Diseño técnico integración OPTRetina Página 52 de 75
Actualitzado: 03/02/2015
OPTRetina

MSH.11 – ID de procesamiento
Indica en que estado se envía el mensaje. Se pueden indicar 2 tipos Producción (P) y Debugging (D)
<MSH.11 >
<PT.1 >P</PT.1>
</MSH.11>

MSH.12 – ID versión
Contiene la versión de la mensajería HL7, en este caso 2.7
<MSH.12 >
<VID.1 >2.7</VID.1>
</MSH.12>

ORC
Este segmento contiene la información de la orden realizada.
1 2 ID R Orden de control
2 22 EI R Ordernumber

ORC 1 – Orden de control


Contiene el identificador de orden, el valor es SC (Statuschanged).

ORC 2 – Numero de la petición


Define el OrderNumber de la prueba.
<ORC.2>
<EI.1><!-- ORDER NUMBER --></EI.1>
</ORC.2>

ORC 3 – Numero de la prueba


Define el OrderNumber de la prueba asignado por el centro proveedor. En este caso el Case ID asignado por
OPTRetina.
<ORC.3>
<EI.1><!—CASE ID asignado por OPTRetina--></EI.1>
</ORC.3>

OBR
Identifica la prueba a ejecutar, así como el centro que la llevarà a cabo.

2 22 EI R Ordernumber
4 250 CWE R Codigo descripción prueba

OBR 2 – Numero de la petición


Define el OrderNumber de la prueba.
<OBR.2>
<EI.1><!-- ORDER NUMBER --></EI.1>
</OBR.2>

OBR 3 – Numero de la prueba


Define el OrderNumber de la prueba asignado por el centro proveedor. En este caso el Case ID asignado por
OPTRetina.
<OBR.3>
<EI.1><!—CASE ID asignado por OPTRetina--></EI.1>
</OBR.3>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 52 de 75
Diseño técnico integración OPTRetina Página 53 de 75
Actualitzado: 03/02/2015
OPTRetina

OBR 4 – Codigo descripción de la prueba


Define el codigo de la prueba.
<OBR.4 >
<CWE.1><!—IDENTIFICADOR_DE_PRUEBA --></CWE.1>
<CWE.2><!--DESCRIPCIO_DE_ PRUEBA--></CWE.2>
</OBR.4>

OBX
Elemento OBX que contiene el informe encapsulado, este segmento es obligatorio.
1 4 SI O Identificador del segmento
2 2 ID R HL70125 Tipo del valor (ED: Datos Estructurados)
3 250 CWE R Contiene la codificación del valor observado
4 20 ST R Contiene el identificador del informe
5 99999 ED R Contiene el informe encapsulat en Base 64
11 1 ID R Estado de la información (F: Final, C: Corrección)

OBX 1 – Identificador del segmento


Define el numero identificador del segmento. Debe estar informado con un 1.
<OBX.1>
<!-- Identificador del segmento -->
</OBX.1>

OBX 2 – Tipo del valor


Define el tipo de dato del campo 5. En este caso ED.
<OBX.2>
<!—TIPO VALOR -->
</OBX.2>

OBX 3 – Codigo del valor


Contiene la codificación del valor, en este caso “PDF”.
<OBX.3 >
<CWE.2 >Text</CWE.2>
</OBX.3>

OBX 4 – SubIdentificador
Contiene el identificador del informe.
<OBX.4 >Observation Sub-ID</OBX.4>

OBX 5 – Valor
Contiene el informe PDF encapsulado.
El campo 2 contiene el tipo de dato, ha de tener el valor “AP”.
El campo 4 identifica el tipo de codificación que ha de ser “Base64”.
El campo 5 ha de contener el PDF binarizado y codificado en “Base 64”.
<OBX.5 >
<ED.2 >AP</ED.2>
<ED.4 >Base64</ED.4>
<ED.5 >Data</ED.5>
</OBX.5>

OBX 11 – Estado información


Contiene el estado del informe, ha de tener valor F (Final).
<OBX.11 >Estadoinformacion</OBX.11>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 53 de 75
Diseño técnico integración OPTRetina Página 54 de 75
Actualitzado: 03/02/2015
OPTRetina

ANEXO IV: RESPUESTA ACK ACEPTACIÓN


Estaguia contiene la definición de la respuesta de aceptación que se genera cuando se recibe un mensaje HL7.

Inicialmente se muestra un ejemplo para ver el resultado final y después se define el mensaje campo a campo.

<?xml version="1.0" encoding="UTF-8"?>


<ACK>
<MSH>
<MSH.1>|</MSH.1>
<MSH.2>^~&amp;</MSH.2>
<MSH.3>
<HD.2>
<!--identificador unico aplicación emisora del ACK-->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.3>
<MSH.5>
<HD.2>
<!-- identificador unico aplicación receptora del ACK-->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.5>
<MSH.6>
<HD.2>
<!-- identificador unico centro receptor del ACK-->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.6>
<MSH.7>
<TS.1>
<!--Data y hora del mensaje en formato AAAAMMDDhhmmss-->
</TS.1>
</MSH.7>
<MSH.9>
<MSG.1>
<!--Tipo de mensaje tiene el valor ACK-->
</MSG.1>
</MSH.9>
<MSH.10>
<!--Identificador único del mensaje ACK-->
</MSH.10>
<MSH.11>
<PT.1>P</PT.1>
</MSH.11>
<MSH.12>
<VID.1>2.7</VID.1>
</MSH.12>
</MSH>
<MSA>
<MSA.1>
<!--AA en caso de ser una confirmación o AE en caso contrario-->
</MSA.1>
<MSA.2>
<!--MSH.10 del mensaje origen correspondiente-->
</MSA.2>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 54 de 75
Diseño técnico integración OPTRetina Página 55 de 75
Actualitzado: 03/02/2015
OPTRetina

</MSA>
<ERR>
<ERR.3>
<CWE.1>
<!--Identificador del error-->
</CWE.1>
<CWE.2>
<!--Descripción del error-->
</CWE.2>
</ERR.3>
<ERR.4>E</ERR.4>
</ERR>
</ACK>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 55 de 75
Diseño técnico integración OPTRetina Página 56 de 75
Actualitzado: 03/02/2015
OPTRetina

1. Estructura del mensaje


Un mensaje HL7 contiene una serie de segmentos, cada uno de los cuales contiene los campos que almacenan los datos
a transmitir. El mensaje usado para responder un mensaje és un ACK versión 2.7 en XML, a continuación se define su
estructura:
Segmentos/Cabeceras Descripción Cardinalidad

MSH Cabeceramensaje [1..1]


MSA Identificaciónmensaje [1..1]
ERR Error [0..N]

2. Definición de segmentos
Se definen los segmentos siguiendo una tabla del siguiente estilo:
SEQ LEN DT OPT TABLE NAME

Contiene el numero de seqüencia del segmento (SEQ), la longitud máxima del contenido (LEN), el tipo de dato (DT), la
obligatoriedad (OPT) que puede ser requerida (R) o opcional (O), la referencia a las tablas definidas por HL7 (TABLE)
y el nombre del campo (NAME).

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 56 de 75
Diseño técnico integración OPTRetina Página 57 de 75
Actualitzado: 03/02/2015
OPTRetina

MSH
Este segmento es la cabecera obligatoria en todos los mensajes y define la sintaxi del mensaje así como el origen y el
destino de este.

1 1 ST R Campo separador
2 4 ST R Carácteres de codificación
3 227 HD R Aplicación emisora
5 227 HD R Aplicación receptora
6 227 HD R Centro receptor
7 26 TS R Fecha/Hora del mensaje
9 15 MSG R Tipo de mensaje
10 20 ST R ID de control de mensaje
11 3 PT R ID procesamiento
12 60 VID R ID versión

MSH.1 – Campo separador


Contiene el valor separador de segmentos por defecto “|”.
<MSH.1>|</MSH.1>

MSH.2 – Carácteres de codificación


Contiene los caracteres de codificación usados.
<MSH.2>^~\&amp;</MSH.2>

MSH.3 – Aplicación emisora


Contiene el identificador de la aplicación emisora del mensaje.
<MSH.3>
<HD.2>
<!--APLICACION ORIGEN -->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.3>

MSH.5 – Aplicación receptora


Contiene el identificador de la aplicación receptora del mensaje.
<MSH.5>
<HD.2>
<!-- APLICACION DESTINACIÓ -->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.5>

MSH.6 – Centro receptor


Contiene el identificador del centro receptor del mensaje.
<MSH.6>
<HD.2>
<!-- CENTRO RECEPTOR -->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.6>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 57 de 75
Diseño técnico integración OPTRetina Página 58 de 75
Actualitzado: 03/02/2015
OPTRetina

MSH.7 – Fecha/Hora del mensaje


Contiene la data y la hora en que se ha enviado el mensaje.
<MSH.7>
<TS.1>AAAAMMDDhhmmss</TS.1>
</MSH.7>

MSH.9 – Tipo de mensaje


Se debe indicar el tipo de mensaje HL7
<MSH.9 >
<MSG.1 >ACK</MSG.1>
</MSH.9>

MSH.10 – ID de control de mensaje


Contiene el ID del mensaje a identificar en la transacción de la aplicación.
<MSH.10 >NUMERO_MENSAJE</MSH.10>

MSH.11 – ID de procesamiento
Indica en que estado se envía el mensaje. Se pueden indicar 2 tipos Producción (P) y Debugging (D)
<MSH.11 >
<PT.1 >P</PT.1>
</MSH.11>

MSH.12 – ID versión
Contiene la versión de la mensajería HL7, en este caso 2.7
<MSH.12 >
<VID.1 >2.7</VID.1>
</MSH.12>

MSA
Este segmento informa a que mensaje se esta respondiendo y si se ha aceptado.

1 2 ID R Codigo Respuesta
2 20 ST R ID mensaje original

MSA.1 – Codigo Respuesta


Debe tener el valor AA si el el mensaje origen se ha aceptado o un AE en caso contrario.
<MSA.1><!--Debe tener el valor AA si el mensaje origen se ha aceptado o un AE en caso contrario --></MSA.1>

MSA.2 – ID mensaje original


Contiene el identificador único del mensaje original.
<MSA.2><!--Debe contener el valor MSH.10 del mensaje origen que se esta respondiendo--></MSA.2>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 58 de 75
Diseño técnico integración OPTRetina Página 59 de 75
Actualitzado: 03/02/2015
OPTRetina

ERR
Este segmento se usa para añadir comentarios sobre los errores, solo se debe poner este segmento en caso que se este
enviando un NO ACK.

3 705 CWE R HL70357 Codigo de error


4 2 ID R HL70516 Severidad

ERR.3 – Codigo de error


Contiene el código de error y la descripción.
<ERR.3>
<CWE.1><!--Identificador del error correspondiente a la tabla HL70357 --></CWE.1>
<CWE.2><!--Descripción del error--></CWE.2>
</ERR.3>

ERR.4 – Severidad
Identifica la gravedad del error, se informa con el valor E que indica que se ha producido un error.
<ERR.4>E</ERR.4>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 59 de 75
Diseño técnico integración OPTRetina Página 60 de 75
Actualitzado: 03/02/2015
OPTRetina

ANEXO V: CONSULTA CASOS ABIERTOS


Esta guia contiene la definición del mensaje de consulta HL7 usado para consultar el listado de casos abiertos.

Inicialmente se muestra un ejemplo para ver el resultado final y después se define el mensaje campo a campo.

<?xml version="1.0" encoding="UTF-8"?>


<QBP_Q11>
<MSH>
<MSH.1>|</MSH.1>
<MSH.2>^~&amp;</MSH.2>
<MSH.3>
<HD.2>
<!--identificador unico aplicación emisora del ACK-->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.3>
<MSH.5>
<HD.2>
<!-- identificador unico aplicación receptora del ACK-->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.5>
<MSH.6>
<HD.2>
<!-- identificador unico centro receptor del ACK-->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.6>
<MSH.7>
<TS.1>
<!--Data y hora del mensaje en formato AAAAMMDDhhmmss -->
</TS.1>
</MSH.7>
<MSH.9>
<MSG.1>QBP</MSG.1>
<MSG.2>Q11</MSG.2>
<MSG.3>QBP_Q11</MSG.3>
</MSH.9>
<MSH.10>
<!--Identificador único del mensaje ACK-->
</MSH.10>
<MSH.11>
<PT.1>P</PT.1>
</MSH.11>
<MSH.12>
<VID.1>2.7</VID.1>
</MSH.12>
</MSH>
<QPD>
<QPD.1>
<CWE.2>GetCases</CWE.2>
</QPD.1>
<QPD.3>
<!--Nombre de usuario del centro-->
</QPD.3>
</QPD>
<RCP>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 60 de 75
Diseño técnico integración OPTRetina Página 61 de 75
Actualitzado: 03/02/2015
OPTRetina

<RCP.1>I</RCP.1>
</RCP>
</QBP_Q11>

1. Estructura del mensaje


Un mensaje HL7 contiene una serie de segmentos, cada uno de los cuales contiene los campos que almacenan los datos
a transmitir. El mensaje usado para realizar una consulta és un QBP versión 2.7 en XML, a continuación se define su
estructura:
Segmentos/Cabeceras Descripción Cardinalidad

MSH Cabecera mensaje [1..1]


QPD Datos consulta [1..1]
RCP Parametrosaddicionales [1..1]

2. Definición de segmentos
Se definen los segmentos siguiendo una tabla del siguiente estilo:
SEQ LEN DT OPT TABLE NAME

Contiene el numero de seqüencia del segmento (SEQ), la longitud máxima del contenido (LEN), el tipo de dato (DT), la
obligatoriedad (OPT) que puede ser requerida (R) o opcional (O), la referencia a las tablas definidas por HL7 (TABLE)
y el nombre del campo (NAME).

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 61 de 75
Diseño técnico integración OPTRetina Página 62 de 75
Actualitzado: 03/02/2015
OPTRetina

MSH
Este segmento es la cabecera obligatoria en todos los mensajes y define la sintaxi del mensaje así como el origen y el
destino de este.

1 1 ST R Campo separador
2 4 ST R Carácteres de codificación
3 227 HD R Aplicación emisora
5 227 HD R Aplicación receptora
6 227 HD R Centro receptor
7 26 TS R Fecha/Hora del mensaje
9 15 MSG R Tipo de mensaje
10 20 ST R ID de control de mensaje
11 3 PT R ID procesamiento
12 60 VID R ID versión

MSH.1 – Campo separador


Contiene el valor separador de segmentos por defecto “|”.
<MSH.1>|</MSH.1>

MSH.2 – Carácteres de codificación


Contiene los caracteres de codificación usados.
<MSH.2>^~\&amp;</MSH.2>

MSH.3 – Aplicación emisora


Contiene el identificador de la aplicación emisora del mensaje.
<MSH.3>
<HD.2>
<!--APLICACION ORIGEN -->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.3>

MSH.5 – Aplicación receptora


Contiene el identificador de la aplicación receptora del mensaje.
<MSH.5>
<HD.2>
<!-- APLICACION DESTINACIÓ -->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.5>

MSH.6 – Centro receptor


Contiene el identificador del centro receptor del mensaje.
<MSH.6>
<HD.2>
<!-- CENTRO RECEPTOR -->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.6>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 62 de 75
Diseño técnico integración OPTRetina Página 63 de 75
Actualitzado: 03/02/2015
OPTRetina

MSH.7 – Fecha/Hora del mensaje


Contiene la data y la hora en que se ha enviado el mensaje.
<MSH.7>
<TS.1>AAAAMMDDhhmmss</TS.1>
</MSH.7>

MSH.9 – Tipo de mensaje


Se debe indicar el tipo de mensaje HL7
<MSH.9 >
<MSG.1>QBP</MSG.1>
<MSG.2>Q11</MSG.2>
<MSG.3>QBP_Q11</MSG.3>
</MSH.9>

MSH.10 – ID de control de mensaje


Contiene el ID del mensaje a identificar en la transacción de la aplicación.
<MSH.10 >NUMERO_MENSAJE</MSH.10>

MSH.11 – ID de procesamiento
Indica en que estado se envía el mensaje. Se pueden indicar 2 tipos Producción (P) y Debugging (D)
<MSH.11 >
<PT.1 >P</PT.1>
</MSH.11>

MSH.12 – ID versión
Contiene la versión de la mensajería HL7, en este caso 2.7
<MSH.12 >
<VID.1 >2.7</VID.1>
</MSH.12>

QPD
Este segmento define los parámetros por los que se desea consultar.

1 CWE R Nombre consulta


3 255 ST R Parametro Consulta

QPD.1 – Nombre Consulta


Identifica la consulta que se desea realizar.
<QPD.1><CWE.2>GetCases</CWE.2></QPD.1>

QPD.3 – Parametro Consulta


Contiene el nombre de usuario de OPTRetina del que se desean recuperar los casos, debe coincidir con el nombre de
usuario
<QPD.3><!—Nombre de usuario del centro--></QPD.3>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 63 de 75
Diseño técnico integración OPTRetina Página 64 de 75
Actualitzado: 03/02/2015
OPTRetina

RCP
Este segmento define parámetros addicionales de la consulta.

1 ID R Prioridad de la consulta

RCP.1 – Prioridad Consulta


Define la prioridad de la consulta, se usa el valor I (Immediate)
<RCP.1>I</RCP.1>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 64 de 75
Diseño técnico integración OPTRetina Página 65 de 75
Actualitzado: 03/02/2015
OPTRetina

ANEXO VI: RESPUESTA CONSULTA CASOS ABIERTOS


Esta guia contiene la definición de la respuesta a la consulta QBP.

Inicialmente se muestra un ejemplo para ver el resultado final y después se define el mensaje campo a campo.

<?xml version="1.0" encoding="UTF-8"?>


<RSP_K11>
<MSH>
<MSH.1>|</MSH.1>
<MSH.2>^~&amp;</MSH.2>
<MSH.3>
<HD.2>
<!--identificador unico aplicación emisora del ACK-->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.3>
<MSH.5>
<HD.2>
<!-- identificador unico aplicación receptora del ACK-->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.5>
<MSH.7>
<TS.1>
<!--Data y hora del mensaje en formato AAAAMMDDhhmmss -->
</TS.1>
</MSH.7>
<MSH.9>
<MSG.1>RSP</MSG.1>
<MSG.2>K11</MSG.2>
<MSG.3>RSP_K11</MSG.3>
</MSH.9>
<MSH.10>
<!--Identificador único del mensaje ACK-->
</MSH.10>
<MSH.11>
<PT.1>P</PT.1>
</MSH.11>
<MSH.12>
<VID.1>2.7</VID.1>
</MSH.12>
</MSH>
<MSA>
<MSA.1>
<!--Debe tener el valor AA si el mensaje origen se ha aceptado o un
AE en caso contrario -->
</MSA.1>
<MSA.2>
<!--Debe contener el valor MSH.10 del mensaje origen que se esta
respondiendo-->
</MSA.2>
</MSA>
<ERR>
<ERR.3>
<CWE.1>
<!--Identificador del error-->
</CWE.1>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 65 de 75
Diseño técnico integración OPTRetina Página 66 de 75
Actualitzado: 03/02/2015
OPTRetina

<CWE.2>
<!--Descripción del error-->
</CWE.2>
</ERR.3>
<ERR.4>E</ERR.4>
</ERR>
<QAK>
<QAK.2>
<!--Contiene un código de estado HL7-->
</QAK.2>
<QAK.4>
<!--Contiene numero de resultados encontrados-->
</QAK.4>
</QAK>
<QPD>
<QPD.1>
<CWE.2>GetCases</CWE.2>
</QPD.1>
<QPD.3>
<!--Nombre de usuario del centro-->
</QPD.3>
</QPD>
<RSP_K11.SEGMENT_PATTERN>
<PID>
<PID.1>
<!--AUTONUMÉRICO -->
</PID.1>
<PID.3>
<CX.1>
<!--NUMERO HISTORIA CLINICA PACIENTE -->
</CX.1>
<CX.5>
PI
</CX.5>
</PID.3>
<PID.5>
<XPN.1>
<FN.1>
<!-- PACIENTE APELLIDO 1 -->
</FN.1>
</XPN.1>
<XPN.2>
<!-- PACIENTE NOMBRE PILA 1 -->
</XPN.2>
</PID.5>
<PID.6>
<XPN.1>
<FN.1>
<!-- PACIENTE APELLIDO 2 -->
</FN.1>
</XPN.1>
</PID.6>
</PID>
<PV1>
<PV1.1>
<!--AUTONUMÉRICO -->
</PV1.1>

<PV1.2>U</PV1.2>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 66 de 75
Diseño técnico integración OPTRetina Página 67 de 75
Actualitzado: 03/02/2015
OPTRetina

<PV1.44>
<TS.1>
<!-- FECHA VISITA-->
</TS.1>
</PV1.44>
</PV1>
<ORC>
<ORC.1>OK</ORC.1>
<ORC.3>
<EI.1>
<!--CASE ID asignado por OPTRetina-->
</EI.1>
</ORC.3>
<ORC.5>
<!-- Estado del caso-->
</ORC.5>
</ORC>
</RSP_K11.SEGMENT_PATTERN>
</RSP_K11>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 67 de 75
Diseño técnico integración OPTRetina Página 68 de 75
Actualitzado: 03/02/2015
OPTRetina

1. Estructura del mensaje


Un mensaje HL7 contiene una serie de segmentos, cada uno de los cuales contiene los campos que almacenan los datos
a transmitir. El mensaje usado para responder a una consulta és un RSP versión 2.7 en XML, a continuación se define
su estructura:
Segmentos/Cabeceras Descripción Cardinalidad

MSH Cabecera mensaje [1..1]


MSA Identificación mensaje [1..1]
ERR Comentarios sobre los errores [0..1]
QAK Resultados consulta [1..1]
QPD Segmento consulta [1..1]
INICIO SEGMENT_PATTERN [0..1]
PID Datos Paciente [0..N]
PV1 Datos Visita [0..N]
ORC Datos Orden [0..N]
FIN SEGMENT_PATTERN

2. Definición de segmentos
Se definen los segmentos siguiendo una tabla del siguiente estilo:
SEQ LEN DT OPT TABLE NAME

Contiene el numero de seqüencia del segmento (SEQ), la longitud máxima del contenido (LEN), el tipo de dato (DT), la
obligatoriedad (OPT) que puede ser requerida (R) o opcional (O), la referencia a las tablas definidas por HL7 (TABLE)
y el nombre del campo (NAME).

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 68 de 75
Diseño técnico integración OPTRetina Página 69 de 75
Actualitzado: 03/02/2015
OPTRetina

MSH
Este segmento es la cabecera obligatoria en todos los mensajes y define la sintaxi del mensaje así como el origen y el
destino de este.

1 1 ST R Campo separador
2 4 ST R Carácteres de codificación
3 227 HD R Aplicación emisora
5 227 HD R Aplicación receptora
7 26 TS R Fecha/Hora del mensaje
9 15 MSG R Tipo de mensaje
10 20 ST R ID de control de mensaje
11 3 PT R ID procesamiento
12 60 VID R ID versión

MSH.1 – Campo separador


Contiene el valor separador de segmentos por defecto “|”.
<MSH.1>|</MSH.1>

MSH.2 – Carácteres de codificación


Contiene los caracteres de codificación usados.
<MSH.2>^~\&amp;</MSH.2>

MSH.3 – Aplicación emisora


Contiene el identificador de la aplicación emisora del mensaje.
<MSH.3>
<HD.2>
<!--APLICACION ORIGEN -->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.3>

MSH.5 – Aplicación receptora


Contiene el identificador de la aplicación receptora del mensaje.
<MSH.5>
<HD.2>
<!-- APLICACION DESTINACIÓ -->
</HD.2>
<HD.3>L,M,N</HD.3>
</MSH.5>

MSH.7 – Fecha/Hora del mensaje


Contiene la data y la hora en que se ha enviado el mensaje.
<MSH.7>
<TS.1>AAAAMMDDhhmmss</TS.1>
</MSH.7>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 69 de 75
Diseño técnico integración OPTRetina Página 70 de 75
Actualitzado: 03/02/2015
OPTRetina

MSH.9 – Tipo de mensaje


Se debe indicar el tipo de mensaje HL7.
<MSH.9 >
<MSG.1>RSP</MSG.1>
<MSG.2>K11</MSG.2>
<MSG.3>RSP_K11</MSG.3>
</MSH.9>

MSH.10 – ID de control de mensaje


Contiene el ID del mensaje a identificar en la transacción de la aplicación.
<MSH.10 >NUMERO_MENSAJE</MSH.10>

MSH.11 – ID de procesamiento
Indica en que estado se envía el mensaje. Se pueden indicar 2 tipos Producción (P) y Debugging (D).
<MSH.11 >
<PT.1 >P</PT.1>
</MSH.11>

MSH.12 – ID versión
Contiene la versión de la mensajería HL7, en este caso 2.7
<MSH.12 >
<VID.1 >2.7</VID.1>
</MSH.12>

MSA
Este segmento informa a que mensaje se esta respondiendo y si se ha aceptado.

1 2 ID R Codigo Respuesta
2 20 ST R ID mensaje original

MSA.1 – Codigo Respuesta


Debe tener el valor AA si el el mensaje origen se ha aceptado o un AE en caso contrario
<MSA.1><!--Debe tener el valor AA si el mensaje origen se ha aceptado o un AE en caso contrario --></MSA.1>

MSA.2 – ID mensaje original


Contiene el identificador único del mensaje original.
<MSA.2><!--Debe contener el valor MSH.10 del mensaje origen que se esta respondiendo--></MSA.2>

ERR
Este segmento se usa para añadir comentarios sobre los errores, solo se debe poner este segmento en caso que se este
enviando un NO ACK.

3 705 CWE R HL70357 Codigo de error


4 2 ID R HL70516 Severidad

ERR.3 – Codigo de error


Contiene el código de error y la descripción.
<ERR.3>
<CWE.1><!--Identificador del error correspondiente a la tabla HL70357 --></CWE.1>
<CWE.2><!--Descripción del error--></CWE.2>
</ERR.3>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 70 de 75
Diseño técnico integración OPTRetina Página 71 de 75
Actualitzado: 03/02/2015
OPTRetina

ERR.4 – Severidad
Identifica la gravedad del error, s’informa con el valor E que indica que se ha producido un error.
<ERR.4>E</ERR.4>

QAK
Este segmento define los parámetros por los que se desea consultar.

2 ID R 0208 Estado respuesta


4 255 ST R Numero de resultados

QAK.2 – Estado respuesta


Informa del estado de la respuesta (OK=Consulta con éxito, NF = No hay resultados, AE=error de aplicación,
AR=consulta rechazada).
<QAK.2><!--Contiene un código de estado HL7--></QAK.2>

QAK.4 – Numero de resultados


Contiene el numero de resultados encontrados.
<QAK.4><!—Contiene numero de resultados encontrados--></QAK.4>

QPD
Este segmento define los parámetros por los que se desea consultar.

1 CWE R Nombre consulta


3 255 ST R Parametro Consulta

QPD.1 – Nombre Consulta


Identifica la consulta que se desea realizar.
<QPD.1><CWE.2>GetCases</CWE.2></QPD.1>

QPD.3 – Parametro Consulta


Contiene el nombre de usuario de OPTRetina del que se desean recuperar los casos, debe coincidir con el nombre de
usuario.
<QPD.3><!—Nombre de usuario del centro--></QPD.3>

PID
Este segmento contiene datos demográficos del paciente.Este segmento junto con PV1 y ORC se repetirán por cada
caso encontrado.
3 250 CX R Id paciente
5 250 XPN R Nombre y primer apellido
6 250 XPN R Segundo apellido

PID 1 – Identificador de segmento


Contiene el identificador autonumérico de cada petición.
<PID.1>n</PID.1>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 71 de 75
Diseño técnico integración OPTRetina Página 72 de 75
Actualitzado: 03/02/2015
OPTRetina

PID 3 – Id paciente
Contiene el código de identificación del paciente, numero de historia clínica.
<PID.3>
<CX.1>ID PACIENTE </CX.1>
<CX.5>PI</CX.5>
</PID.3>

PID 5 – Nombre y primer apellido


Contiene el nombre y el primer apellido del paciente.
<PID.5 >
<XPN.1>
<FN.1 >PRIMER_APELLIDO </FN.1>
</XPN.1>
<XPN.2 >NOMBRE_PILA_1 </XPN.2>
</PID.5>

PID 6 – Segundo apellido


Contiene el segundo apellido del paciente, si no tiene se dejará vacio.
<PID.6 >
<XPN.1>
<FN.1>SEGUNDO_APELLIDO </FN.1>
</XPN.1>
</PID.6>

PV1
Segmento que contiene los datos de la visita del paciente, únicamente datos administrativos.
2 1 IS R 0119 Clase de paciente
44 26 TS R Fecha visita

PV1 1 – Identificador de segmento


Contiene el identificador autonumérico de cada petición.
< PV1.1>n</ PV1.1>

PV1 2 – Clase de paciente


Indica el tipo de paciente. Por ejemplo I (Ingresado), O (Consulta externa) o E (Urgencias).

PV1 44 – Data visita


Indica la fecha de la visita del paciente en formato YYYYMMDDHHMMSS.
<PV1.44>
<TS.1>
<!-- FECHA VISITA-->
</TS.1>
</PV1.44>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 72 de 75
Diseño técnico integración OPTRetina Página 73 de 75
Actualitzado: 03/02/2015
OPTRetina

ORC
Este segmento contiene la información de la orden realizada.
1 2 ID R Orden de control
3 EI R Numero de la petición
5 ID R Estado del caso

ORC 1 – Orden de control


Contiene el identificador de orden, el valor es OK.

ORC 3 – Numero de la petición


Define el case id asignado por OPTRetina.
<ORC.3>
<EI.1><!—CASE ID Asignado por OPTRETINA --></EI.1>
</ORC.3>

ORC 5 – Estado del caso


Define el estado actual del caso
<ORC.5><!—Estado del caso --></ORC.5>

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 73 de 75
Diseño técnico integración OPTRetina Página 74 de 75
Actualitzado: 03/02/2015
OPTRetina

ANEXO VII: DESCRIPCIONES DE LOS ERRORES


Código Error Descripción
ECC-000 Error formato.
ECC-001 Error: el formato del xml de entrada no és correcto.
ECC-003 Error: el campo usuario del centro es nulo.
ECC-004 Error: el campo nombre de usuario y el nombre de usuario del centro no coinciden.
ECC-005 Error: el campo id aplicación emisor es nulo.
ECC-006 Error: el campo id aplicación receptor es nulo.
ECC-007 Error: el campo id centro emisor es nulo.
ECC-008 Error: el campo id del mensaje es nulo.
ECC-009 Error: el campo número historia es nulo.
ECC-010 Error: el campo nombre es nulo.
ECC-011 Error: el campo apellido 1 es nulo.
ECC-012 Error: el campo apellido 2 es nulo.
ECC-013 Error: el campo género es nulo o diferente a 'M' o 'F'.
ECC-014 Error: el campo edad es nulo.
ECC-015 Error: el campo fecha cita es nulo.
ECC-016 Error: el campo fecha cita no tiene el formato correcto (YYYYMMddhhmmss).
ECC-017 Error: el campo diabetes es nulo.
ECC-018 Error: el campo fecha nacimiento no tiene el formato correcto (YYYYMMddhhmmss).
ECC-019 Error: el campo razón de visita es nulo.
ECC-020 Error: el campo antecedentes oftálmicos es nulo.
ECC-021 Error: el campo otra información relevante es nulo.
ECC-022 Error: el campo notas de retinologia es nulo.
ECC-023 Error: el campo od_iop es nulo.
ECC-024 Error: el campo od_va es nulo.
ECC-025 Error: el campo od_axis es nulo.
ECC-026 Error: el campo od_cylinder es nulo.
ECC-027 Error: el campo od_sphere es nulo.
ECC-028 Error: el campo od_add es nulo.
ECC-029 Error: el campo od_prism es nulo.
ECC-030 Error: el campo od_prism_base es nulo.
ECC-031 Error: el campo od_iop es nulo.
ECC-032 Error: el campo od_va es nulo.
ECC-033 Error: el campo od_axis es nulo.
ECC-034 Error: el campo od_cylinder es nulo.

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 74 de 75
Diseño técnico integración OPTRetina Página 75 de 75
Actualitzado: 03/02/2015
OPTRetina

ECC-035 Error: el campo od_sphere es nulo.


ECC-036 Error: el campo od_add es nulo.
ECC-037 Error: el campo os_prism es nulo.
ECC-038 Error: el campo os_prism_base es nulo.
ECC-039 Error: el campo imagenes es nulo.
ECC-040 Error: el campo callback_url es nulo.
ECC-041 Error: el campo order number es nulo.
ECC-042 Error: el campo id mensaje unico es nulo.
ECC-043 Error: formato de imagen no compatible.
EAA-000 Error: credenciales incorrectas.
EAA-001 Error: el campo nombre de usuario es nulo (credenciales).
EAA-002 Error: el campo contraseña es nulo (credenciales).
EAA-003 Error: imposible recuperar el informe del servidor. Credenciales incorrectas.
EAA-004 Error: imposible recuperar el informe del servidor. El informe no está listo.
EVM-000 Error formato.
ECM-000 Error: base de datos no disponible. Reintentelo más tarde.
EDD-001 Error: no existe case_id en la BBDD.
EDD-002 Error: imposible mover el fichero de la carpeta temporal.
EDD-003 Error: imposible eliminar el fichero de la carpeta temporal.
EDD-004 Error: recibir ACK del cliente.
EDD-005 Error: código centro no existe en la BBDD.
EDD-006 Error: centro no existe en la BBDD.
EDD-007 Error: nombre centro nulo en la BBDD.
EDD-008 Error: el servidor cliente ha devuelto error 'AE'.
EDD-009 Error: el servidor cliente ha devuelto error 'AR'. En cola de reintentos.
EDD-010 Error: problema de connexión con el servidor. En cola de reintentos.
EDD-011 Error: problema de connexión con el servidor. Reintentelo más tarde.
EDD-012 Error: no existe el centro en la BBDD.
EDD-013 Error: el servidor no responde. En cola de reintentos.
EDD-014 Error: número de reintentos superado.

Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 75 de 75

También podría gustarte