Pacientes
Gestión de pacientes en el módulo de Salud de Davix ERPX.
Descripción general
La pantalla Lista de pacientes permite registrar y administrar los pacientes del establecimiento de salud. Cada paciente se registra con sus datos personales (tipo de paciente, documento de identidad, nombres, fecha de nacimiento, sexo), ubicación geográfica (ubigeo), teléfonos, correos electrónicos y contactos de emergencia o familiares acompañantes.
Ruta de navegación: Inicio → Salud → Pacientes
Vista principal (listado de pacientes)
Encabezado
| Elemento | Descripción |
|---|---|
| Título | "Lista de pacientes" |
| Subtítulo | "Muestra el listado y las herramientas para gestionar los pacientes" |
| Botón "Actualizar" | Icono pi pi-refresh. Recarga la tabla. |
| Botón "Nuevo paciente" | Icono pi pi-plus. Abre el diálogo de creación. |
Barra de búsqueda y filtros
| 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". |
| Chips de filtros activos | p-chip | Filtros aplicados como chips removibles. Al hacer clic en un chip se abre el overlay para editarlo. |
| Botón "Agregar filtro" | Icono pi pi-filter | Abre el panel overlay de filtros. |
| Botón "Quitar filtros" | Icono pi pi-filter-slash | Elimina todos los filtros y el texto de búsqueda. |
| Botón "Buscar" | Icono pi pi-search | Ejecuta la búsqueda con los filtros activos. |
Panel de filtros (overlay)
Se abre como p-overlayPanel con ancho de 450px y botón de cierre.
| Filtro | Valor | Campos adicionales |
|---|---|---|
| Fecha | 1 | Fecha inicio* (input[type=date]), Fecha fin* (input[type=date]). |
| Tipo de paciente | 2 | Tipo de paciente* (p-dropdown). Opciones: Privado, Particular, Soat, Convenio. |
| Tipo documento | 3 | Tipo documento* (p-dropdown). Opciones: DNI, Carnet de extranjeria, Pasaporte. |
| Paciente | 4 | Paciente* (p-dropdown con búsqueda). Muestra: "{numero_documento} - {apellido_paterno} {apellido_materno} {nombres}". |
| Género | 5 | Género* (p-dropdown). Opciones: MASCULINO (M), FEMENINO (F). |
Mensaje de error para campos obligatorios: " Obligatorio"*.
Formato de consulta (query) por filtro:
| Filtro | Query generado | Texto del chip |
|---|---|---|
| Fecha | fecha:[YYYY-MM-DD TO YYYY-MM-DD] | "Fecha desde DD/MM/YYYY hasta DD/MM/YYYY" |
| Tipo de paciente | tipo:\{valor\} | "Tipo paciente == {valor}" |
| Tipo documento | tipo_documento:\{valor\} | "Tipo documento == {valor}" |
| Paciente | id:\{id\} | "Paciente == {nombres_completos}" |
| Género | sexo:\{valor\} | "Genero == {valor}" |
Si ya existe un filtro del mismo tipo, se reemplaza automáticamente.
Indicador de paginación
"Mostrando pagina {N} con {X} registros de {T} entradas"
Columnas de la tabla
| Columna | Ancho | Descripción |
|---|---|---|
| Fecha | 100px | Fecha de registro, formato DD/MM/YYYY hh:mm:ss A. |
| Tipo | 100px | Tipo de paciente (PRIVADO, PARTICULAR, SOAT, CONVENIO). |
| T. Documento | 130px | Tipo de documento de identidad. |
| N. Documento | 130px | Número de documento de identidad. |
| Paciente | Flexible | Nombre completo: {nombres} {apellido_paterno} {apellido_materno}. |
| F. Nacimiento | 100px | Fecha de nacimiento, formato DD/MM/YYYY. |
| Genero | 100px | "Masculino" (si sexo = M) o "Femenino" (si sexo = F). |
| Telefono | 200px | Número de teléfono con tipo "PRINCIPAL". |
| Acciones | 80px | Icono de tres puntos (pi pi-ellipsis-h) para el menú contextual. |
Cuando no hay registros: "No se encontraron datos" (con icono pi pi-exclamation-triangle).
Menú contextual
| Opción | Icono | Descripción |
|---|---|---|
| Editar | pi pi-pencil | Abre el diálogo de edición con los datos precargados. |
| Eliminar | pi pi-trash | Abre el diálogo de confirmación para eliminar. |
Paginación
Controles de paginación: primera página, anterior, selector de página (dropdown con búsqueda, emptyMessage: "Sin paginas", emptyFilterMessage: "Sin resultados"), siguiente, última página. Tamaño de página: 50 registros.
Crear / editar paciente
Al hacer clic en "Nuevo paciente" o "Editar", se abre un diálogo a pantalla completa (DynamicDialog).
- Título al crear: "Nuevo paciente"
- Título al editar: "Actualizar datos de paciente {codigo}"
Mientras se cargan los datos, se muestra: "Cargando sus datos" con un spinner.
Sección: Tipo paciente
| Campo | Tipo | Obligatorio | Tooltip | Mensaje de error |
|---|---|---|---|---|
| Tipo paciente | Radio buttons | Sí | "Seleccione el tipo de paciente" | "* Seleccione el tipo de paciente" |
Opciones:
| Opción | Valor |
|---|---|
| Privado | PRIVADO |
| Particular | PARTICULAR |
| Soat | SOAT |
| Convenio | CONVENIO |
Valor por defecto: Privado.
Sección: Detalles de paciente
Subtítulo: "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í | 3/12 col | "Seleccione el tipo documento" | "* Seleccione tipo documento valido" |
| Numero documento | pInputText con botón de búsqueda | Sí | 4/12 col | "Numero documento" | "* Ingrese numero documento valido" |
| Nombres | pInputText | Sí | 4/12 col | "Ingrese los nombres" | "* Ingrese nombres valido" |
| Apellido paterno | pInputText | Sí | 4/12 col | "Ingrese el apellid paterno" | "* Ingrese apellido paterno valido" |
| Apellido materno | pInputText | Sí | 4/12 col | "Ingrese el apellid materno" | "* Ingrese apellido materno valido" |
| Fecha nacimiento | p-calendar (formato dd/mm/yyyy, con icono) | No | 3/12 col | "Ingrese la fecha de nacimiento" | "* Ingrese fecha nacimiento valido" |
| Sexo | Radio buttons | Sí | 4/12 col | "Seleccione el sexo" | "* Seleccione el sexo valido" |
Opciones de Tipo documento:
| Opción | Valor | Código |
|---|---|---|
| DNI | DNI | 01 |
| Carnet de extranjeria | Carnet de extranjeria | 04 |
| Pasaporte | Pasaporte | 07 |
Valor por defecto: DNI.
Opciones de Sexo:
| Opción | Valor |
|---|---|
| Masculino | M |
| Femenino | F |
Búsqueda RENIEC (DNI)
Al hacer clic en el botón de búsqueda (icono pi pi-search) junto al campo "Numero documento", o al presionar Enter en dicho campo, el sistema consulta el servicio RENIEC para autocompletar los datos del paciente.
Validaciones antes de buscar:
| Condición | Severidad | Mensaje |
|---|---|---|
| No se seleccionó tipo de documento | warn | "Seleccione el tipo de documento." |
| No se ingresó número de documento | warn | "Ingrese un numero de valido." |
| DNI no tiene exactamente 8 caracteres | warn | "El DNI ingresado es incorrecto, ingrese un numero valido." |
Comportamiento durante la búsqueda:
- Se muestra un spinner en el botón de búsqueda.
- Los campos Tipo documento, Numero documento, Nombres, Apellido paterno y Apellido materno se deshabilitan.
- Los campos Nombres, Apellido paterno y Apellido materno se limpian antes de la búsqueda.
Al encontrar resultados (solo DNI):
Se auto-rellenan los campos:
- Nombres con el valor de RENIEC.
- Apellido paterno con el valor de RENIEC.
- Apellido materno con el valor de RENIEC.
Sección: Ubigeo
Subtítulo: "Seleccione el ubigeo del paciente."
| Campo | Tipo | Obligatorio | Ancho | Tooltip | Mensaje de error |
|---|---|---|---|---|---|
| Dirección | pInputText | No | 12/12 col | "Ingrese la direccion" | "* Ingrese la direccion" |
| País | p-dropdown con búsqueda, filterBy="nombre" | No | 3/12 col | "Seleccione el pais" | "* Seleccione el pais" |
| Departamento | p-dropdown con búsqueda, filterBy="nombre" | Condicional | 3/12 col | "Seleccione el Departamento" | "* Seleccione el Departamento" |
| Provincia | p-dropdown con búsqueda, filterBy="nombre" | Condicional | 3/12 col | "Seleccione la provincia" | "* Seleccione la provincia" |
| Distrito | p-dropdown con búsqueda, filterBy="nombre" | Condicional | 3/12 col | "Seleccione el Distrito" | "* Seleccione el Distrito" |
Todos los dropdowns tienen [showClear]="true", emptyMessage="No se encontraron registros." y emptyFilterMessage="No se han encontrado resultados".
Valor por defecto de País: PERU (auto-seleccionado).
Lógica de cascada:
Seleccionar País
Al seleccionar un país, se habilita el campo Departamento (solo si el país es PERU). Si se selecciona otro país o se limpia el campo, los dropdowns de Departamento, Provincia y Distrito se deshabilitan y limpian.
Seleccionar Departamento
Al seleccionar un departamento, se filtran las provincias por los primeros 2 dígitos del código del departamento. Se habilita el campo Provincia y se deshabilita Distrito.
Seleccionar Provincia
Al seleccionar una provincia, se filtran los distritos por los primeros 4 dígitos del código de la provincia. Se habilita el campo Distrito.
Seleccionar Distrito
El código del distrito seleccionado se envía como ubigeo al servidor.
Sección: Teléfonos
Subtítulo: "Ingrese los telefonos."
Tabla dinámica para agregar múltiples teléfonos.
| Columna | Ancho | Tipo | Descripción |
|---|---|---|---|
| N. | 40px | Texto | Número de fila (índice + 1). |
| Numero | Flexible | p-inputNumber (decimal, sin agrupación, maxFractionDigits=12) | Número de teléfono. |
| Tipo | 130px | p-dropdown | Opciones: Principal (PRINCIPAL), Casa (CASA), Trabajo (TRABAJO). Valor por defecto: Principal. |
| Acciones | 80px | Botón pi pi-times | Elimina la fila. |
- Botón "Agregar" (
pi pi-plus): Agrega una nueva fila vacía con tipo "Principal". - Cuando no hay registros: "No se encontraron datos".
Validación al guardar: Si una fila tiene el campo numero vacío: "La fila {N}, le falta el numero." (severidad: error, título: "Telefonos!").
Sección: Correos
Subtítulo: "Ingrese los correos."
Tabla dinámica para agregar múltiples correos electrónicos.
| Columna | Ancho | Tipo | Descripción |
|---|---|---|---|
| N. | 40px | Texto | Número de fila (índice + 1). |
| Correo | Flexible | pInputText | Dirección de correo electrónico. |
| Tipo | 130px | p-dropdown | Opciones: Principal (PRINCIPAL), Casa (CASA), Trabajo (TRABAJO). Valor por defecto: Principal. |
| Acciones | 80px | Botón pi pi-times | Elimina la fila. |
- Botón "Agregar" (
pi pi-plus): Agrega una nueva fila vacía con tipo "Principal". - Cuando no hay registros: "No se encontraron datos".
Validación al guardar: Si una fila tiene el campo correo vacío: "La fila {N}, le falta el numero." (severidad: error, título: "Correos!").
Sección: Contactos
Subtítulo: "Ingrese los datos de contacto o algun familiar acompanante."
Tabla dinámica para agregar múltiples contactos de emergencia o familiares.
| Columna | Ancho | Tipo | Descripción |
|---|---|---|---|
| N. | 40px | Texto | Número de fila. |
| Tipo documento | 150px | p-dropdown | Opciones: DNI (01), Carnet de extranjeria (04), Pasaporte (07). Valor por defecto: DNI. |
| N. documento | 130px | p-inputNumber (decimal, sin agrupación, maxFractionDigits=12) | Número de documento del contacto. |
| Nombre | Flexible | pInputText | Nombre del contacto. |
| Apellido paterno | Flexible | pInputText | Apellido paterno del contacto. |
| Apellido materno | Flexible | pInputText | Apellido materno del contacto. |
| Direccion | Flexible | pInputText | Dirección del contacto. |
| Telefono | 130px | p-inputNumber (decimal, sin agrupación, maxFractionDigits=12) | Teléfono del contacto. |
| Correo | 150px | pInputText | Correo electrónico del contacto. |
| Acciones | 80px | Botón pi pi-times | Elimina la fila. |
- Botón "Agregar" (
pi pi-plus): Agrega una nueva fila vacía.
Validación al guardar (solo si hay contactos registrados):
| Campo faltante | Mensaje de error |
|---|---|
| Numero documento | "La fila {N}, le falta el numero documento." |
| Nombre | "La fila {N}, le falta el nombre." |
| Apellido paterno | "La fila {N}, le falta el apellido paterno." |
| Apellido materno | "La fila {N}, le falta el apellido materno." |
| Telefono | "La fila {N}, le falta el telefono." |
Todos los mensajes de validación de contactos tienen severidad: error, título: "Alerta contactos!", duración: 5 segundos.
Botones 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. Se deshabilita durante el guardado. |
Validaciones al guardar
Campos obligatorios:
- Tipo paciente
- Tipo documento
- Numero documento
- Nombres
- Apellido paterno
- Apellido materno
- Sexo
Si hay errores en el formulario principal: "Revise bien, hay formularios por validar." (severidad: error, título: "Alerta", duración: 5s, posición: bottom-left).
Datos enviados al servidor
| Campo | Descripción |
|---|---|
id | ID del paciente (solo en edición). |
tipo | Tipo de paciente: "PRIVADO", "PARTICULAR", "SOAT" o "CONVENIO". |
tipo_documento | Tipo de documento: "DNI", "Carnet de extranjeria" o "Pasaporte". |
numero_documento | Número de documento de identidad. |
nombres | Nombres del paciente. |
apellido_paterno | Apellido paterno del paciente. |
apellido_materno | Apellido materno del paciente. |
direccion | Dirección del paciente. |
pais_id | ID del país seleccionado. |
ubigeo | Código del distrito seleccionado. |
fecha_nacimiento | Fecha de nacimiento (formato YYYY-MM-DD HH:MM:SS). |
sexo | "M" (Masculino) o "F" (Femenino). |
fecha | Fecha actual. |
estado | 0. |
estado_validacion | 0. |
creator_id | ID del colaborador autenticado. |
user_id | ID del usuario autenticado. |
telefonos | Array de objetos \{numero, tipo\}. |
correos | Array de objetos \{correo, tipo\}. |
contactos | Array de objetos con datos del contacto. |
Notificaciones
| Resultado | Severidad | Título | Mensaje | Duración |
|---|---|---|---|---|
| Creación exitosa | success | "Alerta" | "Se ha registrado con exito" | 5 segundos |
| Actualización exitosa | success | "Alerta" | "Datos actualizados con exito" | 5 segundos |
| Formulario inválido | error | "Alerta" | "Revise bien, hay formularios por validar." | 5 segundos |
| Error | error | "Error {código}" | Mensaje de error del servidor | 5 segundos |
Eliminar paciente
Al seleccionar "Eliminar" del menú contextual, se abre un diálogo de confirmación (DynamicDialog) con título "Confirmacion" y ancho de 50vw.
| Elemento | Descripción |
|---|---|
| Icono | pi pi-exclamation-triangle (tamaño 2rem) |
| Mensaje | "Estas seguro de proceder con la eliminacion?" |
| Botón "Cancelar" | Icono pi pi-times. Cierra sin eliminar. |
| Botón "Guardar" | Icono pi pi-check (cambia a spinner). Ejecuta la eliminación. |
Notificaciones
| Resultado | Severidad | Título | Mensaje | Duración |
|---|---|---|---|---|
| Éxito | success | "Alerta" | "ELIMINADO CON EXITO" | 5 segundos |
| Error | error | "Error {código}" | Mensaje de error del servidor | 5 segundos |
Endpoints
| Método | Endpoint | Descripción |
|---|---|---|
GET | /v2.0.3/erpx/salud/pacientes/ | Lista todos los pacientes con paginación y búsqueda. |
GET | /v2.0.3/erpx/salud/pacientes/\{id\} | Obtiene un paciente por su ID (para edición). |
POST | /v2.0.3/erpx/salud/pacientes/ | Crea un nuevo paciente. |
PUT | /v2.0.3/erpx/salud/pacientes/\{id\} | Actualiza un paciente existente. |
DELETE | /v2.0.3/erpx/salud/pacientes/\{id\} | Elimina un paciente. |
GET | /v2.0.1/erpx/global/paises/ | Lista los países para el dropdown de ubigeo. |
GET | \{ms-peru-sunat-services\}/api/v1/reniec/personas/\{numero\} | Consulta datos de persona por DNI en RENIEC. |
Problemas comunes
| Problema | Causa | Solución |
|---|---|---|
| "Revise bien, hay formularios por validar" | Campos obligatorios sin completar (tipo paciente, documento, nombres, apellidos o sexo). | Complete todos los campos obligatorios marcados con (*). |
| "Seleccione el tipo de documento" | Se intentó buscar en RENIEC sin seleccionar tipo de documento. | Seleccione el tipo de documento antes de buscar. |
| "El DNI ingresado es incorrecto, ingrese un numero valido" | El número de DNI no tiene exactamente 8 dígitos. | Verifique que el número de DNI tenga exactamente 8 dígitos. |
| No se auto-rellenan los datos del paciente | El número de documento no se encontró en RENIEC o el tipo de documento no es DNI. | La búsqueda RENIEC solo funciona con DNI. Para otros tipos de documento, ingrese los datos manualmente. |
| Los dropdowns de Departamento/Provincia/Distrito están deshabilitados | No se ha seleccionado el campo anterior en la cascada. | Seleccione primero el País (debe ser PERU), luego Departamento, Provincia y finalmente Distrito. |
| "La fila N, le falta el numero" en Teléfonos o Correos | Se agregó una fila en la sección de teléfonos o correos pero no se completó el campo requerido. | Complete el campo o elimine la fila vacía. |
Páginas relacionadas
- Admisiones — Gestión de admisiones de pacientes.
- Citas — Gestión de citas médicas.
- Atenciones — Gestión de atenciones clínicas.
Colas
Panel de colas de atención para visualización en pantallas de sala de espera en el módulo de Salud de Davix ERPX.
Laboratorios Estudios
Gestion completa de estudios de laboratorio en Davix ERPX. Registro de estudios desde ventas pendientes, validacion de resultados con analitos, generacion y subida de informes PDF, publicacion y cancelacion de resultados con integracion DICOM.