====== Recomendaciones de Arquitectura ====== ===== Servicios de Facturación y Débitos ===== ==== Introducción ==== La información presentada a continuación, intenta ser una guía con recomendaciones de arquitectura, para implementar los medios interoperables, consensuados por el Proyecto MAIS, para establecer un modelo único de transacción para los ítems de facturación y débitos, entre Prestadores y Financiadores. ==== Consideraciones ==== * Todas las definiciones se fundamentan en lo consensuado por el Proyecto MAIS. * El formato seleccionado para la transferencia de los ítems de facturación y débitos están basados en los recursos FHIR ([[https://www.hl7.org/fhir/|https://www.hl7.org/fhir/]]) * Los servicios definidos, fueron consensuados bajo el contexto de transferencia entre Prestadores y Financiadores. ==== Arquitectura ==== {{https://www.mais.org.ar/storage/app/media/Arquitectura/Arquitectura.png?nolink&|Arquitectura}} ==== Servicios Definidos ==== Los servicios definidos y que se deben implementar para respetar lo establecido son: * Login: Servicio de autenticación de Prestadores en el servidor del Financiador. * Facturación: Recibe los ítems de facturación enviados por los Prestadores para su posterior validación por parte del Financiador. * Débitos: Retorna el resultado de la validación de los ítems de facturación que fueron enviados con anterioridad a través del servicio de Facturación. * Documentación de Respaldo: Servicio para transferir la documentación digitalizada que será referenciada en los trámites de facturación. Todos los servicios pueden trabajar con JSON o XML (según definición de FHIR), por defecto utiliza JSON, ya que con esta implementación, la información que se transmite es menor. Para seleccionar un formato u otro se debe definir el HEADER HTTP “Accept” en “application/xml” o “application/json”. \\ Además están securizados con oAuth2, con excepción del endpoint de Autenticación. ==== Endpoints Implementados ==== === Autenticación: === ''POST //auth'' * Se debe enviar el usuario y la password. La gestión del usuario lo realiza el Financiador. * Retorna token para utilizar en los endpoints restantes. El token tiene una validez establecida. Este servicio permite a las aplicaciones que deseen enviar información a un Financiador conectarse, autenticarse y obtener un token que habilita el acceso a los otros servicios. Ver bibliotecas que permiten la implementación de oAuth2 en [[http://oauth.net/2/|http://oauth.net/2/]] La secuencia es la siguiente: - El Cliente FHIR (CF) envía el pedido de token al servicio de autenticación (SA) con un usuario y password asignado por la organización que controla al servicio. - El servicio verifica el usuario y la password, devuelve al CF un token con una validez o vencimiento. - Mientras el token sea válido, el CF puede utilizar este token para acceder a los servicios de documentos, facturación, débitos, de acuerdo a sus roles asignados. El token se incluye en el header HTTPS de la solicitud al los diferentes servicios, según lo establecido por oAuth. - En caso que el usuario/password no sea válido, el servidor de autenticación devolverá error HTTP 401 (Unauthorized Access) . - Si el token no es válido o expiró, cualquiera de los servidores devolverá error HTTP 401. Ejemplos xml o json con parametros definidos en formato Raw: [[http://mais.dasu.com.ar/index.php|]] === Documentos === ''POST //documento'' * Se debe enviar una lista de objetos Binary (Documentos/CDA). * Retorna una lista de ID de objetos (Documentos/CDA) almacenados. Este servicio permite enviar al financiador la documentación de respaldo de la facturación, se puede tranferir los CDA recomendados por MAIS o documentos en cualquier otro formato. Estos documentos se pueden asociar a los ítems de facturación por medio de un ID o URL generada por el Financiador. El documento enviado se debe transformar al formato binario base 64. Ejemplos xml o json con parametros definidos en formato Raw: [[http://mais.dasu.com.ar/index.php|]] === Facturación === ''POST //facturacion'' * Se debe enviar los ítems de facturación en formato Bundle/Claim definido. * Retorna errores de formato del archivo, error de autenticación o un ID de trámite para ser consultado posteriormente. La validación de negocio de la información enviada es asincrónica. A este servicio se envían las transacciones de facturación desde los Prestadores hacia los Financiadores, que las procesan y devuelven el estado inicial de aceptación de cada renglón. La validación completa es asincrónica y la respuesta de esta validación se gestiona con el servicio de Débitos. Por pruebas realizadas, se recomienda enviar archivos no mayores a 1000 items, utilizando formato JSON. Ejemplos xml o json con parametros definidos en formato Raw: [[http://mais.dasu.com.ar/index.php|]] === Débitos === GET //debitos/fecha_rango// GET //debitos/nro_factura/ GET //debitos/transaccion/ Pedido de estado del análisis de los items de facturación., puede ser por fechas, número de factura o id de transacción. * Retorna los débitos con el formato definido Bundle/ClaimsResponse. * Por rango de fechas, retorna los débitos o una respuesta con el estado de los ítems contenidos en las facturas dentro del rango de fechas consultado. * Por número de factura retorna los débitos o una respuesta con el estado de los ítems contenidos en la factura consultada. * Por ID de transacción retorna los débitos o una respuesta con el estado de los ítems con el ID consultado. A este servicio los Prestadores envían las consultas para conocer el estado de los trámites y ver si hay débitos generados por los Financiadores. Retornará una lista con información del estado del trámite, (en proceso, en proceso con débitos, finalizado y finalizado con débitos). Ejemplos xml o json con parámetros definidos en formato Raw: [[http://mais.dasu.com.ar/index.php|]] === Diagrama de Secuencia de Uso de los Servicios === Comienzo del proceso de transferencia de Información: Facturación {{ https://www.mais.org.ar/storage/app/media/Arquitectura/Facturacion.jpg?nolink&695x628 |www.mais.org.ar_storage_app_media_arquitectura_facturacion.jpg}} Consulta de Débitos, al mes o a los 15 días. {{ https://www.mais.org.ar/storage/app/media/Arquitectura/Consulta-de-debitos.jpg?nolink&685x631 |www.mais.org.ar_storage_app_media_arquitectura_consulta-de-debitos.jpg}} === Documentación Adjunta === * Raw con los ejemplos de los posibles Request y Response de los diferentes endpoints. [[https://link|https://link]] * Servidor de para pruebas: [[https://link|https://link]] * Documentación en línea: [[http://|http://]] * Servidor de Prueba: [[http://|http://]]????? * Funetes del modelo [[https://github.com/mpielvitori/mais-fhir-conectathon|https://github.com/mpielvitori/mais-fhir-conectathon]].