Modelo de Dominio
El éxito de este ecosistema radica en la separación de identidades: desacoplamos al profesional de la salud de la infraestructura física donde opera. El modelo es polimórfico y modular, permitiendo que servicios como Farmacias o Laboratorios de diagnóstico coexistan bajo una misma estructura lógica, pudiendo activarse o desactivarse según las necesidades del negocio sin comprometer la integridad del sistema.
Convención: en documentación funcional se usa Profesional de la Salud. En código/API se conserva el alias técnico
DOCTORpor compatibilidad (doctor_profiles,/api/v1/doctors).
1. El Profesional de la Salud
Representa al individuo prestador de servicios médicos. Su identidad es autónoma, única y persiste independientemente de las entidades donde colabore.
- Identificador Único: Número de Colegiado (Llave primaria de identidad profesional).
- Atributos Principales:
- Nombre completo
- Especialidad Jerárquica (Relación con el catálogo de Taxonomía Médica).
- Biografía profesional y perfil académico (Maestrías, Postgrados).
- Rating acumulado (basado en reseñas verificadas).
Status_Validacion: (Verificado / Pendiente / Suspendido).
- Regla de Independencia: Un Profesional de la Salud no "pertenece" a una clínica; se afilia a una o varias sedes para prestar servicios. El perfil profesional es propiedad del individuo. Si el profesional cambia de sede, su reputación e historial migran con él.
2. Entidades de Salud (Estructura Modular de Sedes)
Representan los puntos físicos de atención o servicio (Sedes). Utilizamos un modelo de Entidad Base con atributos dinámicos para una arquitectura escalable.
A. Atributos Comunes (Base Entity)
Tipo_Entidad: (Discriminador: CLINICA, LABORATORIO, FARMACIA).Nombre_ComercialyRazón_Social.Ubicación: Ubicación Normalizada (Relación jarárquica con el catálogo de Geografía) y Coordenadas GPS (Lat/Lng).Dirección_Exacta: Texto complementario a la ubicación de catálogo.Horarios_Sede: Gestión de franjas horarias por día.Métodos_Pago: (Efectivo, Tarjeta, Seguro, Transferencia).Idiomas_Atencion: (Español, Inglés, Lenguas Mayas/Indígenas).Multimedia: Galería de fotos del establecimiento y amenidades (Parqueo, Wi-Fi, Accesibilidad).
B. Atributos Específicos por Módulo (Extensibilidad)
| Tipo | Atributos Especializados (Dinámicos) |
|---|---|
| Clínica / Sede | Emergencias 24h, Quirófanos, Disponibilidad de especialistas afiliados. |
| Laboratorio | Toma de muestras a domicilio, Resultados en línea, Certificaciones Sanitarias. |
| Farmacia | Servicio a domicilio (Delivery), Drive-thru, Turnos 24h, WhatsApp directo para recetas. |
3. Dominios de Soporte: Catálogos Maestros
Son la "fuente de verdad" que garantiza que el Buscador y los Filtros funcionen sin errores de integridad.
3.1 Geografía Jerárquica (The Where)
Estructura canónica de 3 niveles para garantizar consistencia multi-país:
- País (Nivel 0)
- Región (Nivel 1, etiqueta visual: Departamento/Estado/Provincia)
- Localidad (Nivel 2, etiqueta visual: Municipio/Ciudad/Partido)
3.2 Taxonomía Médica (The What)
Estructura de 2 niveles para normalizar la oferta de servicios:
- Área Médica (Ej. Salud Mental)
- Especialidad (Ej. Psiquiatría)
4. El Paciente (Usuario Final / Cliente)
Consumidor de los servicios. Su perfil optimiza la búsqueda basada en su contexto financiero y familiar.
- Atributos de Identidad: Nombre, Correo, Teléfono verificado (OTP).
- Atributos de Salud:
Seguro_Primario: Relación con la Aseguradora para pre-filtrar resultados de red.Póliza_ID: Número de carné para agilizar validaciones en sedes.Ubicaciones_Frecuentes: (Casa, Trabajo) para cálculos de cercanía relativa.Favoritos: Marcadores persistentes de Profesionales de la Salud y Sedes.
- Gestión Familiar:
Dependientes: Capacidad de gestionar perfiles de hijos o adultos mayores bajo una cuenta principal.
5. Aseguradora (Dominio de Validación y Convenios)
La Aseguradora se define como un Ente Financiero Externo. No es una "Entidad de Salud" física, sino un catálogo de reglas de cobertura.
- Atributos: Nombre, Logo, Planes de Cobertura, API/Método de validación de elegibilidad.
- Diferenciación Técnica: No posee geolocalización propia; actúa como el filtro maestro en la Validación Triple.
- Gestión: Requiere un perfil de
Seguro_Adminpara gestionar la red de proveedores acreditados.
6. Lógica de Gobernanza y Propiedad
El sistema resuelve la complejidad del ejercicio profesional mediante la asignación de roles de propiedad sobre las Sedes.
6.1 Escenario Independiente (Consultorio Propio)
- Vínculo: El
User_Doctor(alias técnico) posee el rol de Owner sobre su propia Sede. (Doctor_ID==Sede_Owner_ID). - Comportamiento: La reputación de la Sede y del Profesional están ligados por propiedad. Los convenios de seguros son gestionados directamente por el Profesional y se aplican a su sede única.
6.2 Escenario Corporativo (Clínica Multi-especialidad / Hospital)
- Vínculo: Una
Organización(Persona Jurídica) administra una o varias Sedes (Organización_IDposeeSedes_IDs). - Gestión de Staff: Los profesionales se afilian a la Sede mediante una relación de horarios y consultorios (Tabla intermedia de Afiliación).
- Lógica de Seguros: La sede puede tener convenios institucionales (infraestructura) o permitir que cada médico use sus acreditaciones.
7. Diccionario de Relaciones
7.1 Relaciones de Integridad (Master Data)
- Localización (Sede ↔ Geografía): Una sede debe estar vinculada obligatoriamente a un nodo de nivel 2 (Localidad) y su árbol padre (Región/País).
- Especialidad (Profesional ↔ Taxonomía): Un profesional de la salud debe estar vinculado a una o más especialidades del catálogo oficial.
7.2 Relaciones Operativas y de Control
- Validación Triple: Intersección en tiempo real entre
Profesional,SedeySeguro. - Auditoría (Admin ↔ Dominios): El Administrador de la Plataforma es el único con permiso para modificar las jerarquías de los catálogos.
7.3 Relaciones Clínico-Legales
- Afiliación (Profesional ↔ Sede): Vínculo operativo que define disponibilidad y ubicación (N:N con atributos de horarios).
- Acreditación (Profesional <-> Aseguradora): Indica que el profesional pertenece a la red de la aseguradora.
- Convenio (Sede <-> Aseguradora): Indica que la infraestructura acepta pagos directos o trámites de la aseguradora.
7.4 Relaciones de Usuario y Servicio
- Reseña (Paciente → Profesional/Sede): Calificación validada. Regla: Si es negativa, requiere evidencia (comprobante) para validación del administrador.
- Parentesco (Paciente ↔ Paciente): Relación jerárquica para la gestión de dependientes.
- Consentimiento (Paciente ↔ Profesional): Registro de autorización de acceso a datos de contacto/historial básico.
7.5 Relaciones Operativas (Flujo de Salud)
- Referencia (Profesional → Paciente → Lab/Sede): Emisión de órdenes diagnósticas o interconsultas.
- Receta (Profesional → Paciente → Farmacia): Vínculo para el despacho digital de medicamentos.
7.6 Relaciones de Control y Auditoría (Administrativo)
Este bloque define la autoridad sobre los datos y la moderación del ecosistema.
- Auditoría (Plataforma Admin → Profesional/Sede): Validación legal de credenciales para activación de perfiles.
- Moderación (Plataforma Admin → Reseña): Facultad de gestionar disputas sobre calificaciones.
- Ownership (Usuario Owner ↔ Sede): Responsabilidad legal y comercial de la data de una clínica.
8. El Administrador de la Plataforma (System Actor)
Entidad interna encargada de la integridad del ecosistema y el mantenimiento de los estándares de servicio (SLA - Service Level Agreement).
- Atributos: ID del empleado, Nivel de acceso (
SUPERADMIN/CATALOG_ADMIN), Logs de auditoría. - Responsabilidad:
- Curaduría de Datos: Validación de colegiados médicos y NITs de entidades.
- Gestión de Catálogos: Control maestro de especialidades, aseguradoras y taxonomías.
- Gobernanza Técnica: Control del
Registry de Módulospara habilitar/deshabilitar funcionalidades.
9. Diseño Técnico para la Escalabilidad
- Polimorfismo: El buscador trata a todas las Sedes como objetos base, permitiendo búsquedas transversales filtradas por el discriminador
type. - Registry de Módulos (Feature Flags): Los módulos (Farmacia, Lab) pueden moverse visual y lógicamente desactivando su visibilidad en el Registry, sin alterar el esquema de base de datos.
- Atributos Dinámicos (JSONB): Uso de almacenamiento no relacional dentro de SQL para campos específicos de industria, evitando migraciones constantes de tablas.
- Validación Triple: Algoritmo que intersecta la consulta en tiempo real:
Profesional.Acreditado && Sede.Convenio && Seguro.Activo. - Normalización Estricta: Se elimina el uso de texto libre para ciudades o especialidades en los formularios de registro para evitar basura en la base de datos.
- Persistencia Polimórfica: El buscador trata a todas las Sedes como objetos base, filtrando por el discriminador
type. - Registry de Módulos: Permite "apagar" módulos enteros (ej. Farmacia) sin afectar la integridad de los catálogos geográficos.