Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Centre de Competènciesd’Integració
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
Documentos relacionados
- -
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
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
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
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.
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.
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.
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
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
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.
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
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
Connector de entrada: HTTP Listener Objetivo: Recibe mensaje con el case_id del informe
finalizado.
Filtro: No
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
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
Nombre: ReintentosCallback Objetivo: Canal que reintenta la gestión del informe PDF.
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
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
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
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.
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
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
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
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.
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
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>
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
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.
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
*En el “Annexo VII” se pueden consultar todos los códigos de error existentes.
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
Inicialmente se muestra un ejemplo para ver el resultado final del mensaje, después se define el mensaje campo a
campo.
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
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
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
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
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.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.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
ORC
Este segmento contiene la información de la orden realizada.
1 2 ID R Orden de control
2 22 EI R Ordernumber
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
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)
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 5 – Valor
Contiene el valor correspondiente al codigo indicado en OBX.3.
<OBX.5 >Valor</OBX.5>
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
Inicialmente se muestra un ejemplo para ver el resultado final y después se define el mensaje campo a campo.
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
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
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.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
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.
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
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
Inicialmente se muestra un ejemplo para ver el resultado final y después se define el mensaje campo a campo.
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
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
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
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
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
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 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>
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
Inicialmente se muestra un ejemplo para ver el resultado final y después se define el mensaje campo a campo.
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
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
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.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
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.
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
Inicialmente se muestra un ejemplo para ver el resultado final y después se define el mensaje campo a campo.
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>
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
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.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.
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
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
Inicialmente se muestra un ejemplo para ver el resultado final y después se define el mensaje campo a campo.
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
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
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.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
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.
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.
QPD
Este segmento define los parámetros por los que se desea consultar.
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
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>
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
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
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
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
Diseño_tecnicofuncional_integracion_OPTRetina_v06 Página 75 de 75