Dashboard del Profesional
1. Definición y Propósito
Portal operativo donde el profesional de la salud gestiona su agenda, perfil público, acreditaciones y reseñas.
2. Lógica Visual y de Procesos
2.1 Board Miro (referencia visual)
2.2 Flujo Lógico Canonico
Resumen textual (fallback)
- Home: resumen de citas de hoy, alertas de acreditación y reseñas pendientes.
- Agenda: vista semanal; acciones confirmar/cancelar/reagendar.
- Perfil: edición de bio, especialidades, horarios, seguros; requiere aprobación para publicar cambios críticos.
- Reseñas: moderación de respuestas a reseñas (sin editar rating).
- Acreditaciones: subir credenciales y ver estado (PENDING/APPROVED/REJECTED).
- Blog profesional: crear/listar/editar/eliminar artículos visibles en perfil público.
Evidencia visual
- Fuente canonica: diagrama Mermaid de esta seccion.
- Si UX adjunta board Miro, se referencia como anexo no contractual.
3. Actores y Permisos (RBAC)
| Actor | Permisos |
|---|---|
Profesional de la Salud (DOCTOR) | Edita su perfil, horarios y responde reseñas propias. Roles son acumulativos: puede conservar PATIENT y, si gestiona sedes, también ENTITY_ADMIN. |
| Admin | Aprueba cambios críticos (especialidades, seguros), fuerza bloqueos. |
4. Reglas de Negocio (BR)
- BR-DD-01: Cambios en especialidades o seguros requieren aprobación de Admin antes de ser públicos.
- BR-DD-02: Slots bloqueados en agenda no afectan citas ya confirmadas.
- BR-DD-03: Respuesta a reseñas no puede modificar rating; solo un comentario por reseña.
- BR-DD-04: El perfil profesional debe incluir
professional_prefixpara construirdisplay_namepúblico (Dr.,Dra.,Enf.,Lic., etc.).
Catálogo sugerido de prefijos profesionales
| Código | Etiqueta UI | Uso recomendado |
|---|---|---|
DR | Dr. | Medicina general y especialidades médicas. |
DRA | Dra. | Medicina general y especialidades médicas. |
ENF | Enf. | Enfermería. |
LIC | Lic. | Psicología clínica, nutrición u otras licenciaturas de salud. |
ODONT | Odont. | Odontología. |
PSIC | Psic. | Psicología/Psicoterapia. |
NUT | Nut. | Nutrición clínica/deportiva. |
FISIO | Fisio. | Fisioterapia/Rehabilitación. |
QF | Q.F. | Químico farmacéutico. |
TEC | Tec. | Técnicos de salud autorizados. |
5. Endpoints (referencia OpenAPI)
| Recurso | Método | Descripción |
|---|---|---|
/api/v1/appointments | GET | Lista citas del profesional de la salud (filtro role=DOCTOR). |
/api/v1/appointments/{id} | PATCH | Confirmar/Cancelar/Reagendar. |
/api/v1/profiles/doctor | PATCH | Actualizar perfil (pendiente aprobación). |
/api/v1/doctor-accreditations | POST | Subir acreditación. |
/api/v1/reviews | GET | Listar reseñas del profesional de la salud. |
/api/v1/availability/schedules | PUT | Actualizar horarios base del profesional. |
/api/v1/availability/blocks | POST | Crear bloqueos de agenda (vacaciones/emergencias). |
/api/v1/professional/coupons | POST | Crear cupón profesional. |
/api/v1/professional/coupons/{id} | PATCH | Editar cupón profesional. |
/api/v1/professional/posts | GET/POST | Listar/crear artículos del profesional. |
/api/v1/professional/posts/{id} | PATCH/DELETE | Editar/eliminar artículo del profesional. |
Implementación Backend (Go, DDD + Clean Architecture):
- Handlers en
interfaces/http/doctormapean DTOs a use casesListDoctorAppointments,UpdateDoctorProfile,SubmitAccreditation,RespondReviewenapplication/doctor. - Repos
AppointmentRepo,DoctorRepo,AccreditationRepo,ReviewRepocomo interfaces; implementaciones eninfrastructure/persistence(Postgres) yinfrastructure/cache. - DTOs de OpenAPI son de interfaz; modelos de dominio permanecen aislados de persistencia.
- Nomenclatura completa: ver
arquitectura-y-despliegue.md§7.1.
Auditoría
- Emitir eventos
DOCTOR_PROFILE_UPDATEDyDOCTOR_PROFILE_APPROVED/REJECTEDconchanged_by, timestamp, IP/UA.
6. Métricas y Observabilidad
- P95 de carga de dashboard < 400ms (datos cacheados).
- Tasa de reseñas respondidas vs totales.
- Ratio de citas confirmadas vs no-show por profesional.
- Trazas con
trace_id,doctor_id,appointment_iden acciones de agenda y perfil.
7. Casos de Borde y Manejo de Errores
- Cambio de especialidad/seguro sin aprobación → estado
PENDING_APPROVAL, no publica. - Reagendar cita fuera de disponibilidad → 409.
- Intento de responder reseña ajena → 403.
- Acreditación duplicada → 409.
- Subida de archivo de acreditación con MIME/peso inválido → 422.
- Doble submit en acreditación → idempotencia por
hashde archivo.
8. Checklist de QA / Testing
- Lista citas (role=DOCTOR) respeta filtro estado y paginación.
- Confirmar/Cancelar/Reagendar actualiza estado y libera slot.
- Perfil: cambios críticos quedan pendientes hasta aprobación admin.
- Subida de acreditación almacena archivo y crea registro en
doctor_accreditations. - Respuesta a reseña no altera rating y se guarda una sola vez.
- Validar rechazo por MIME/peso de archivo; doble submit idempotente.
9. Requerimientos No Funcionales (NFR)
dashboard_load_p95< 400ms; cache hit >80% en widgets.- Disponibilidad 99.9% para lecturas; escrituras pueden tener colas cortas.
10. Variables de Entorno (Front)
VITE_API_BASE=https://api.example.com/api/v1VITE_DASH_DOC_PAGE_SIZE=20
11. Accesibilidad (A11y)
- Tablas de citas navegables con teclado y encabezados accesibles.
- Alertas de estado (confirmación/cancelación) con
aria-live.
12. Control de Abuso/Fraude
- Throttling en cambios de perfil y acreditaciones para evitar spam.
- Validar MIME/peso de archivos de acreditación.
13. Métricas de Producto (Funnel)
- Citas vistas → citas confirmadas → citas atendidas.
- % reseñas respondidas, tiempo medio de respuesta.
14. Enlaces y Trazabilidad
- Swagger UI:
/swagger.html(acceso desde/swagger) y contrato YAML en/openapi.yaml. - Relacionados:
agenda-citas.md,admin-catalogos.md(especialidades/seguros),esquema-de-base-de-datos.md(tablas de profesional/acreditaciones),arquitectura-y-seguridad.md(observabilidad).
15. Dependencias
appointments,doctor_accreditations,reviews,file_assets.