Odontograma FDI, catálogo de servicios/procedimientos, plan de tratamiento por fases y receta. Los estados dentales se mantienen append-only: el historial no se elimina ni se sobrescribe.
Endpoints de este recurso. Cada endpoint se limita a los datos de la clínica a la que está vinculada la clave de la API; los endpoints de escritura admiten la cabecera Idempotency-Key.
/v1/patients/{id}/odontogram
Obtiene el odontograma FDI actual
Todos los roles autorizados
/v1/patients/{id}/odontogram
Añade un estado dental (append-only)
admin · médico
/v1/patients/{id}/odontogram/{tooth}/history
Obtiene el historial de estados de un diente
Todos los roles autorizados
/v1/services
Lista el catálogo de servicios/procedimientos
Todos los roles autorizados
/v1/services
Añade una línea de servicio
admin
/v1/services/{id}
Actualiza la línea de servicio
admin
/v1/patients/{id}/plans
Lista los planes de tratamiento del paciente
Todos los roles autorizados
/v1/patients/{id}/plans
Crea un plan de tratamiento
admin · médico
/v1/plans/{id}
Obtiene el detalle del plan de tratamiento
Todos los roles autorizados
/v1/plans/{id}/status
Cambia el estado del plan
admin · médico
/v1/plans/{id}/items
Añade una fase/línea al plan
admin · médico
/v1/plan-items/{id}/status
Cambia el estado de la línea del plan
admin · médico
/v1/patients/{id}/prescriptions
Lista las recetas
Todos los roles autorizados
/v1/patients/{id}/prescriptions
Crea una receta
admin · médico
Añadir estado dental (append-only)
curl -X POST https://api.udentiva.com/v1/patients/{id}/odontogram \
-H "Authorization: Bearer udk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tooth":"11","state":"caries","surface":"mesial"}'
HTTP/1.1 201 Created
{
"id": "st-77",
"tooth": "11",
"state": "caries",
"recorded_at": "2026-06-24T09:10:00Z"
}
La seguridad no es una función, es la propia arquitectura. Las garantías vigentes en este recurso:
Los errores se devuelven con un sobre coherente; el código va dirigido a la máquina, el mensaje al usuario. El error interno o el stack nunca se filtran.
{
"error": {
"code": "validation_failed",
"message": "Campo no válido: correo electrónico"
}
}
We use cookies necessary for core functionality; analytics and marketing cookies are enabled only with your consent. Política de cookies