Ir al contenido

API routes

EMA Clinic expone 53 rutas API agrupadas en quince dominios funcionales. Todas requieren Authorization: Bearer <jwt> salvo las marcadas explícitamente como públicas. La autorización por rol se aplica a nivel de handler con requireRole(...), lo que permite que cada endpoint declare su propio allowlist en lugar de depender de un patrón monolítico de RBAC. Esta página presenta el inventario completo agrupado por dominio.

MétodoPathAuthRolQué hace
POST/auth/loginpúblicoEmail + password
POST/auth/login-googlepúblicoOAuth Google
POST/auth/login-microsoftpúblicoOAuth Microsoft
POST/auth/logoutbearercualquieraInvalida sesión
POST/auth/callback/:providerpúblicoCallback OAuth
POST/auth/refreshbearercualquieraRefresh token
POST/auth/reset-passwordpúblicoFlow reset password
GET/api/auth-config/:slugpúblicoConfig auth providers del tenant (F122)
MétodoPathRolQué hace
GET/api/patientsmedico, enfermera, secretaria, adminList paginada (filtros)
POST/api/patientsmedico, enfermera, secretaria, adminCrear
GET/api/patients/:idmedico, enfermera, secretaria, adminDetalle (demo + history)
PATCH/api/patients/:idmedico, secretaria, adminActualizar demografía
DELETE/api/patients/:idadminSoft delete
MétodoPathRolQué hace
GET/api/encountersmedico, enfermera, secretaria, adminWorklist (status filters)
POST/api/encounterssecretaria, adminCrear (de Appointment o ad-hoc)
GET/api/encounters/:idmedico, enfermera, profesional, adminDetalle + diagnóstico + obs
PATCH/api/encounters/:idmedico, profesionalUpdate status, agregar diagnosis
POST/api/encounters/:id/close-validationmedicoPre-close validation (state machine)
MétodoPathRolQué hace
GET/api/schedulecualquieraList schedules
GET/api/schedule/:idcualquieraDetail + availability
POST/api/schedule/$findcualquieraFind slots (multi-actor intersection)
GET/api/appointmentscualquieraList appointments
POST/api/appointmentssecretaria, medico, adminCrear
GET/api/appointments/:idcualquieraDetalle
PATCH/api/appointments/:idsecretaria, medico, adminUpdate status, slot
POST/api/appointments/:id/cancelsecretaria, medico, adminCancel + exception queue
GET/api/schedulesadminCRUD schedules
POST/api/schedules/generate-slotsadminGenerate from RRULE pattern (F101)
POST/api/schedules/:id/overridesadminCrear override
GET/api/schedules/:id/exceptionsadminRescheduling queue
MétodoPathRolQué hace
GET/api/invoicescajero, adminList (filtros)
POST/api/invoicescajero, adminCrear (desde encounter)
GET/api/invoices/:idcajero, adminDetalle
PATCH/api/invoices/:idcajero, adminUpdate status (draft→issued→balanced)
POST/api/caja/movementscajeroLog cash movement
GET/api/caja/movementscajero, adminList (date range, method)
GET/api/caja/reconciliationcajero, adminDaily reconciliation report
POST/api/pricing/computecualquieraCompute price (test endpoint)
GET/api/healthcare-servicescualquieraServicios agendables (pricing anchor, F78)
MétodoPathRolQué hace
GET/api/service-requestsmedico, enfermera, profesionalList orders
POST/api/service-requestsmedico, profesionalCrear (standalone)
POST/api/service-requests/from-catalogmedico, profesionalCrear desde ActivityDefinition / order-set (F111)
GET/api/service-requests/:idmedico, enfermera, profesionalDetalle
PATCH/api/service-requests/:idmedico, profesionalUpdate status, add result reference
GET/api/activity-definitionsmedico, profesionalCatalog (lab, imaging, procedures)
GET/api/diagnostic-reportsmedico, enfermera, profesionalResults list
POST/api/diagnostic-reportssistema (HL7v2 integration)Crear report

Patologías priorizadas y notificación obligatoria

Sección titulada «Patologías priorizadas y notificación obligatoria»

Estos endpoints implementan los flujos del plug-in regulatorio del país operativo. Los nombres de ruta —ges, eno— corresponden a los catálogos chilenos productivos; en otros países, el plug-in correspondiente reemplaza el contenido de los catálogos manteniendo la misma estructura de endpoints.

MétodoPathRolQué hace
GET/api/gesmedico, adminList de patología priorizada (screenings y declaraciones)
POST/api/ges/declaremedicoDeclarar (Flag, Communication y Task)
GET/api/ges/:idmedico, adminDetalle de declaración
GET/api/eno/notificationsmedico, adminNotificaciones obligatorias (Task list, F63)
POST/api/eno/notifymedicoCrear notificación obligatoria
MétodoPathRolQué hace
GET/api/conditionsmedico, profesionalConditions del paciente
POST/api/conditionsmedico, profesional · sistemaCrear (usualmente auto-detection)
GET/api/conditions/:idmedico, profesionalDetalle
PATCH/api/conditions/:idmedicoUpdate verificationStatus (provisional→confirmed)
MétodoPathRolQué hace
GET/api/medicationsmedico, profesionalCatálogo + autocomplete
GET/api/prescriptionsmedico, profesionalPrescripciones del paciente
POST/api/prescriptionsmedico, profesionalCrear (MedicationRequest)
PATCH/api/prescriptions/:idmedico, profesionalUpdate
MétodoPathRolQué hace
GET/api/settings/profilecualquieraPerfil del usuario actual
PATCH/api/settings/profilecualquieraUpdate propio perfil
GET/api/settings/usersadminList users del tenant
POST/api/settings/usersadminInvite user
PATCH/api/settings/users/:idadminUpdate rol
DELETE/api/settings/users/:idadminDeactivate user
GET/api/settings/organizationcualquieraTenant config (read open)
PATCH/api/settings/organizationadminUpdate org config
MétodoPathRolQué hace
GET/api/questionnairesmedico, profesionalList (GES + custom)
GET/api/questionnaires/:idmedico, profesionalDetail + structure
POST/api/questionnaire-responsesmedico, profesionalSubmit response (F60, extract.ts procesa)
MétodoPathRolQué hace
GET/api/dashboardcualquieraAggregate stats (widgets filtrados por rol)
GET/api/reports/auditadminAudit log export
GET/api/reports/cash-reconciliationcajero, adminCaja report
GET/api/reports/ges-declarationsadminGES report
GET/api/reports/remadminReporte estadístico mensual a la autoridad sanitaria del país (en Chile, REM al MINSAL — Excel, F207)
MétodoPathAuthRolQué hace
POST/api/public/booking/:slug/*públicoBooking público (Hono nested router, scoped por slug)
POST/api/portal/auth/signinpúblicoOTP login (paciente)
GET/api/portal/data/meOTP tokenpacientePerfil del paciente
GET/api/portal/data/appointmentsOTP tokenpacienteSus appointments
GET/api/portal/data/resultsOTP tokenpacienteSus lab/imaging results
MétodoPathRolQué hace
POST/api/emi/chatcualquieraProxy a emi.emahealth.io (S9 v2.0)
GET/api/emi/accesscualquieraCheck tenant_emi_access.is_active

Los endpoints de facturación electrónica delegan al worker emadte la integración con el organismo fiscal del país (en Chile, el SII; en otros países, el equivalente). Vault gestiona la configuración fiscal por tenant y Clinic invoca a emadte con la API key correspondiente.

MétodoPathRolQué hace
POST/api/dte/issuecajero, adminEmitir documento fiscal (llama emadte worker)
GET/api/dte/status/:documentIdcajero, adminVerificar estado del documento
MétodoPathAuthQué hace
POST/api/platform/tenantsX-Platform-KeyProvisioning de tenant (desde emavault)
POST/api/platform/tenants/:id/aidbox-credentialsX-Platform-KeyAlmacenar credenciales encriptadas (S9)
MétodoPathAuthQué hace
GET/api/healthpúblicoHealth check
GET/api/configpúblicoPublic Supabase config (bootstrap SPA)