clinica-dental/docs/_quick/QUICK-API.yml
2026-01-16 04:14:26 -06:00

158 lines
6.5 KiB
YAML

# Navegacion Rapida de API
# Proyecto: clinica-dental
version: "1.0.0"
proyecto: "clinica-dental"
fecha_creacion: "2026-01-16"
estado: "planificado"
# ============================================================================
# ENDPOINTS PLANIFICADOS POR MODULO
# ============================================================================
por_modulo:
odontograma:
base: "/api/v1/dental/odontogramas"
estado: "planificado"
endpoints:
- { method: "POST", path: "/", descripcion: "Crear odontograma" }
- { method: "GET", path: "/paciente/:patientId", descripcion: "Obtener odontograma activo" }
- { method: "GET", path: "/paciente/:patientId/historial", descripcion: "Historial de odontogramas" }
- { method: "PATCH", path: "/:id/pieza", descripcion: "Actualizar estado de pieza" }
- { method: "GET", path: "/:id", descripcion: "Obtener odontograma por ID" }
tratamientos:
base: "/api/v1/dental/tratamientos"
estado: "planificado"
endpoints:
- { method: "GET", path: "/catalogo", descripcion: "Listar catalogo de tratamientos" }
- { method: "POST", path: "/catalogo", descripcion: "Crear tratamiento en catalogo" }
- { method: "POST", path: "/", descripcion: "Registrar tratamiento a paciente" }
- { method: "GET", path: "/paciente/:patientId", descripcion: "Tratamientos de paciente" }
- { method: "PATCH", path: "/:id/completar", descripcion: "Marcar como completado" }
- { method: "GET", path: "/pendientes", descripcion: "Tratamientos pendientes" }
ortodoncia:
base: "/api/v1/dental/ortodoncia"
estado: "planificado"
endpoints:
- { method: "POST", path: "/", descripcion: "Crear caso de ortodoncia" }
- { method: "GET", path: "/paciente/:patientId", descripcion: "Casos de ortodoncia del paciente" }
- { method: "GET", path: "/:id", descripcion: "Detalle de caso" }
- { method: "POST", path: "/:id/citas", descripcion: "Registrar cita de seguimiento" }
- { method: "GET", path: "/:id/citas", descripcion: "Historial de citas" }
- { method: "PATCH", path: "/:id/completar", descripcion: "Finalizar tratamiento" }
protesis:
base: "/api/v1/dental/protesis"
estado: "planificado"
endpoints:
- { method: "POST", path: "/", descripcion: "Crear trabajo protesico" }
- { method: "GET", path: "/paciente/:patientId", descripcion: "Protesis del paciente" }
- { method: "GET", path: "/:id", descripcion: "Detalle de protesis" }
- { method: "PATCH", path: "/:id/laboratorio", descripcion: "Actualizar estado laboratorio" }
- { method: "PATCH", path: "/:id/colocar", descripcion: "Registrar colocacion" }
radiografias:
base: "/api/v1/dental/radiografias"
estado: "planificado"
endpoints:
- { method: "POST", path: "/", descripcion: "Subir radiografia" }
- { method: "GET", path: "/paciente/:patientId", descripcion: "Radiografias del paciente" }
- { method: "GET", path: "/:id", descripcion: "Detalle de radiografia" }
- { method: "PATCH", path: "/:id/interpretacion", descripcion: "Agregar interpretacion" }
presupuestos:
base: "/api/v1/dental/presupuestos"
estado: "planificado"
endpoints:
- { method: "POST", path: "/", descripcion: "Crear presupuesto" }
- { method: "GET", path: "/paciente/:patientId", descripcion: "Presupuestos del paciente" }
- { method: "GET", path: "/:id", descripcion: "Detalle de presupuesto" }
- { method: "PATCH", path: "/:id/aprobar", descripcion: "Aprobar presupuesto" }
- { method: "PATCH", path: "/:id/rechazar", descripcion: "Rechazar presupuesto" }
- { method: "GET", path: "/:id/pdf", descripcion: "Generar PDF" }
- { method: "POST", path: "/:id/convertir", descripcion: "Convertir a tratamientos" }
# ============================================================================
# ENDPOINTS HEREDADOS
# ============================================================================
heredados:
erp_clinicas:
pacientes:
base: "/api/v1/patients"
heredado_de: "erp-clinicas"
citas:
base: "/api/v1/appointments"
heredado_de: "erp-clinicas"
consultas:
base: "/api/v1/consultations"
heredado_de: "erp-clinicas"
erp_core:
auth:
base: "/api/v1/auth"
heredado_de: "erp-core"
users:
base: "/api/v1/users"
heredado_de: "erp-core"
tenants:
base: "/api/v1/tenants"
heredado_de: "erp-core"
# ============================================================================
# ENDPOINTS POR METODO (Planificados)
# ============================================================================
por_metodo:
GET:
- "/api/v1/dental/odontogramas/paciente/:patientId"
- "/api/v1/dental/tratamientos/catalogo"
- "/api/v1/dental/tratamientos/paciente/:patientId"
- "/api/v1/dental/ortodoncia/paciente/:patientId"
- "/api/v1/dental/protesis/paciente/:patientId"
- "/api/v1/dental/radiografias/paciente/:patientId"
- "/api/v1/dental/presupuestos/paciente/:patientId"
POST:
- "/api/v1/dental/odontogramas"
- "/api/v1/dental/tratamientos"
- "/api/v1/dental/tratamientos/catalogo"
- "/api/v1/dental/ortodoncia"
- "/api/v1/dental/protesis"
- "/api/v1/dental/radiografias"
- "/api/v1/dental/presupuestos"
PATCH:
- "/api/v1/dental/odontogramas/:id/pieza"
- "/api/v1/dental/tratamientos/:id/completar"
- "/api/v1/dental/ortodoncia/:id/completar"
- "/api/v1/dental/presupuestos/:id/aprobar"
# ============================================================================
# AUTENTICACION
# ============================================================================
autenticacion:
tipo: "JWT Bearer"
header: "Authorization"
formato: "Bearer {token}"
endpoints_publicos:
- "/api/v1/auth/login"
- "/api/v1/auth/register"
- "/api/v1/health"
# ============================================================================
# ERRORES COMUNES
# ============================================================================
errores:
400: "Bad Request - Datos invalidos"
401: "Unauthorized - Token invalido o expirado"
403: "Forbidden - Sin permisos"
404: "Not Found - Recurso no encontrado"
422: "Unprocessable Entity - Validacion fallida"
500: "Internal Server Error"
# ============================================================================
# REFERENCIAS
# ============================================================================
referencias:
swagger: "/api/docs"
services: "@PROJ_DEF_SERVICES"
modules: "@PROJ_DEF_MODULES"