# Catálogos del laboratorio Los módulos que administran las tablas maestras. Se agrupan acá porque comparten la misma forma: una pantalla de listado con alta, edición y baja sobre una tabla. ## Los módulos | Módulo | Tabla principal | Qué administra | |---|---|---| | `lab_examenes` | `exam_tipos` | Catálogo de exámenes, valores de referencia y tarifas | | `medicos` | `medicos` | Médicos solicitantes | | `lab_pacientes` | `lab_pacientes` | Fichas clínicas e historial | | `lab_enfermeras` | `lab_enfermeras` | Personal clínico | | `lab_eps` | `lab_eps` | EPS y aseguradoras | | `lab_empresas` | `lab_empresas` | Empresas, convenios, subgrupos y tarifas | | `lab_ciudades` | `lab_ciudades` | Ciudades de pacientes | | `usuarios` | `admin_users`, `roles` | Usuarios y asignación de roles | ## Los que tienen endpoints propios La mayoría son puentes al sistema anterior. Dos tienen código propio: ### `lab_examenes` | Endpoint | Qué hace | |---|---| | `list.php` / `get.php` | Listado y detalle | | `save.php` | Alta y edición del examen | | `save_item.php` | Ítems que componen un examen | | `get_tarifas.php` / `save_tarifa.php` | Tarifas por empresa o convenio | Es el catálogo del que dependen el turnero y el registro de exámenes. Un examen mal configurado se propaga a todo lo demás: consentimientos que no se piden, tarifas que no se aplican. **`exam_tipo_consentimientos`** vincula un examen con los formularios que obliga a firmar. Es una de las dos fuentes de consentimientos del turnero; la otra es la estación destino. ### `medicos` `list.php`, `save.php`, `delete.php`. El médico se asocia a la solicitud del turnero y sale impreso en los documentos. ## Pacientes `lab_pacientes` es el más consultado de todos: lo usan el turnero, domicilios, registro de exámenes y el bot. Campos que otros módulos dan por sentados: | Campo | Quién lo usa | |---|---| | `numero_documento` | Búsqueda en todas las pantallas | | `telefono` | Envío de consentimientos y encuestas | | `nombre_completo`, `tipo_documento` | Encabezado de todos los documentos | | `fecha_nacimiento` | Cálculo de edad en formularios | | `eps` | Facturación | Un teléfono mal cargado se manifiesta lejos de donde se originó: como un consentimiento que nunca llegó. ## Usuarios Ver [Roles y permisos](?m=soporte&v=documentacion&s=arquitectura&d=roles-y-permisos) para el detalle del control de acceso. Lo esencial al crear o editar un usuario: - **`role` y `role_id` deben cambiarse juntos.** La interfaz lee uno, los permisos salen del otro. - **Cargue la cédula.** Es lo que aparece bajo la firma en los formularios. - El usuario debe **volver a iniciar sesión** para que un cambio de permisos surta efecto. ## Al agregar un catálogo nuevo Si es un ABM simple, siga el patrón de `medicos`: un `views/index.php` y tres endpoints (`list`, `save`, `delete`). Registralo en `SYSTEM_MODULES` y concédalo a los roles que corresponda, o nadie lo verá.