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/)
- Los servicios definidos, fueron consensuados bajo el contexto de transferencia entre Prestadores y Financiadores.
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 /<context>/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/
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 /<context>/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 /<context>/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 /<context>/debitos/fecha_rango/<desde (ddMMyyyy)>/<hasta (ddMMyyyy)> GET /<context>/debitos/nro_factura/<nro_factura (Letra%20Delegación%20Número)> GET /<context>/debitos/transaccion/<ID Transacción (ID que retorna servicio de facturación)>
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
Consulta de Débitos, al mes o a los 15 días.
Documentación Adjunta
- Raw con los ejemplos de los posibles Request y Response de los diferentes endpoints. https://link
- Servidor de para pruebas: https://link
- Documentación en línea: http://
- Servidor de Prueba: http://?????
- Funetes del modelo https://github.com/mpielvitori/mais-fhir-conectathon.