Notificación de recetas
Cuando un médico genera una receta electrónica, esta pasa por diferentes etapas, y en cada una de ellas Osigu puede generar una notificación, estas etapas son:
- Receta emitida
- PDF de receta generado
- PDF de receta firmada electrónicamente
- Envío de receta al paciente
- Receta anulada
Para esta funcionalidad, el cliente deberá proveer de un servicio web que actué como webhook y este deberá de cumplir con las siguientes características:
Ambientes
El cliente deberá proveer a Osigu de dos ambientes, un ambiente de pruebas o sandbox y un ambiente productivo. La conexión a los dos ambientes únicamente puede darse únicamente bajo el protocolo HTTPS.
Autenticación
Para consumir el servicio web debe de existir un mecanismo de autenticación a través de un header y un valor determinado por cliente. El cliente deberá proveer para la autenticación en cada uno de los ambientes lo siguiente:
- Nombre del header
- API token a utilizar
Request y Request Body
El verbo HTTP a utilizar es POST, y el servicio a consumir por parte de Osigu debe de tener los siguientes atributos, estos no pueden variar en ninguna forma de nombre o de tipo. Osigu enviará la información dentro del request body como JSON codificado en UTF8.
Nombre | Tipo | Descripción |
|---|---|---|
event | String, requerido | Tipo de evento que se esta notificando. Los posibles eventos son: |
prescription_id | Long, requerido | ID de la receta electrónica asignada por Osigu. |
prescription_document_id | String, requerido | Código alfanumérico del documento. |
prescription_document_code | String, requerido | Código alfanumérico del documento. |
type | String, requerido | Indica si el evento es sobre una receta de medicamentos, indicación de exámenes de diagnóstico o bien de procedimientos médicos. Los posibles valores son |
doctor_id | Long, requerido | Identificador del doctor que ha generado la receta. Este es el identificador asignado por Osigu. |
external_provider_id | String, opcional | Identificador externo del doctor, si el cliente no provee este dato durante el proceso de registro del médico, este valor será NULO. |
created_at | String | Fecha en que ocurrió el evento, esta cadena de texto contiene la fecha en formato ISO 8601. |
{
"event": "PRESCRIPTION_CREATED",
"prescription_id": 3902,
"prescription_document_id": 23940,
"prescription_document_code": "RC-234ABV3J",
"type": "PRESCRIPTION",
"doctor_id": 223,
"external_provider_id": "ea6d5dca-ae1b-4ca0-a565-818d9791094a",
"created_at": "2022-06-02T09:00:20.382Z"
}HTTP Code y Response Body
El servicio debe de responder con los siguientes códigos HTTP y cuerpos de la respuesta.
HTTP 204
Se debe de utilizar este código cuando la notificación ha sido exitosa, este código indica que no se obtiene ningún dato adicional en el response body.
HTTP 4xx
Todos los errores a la hora de consumir el servicio que ha ocurrido por un error en la solicitud, deberán retornar cualquiera de los códigos 4xx. Por ejemplo un 400 si el JSON esta mal formado o un 401 si la autenticación fue fallida.
Cualquiera de los códigos 4xx debe de incluir el siguiente cuerpo de respuesta.
Nombre | Tipo | Descripción |
|---|---|---|
code | String, requerido | Código de error del cliente. Este código de error será utilizado para casos de soporte durante la implementación o errores obtenidos ya en la puesta en producción. |
message | String, requerido | Mensaje correspondiente al código de error recibido. |
{
"code": "3920-A39",
"message": "Authentication failed"
}HTTP 5xx
Cualquier respuesta 5xx indicará un error no controlado por parte del cliente y las notificaciones que obtengan este tipo de error entrarán al sistema de colas para realizar hasta 10 re-intentos con diferencia de minutos en cada uno.
Al igual que los códigos 4xx, estos mensajes de error deben de contener un campo de código y uno de mensaje los cuales pueden ser útiles para temas de soporte.
Eventos
Los eventos a ser notificados son:
Evento | Descripción |
|---|---|
PRESCRIPTION_CREATED | Este evento se emite cuando una receta ha sido recientemente creada por el médico, pero el documento PDF que se envía al paciente aún no esta listo. |
PDF_RENDERED | El documento PDF de la receta ha sido generado, en este punto la receta ya puede descargarse. Los países cuya regulación requieren una receta electrónica, en este punto el documento no es válido para su dispensación. |
PDF_SIGNED | El documento PDF de la receta ha sido firmado electrónicamente y esta listo para ser enviado al paciente. Este evento solo se emite para aquellos países donde la regulación requiere de una firma electrónica. |
EMAIL_SENT | El correo electrónico al paciente ha sido enviado, este evento sucede posterior a la solicitud que se realiza al sistema de envíos de correo. |
PRESCRIPTION_VOIDED | Este evento se emite cuando el doctor ha anulado una receta. |
Updated 10 months ago
