Médicos
Gestión del registro de médicos y personal de salud en el módulo de Salud de Davix ERPX.
Descripción general
La pantalla Lista de médicos permite registrar, editar y eliminar médicos y personal de salud del sistema. Los médicos se registran como colaboradores con roles específicos de salud (Médico, Médico Radiólogo, Técnico Radiólogo, Tecnólogo Médico). Cada registro incluye datos personales, especialidades, lugares de atención, información de contacto, ubicación geográfica y firma digital.
Ruta de navegación: Inicio → Salud → Medicos
Vista principal (listado de médicos)
Encabezado
| Elemento | Descripción |
|---|---|
| Título | "Lista de médicos" |
| Subtítulo | "Muestra el listado y las herramientas para gestionar los médicos" |
| Botón "Actualizar" | Icono pi pi-refresh. Recarga la tabla con los datos más recientes. |
| Botón "Nuevo médico" | Icono pi pi-plus. Abre el diálogo de creación de un nuevo médico. |
Barra de búsqueda y filtros
La barra de búsqueda se encuentra debajo del encabezado y permite filtrar los médicos mostrados.
| Elemento | Tipo | Descripción |
|---|---|---|
| Campo de búsqueda | pInputText con icono pi pi-search | Búsqueda por texto libre. Se ejecuta al presionar Enter o al hacer clic en "Buscar". Ocupa 4/12 columnas. |
| Chips de filtros activos | p-chip | Muestra los filtros aplicados como chips removibles. Al hacer clic en un chip, se abre el panel de edición del filtro. |
| Botón "Agregar filtro" | Icono pi pi-filter | Abre el panel overlay para agregar un nuevo filtro. |
| Botón "Quitar filtros" | Icono pi pi-filter-slash | Elimina todos los filtros activos y limpia el campo de búsqueda. |
| Botón "Buscar" | Icono pi pi-search | Ejecuta la búsqueda con los filtros y texto actuales. |
Panel de filtros (overlay)
Al hacer clic en "Agregar filtro", se abre un p-overlayPanel con ancho máximo de 400px.
| Campo | Tipo | Opciones / Descripción |
|---|---|---|
| Campo o atributo | p-dropdown (obligatorio) | Opciones: Fecha (1), Tipo documento (2), Numero documento (3), Medico (4). Incluye búsqueda por texto. |
Dependiendo del filtro seleccionado, se muestran campos adicionales:
Filtro: Fecha (1)
| Campo | Tipo | Obligatorio | Mensaje de error |
|---|---|---|---|
| Fecha inicio | input[type=date] | Sí | "* Ingrese una fecha válido" |
| Fecha fin | input[type=date] | Sí | "* Ingrese una fecha válido" |
Filtro: Tipo documento (2)
| Campo | Tipo | Obligatorio | Opciones | Mensaje de error |
|---|---|---|---|---|
| Tipo documento | p-dropdown | Sí | DNI, Pasaporte | "* Seleccione el tipo de documento" |
Filtro: Numero documento (3)
| Campo | Tipo | Obligatorio | Mensaje de error |
|---|---|---|---|
| Numero documento | pInputText | Sí | "* Ingrese el número de documento" |
Filtro: Medico (4)
| Campo | Tipo | Obligatorio | Mensaje de error |
|---|---|---|---|
| Médico | p-autoComplete | Sí | "* Seleccione el médico" |
El autocomplete de médicos busca en el endpoint de médicos y muestra los resultados con formato: Nombres Apellido_paterno Apellido_materno (en negrita) y debajo Tipo_documento: Numero_documento. Incluye dropdown desplegable y búsqueda en tiempo real.
| Botón | Descripción |
|---|---|
| Aplicar filtro | Aplica el filtro. Si ya existe un filtro del mismo tipo, lo reemplaza. |
| Cancelar | Cierra el panel sin aplicar. |
Indicador de paginación
"Mostrando página {N} con {X} registros de {T} entradas"
Columnas de la tabla
| Columna | Ancho | Ordenable | Descripción |
|---|---|---|---|
| T. Documento | 130px fijo | Sí | Tipo de documento de identidad (DNI, PASAPORTE). |
| N. Documento | 150px fijo | Sí | Número de documento de identidad. |
| Nombre | Flexible | Sí | Nombres del médico. |
| A. paterno | Flexible | Sí | Apellido paterno. |
| A. Materno | Flexible | Sí | Apellido materno. |
| Especialidades | 150px fijo | Sí | Lista de especialidades separadas por coma. |
| Dirección | 250px fijo | Sí | Dirección del médico. |
| Telefonos | 100px fijo | Sí | Lista de números de teléfono separados por coma. |
| Correos | 100px fijo | Sí | Lista de correos electrónicos separados por coma. |
| Acciones | 80px fijo | No | Icono de tres puntos (pi pi-ellipsis-h) para abrir el menú contextual. |
Cuando no hay registros que coincidan con la búsqueda, la tabla muestra el mensaje: "No se encontraron datos" con un icono de advertencia.
Menú contextual
Se activa haciendo clic derecho sobre una fila o haciendo clic en el icono de tres puntos.
| Opción | Icono | Descripción |
|---|---|---|
| Detalles | pi pi-eye | Muestra los detalles del médico (funcionalidad pendiente de implementación). |
| Editar | pi pi-pencil | Abre el diálogo de edición con los datos del médico precargados. |
| Eliminar | pi pi-trash | Abre el diálogo de confirmación para eliminar el médico. |
Paginación
| Control | Icono | Descripción |
|---|---|---|
| Primera página | pi pi-angle-double-left | Navega a la primera página. |
| Página anterior | pi pi-angle-left | Retrocede una página. |
| Selector de página | p-dropdown | Formato "N de T". Incluye filtro por número. |
| Página siguiente | pi pi-angle-right | Avanza una página. |
| Última página | pi pi-angle-double-right | Navega a la última página. |
Tamaño de página: 50 registros.
Crear / editar médico
Al hacer clic en "Nuevo médico" o en "Editar" del menú contextual, se abre un diálogo a pantalla completa (DynamicDialog de PrimeNG).
- Título al crear: "Nuevo médico"
- Título al editar: "Actualizar datos de {nombres} {apellido_paterno} {apellido_materno}"
Al abrir el diálogo se muestra un indicador de carga con barra de progreso indeterminada ("Cargando sus datos") hasta que todos los datos estén listos.
Sección: Administrar roles
| Campo | Tipo | Obligatorio | Tooltip | Mensaje de error |
|---|---|---|---|---|
| Roles | p-multiSelect (display: chip) | Sí | "Seleccione los roles del nuevo colaborador" | "* Seleccione los roles del nuevo colaborador" |
Los roles disponibles se filtran por los parámetros de configuración del dominio CONFIG-ERPX-SALUD-ROLES-MEDICOS. Los roles mapeados son:
| Código del parámetro | Abreviatura interna |
|---|---|
| TECNICO RADIOLOGO | TR |
| MEDICO RADIOLOGO | MR |
| TECNOLOGO MEDICO | TM |
| MEDICO | M |
Sección: Detalles de colaborador
Se muestra la indicación: "Se tiene que rellenar los campos que contengan () obligatoriamente que se requiere para el registro."*
| Campo | Tipo | Obligatorio | Ancho | Tooltip | Mensaje de error |
|---|---|---|---|---|---|
| Tipo documento | p-dropdown | Sí | 4/12 col | "Seleccione el tipo de documento" | "* Seleccione el tipo de documento" |
| Numero Documento | pInputText + botón búsqueda | Sí | 6/12 col | "Ingrese el número de documento, y realice una busqueda previa" | "* Ingrese un numero válido" / "* No se encuentra el número" |
| Nombres | pInputText | Sí | 4/12 col | "Ingrese los nombres" | "* Ingrese los nombres" |
| Apellido paterno | pInputText | Sí | 4/12 col | "Ingrese el apellido paterno" | "* Ingrese el apellido paterno" |
| Apellido materno | pInputText | Sí | 4/12 col | "Ingrese el apellido materno" | "* Ingrese el apellido materno" |
| Fecha nacimiento | p-calendar | No | 4/12 col | "Seleccione la fecha de nacimiento" | "* Seleccione la fecha de nacimiento" |
| Sexo | p-radioButton | Sí | 6/12 col | "Seleccione el sexo" | "* Seleccione el género" |
Opciones de Tipo documento:
| Opción | Valor |
|---|---|
| DNI | DNI |
| Pasaporte | PASAPORTE |
Opciones de Sexo:
| Opción | Valor |
|---|---|
| Masculino | M |
| Femenino | F |
Formato de Fecha nacimiento: DD/MM/YYYY con icono de calendario (showIcon).
Búsqueda por documento (RENIEC/SUNAT)
Al hacer clic en el botón de búsqueda junto al campo "Numero Documento" (o presionar Enter), el sistema consulta el servicio de RENIEC para obtener los datos de la persona.
Validación previa
Se valida que:
- Se haya seleccionado un tipo de documento. Si no, muestra: "Seleccione el tipo de documento." (severidad: warn)
- Se haya ingresado un número de documento. Si no, muestra: "Ingrese un numero de válido." (severidad: warn)
- Si el tipo es DNI, el número debe tener exactamente 8 dígitos. Si no, muestra: "El DNI ingresado es incorrecto, ingrese un numero válido." (severidad: warn)
Consulta al servicio
Durante la búsqueda, el icono del botón cambia a un spinner. Los campos de nombre, apellidos y documento se deshabilitan temporalmente.
Resultado
Si la búsqueda es exitosa y el tipo es DNI, los campos Nombres, Apellido paterno y Apellido materno se rellenan automáticamente con los datos de RENIEC.
Si falla, se muestra el error: "No se encontraron datos para el número ingresado." y se marca el campo con el mensaje " No se encuentra el número"*.
Sección: Especialidades y Lugares de atención
| Campo | Tipo | Obligatorio | Tooltip | Mensaje de error |
|---|---|---|---|---|
| Especialidades | p-multiSelect (display: chip) | Sí | "Seleccione las especialidades" | "* Seleccione las especialidades" |
| Lugares atenciones | p-multiSelect (display: chip) | Sí | "Seleccione las especialidades" | "* Seleccione las lugares_atenciones" |
Las especialidades se cargan desde el endpoint /v2.0.2/erpx/salud/especialidades y se muestran por el campo nombres.
Los lugares de atención se cargan desde el endpoint de elementos de infraestructuras y se muestran por el campo nombre.
Sección: Teléfonos
Subtítulo: "Registre la cantidad de correos que tenga el colaborador."
Se muestra un formulario dinámico (FormArray) donde se pueden agregar múltiples teléfonos.
| Campo | Tipo | Descripción |
|---|---|---|
| Número | pInputText | Número de teléfono. |
| Tipo | p-dropdown | Tipo de teléfono. Opciones: Casa (CASA), Trabajo (TRABAJO), Personal (PERSONAL). Valor por defecto: Personal. |
- Se inicia con una fila vacía.
- Botón "Agregar" (icono
pi pi-plus): agrega una nueva fila de teléfono. - Icono eliminar (
pi pi-times): aparece a partir de la segunda fila para quitar ese teléfono. La primera fila no se puede eliminar.
Sección: Correos
Subtítulo: "Registre la cantidad de telefonos que tenga el colaborador."
Formulario dinámico idéntico en estructura a los teléfonos.
| Campo | Tipo | Descripción |
|---|---|---|
| Correo | pInputText | Dirección de correo electrónico. |
| Tipo | p-dropdown | Tipo de correo. Opciones: Casa (CASA), Trabajo (TRABAJO), Personal (PERSONAL). Valor por defecto: Personal. |
- Se inicia con una fila vacía.
- Botón "Agregar" (icono
pi pi-plus): agrega una nueva fila de correo. - Icono eliminar (
pi pi-times): aparece a partir de la segunda fila.
Sección: Ubicación
Subtítulo: "Rellene los campos de ubicación."
| Campo | Tipo | Obligatorio | Tooltip | Descripción |
|---|---|---|---|---|
| Dirección | pInputText | No | "Ingrese la dirección" | Dirección completa del médico. Ocupa 12/12 columnas. |
| Pais | p-dropdown con filtro | No | "Seleccione el país" | Lista de países. Se preselecciona "PERÚ" por defecto. Al cambiar el país, se resetean departamento, provincia y distrito. |
| Departamento | p-dropdown con filtro | Condicional | "Seleccione el Departamento" | Se habilita solo si el país es "PERÚ". Al seleccionar, filtra las provincias correspondientes. |
| Provincia | p-dropdown con filtro | Condicional | "Seleccione la provincia" | Se habilita al seleccionar un departamento. Al seleccionar, filtra los distritos correspondientes. |
| Distrito | p-dropdown con filtro | Condicional | "Seleccione el Distrito" | Se habilita al seleccionar una provincia. |
Los ubigeos (departamentos, provincias y distritos) se obtienen del cache local del sistema (erpx-global-ubigeos). Se filtran jerárquicamente por código: los departamentos tienen formato XX0000, las provincias XXYY00 y los distritos XXYYZZ.
Sección: Firma digital
Subtítulo: "Sube una foto digital con (fondo blanco, escaneado obligatoriamente) lo más claro posible."
| Campo | Tipo | Descripción |
|---|---|---|
| Archivo de firma | input[type=file] (accept: image/*) | Permite subir archivos JPG, PNG, JPEG. Al seleccionar un archivo, se sube automáticamente al servidor de archivos (FServer). |
Estados del campo de firma:
- Sin archivo: Muestra el botón "Subir firma" con icono
pi pi-uploady la etiqueta "Permite (JPG,PNG,JPEG) *". - Procesando: Muestra "Espere estamos procesando la imagen..." con una barra de progreso indeterminada.
- Con archivo: Muestra el nombre del archivo ("Constancia: {nombre}") con un icono
pi pi-times-circlerojo para eliminar, y una vista previa de la imagen de 250px con opción de ampliar (p-imageconpreview).
Botones del diálogo
Ubicados en la parte inferior fija del diálogo.
| Botón | Icono | Descripción |
|---|---|---|
| Cancelar | pi pi-times | Cierra el diálogo sin guardar. |
| Guardar | pi pi-check (cambia a spinner durante el proceso) | Valida el formulario y guarda el médico. Se deshabilita durante el proceso de guardado. |
Validaciones al guardar
Los campos obligatorios validados son:
- Tipo documento
- Numero documento
- Apellido paterno
- Apellido materno
- Nombres
- Sexo
- Roles
- Especialidades
Si hay errores, se muestra: "Revise bien, hay formularios por validar1." (severidad: error, duración: 5s, posición: bottom-left).
Flujo de guardado
Preparar datos
El sistema construye el objeto del médico con todos los campos del formulario, convierte la fecha de nacimiento al formato YYYY-MM-DD, asigna los datos de ubicación (ubigeo), teléfonos, correos y el ID de la firma digital.
Enviar al servidor
- Creación:
POST /v2.0.4/erpx/salud/medicos/ - Actualización:
PUT /v2.0.4/erpx/salud/medicos/\{id\}
Resultado
Si es exitoso, se cierra el diálogo y se muestra:
- Creación: "Registrado con éxito" (severidad: success, duración: 5s)
- Actualización: "Se ha actualizado con éxito" (severidad: success, duración: 5s)
El nuevo registro se inserta al inicio de la tabla. En actualización, se reemplaza la fila existente.
Eliminar médico
Al seleccionar "Eliminar" del menú contextual, se abre un diálogo de confirmación (DynamicDialog) con título "Confirmación" y ancho de 50vw.
| Elemento | Descripción |
|---|---|
| Icono | pi pi-exclamation-triangle (tamaño 2rem) |
| Mensaje | "Estas seguro de proceder con la eliminación?" |
| Botón "No" | Icono pi pi-times. Cierra el diálogo sin eliminar. |
| Botón "Si" | Icono pi pi-check (cambia a spinner durante el proceso). Ejecuta la eliminación. |
Notificaciones
| Resultado | Severidad | Título | Mensaje | Duración |
|---|---|---|---|---|
| Éxito | success | "Alerta" | "Eliminado." | 5 segundos |
| Error | error | "Error {código}" | Mensaje de error del servidor | 5 segundos |
Al eliminar exitosamente, el registro se remueve de la tabla sin necesidad de recargar.
Parámetros de configuración
| Dominio | Parámetro | Descripción |
|---|---|---|
CONFIG-ERPX-SALUD-ROLES-MEDICOS | TECNICO RADIOLOGO | ID del rol de Técnico Radiólogo. |
CONFIG-ERPX-SALUD-ROLES-MEDICOS | MEDICO RADIOLOGO | ID del rol de Médico Radiólogo. |
CONFIG-ERPX-SALUD-ROLES-MEDICOS | TECNOLOGO MEDICO | ID del rol de Tecnólogo Médico. |
CONFIG-ERPX-SALUD-ROLES-MEDICOS | MEDICO | ID del rol de Médico. |
Estos parámetros mapean los roles del sistema de RRHH con los roles médicos de salud. Solo los colaboradores con estos roles aparecen en la lista de médicos.
Endpoints
| Método | Endpoint | Descripción |
|---|---|---|
GET | /v2.0.4/erpx/salud/medicos/ | Lista todos los médicos con paginación, búsqueda y filtros. |
GET | /v2.0.4/erpx/salud/medicos/\{id\} | Obtiene un médico por su ID (para edición). |
POST | /v2.0.4/erpx/salud/medicos/ | Crea un nuevo médico. |
PUT | /v2.0.4/erpx/salud/medicos/\{id\} | Actualiza un médico existente. |
DELETE | /v2.0.4/erpx/salud/medicos/\{id\} | Elimina un médico. |
GET | /v2.0.1/erpx/rrhh/roles/ | Lista todos los roles de RRHH. |
GET | /v2.0.1/erpx/global/params/ | Obtiene los parámetros de configuración. |
GET | /v2.0.1/erpx/global/paises/ | Lista todos los países. |
GET | /v2.0.2/erpx/salud/especialidades/ | Lista todas las especialidades médicas. |
GET | /v2.0.1/erpx/global/elementos-infraestructuras/ | Lista los elementos de infraestructura (lugares de atención). |
GET | /v2.0.1/erpx/fserver/files/\{id\} | Obtiene un archivo del servidor de archivos (firma digital). |
POST | /v2.0.1/erpx/fserver/files/ | Sube un nuevo archivo al servidor de archivos. |
GET | ms-peru-sunat-services/api/v1/reniec/personas/\{numero_documento\} | Consulta datos de RENIEC por número de documento. |
Problemas comunes
| Problema | Causa | Solución |
|---|---|---|
| No aparecen roles disponibles en el formulario | Los parámetros del dominio CONFIG-ERPX-SALUD-ROLES-MEDICOS no están configurados o los IDs de rol no coinciden con roles existentes. | Configure los parámetros con los IDs correctos de los roles en RRHH. |
| La búsqueda por DNI no encuentra datos | El servicio de RENIEC no está disponible o el número de DNI es incorrecto. | Verifique que el servicio de RENIEC esté configurado correctamente y que el DNI tenga exactamente 8 dígitos. |
| Los campos departamento/provincia/distrito están deshabilitados | No se seleccionó "PERÚ" como país, o los ubigeos no están en el cache local. | Seleccione "PERÚ" como país. Si persiste, verifique que los ubigeos estén cargados en el sistema. |
| "Revise bien, hay formularios por validar1" | Campos obligatorios sin completar (tipo documento, número, nombres, apellidos, sexo, roles, especialidades). | Complete todos los campos marcados con (*). |
| La tabla de médicos está vacía | No hay colaboradores con los roles de médico configurados, o los parámetros de roles no están configurados. | Verifique la configuración de roles médicos y que existan colaboradores asignados a estos roles. |
| Error al subir la firma digital | El servidor de archivos (FServer) no está disponible o el formato de imagen no es compatible. | Use archivos JPG, PNG o JPEG y verifique la conexión con el servidor de archivos. |
Páginas relacionadas
- Médicos Referentes — Gestión de médicos referentes externos.
- Catálogos — Gestión general de catálogos de salud.