DavixDavix ERPX
Modulos

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

ElementoDescripció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

ElementoTipoDescripción
Campo de búsquedapInputText con icono pi pi-searchBúsqueda por texto libre. Se ejecuta al presionar Enter o al hacer clic en "Buscar".
Chips de filtros activosp-chipFiltros aplicados como chips removibles. Al hacer clic en un chip se abre el overlay para editarlo.
Botón "Agregar filtro"Icono pi pi-filterAbre el panel overlay de filtros.
Botón "Quitar filtros"Icono pi pi-filter-slashElimina todos los filtros y el texto de búsqueda.
Botón "Buscar"Icono pi pi-searchEjecuta 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.

FiltroValorCampos adicionales
Fecha1Fecha inicio* (input[type=date]), Fecha fin* (input[type=date]).
Tipo de paciente2Tipo de paciente* (p-dropdown). Opciones: Privado, Particular, Soat, Convenio.
Tipo documento3Tipo documento* (p-dropdown). Opciones: DNI, Carnet de extranjeria, Pasaporte.
Paciente4Paciente* (p-dropdown con búsqueda). Muestra: "{numero_documento} - {apellido_paterno} {apellido_materno} {nombres}".
Género5Género* (p-dropdown). Opciones: MASCULINO (M), FEMENINO (F).

Mensaje de error para campos obligatorios: " Obligatorio"*.

Formato de consulta (query) por filtro:

FiltroQuery generadoTexto del chip
Fechafecha:[YYYY-MM-DD TO YYYY-MM-DD]"Fecha desde DD/MM/YYYY hasta DD/MM/YYYY"
Tipo de pacientetipo:\{valor\}"Tipo paciente == {valor}"
Tipo documentotipo_documento:\{valor\}"Tipo documento == {valor}"
Pacienteid:\{id\}"Paciente == {nombres_completos}"
Génerosexo:\{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

ColumnaAnchoDescripción
Fecha100pxFecha de registro, formato DD/MM/YYYY hh:mm:ss A.
Tipo100pxTipo de paciente (PRIVADO, PARTICULAR, SOAT, CONVENIO).
T. Documento130pxTipo de documento de identidad.
N. Documento130pxNúmero de documento de identidad.
PacienteFlexibleNombre completo: {nombres} {apellido_paterno} {apellido_materno}.
F. Nacimiento100pxFecha de nacimiento, formato DD/MM/YYYY.
Genero100px"Masculino" (si sexo = M) o "Femenino" (si sexo = F).
Telefono200pxNúmero de teléfono con tipo "PRINCIPAL".
Acciones80pxIcono 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ónIconoDescripción
Editarpi pi-pencilAbre el diálogo de edición con los datos precargados.
Eliminarpi pi-trashAbre 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

CampoTipoObligatorioTooltipMensaje de error
Tipo pacienteRadio buttons"Seleccione el tipo de paciente""* Seleccione el tipo de paciente"

Opciones:

OpciónValor
PrivadoPRIVADO
ParticularPARTICULAR
SoatSOAT
ConvenioCONVENIO

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."*

CampoTipoObligatorioAnchoTooltipMensaje de error
Tipo documentop-dropdown3/12 col"Seleccione el tipo documento""* Seleccione tipo documento valido"
Numero documentopInputText con botón de búsqueda4/12 col"Numero documento""* Ingrese numero documento valido"
NombrespInputText4/12 col"Ingrese los nombres""* Ingrese nombres valido"
Apellido paternopInputText4/12 col"Ingrese el apellid paterno""* Ingrese apellido paterno valido"
Apellido maternopInputText4/12 col"Ingrese el apellid materno""* Ingrese apellido materno valido"
Fecha nacimientop-calendar (formato dd/mm/yyyy, con icono)No3/12 col"Ingrese la fecha de nacimiento""* Ingrese fecha nacimiento valido"
SexoRadio buttons4/12 col"Seleccione el sexo""* Seleccione el sexo valido"

Opciones de Tipo documento:

OpciónValorCódigo
DNIDNI01
Carnet de extranjeriaCarnet de extranjeria04
PasaportePasaporte07

Valor por defecto: DNI.

Opciones de Sexo:

OpciónValor
MasculinoM
FemeninoF

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ónSeveridadMensaje
No se seleccionó tipo de documentowarn"Seleccione el tipo de documento."
No se ingresó número de documentowarn"Ingrese un numero de valido."
DNI no tiene exactamente 8 caractereswarn"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."

CampoTipoObligatorioAnchoTooltipMensaje de error
DirecciónpInputTextNo12/12 col"Ingrese la direccion""* Ingrese la direccion"
Paísp-dropdown con búsqueda, filterBy="nombre"No3/12 col"Seleccione el pais""* Seleccione el pais"
Departamentop-dropdown con búsqueda, filterBy="nombre"Condicional3/12 col"Seleccione el Departamento""* Seleccione el Departamento"
Provinciap-dropdown con búsqueda, filterBy="nombre"Condicional3/12 col"Seleccione la provincia""* Seleccione la provincia"
Distritop-dropdown con búsqueda, filterBy="nombre"Condicional3/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.

ColumnaAnchoTipoDescripción
N.40pxTextoNúmero de fila (índice + 1).
NumeroFlexiblep-inputNumber (decimal, sin agrupación, maxFractionDigits=12)Número de teléfono.
Tipo130pxp-dropdownOpciones: Principal (PRINCIPAL), Casa (CASA), Trabajo (TRABAJO). Valor por defecto: Principal.
Acciones80pxBotón pi pi-timesElimina 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.

ColumnaAnchoTipoDescripción
N.40pxTextoNúmero de fila (índice + 1).
CorreoFlexiblepInputTextDirección de correo electrónico.
Tipo130pxp-dropdownOpciones: Principal (PRINCIPAL), Casa (CASA), Trabajo (TRABAJO). Valor por defecto: Principal.
Acciones80pxBotón pi pi-timesElimina 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.

ColumnaAnchoTipoDescripción
N.40pxTextoNúmero de fila.
Tipo documento150pxp-dropdownOpciones: DNI (01), Carnet de extranjeria (04), Pasaporte (07). Valor por defecto: DNI.
N. documento130pxp-inputNumber (decimal, sin agrupación, maxFractionDigits=12)Número de documento del contacto.
NombreFlexiblepInputTextNombre del contacto.
Apellido paternoFlexiblepInputTextApellido paterno del contacto.
Apellido maternoFlexiblepInputTextApellido materno del contacto.
DireccionFlexiblepInputTextDirección del contacto.
Telefono130pxp-inputNumber (decimal, sin agrupación, maxFractionDigits=12)Teléfono del contacto.
Correo150pxpInputTextCorreo electrónico del contacto.
Acciones80pxBotón pi pi-timesElimina la fila.
  • Botón "Agregar" (pi pi-plus): Agrega una nueva fila vacía.

Validación al guardar (solo si hay contactos registrados):

Campo faltanteMensaje 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.

BotónIconoDescripción
Cancelarpi pi-timesCierra el diálogo sin guardar.
Guardarpi 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

CampoDescripción
idID del paciente (solo en edición).
tipoTipo de paciente: "PRIVADO", "PARTICULAR", "SOAT" o "CONVENIO".
tipo_documentoTipo de documento: "DNI", "Carnet de extranjeria" o "Pasaporte".
numero_documentoNúmero de documento de identidad.
nombresNombres del paciente.
apellido_paternoApellido paterno del paciente.
apellido_maternoApellido materno del paciente.
direccionDirección del paciente.
pais_idID del país seleccionado.
ubigeoCódigo del distrito seleccionado.
fecha_nacimientoFecha de nacimiento (formato YYYY-MM-DD HH:MM:SS).
sexo"M" (Masculino) o "F" (Femenino).
fechaFecha actual.
estado0.
estado_validacion0.
creator_idID del colaborador autenticado.
user_idID del usuario autenticado.
telefonosArray de objetos \{numero, tipo\}.
correosArray de objetos \{correo, tipo\}.
contactosArray de objetos con datos del contacto.

Notificaciones

ResultadoSeveridadTítuloMensajeDuración
Creación exitosasuccess"Alerta""Se ha registrado con exito"5 segundos
Actualización exitosasuccess"Alerta""Datos actualizados con exito"5 segundos
Formulario inválidoerror"Alerta""Revise bien, hay formularios por validar."5 segundos
Errorerror"Error {código}"Mensaje de error del servidor5 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.

ElementoDescripción
Iconopi 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

ResultadoSeveridadTítuloMensajeDuración
Éxitosuccess"Alerta""ELIMINADO CON EXITO"5 segundos
Errorerror"Error {código}"Mensaje de error del servidor5 segundos

Endpoints

MétodoEndpointDescripció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

ProblemaCausaSolució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 pacienteEl 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 deshabilitadosNo 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 CorreosSe 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.