Download - Integración AVE-SIVES
SUBDIRECCIÓN GENERAL DE SISTEMAS DE INFORMACIÓN PARA LA SALUD
Integración AVE - SIVIES
22SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Antecedentes
Entrada de declaraciones
- Entrada Manual: crear una declaración rellenando todos los
datos en Aplicación Web SIVIES.
- Entrada automática: carga manual de un fichero csv/xml en
Aplicación Web SIVIES.
- Entrada automática: envío de un xml a un WS de SIVIES
Integración entre sistemas
33SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Retos/ Premisas
- Integración entre sistemas. Había que adaptar AVE para poder
utilizar el Servicio Web ya disponible de SIVIES, pero
introduciendo el menor número de cambios en AVE:
• Con ayuda de la herramienta Rhapsody, se implementan las
transformaciones de formatos, integración entre sistemas,
mecanismos de colas, control de errores, etc.
- Módulo de gestión de envíos. Se inicia la integración en un
momento con pocos recursos:
• Con la ayuda de la empresa ISC se acuerda desarrollar un
módulo externo e independiente de AVE que permita la
gestión de los envíos a SIVIES.
- Gestión de casos: se debe implementar la lógica para controlar
que casos se enviaron, cuales han modificado y cuales se han
eliminado:
• Se opta por enviar siempre todos, es decir, se acumulan en
cada envío los casos y se remiten con la operación
Reemplazar.
44SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Retos / Premisas
- Envío seguro de datos
• Canal seguro:
https://sivies.isciii.es/WebServices/WS_SiViEs.asmx?WSDL
• Con usuario/contraseña (en la cabecera SOAP)
• Además no queremos exponer el sistema AVE al exterior
(internet) uso de Rhapsody.
• Toda la comunicación se realizan a través de la RED SARA:
red privada entre las administraciones públicas españolas
que aporta: fiabilidad, soporte 24x7x365, seguridad y
sistema de alerta temprana, capacidad 10GB
Ministerios/100MB Comunidades Autónomas y QoS.
- Una vez integrados los sistemas:
• Ir agregando poco a poco enfermedades (envío de un
fichero xml por enfermedad).
• El envío se realizar con una supervisión “humana”, más
adelante se permitiría dejar el envío en “automático”.
55SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Sistemas implicados
• AVE: Análisis de Vigilancia Epidemiológica. Sistema de
información para la vigilancia epidemiológica en la Comunitat
Valenciana y su análisis, que permite recoger en tiempo real los
datos de las Enfermedades de Declaración Obligatoria (EDO), de
los brotes, y de las alertas, su análisis y la difusión de la
información a los usuarios de forma automatizada.
• SIVE: Sistema Vigilancia Epidemiológica. Sistema independiente
de AVE, que permite automatizar y gestionar los envíos a SIVIES.
• Rhapsody: motor de integración que permite la interoperabilidad
entre los sistemas. Producto Comercial de Orion Health.
Herramienta corporativa de Conselleria para todos los temas de
interoperabilidad (similar a Mirth, Biz talk, Ensemble,…..)
• SiViEs: Sistema de Vigilancia en España
66SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Operaciones actuales de SIVIES
• <wsdl:operation name="TestFichero">
• <wsdl:operation name="CargarFichero">
• <wsdl:operation name="CargarFicheroAnActReemp"> (new)
• <wsdl:operation name="ObtenerResultadosValidacion">
• <wsdl:operation name="AprobarFichero">
• <wsdl:operation name="RechazarFichero">
• <wsdl:operation name="ObtenerFicheros">
• <wsdl:operation name="ObtenerEstadoFichero">
• <wsdl:operation name="ObtenerPeriodosDeclaracion">
• Problema: CargarFichero dispone de la operación
crear/modificar, pero para ello en el sistema origen hay
implementar la lógica para controlar que casos se enviaron,
cuales han modificado , y no se cuenta con la operación eliminar.
77SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Operación CargarFicheroAnActReemp
Nueva operación acordada con SIVIES (JULIO 2015):
CargarFicheroAnActReemp
- Si el caso existe, actualizo.
- Si el caso no existe, lo creo.
- Si no se envía el identificador, lo elimino.
Se remiten siempre los casos acumulados hasta la fecha.
88SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Integración AVE-SIVE-SIVIES
SIVIES
99SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
La integración se base en dos fases:
• Generación fichero y transformación de la
información disponible en AVE. En esta primera
fase los sistemas implicados son: SIVE y Rhapsody,
así como AVE por ser el origen de la información
(conversación 1).
• Comunicación del fichero generado a SIVIES. En
este caso la comunicación se establecerá entre
SIVE y SIVIES, utilizando como mecanismo
intermedio a Rhapsody (conversación 2, 3 y 4).
Integración AVE-SIVE-SIVIES
1010SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
En Resumen
Conversación 1: SIVE recupera la información ya mapeada y
transformada lista para el envío a SIVIES.
Conversación 2: Consulta periodos declaración.
Conversación 3: SIVE remite a SIVIES la información acumulada
(xml por enfermedad) con la operación cargarFicheroAnActReemp.
Conversación 4: SIVE remite a SIVIES la aprobación de fichero.
1111SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Conversación 1 Generación, transformación fichero a enviar
Pasos (asíncrono):
1. SIVE solicita los datos para una enfermedad en un periodo.
2. Rhapsody consulta en función de la enfermedad solicitada la
vista de base de datos correspondiente para obtener la
información.
Nota: AVE tiene en base de datos una vista por enfermedad donde
consolida/mapea la información solicitada por SIVIES.
3. Rhapsody recupera la información (sql) y la transforma al formato
XML (el del SIVIES) y le pasa la información a SIVE.
1212SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Conversación 1 Generación, transformación fichero a enviar
Campos Descripcion Formato Ocurrencia
tipoFichero Tipo de fichero a generar, ver Anexo 1 para cada tipo de enfermedad
Texto 1
fInicio Fecha inicio del periodo de generación dd/mm/yyyy 1
fFin Fecha de fin del periodo de generación dd/mm/yyyy 1
Llamada asíncrona desde SIVE a servicio web de Rhapsody con la
siguiente información
Se recibe un fichero XML con la siguiente estructuraCampos Descripción Formato Ocurrencia
enfermedad Enfermedad para la que se ha generado el fichero, ver Anexo 1 para cada tipo de enfermedad
Texto 1
fInicio Fecha de inicio del periodo. Se corresponde al campo fInicio del xml de entrada
dd/mm/yyyy 1
fFin Fecha de fin del periodo. Se corresponde al campo fFin del xml de entrada
dd/mm/yyyy 1
record Casos incluidos en el fichero generado complexType 0..N
CodigoFicha Código de ficha caso generado Texto 1
Accion Accíon realizada para en este caso con valor:crear/modificar
Texto 1
FechaClave Fecha de referencia del caso (en este
caso fecha diagnóstico)
dd-mm-yyyy 1
field Terna de campos obtenidos de AVE complexType 0..N
fieldName Nombre del campo exportado Texto 1
fieldValue Valor del campo exportado Texto 1
1313SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Conversación 2: Consulta periodos declaración
Pasos (síncrono):
1. SIVE consulta los periodos activos.
2. Rhapsody lo reenvía a SIVIES y obtienen un xml con los
periodos activos por enfermedad que a su vez remite a SIVE.
1414SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Conversación 2: Consulta periodos declaración
Llamada síncrona desde SIVE al servicio web de SIVIES para la
consulta de periodos activos para el usuario de la Comunidad. La
conversación tiene dos diálogos desde SIVE a Rhapsody y de
Rhapsody a Sivies. No requiere de ningún parámetro de consulta.
Se recibe un fichero XML con la siguiente estructura:
Campos Descripción Formato Ocurrencia
ArrayOfPeriodoDecWS
Campo complejo que contiene los diferentes periodos de declaración
complexType 1
PeriodoDecWS Campo complejo que contiene la información de cada uno de los periodos de declaración
complexType 0..N
id Código del periodo de declaración Short 1
fhIni Fecha de inicio del periodo dd-mm-yyyy 1
fhFin Fecha de fin del periodo dd-mm-yyyy 1
enfermedad Enfermedad para la que está dado de alta el periodo
Texto 1
fuenteDatos Fuente de datos referida a la comunidad autónoma
Texto 1
cod_modelo Modelo de la enfermedad para el que está descrito en el periodp
Texto 1
tipoFichas Tipo de ficha de la enfermedad para el que está dado de alta el periodo
Texto 1
1515SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Conversación 3: Carga de ficheros en SIVIES reemplazando
Nueva operación acordada con SIVIES (JULIO 2015):
CargarFicheroAnActReemp (en detrimento de CargarFichero).
Pasos (síncrono):
1. SIVE solicita la Carga de un fichero
2. Rhapsody lo reenvía a SIVIES y obtienen los resultados de la
carga, devolviéndoselos a su vez a SIVE.
1616SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Conversación 3: Carga de ficheros en SIVIES reemplazando
Llamada síncrona desde SIVE a servicio web de SIVIES, a la
operación CargarFicheroAnActReempl. La conversación tiene dos
diálogos desde SIVE a Rhapsody y de Rhapsody a Sivies. La
estructura de los datos que se remiten es:
Campos Descripcion Formato Ocurrencia
ModeloFicha Modelo de ficha a generar Texto 1
FuenteDatos Comunidad autónoma que genera el envío Texto 1
Declarante Usuario que realiza la declaración Texto 1
record Tipo complejo que refleja los diferentes envíos dentro del fichero
Complejo 0..N
CodigoFicha Código de la ficha que se va a enviar Texto 1
Accion Acción a realizar en SIVIES Texto 1
FechaClave Fecha de referencia del registro dd-mm-yyyy 1
field Tipo complejo que contiene las ternas campo/valor
Complejo 0..N
fieldName Nombre de la variable a cargar Texto 1
fieldValue Valor de la variable a cargar Texto 1
1717SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Conversación 3: Carga de ficheros en SIVIES reemplazando
Se recibe un fichero XML
con la siguiente estructura:
Campos Descripción Formato Ocurrencia
error Campo complejo que indica que se ha producido un error que ha hecho que no se puedan procesar los casos
complexType 0..1
errorID Código de error Short 1
errorTexto Descripción del error Texto 1
resultadosValidac
ion
Campo complejo que muestra e los
resultados después del procesado
complexType 0..1
header Campo complejo con el resumen del resultado del proceso
complexType 1
CargadoPor Usuario que ha cargado el fichero Texto 1
formato Formato del fichero Texto 1
fechaNotificado Fecha de notificación del fichero dd-mm-yyyy 1
estadoFichero Estado del fichero en SIVIES Texto 1
numRegistros Número de registros que habían en el fichero
Texto 1
numActualizados Número de registros actualizados en SIVIES debido a la carga del fichero
Texto 1
numBorrados Número de registros borrados en SIVIES debido a la carga del fichero
Texto 1
numErrores Número de errores en los datos de los registros detectados en la carga en SIVIES
Texto 1
numAvisos Número de avisos en los datos de los registros detectados en la carga en SIVIES
Texto 1
numNotas Número de notas en los datos de los registros detectados en la carga en SIVIES
Texto 1
body Campo complejo que contiene las descripción de los errores, avisos y notas generados por SIVIES en la carga
del fichero
complexType 1
resultadoValidacion
Campo complejo que sirve de contenedor al resto de campos
descriptivos del resultado de la validación
complexType 0..n
tipoError Campo que indica si la línea del resultado es un error, un aviso o una nota
Texto 1
cod_campo Campo en el que se produce la anotación
Texto 1
Fila Registro en el que se produce la anotación
Texto 1
Msg Descripción de la anotación Texto 1
1818SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Conversación 4: Aprobar fichero cargado
Pasos (síncrono):
1. SIVE solicita la aprobación de un fichero cargado
anteriormente.
2. Rhapsody reenvía la petición de aprobación a SIVIES, y SIVIES
responde con el resultado de la operación, devolviendo
Rhapsody esta información a SIVE.
1919SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Conversación 4: Aprobar fichero cargado
Llamada síncrona desde SIVE al servicio web de SIVIES para la
aprobación de un fichero remitido previamente. La conversación
tiene dos diálogos desde SIVE a Rhapsody y de Rhapsody a SIVIES, y
se realiza llamando a la función aprobarFichero con el parámetro de
identificación del fichero enviado.
Se recibe un fichero XML con la siguiente estructura:
Campos Descripción Formato Ocurrencia
ResultadoCargaFichero Campo complejo que contiene los resultados del proceso de aprobación
complexType 1
Operación correcta Campo complejo que contiene la información del fichero que se ha aprobado correctamente
complexType 0..1
idFichero Código del fichero que se ha aprobado correctamente
Short 1
idFicheroIncorrecto Código del fichero que no se ha podido aprobar
Short 0..1
2020SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Conversación 1
Conversación 1: SIVE recupera la información ya mapeada y
transformada lista para el envío a SIVIES.
2121SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Conversación 1
Conversación 1: SIVE recupera la información ya mapeada y
transformada lista para el envío a SIVIES.
2222SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Conversación 2, 3 y 4
Conversación 2, 3 y 4: Se consultan periodos, se envía el fichero y
si no tiene errores se aprueba
2323SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Conversación 2, 3 y 4
Conversación 2, 3 y 4 : si se producen avisos o notas se puede
aprobar (o no), si se producen errores se queda pendiente de
revisión (y no se puede aprobar).
2424SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Enfermedades que se remiten con la integración
Enfermedad Tipo Fichero VISTA
Chikungunya Chikun VW_RHA_CHIKUNGUNYA
Campilobacteriosis Campil VW_RHA_CAMPILOBACTERIOSIS
Chlamydia Clamid VW_RHA_CHLAMYDIA
Criptosporidiosis Cript VW_RHA_CRIPTOSPORIDIOSIS
Fiebre Q FQ VW_RHA_FIEBREQ
Giardiasis Giard VW_RHA_GIARDIASIS
Salmonelosis Salmon VW_RHA_SALMONELOSIS
Yersiniosis Yersin VW_RHA_YERSINIOSIS
Toxoplasmosis ToxopC VW_RHA_TOXOPLASMOSIS
E-Coli VTEC VW_RHA_ECOLI
Linfogranuloma LGV VW_RHA_LINFOGRANULOMA
Listeriosis Lister VW_RHA_LISTERIOSIS
Dengue Dengue VW_RHA_DENGUE
Enfermedad por Virus Zika Zika VW_RHA_ZIKA
2525SUBDIRECCIÓN GENERAL DE SISTEMAS
DE INFORMACIÓN PARA LA SALUD
Gracias