Integración AVE-SIVES

25
SUBDIRECCIÓN GENERAL DE SISTEMAS DE INFORMACIÓN PARA LA SALUD Integración AVE - SIVIES

Transcript of Integración AVE-SIVES

Page 1: Integración AVE-SIVES

SUBDIRECCIÓN GENERAL DE SISTEMAS DE INFORMACIÓN PARA LA SALUD

Integración AVE - SIVIES

Page 2: Integración AVE-SIVES

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

Page 3: Integración AVE-SIVES

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.

Page 4: Integración AVE-SIVES

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”.

Page 5: Integración AVE-SIVES

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

Page 6: Integración AVE-SIVES

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.

Page 7: Integración AVE-SIVES

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.

Page 8: Integración AVE-SIVES

88SUBDIRECCIÓN GENERAL DE SISTEMAS

DE INFORMACIÓN PARA LA SALUD

Integración AVE-SIVE-SIVIES

SIVIES

Page 9: Integración AVE-SIVES

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

Page 10: Integración AVE-SIVES

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.

Page 11: Integración AVE-SIVES

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.

Page 12: Integración AVE-SIVES

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

Page 13: Integración AVE-SIVES

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.

Page 14: Integración AVE-SIVES

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

Page 15: Integración AVE-SIVES

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.

Page 16: Integración AVE-SIVES

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

Page 17: Integración AVE-SIVES

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

Page 18: Integración AVE-SIVES

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.

Page 19: Integración AVE-SIVES

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

Page 20: Integración AVE-SIVES

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.

Page 21: Integración AVE-SIVES

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.

Page 22: Integración AVE-SIVES

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

Page 23: Integración AVE-SIVES

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).

Page 24: Integración AVE-SIVES

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

Page 25: Integración AVE-SIVES

2525SUBDIRECCIÓN GENERAL DE SISTEMAS

DE INFORMACIÓN PARA LA SALUD

Gracias