# 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"