Procedimientos de Imagen
Gestión completa de catálogos de procedimientos de imagen, incluyendo listado de catálogos, procedimientos individuales, grupos jerárquicos y filtros de búsqueda.
Descripción general
El módulo Procedimientos de Imagen permite gestionar los procedimientos médicos de imagen organizados en catálogos. El sistema se estructura en tres niveles:
- Catálogos de procedimientos: Contenedores principales de tipo
IMAGENEScon fechas de vigencia opcionales. - Procedimientos de imagen: Los procedimientos individuales dentro de cada catálogo, con códigos CPT y SEGUS.
- Grupos: Carpetas jerárquicas para organizar los procedimientos dentro de un catálogo.
Dos formas de acceso
Existen dos vías para acceder a los procedimientos de imagen:
- Vista principal: Acceso directo desde el menú, utiliza un catálogo configurado globalmente mediante el parámetro
CATALOGO-PROCEDIMIENTO-IMAGEN-PRINCIPAL. - Vista por catálogo: Acceso desde el listado de catálogos → clic en "Detalle" de un catálogo específico.
Ambas vistas comparten la misma funcionalidad; la diferencia es cómo se determina el catálogo de trabajo.
Listado de catálogos de procedimientos
Acceso
Ruta de navegación: Logística → Catálogo
Encabezado
La pantalla muestra el título "Catálogos Procedimientos Imagenes" con la descripción: "Muestra el listado y las herramientas para gestionar el catálogo".
Barra de herramientas (Toolbar)
| Acción | Icono | Tipo | Comportamiento |
|---|---|---|---|
| Nuevo | pi pi-cog | Menú desplegable | Sub-opción: Catálogo — abre el diálogo de creación |
| Actualizar | pi pi-refresh | Botón | Recarga la lista de catálogos desde el servidor |
Columnas de la tabla
| # | Columna | Campo | Ordenable | Descripción |
|---|---|---|---|---|
| 1 | Código | codigo | Sí | Código identificador del catálogo. Ancho fijo: 150px |
| 2 | Nombre | nombre | Sí | Nombre del catálogo de procedimientos |
| 3 | Fecha Inicio | fecha_inicio | Sí | Fecha de inicio de vigencia (formato DD/MM/YYYY) |
| 4 | Fecha Fin | fecha_fin | Sí | Fecha de fin de vigencia (formato DD/MM/YYYY) |
| 5 | Acciones | — | No | Botón de menú contextual. Ancho fijo: 80px |
Filtro automático
La lista solo muestra catálogos de tipo IMAGENES. El filtro se aplica automáticamente en la consulta al servidor: search=** AND tipo:IMAGENES.
Menú contextual
Al hacer clic en el botón de acciones (pi pi-ellipsis-h) o clic derecho en una fila:
| Opción | Icono | Acción |
|---|---|---|
| Detalle | pi pi-folder | Navega a la vista de procedimientos del catálogo seleccionado |
| Editar | pi pi-pencil | Abre el diálogo de edición con datos precargados |
| Eliminar | pi pi-times | Solicita confirmación y elimina el catálogo |
Navegación a detalle
La opción Detalle navega a la ruta /salud/catalogos-procedimientos-imagenes-detalles/\{id\}, donde se muestra la lista de procedimientos dentro del catálogo seleccionado.
Paginación
La tabla incluye paginación personalizada:
- Tamaño de página: 50 registros por defecto.
- Navegación: Botones Primera (
«), Anterior (‹), Siguiente (›), Última (»). - Selector de página: Dropdown con filtro que muestra "X de Y" para navegación directa.
Crear / Editar catálogo de procedimientos
Diálogo
Se abre un diálogo a pantalla completa con el título "Nuevo catálogo de procedimientos de imagen".
Breadcrumb del diálogo: Inicio → Logística → Catálogos procedimientos de imagen
Subtítulo de sección: "Detalles de catálogo" — "Se tiene que rellenar los campos que contengan () obligatoriamente que se requiere para el registro."*
Campos del formulario
| # | Campo | Componente | Obligatorio | Tooltip | Mensaje de error | Descripción |
|---|---|---|---|---|---|---|
| 1 | Código | input text | Sí | "Ingrese el código de registro" | "* Ingrese código válido" | Código identificador del catálogo |
| 2 | Nombre | input text | Sí | "Ingrese el nombre" | "* Obligatorio" | Nombre descriptivo del catálogo |
| 3 | ¿Configurar caducidad? | p-inputSwitch | No | — | — | Switch que habilita/deshabilita los campos de fecha |
| 4 | Fecha Inicio | p-calendar | Condicional | "Seleccione una fecha de inicio que no pase al final" | "* Obligatorio" | Fecha de inicio de vigencia. Formato: dd/mm/yyyy. Solo obligatorio si el switch de caducidad está activado |
| 5 | Fecha Fin | p-calendar | Condicional | "Seleccione una fecha final que no sea menor a la fecha de inicio" | "* Obligatorio" | Fecha de fin de vigencia. Formato: dd/mm/yyyy. Solo obligatorio si el switch de caducidad está activado |
Comportamiento del switch de caducidad
- Desactivado (por defecto): Los campos Fecha Inicio y Fecha Fin están deshabilitados y vacíos. No se requieren validaciones de fecha.
- Activado: Los campos se habilitan y se convierten en obligatorios. Se agrega validación
requireda ambos campos. - Al desactivar el switch después de haberlo activado: Los campos se deshabilitan, se limpian los valores y se remueven las validaciones.
Validación de fechas
Si las fechas están configuradas, el sistema valida que la Fecha Fin no sea menor a la Fecha Inicio. Si esta validación falla, se muestra el mensaje: "La fecha fin no puede ser menor a la fecha inicio." (notificación de tipo warning, duración: 5 segundos).
Tipo de catálogo
El campo tipo se establece automáticamente como "IMAGENES" y no es visible para el usuario. El selector de tipo (radio buttons IMAGENES/LABORATORIOS) está comentado en el código fuente.
Botones de acción
| Botón | Acción |
|---|---|
| Cancelar | Cierra el diálogo sin guardar cambios |
| Guardar | Valida el formulario y guarda el catálogo |
Proceso de guardado
Validar formulario
Verifica los campos obligatorios (Código, Nombre, y fechas si el switch está activado). Si hay errores, detiene el proceso.
Validar fechas (si aplica)
Si las fechas están configuradas, compara que Fecha Fin ≥ Fecha Inicio usando moment.js.
Enviar datos al servidor
- Creación:
POST /v2.0.1/erpx/salud/catalogos-procedimientos - Edición:
PUT /v2.0.1/erpx/salud/catalogos-procedimientos/\{id\}
Las fechas se envían en formato YYYY-MM-DD. Si no hay fechas configuradas, se envían como null.
Confirmación
- Creación exitosa: Notificación "Registro exitoso." (success, 5s). El nuevo catálogo se agrega al inicio de la lista.
- Actualización exitosa: Notificación "Actualización exitosa." (success, 5s). El catálogo se actualiza en su posición.
Modo edición
Al editar, el sistema realiza una petición GET /v2.0.1/erpx/salud/catalogos-procedimientos/\{id\} para obtener los datos completos del catálogo y precargar el formulario. Si el catálogo tiene fechas de inicio y fin, el switch de caducidad se activa automáticamente y los campos de fecha se habilitan con los valores existentes.
Eliminar catálogo
Se accede desde el menú contextual → Eliminar.
Confirmar eliminación
Se muestra un diálogo de confirmación.
Enviar solicitud
DELETE /v2.0.1/erpx/salud/catalogos-procedimientos/\{id\}
Confirmación
Notificación "Eliminado." (success, 5s). El catálogo se remueve de la lista.
Vista de procedimientos de imagen
Esta vista muestra los procedimientos individuales dentro de un catálogo específico. Se accede de dos formas:
- Vista principal: Directamente desde el menú, usa el parámetro global
CATALOGO-PROCEDIMIENTO-IMAGEN-PRINCIPALpara determinar el catálogo. - Vista detalle: Desde el listado de catálogos → Detalle, recibe el ID del catálogo por la URL.
Encabezado
- Título: "Catalogos procedimientos imagen detalle"
- Descripción: "Muestra el listado y las herramientas para gestionar los catalogos procedimientos imagen detalle"
- Breadcrumb: Salud → Catálogos procedimiento imagen detalles
Barra de herramientas
| Acción | Icono | Estilo | Comportamiento |
|---|---|---|---|
| Actualizar | pi pi-refresh | Outlined | Recarga la lista de procedimientos desde el servidor |
| Grupos | — | Primario | Abre el diálogo de gestión de grupos |
| Nuevo Proc. Img. | pi pi-plus | Primario | Abre el diálogo de creación de nuevo procedimiento de imagen |
Barra de búsqueda y filtros
Debajo de la barra de herramientas se muestra un componente de búsqueda con:
| Elemento | Descripción |
|---|---|
| Campo de búsqueda | Input de texto con icono de búsqueda. Busca por texto libre en todos los campos |
| Chips de filtros activos | Cada filtro activo se muestra como un chip removible |
| Agregar filtro | Botón que abre un panel overlay con opciones de filtro |
| Quitar filtros | Elimina todos los filtros activos y limpia la búsqueda |
| Buscar | Ejecuta la búsqueda con los filtros actuales |
Filtros disponibles
| Filtro | Componente | Descripción |
|---|---|---|
| GRUPO | p-treeSelect | Filtra procedimientos por grupo jerárquico. Muestra la estructura de árbol de grupos del catálogo actual |
Comportamiento de filtros
- Al agregar un filtro de tipo GRUPO, se muestra un chip con el texto
Grupo == \{nombre del grupo\}. - Los filtros se combinan con operador
ANDen la búsqueda. - El texto de búsqueda libre se envuelve en comodines:
*texto*. - Los filtros se pueden editar haciendo clic en su chip correspondiente.
Indicador de registros
Encima de la tabla se muestra: "Mostrando página X con Y registros de Z entradas".
Columnas de la tabla
| # | Columna | Campo | Ancho | Descripción |
|---|---|---|---|---|
| 1 | GRUPO | grupo | 125px fijo | Muestra la jerarquía del grupo padre separada por / (ej: "Radiología / Tórax") |
| 2 | CÓDIGO | codigo | 125px fijo | Código identificador del procedimiento |
| 3 | NOMBRE | nombre | Auto | Nombre del procedimiento de imagen |
| 4 | DESCRIPCIÓN | descripcion | Auto | Descripción detallada del procedimiento |
| 5 | CPT | codigo_cpt | 100px fijo | Código CPT (Current Procedural Terminology) |
| 6 | SEGUS | codigo_segus | 100px fijo | Código SEGUS |
| 7 | Acciones | — | 60px fijo | Botón de menú contextual |
Columna GRUPO
La columna GRUPO muestra la ruta completa del grupo al que pertenece el procedimiento. Si el grupo tiene padres, se construye la ruta recursivamente desde la raíz hasta el grupo directo, separando cada nivel con /. Por ejemplo: Radiología / Tórax / Estándar.
Menú contextual
Al hacer clic en el botón de acciones o clic derecho:
| Opción | Icono | Acción |
|---|---|---|
| Editar | pi pi-pencil | Abre el diálogo de edición del procedimiento |
| Eliminar | pi pi-times | Solicita confirmación y elimina el procedimiento |
Paginación
- Tamaño de página: 50 registros por defecto.
- Navegación: Botones Primera, Anterior, Siguiente, Última.
- Selector de página: Dropdown filtrable con formato "X de Y".
Crear / Editar procedimiento de imagen
Diálogo
Se abre un diálogo a pantalla completa con el título "Nuevo Procedimiento imagen".
Breadcrumb del diálogo: Salud → Catálogos procedimiento imagen detalles → Nuevo
Subtítulo de sección: "Datos generales de imagen" — "Se tiene que rellenar los campos que contengan () obligatoriamente que se requiere para el registro."*
Campos del formulario
| # | Campo | Componente | Obligatorio | Tooltip | Mensaje de error | Descripción |
|---|---|---|---|---|---|---|
| 1 | Grupo / Familia | p-treeSelect | No | "Si desea agregar a un grupo/familia seleccione" | "* Obligatorio" (solo si se marca como requerido) | Selector de árbol jerárquico que muestra los grupos del catálogo. Con filtro de búsqueda y botón de limpiar |
| 2 | Código | input text | Sí | "Ingrese el código" | "* Obligatorio" | Código identificador del procedimiento |
| 3 | Nombre | input text | Sí | "Ingrese el nombre" | "* Obligatorio" | Nombre descriptivo del procedimiento |
| 4 | Descripción | input text | No | "Ingrese la descripción" | — | Descripción del procedimiento |
| 5 | Código CPT | input text | No | "Ingrese código CPT" | — | Código CPT asociado al procedimiento |
| 6 | Código Segus | input text | No | "Ingrese código SEGUS" | — | Código SEGUS asociado al procedimiento |
Botones de acción
| Botón | Acción |
|---|---|
| Cancelar | Cierra el diálogo sin guardar |
| Guardar | Valida y guarda el procedimiento |
Proceso de guardado
Validar formulario
Verifica que Código y Nombre estén completados. Si hay errores, muestra notificación: "Hay campos por validar revise." (error, 5s).
Preparar datos
Extrae los datos del formulario incluyendo grupo_id (del grupo seleccionado), catalogo_id (del catálogo actual), y todos los campos del formulario.
Enviar datos al servidor
- Creación:
POST /v2.0.1/erpx/salud/catalogos-procedimientos-imagenes - Edición:
PUT /v2.0.1/erpx/salud/catalogos-procedimientos-imagenes/\{id\}
Confirmación
- Creación: Notificación "Registro exitoso." (success, 5s).
- Edición: Notificación "Actualización exitoso." (success, 5s). La lista se recarga automáticamente.
Modo edición
Al editar, el sistema carga los datos del procedimiento desde el servidor. Si el procedimiento tiene un grupo_id, también carga los datos del grupo para preseleccionarlo en el TreeSelect. Se realizan las peticiones necesarias con forkJoin:
GET /v2.0.1/erpx/salud/catalogos-procedimientos-imagenes/\{id\}— datos del procedimiento.GET /v2.0.1/erpx/salud/catalogos-procedimientos-grupos/\{grupo_id\}— datos del grupo (solo si tiene grupo asignado).
Gestión de grupos
Se accede desde el botón "Grupos" en la barra de herramientas de la vista de procedimientos.
Diálogo de grupos
Se abre un diálogo a pantalla completa con el título "Grupos".
Breadcrumb: Inicio → Salud → Catálogos procedimientos imagen detalle
Subtítulo: "Grupos" — "Aquí puede editar la lista de grupos"
Contenido del diálogo
El diálogo muestra un TreeTable (p-treeTable) con la jerarquía completa de grupos del catálogo actual.
Barra superior
| Botón | Icono | Acción |
|---|---|---|
| Nuevo Grupo | pi pi-plus | Abre el diálogo de creación de grupo nuevo |
Columnas del TreeTable
| # | Columna | Descripción |
|---|---|---|
| 1 | Grupos | Nombre del grupo con toggle de expansión para ver sub-grupos |
| 2 | Acciones | Botones de editar y eliminar (60px fijo) |
Botones de acción por fila
| Botón | Icono | Estilo | Acción |
|---|---|---|---|
| Editar | pi pi-pencil | Primario | Abre el diálogo de edición del grupo |
| Eliminar | pi pi-trash | Danger (rojo) | Elimina el grupo seleccionado |
Pie del diálogo
| Botón | Acción |
|---|---|
| Cancelar | Cierra el diálogo de grupos y notifica a la vista principal para actualizar la lista |
Carga de datos de grupos
Los grupos se cargan desde GET /v2.0.1/erpx/salud/catalogos-procedimientos-grupos filtrados por catalogo_id. Los datos se transforman en estructura de árbol mediante un algoritmo de mapeo parent_id:
- Se crea un mapa de índices por ID.
- Cada nodo recibe propiedades de TreeNode:
children,collapseIcon,data,expandedIcon,label. - Los nodos con
parent_id !== nullse agregan como hijos de su padre. - Los nodos raíz (
parent_id === null) forman la raíz del árbol.
Crear / Editar grupo
Diálogo
Se abre un diálogo a pantalla completa con el título "Nuevo grupo".
Breadcrumb: Inicio → Logística → Catálogos productos detalle
Subtítulo de sección: "Detalles de grupo" — "Se tiene que rellenar los campos que contengan () obligatoriamente que se requiere para el registro."*
Campos del formulario
| # | Campo | Componente | Obligatorio | Tooltip | Mensaje de error | Descripción |
|---|---|---|---|---|---|---|
| 1 | Grupo | p-treeSelect | No | "Seleccione el grupo si desea asignarlo" | "* Obligatorio" (si se marca requerido) | Selector jerárquico para elegir el grupo padre. Con filtro de búsqueda |
| 2 | Código | input text | Sí | "Ingrese el código" | "* Obligatorio" | Código identificador del grupo |
| 3 | Nombre | input text | Sí | "Ingrese el nombre del grupo" | "* Obligatorio" | Nombre del grupo |
| 4 | Descripción | input text | No | "Ingrese la descripción del grupo" | — | Descripción del grupo |
Botones de acción
| Botón | Acción |
|---|---|
| Cancelar | Cierra el diálogo sin guardar |
| Guardar | Valida y guarda el grupo |
Proceso de guardado
Validar formulario
Verifica que Código y Nombre estén completados.
Calcular nivel y ruta
Si se seleccionó un grupo padre:
nivel= nivel del padre + 1path= ruta del padre + "/" + nombre del grupo actualparent_id= ID del grupo padre
Si no se seleccionó grupo padre:
nivel= 1path= nombre del grupoparent_id= null
Enviar datos al servidor
- Creación:
POST /v2.0.1/erpx/salud/catalogos-procedimientos-grupos - Edición:
PUT /v2.0.1/erpx/salud/catalogos-procedimientos-grupos/\{id\}
Se envía: id, codigo, nombre, descripcion, catalogo_id, parent_id, nivel, path.
Confirmación
- Creación: Notificación "Registro exitoso." (success, 5s).
- Edición: Notificación "Actualización exitoso." (success, 5s). El TreeTable de grupos se recarga automáticamente.
Modo edición
Al editar un grupo, el sistema precarga el formulario con los datos actuales. Si el grupo tiene un parent_id, busca recursivamente el nodo padre en el árbol de grupos para preseleccionarlo en el TreeSelect.
Eliminar procedimiento o grupo
Eliminar procedimiento de imagen
Confirmar eliminación
Se muestra un diálogo de confirmación.
Enviar solicitud
DELETE /v2.0.1/erpx/salud/catalogos-procedimientos-imagenes/\{id\}
Confirmación
Notificación "Eliminado." (success, 5s). La lista se recarga.
Eliminar grupo
Confirmar eliminación
Se muestra un diálogo de confirmación.
Enviar solicitud
DELETE /v2.0.1/erpx/salud/catalogos-procedimientos-grupos/\{id\}
Confirmación
Notificación "Eliminado." (success, 5s). La lista se recarga.
Eliminación por tipo
El sistema diferencia automáticamente entre procedimientos (tipo IMAGENES) y grupos (tipo GRUPO) para llamar al endpoint de eliminación correcto.
Parámetro global de configuración
La vista principal de procedimientos de imagen obtiene el ID del catálogo de trabajo desde un parámetro de configuración global:
| Dominio | Código | Descripción |
|---|---|---|
CONFIG-ERPX-SALUD-CATALOGO-PROCEDIMIENTO-IMAGEN | CATALOGO-PROCEDIMIENTO-IMAGEN-PRINCIPAL | ID del catálogo de procedimientos de imagen principal |
Este parámetro se consulta desde: GET /v2.0.1/erpx/global/params/?search=domain:CONFIG-ERPX-SALUD-CATALOGO-PROCEDIMIENTO-IMAGEN&size=2
Endpoints del módulo
| Método | Endpoint | Descripción |
|---|---|---|
GET | /v2.0.1/erpx/salud/catalogos-procedimientos | Listar catálogos de procedimientos (filtrados por tipo) |
GET | /v2.0.1/erpx/salud/catalogos-procedimientos/\{id\} | Obtener catálogo por ID |
POST | /v2.0.1/erpx/salud/catalogos-procedimientos | Crear catálogo de procedimientos |
PUT | /v2.0.1/erpx/salud/catalogos-procedimientos/\{id\} | Actualizar catálogo de procedimientos |
DELETE | /v2.0.1/erpx/salud/catalogos-procedimientos/\{id\} | Eliminar catálogo de procedimientos |
GET | /v2.0.1/erpx/salud/catalogos-procedimientos-imagenes | Listar procedimientos de imagen |
GET | /v2.0.1/erpx/salud/catalogos-procedimientos-imagenes/\{id\} | Obtener procedimiento por ID |
POST | /v2.0.1/erpx/salud/catalogos-procedimientos-imagenes | Crear procedimiento de imagen |
PUT | /v2.0.1/erpx/salud/catalogos-procedimientos-imagenes/\{id\} | Actualizar procedimiento de imagen |
DELETE | /v2.0.1/erpx/salud/catalogos-procedimientos-imagenes/\{id\} | Eliminar procedimiento de imagen |
GET | /v2.0.1/erpx/salud/catalogos-procedimientos-grupos | Listar grupos de procedimientos |
GET | /v2.0.1/erpx/salud/catalogos-procedimientos-grupos/\{id\} | Obtener grupo por ID |
POST | /v2.0.1/erpx/salud/catalogos-procedimientos-grupos | Crear grupo |
PUT | /v2.0.1/erpx/salud/catalogos-procedimientos-grupos/\{id\} | Actualizar grupo |
DELETE | /v2.0.1/erpx/salud/catalogos-procedimientos-grupos/\{id\} | Eliminar grupo |
GET | /v2.0.1/erpx/global/params | Obtener parámetros de configuración global |
Problemas comunes
| Problema | Causa probable | Solución |
|---|---|---|
| No se muestran catálogos en la lista | No existen catálogos de tipo IMAGENES registrados | Crear un nuevo catálogo desde el botón Nuevo → Catálogo |
| Los campos de fecha están deshabilitados | El switch "¿Configurar caducidad?" está desactivado | Active el switch para habilitar los campos de fecha |
| Error "La fecha fin no puede ser menor a la fecha inicio" | La fecha de fin seleccionada es anterior a la fecha de inicio | Seleccione una fecha de fin igual o posterior a la fecha de inicio |
| La vista de procedimientos no carga datos | El parámetro CATALOGO-PROCEDIMIENTO-IMAGEN-PRINCIPAL no está configurado | Contacte al administrador para configurar el parámetro global |
| No aparecen grupos en el TreeSelect | No se han creado grupos para este catálogo | Acceda a "Grupos" desde la barra de herramientas y cree al menos un grupo |
| La columna GRUPO muestra datos incorrectos | Los datos del grupo padre no están correctamente vinculados | Verifique que los grupos tengan la estructura jerárquica correcta (parent_id) |
| Error al eliminar un grupo | El grupo contiene sub-grupos o procedimientos asociados | Elimine o reasigne primero los elementos hijos del grupo |
| El filtro por grupo no muestra resultados | El grupo seleccionado no tiene procedimientos directamente asignados | Verifique que existan procedimientos asignados al grupo seleccionado |
Páginas relacionadas
- Catálogos — Gestión general de catálogos médicos
- Catálogos de Laboratorios — Gestión de catálogos de laboratorios
Catálogos de Laboratorios
Gestión jerárquica de catálogos de laboratorios con grupos y procedimientos organizados en estructura de árbol.
Procedimientos de Laboratorio
Gestión completa de catálogos de procedimientos de laboratorio, incluyendo procedimientos, grupos jerárquicos, analitos con valores de referencia y críticos, y filtros de búsqueda.