Buscar paciente
Localice al paciente por su documento o encuentre una atención específica mediante el OID de la cita.
Identifica automáticamente CC, CE, TI o RC. Si no existe en HUS, podrá registrarlo desde ADRES.
Disponible para citas gestionadas desde Bissar.
Supervisión operacional
Rendimiento de operadores
Compare la producción trazable por operador, módulo y día dentro del periodo seleccionado.
Filtros del reporte de rendimiento
Consultando producción operativa y trazabilidad de BELÉN…
Lectura rápida
Resumen ejecutivo del periodo
Tendencia diaria por sección
Volumen registrado cada día del periodo.
BELÉN vs suma humana
BELÉN es la única IA; la segunda barra suma al resto de operadores.
Relación consolidada por operador
Seleccione una persona para actualizar KPIs, gráficos y detalle diario. Los conteos abren el reporte auditable del módulo.
| Operador | Incidencias | Lista de Espera | Citas Procesadas | Conversaciones descartadas | Total | Días activos | Promedio / día | Participación |
|---|
Detalle del operador
Operador seleccionado
Distribución y evolución diaria dentro del periodo consultado.
Turno actual de las conversaciones
Chats exactos del periodo sin cita, incidencia ni Lista de Espera enlazable.
Conversaciones descartadas
Chats donde el paciente escribió y que no terminaron en cita, lista de espera ni incidencia.
| Fecha | Paciente | Causa | Detalle | Último mensaje | Abrir |
|---|
Evolución diaria
Total de gestiones del operador por fecha.
Composición del trabajo
Participación de cada tipo de resultado dentro de su total.
Desglose diario del operador
| Fecha | Procesos de agendamiento | Incidencias | Lista de Espera | Citas Procesadas | Conversaciones descartadas | Total |
|---|
Estadísticas diarias
Detalle cronológico del periodo seleccionado.
| Fecha | Incidencias | Lista de Espera | Citas Procesadas | Conversaciones descartadas | Total diario |
|---|
Metodología del reporteConsulte criterios, conciliación y alcance de los indicadores.
Estado del HUS
Disponibilidad de cada servicio de HUS y el historial de caídas, día por día y hora por hora.
Disponibilidad por servicio
Cada barra es un día. Toque una barra para ver las horas de las caídas.
Detalle del día
Llamadas a HUS por hora (verde: todas respondieron; rojo: hubo fallas) y caídas del día.
Historial de caídas
Todas las desconexiones del periodo, con la hora de inicio y de recuperación.
Agendamiento · Integración HUS
Agenda local
Importe turnos por especialidad, actividad y profesional. Desde ese momento, todos los canales reservan aquí sin depender de la conexión con HUS.
Origen de la agenda
Seleccione especialidad y actividad del catálogo. Los profesionales se leen de la agenda HUS de esa actividad.
Agenda local activa
Se muestran todas las fuentes locales vigentes; HUS solo se consulta al previsualizar o importar.
| Fecha y hora | Profesional | Especialidad / actividad | Estado | Ocupación operativa | OID HUS |
|---|---|---|---|---|---|
| Cargando la agenda local activa… | |||||
Turnos apartados y sincronización con HUS
Lo que se agenda sobre una actividad en agenda local queda apartado aquí y se envía a HUS automáticamente. El paciente recibe la confirmación con fecha y hora cuando HUS la registra; si HUS la rechaza, queda en conflicto con una incidencia.
| Turno | Paciente | Agendado por | Estado en HUS | Acciones |
|---|---|---|---|---|
| Cargando turnos apartados… | ||||
Actividades en agenda local
Mientras una actividad esté aquí, Registrar Cita, el motor automático y BELEN (IA) ofrecen y apartan sus turnos desde la copia local sin consultar HUS. «Volver a HUS» la devuelve a la agenda en vivo (solo con todo sincronizado).
| Actividad | Última descarga | Turnos libres | Sin registrar en HUS | Acciones |
|---|---|---|---|---|
| Cargando actividades… | ||||
Registrar nuevo paciente en HUS
Consulte la identidad en ADRES, complete únicamente los datos faltantes y revise todo antes de crear el registro.
- 1Consultar
- 2Revisar y registrar
Consulte el documento del paciente
ADRES puede devolver más de una identidad para el mismo número; podrá escoger la correcta antes de continuar.
Ingrese solo números. También podrá completar el registro manualmente si ADRES no responde.
Esta consulta solo verifica identidad. El registro en HUS ocurre únicamente al confirmar el formulario.
Procesar Orden Médica — Gemini Vision
Suba una orden médica para extraer datos con el mismo pipeline que usa BELEN (IA) en WhatsApp (Gemini Vision → DeepSeek → OCR). Suba autorización + orden juntas para obtener el informe comparativo automático.
Cola OCR Local — por paciente
Las órdenes que llegan por WhatsApp a las que les falta algún dato que el rescate sabe rellenar (sin CUPS, sin documento, sin nombre o con validación fallida) se encolan automáticamente y el servidor las reprocesa con el modelo visual local (Tesseract queda como degradación), una cada ~6 min (~10/hora). Nunca se pisa un campo ya guardado. «Sin mejora» no es un error: significa que no había nada que rellenar. Lo que sí hay que mirar son los «Fallido», y en especial los de identidad incompatible — ahí el re-OCR leyó otra cédula y queda una incidencia abierta. Cada trabajo muestra su fecha de encolado (día y hora) y permite ver el archivo a procesar.
Catálogo CUPS
Registro de códigos CUPS con sus descripciones. Se alimenta automáticamente al procesar órdenes médicas con OCR.
Catálogo Madre Canguro
Segundo catálogo de códigos, curado a mano, para procedimientos que el hospital usa pero que NO están en la nomenclatura CUPS nacional. El OCR de órdenes recorre primero el Catálogo CUPS y, si el código no aparece ahí, cae aquí antes de tratarlo como "desconocido" — así BELEN (IA) sigue resolviendo especialidad y documentos requeridos.
Catálogos HUS · control local
Catálogo de especialidades
Consulte la oferta vigente y sus relaciones. Los registros históricos se consolidan visualmente sin borrar actividades, CUPS ni profesionales.
Control operativo del catálogo
Catálogo de actividades
Revise la cobertura de cada actividad HUS y resuelva las relaciones pendientes con CUPS y profesionales.
Cómo se calculan las métricas
Validación de afiliación
Consulta ADRES
Verifique la identidad y el estado de afiliación reportado por el Ministerio de Salud.
Consultar por documento
Ingrese el número exactamente como aparece en el documento del paciente.
Use únicamente números; no incluya puntos, espacios ni guiones.
Resultado externo. Una falla técnica no significa que el paciente esté inactivo o no afiliado.
Seguimiento Madre Canguro
Registro del programa Madre Canguro: la madre se valida contra HUS (igual que Buscar Paciente) y se le asocian uno o más niños, con edad de gestación y peso al nacer. La edad actual del niño se calcula sola — no hay que actualizarla.
Especialidades con Disponibilidad Real
Lista mantenida automáticamente. Se sirve desde una caché local instantánea y se refresca contra HUS en segundo plano cuando supera 30 minutos.
Médicos y relaciones
Los médicos y sus relaciones con actividades y especialidades se leen de la base local. Expanda un médico para ver el origen de cada relación; la agenda se consulta en tiempo real contra HUS únicamente al abrirla.
Acote la cola por periodo o especialidad.
Citas Canceladas
Auditoría de TODAS las cancelaciones de cita — por el paciente (WhatsApp / voz) y por operadores. Muestra si la cancelación quedó verificada en HUS, el canal, el motivo y quién la hizo.
Notificaciones de Citas
Pacientes a quienes se les envió la notificación de WhatsApp al asignarles una cita en HUS, con los datos enviados (especialidad, médico, fecha, OID) y el estado del mensaje.
Órdenes WhatsApp — documentos recibidos
Órdenes médicas y autorizaciones que los pacientes enviaron por WhatsApp (OCR). Los chips separan el trabajo del equipo de Consulta Médica Especializada (opción 1️⃣ de BELEN (IA)) y el de Servicios de Imagenología (opción 3️⃣).
Cierres por Agentes
Casos cerrados por un agente: agendamientos hechos por un operador (panel) o por BELEN (IA) (WhatsApp), más los cierres manuales ("Cita Procesada") desde Lista de Espera o Incidencias. Estos registros también aparecen en Citas Procesadas.
Filtros
Filtros principales
EPS y especialidad
La especialidad se determina exclusivamente con la relación validada CUPS → actividad → especialidad de los catálogos.
Resumen operativo
Situación de la bandeja
Seleccione un indicador para enfocar inmediatamente la cola.
Refine la cola por área responsable o por disponibilidad actual en HUS.
Solo Manual
Casos de Incidencias y Lista de Espera bloqueados porque su CUPS no está habilitado para agendamiento automático (o no existe en el catálogo). Un solo lugar para gestionarlos todos.
Cupos no asignados
Pacientes que aceptaron un cupo por WhatsApp y se quedaron sin cita — otro paciente lo tomó primero o HUS rechazó el turno. Desde el 27/07/2026 el cupo queda reservado mientras la oferta está viva, así que esto no debería volver a pasar; esta pantalla es para responderles a los que ya quedaron afectados.
Seguridad del paciente · supervisión operativa
Centro de alertas críticas
Priorice casos que aún no tienen una gestión enlazada y supervise por separado los que ya cuentan con una incidencia activa.
Las alertas sin incidencia se ordenan de la más antigua a la más reciente.
La antigüedad ayuda a ordenar el trabajo; no representa una clasificación clínica ni reemplaza la valoración del caso.
Notificaciones por E-mail
Conecte el correo corporativo de Google para reportes y para los hilos de correo con pacientes iniciados desde Incidencias.
Conexión con Gmail / Google Workspace
Use una contraseña de aplicación; la misma conexión SMTP/IMAP permite enviar y relacionar respuestas de pacientes.
Destinatarios y programación por reporte
Agregue uno o varios correos por reporte, separados por coma. La hora corresponde a Colombia.
Plantillas Oficiales de WhatsApp (Meta Cloud API)
Sincronización directa con Meta Graph API v21.0, auditoría de estado de aprobación y simulador en vivo de mensajes HSM con variables dinámicas.
Simulador y Prueba
Vista PreviaCatálogo de Plantillas Registradas
Cargando…Gestión y KPIs de Operadores
Productividad, calidad y velocidad de resolución por operador. El score combina volumen, velocidad (mediana), calidad (descarte/reapertura) y éxito de sincronización en HUS. Tiempo = mediana; el agendamiento humano se mide vía operaciones_log.
Filtros
Insights operativos
Ranking de operadores (por score)
| # | Operador | Rol | Score | Nivel | Semáforo | Atendidas | Resolvió | Descartó | %Descarte | Mediana resol. | %<1h | Prod/h | Reaperturas |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Aplique filtros para cargar datos. | |||||||||||||
Gestión de la lista de espera
Qué agente gestiona la cola de espera (agenda, contacta, deriva o cierra ítems) en el rango seleccionado. El backlog vivo "sin gestionar" es el total actual de la pestaña Pendientes.
| Operador | Rol | Gestionados | Agendó | Contactó | No contactable | Derivó a incidencia | Resolvió | Rechazó | Reasignó | Última gestión |
|---|---|---|---|---|---|---|---|---|---|---|
| Aplique filtros para cargar datos. | ||||||||||
Visualizaciones
Bitácora de actividad
| Hora | Operador | Acción | Paciente | Notas |
|---|---|---|---|---|
| Aplique filtros para cargar la bitácora. | ||||
Indicadores de salud
Indicadores de oportunidad, demanda y suficiencia (CEX / ONC / P.3.x) y reporte mensual de la Resolución 1552 de 2013. Universo: citas y solicitudes gestionadas por el canal Bissar. Cada tarjeta abre el detalle con su metodología y advertencias.
Cargando…
Reportes gráficos y estadísticos
Tendencia de oportunidad, distribución de la espera, demanda vs gestión de la cola y comparativo por especialidad, sobre el mismo rango de fechas de arriba. Percentiles calculados sobre los días de espera reales de cada cita.
Oportunidad promedio (días) por periodo
Citas asignadas por periodo
Distribución de los días de espera
Demanda: solicitudes vs gestionadas
Oportunidad por especialidad (top 15 por volumen)
Citas por canal
Tipo de cita
Resolución 1552 de 2013 — reporte mensual
Numerales 1 a 6 por tipo de cita y mínimo/máximo por especialidad. Los numerales 3 y 5 se calculan solo sobre citas con fecha deseada capturada (cobertura indicada).
Cargando…
Calidad — Satisfacción del paciente
Calificación del servicio (1 = ineficiente … 5 = excelente) que el paciente asigna por WhatsApp. Al finalizar una atención humana se evalúa al operador que dio la última respuesta y luego se pregunta el motivo. Cada operador conserva sus resultados de forma independiente.
Distribución de calificaciones
Promedio por operador
| Operador | Calificaciones | Motivos | Promedio |
|---|---|---|---|
| — | |||
Calificaciones recientes
| Fecha | Paciente | Operador | Calificación | Motivo de la calificación | Estado |
|---|---|---|---|---|---|
| — | |||||
Consentimientos Habeas Data — Ley 1581
Trazabilidad transaccional de la aceptación o rechazo del tratamiento de datos personales por parte de los pacientes vía WhatsApp. Cada evento queda con su hash de evidencia y un snapshot de la conversación.
Pacientes — Salud Pública (MGE / SP)
🎯 Embudo de notificación
📨 Estado del envío SMS
👤 Curso de vida
🩺 Régimen
📍 Top 10 municipios
🏥 Top 15 EPS
🎂 Distribución por edad
⚠️ Grupo de patología (con clasificación)
🩺 Resultado de tamización
📂 Estado del caso clínico
📁 Archivos cargados
❌ Top errores de envío SMS
Llamadas — BELEN (IA)
Conversaciones WhatsApp
Prioriza conversaciones, consulta el contexto del paciente y revisa documentos desde un único espacio operativo.
Gestión diaria de BELEN (IA)
Conversaciones únicas y resultados operativos conciliados por día, con explicación de cualquier diferencia.
Seleccione una conversación
Revise el historial, el contexto del paciente y los documentos asociados. Si su rol lo permite, también podrá tomar control de la atención.
Preguntas Frecuentes — Hospital
Gestión de preguntas y respuestas que el agente BELEN (IA) utiliza para responder consultas de información del hospital.
Reportar una incidencia
Describa el problema con claridad. Puede adjuntar una captura para ayudar al equipo administrador a resolverlo.
Información del ticket
Los campos marcados con asterisco son obligatorios.
Mis tickets
Consulte el estado y las respuestas de las incidencias que ha reportado.
Detalle del ticket
Gestión de Usuarios
Historial de Accesos
Registro de todos los intentos de inicio de sesión en el sistema.
Logs — Auditoría de cambios
Trazabilidad de cambios sensibles del panel: quién los hizo, cuándo y qué valores había antes y después.
Ediciones de teléfono, correo o fecha de nacimiento hechas desde Registrar Cita y verificadas contra HUS.
Creaciones, ediciones, autorizaciones, bloqueos, contratos HUS y eliminaciones. Cada registro conserva usuario, rol, IP y valores anterior/nuevo.
Crear clave
Licencias de BISSAR-OCR · Acceso exclusivo de davebas
Instrucciones de instalación
Instale BISSAR-OCR en el servidor del cliente y verifique su conexión.
Linux (CLI): ver pasos y comandos de instalación
Requiere Linux, Python 3.8 o posterior, curl y acceso HTTPS a https://bissar.co. Para instalar en el sistema, use una cuenta con sudo. El servidor cliente no necesita GPU.
Ejecute los pasos en la misma terminal del servidor donde instalará el CLI. Copie la clave del cliente desde “Ver clave de activación”.
1. Descargar el instalador
BISSAR_INSTALL_DIR="$(mktemp -d)" &&
curl --fail --show-error --proto '=https' --tlsv1.2 \
https://bissar.co/install.sh \
-o "$BISSAR_INSTALL_DIR/bissar-ocr-install.sh"Continúe cuando la descarga termine sin errores. Puede revisar el archivo descargado o abrir el instalador oficial.
2. Instalar y activar con la clave
sudo bash "$BISSAR_INSTALL_DIR/bissar-ocr-install.sh"La instalación con sudo crea la cuenta Linux bissar y, en el modo sin SSH, establece automáticamente la contraseña inicial configurada por el administrador. Para acceso con .pem sin contraseña, use la opción “Acceso SSH para el usuario bissar” de esta guía. Si la cuenta ya existe, conserva sus credenciales locales.
Esta contraseña pertenece al usuario local del servidor y es independiente de la clave del CLI. Se establece en ese equipo y no se envía a Bissar.
En la primera instalación, pegue la clave cuando aparezca “Clave BISSAR-OCR” y presione Enter. La clave no se muestra mientras la escribe. La activación registra este servidor y consume una activación disponible.
Si ya existe una configuración, el instalador verifica la licencia con Bissar. Si sigue vigente, la conserva; si recibe HTTP 401/403, solicita una clave nueva. Ante un fallo de conexión conserva la configuración y se detiene.
3. Comprobar versión y conexión
sudo /usr/local/bin/bissar-ocr --version
sudo /usr/local/bin/bissar-ocr --config /etc/bissar-ocr/config.json status --raw
sudo /usr/local/bin/bissar-ocr --config /etc/bissar-ocr/config.json doctor --rawstatus verifica la licencia y doctor comprueba conexión y compatibilidad. Revise que devuelvan "ok": true. Estos comandos usan sudo para leer la configuración privada de la instalación del sistema.
Después pulse Actualizar en “Claves e instalaciones” para ver hostname, IP, sistema operativo, UUID y último uso del servidor.
Solicitar otra clave o corregir HTTP 401/403
Descargue el instalador actualizado con el paso 1 y ejecute este comando para solicitar una clave aunque ya exista configuración. Use una clave activa con cupo disponible. La configuración anterior solo se reemplaza si la nueva activación tiene éxito.
sudo bash "$BISSAR_INSTALL_DIR/bissar-ocr-install.sh" --reactivarLa clave se solicita por terminal y no aparece al escribirla. Si usa el puente local, agregue --service para cargar la nueva activación en el servicio. Ejecute el archivo con bash; no necesita cambiar sus permisos de ejecución.
Puente local para una aplicación web (opcional)
Si una aplicación del mismo servidor necesita la API local, instale el servicio con --service. Requiere systemd 247 o posterior; conserva la configuración existente.
sudo bash "$BISSAR_INSTALL_DIR/bissar-ocr-install.sh" --service
systemctl is-active bissar-ocr.service
curl --fail --show-error http://127.0.0.1:8585/v1/healthEl puente escucha en 127.0.0.1:8585 y se inicia automáticamente con el servidor. Su estado local se comprueba con /v1/health; para validar la conexión con Bissar use también doctor.
Acceso SSH para el usuario bissar
Genere el acceso aquí para instalar sin crear una contraseña de bissar. La clave privada se genera en este navegador y se descarga como .pem; el servidor recibe únicamente la clave pública mediante un archivo JSON.
1. Guarda la clave privada en tu equipo. Consérvala para conectarte; al cerrar la sesión se elimina la copia del navegador.
2. Copia este comando en la terminal del servidor remoto. Descarga el instalador actualizado y escribe la configuración pública. Si falta activar el CLI, pedirá su clave de licencia.
3. Conecta desde el equipo que conserva el .pem. Ejecuta desde la carpeta donde lo guardaste y sustituye SERVIDOR por la IP o nombre del equipo remoto.
Si ves “Opción desconocida”, usa el comando generado: descarga una copia nueva del instalador 1.3.0. La ruta /ruta/operador.pub del ejemplo manual debe sustituirse por un archivo real.
Copie al servidor la clave pública del equipo desde el que se conectará y añada esta opción al instalar. El archivo debe contener una sola clave OpenSSH. La clave privada permanece en su equipo.
sudo bash "$BISSAR_INSTALL_DIR/bissar-ocr-install.sh" --ssh-key-file /ruta/operador.pubRequiere OpenSSH Server instalado y el servicio SSH activo. Admite una clave pública OpenSSH o PEM. Una cuenta nueva se crea sin contraseña utilizable; si bissar ya existe, conserva sus credenciales locales. Para entrar por SSH se exige la clave pública. Si el servidor tiene restricciones adicionales, el instalador muestra las que requieren revisión.
Después, desde el equipo que conserva la clave privada correspondiente:
ssh -i /ruta/clave_privada bissar@SERVIDORRevocar una licencia del CLI no revoca este acceso SSH. Para retirar una clave, elimine su línea de /etc/ssh/bissar-cli/authorized_keys en el servidor.
Instalación sin permisos de administrador
Después de descargar el instalador, ejecute esta alternativa en lugar del paso 2. Instala el CLI para el usuario actual; no crea la cuenta bissar ni configura el servicio systemd.
bash "$BISSAR_INSTALL_DIR/bissar-ocr-install.sh"
"$HOME/.local/bin/bissar-ocr" --config "${XDG_CONFIG_HOME:-$HOME/.config}/bissar-ocr/config.json" doctor --rawInstalación desatendida con un archivo de clave
Guarde la clave del CLI en un archivo privado del servidor y sustituya la ruta del ejemplo por la real. Use esta alternativa al paso 2 cuando no haya una terminal interactiva. La contraseña inicial de la nueva cuenta bissar se configura automáticamente; si la cuenta ya existe, se conserva su contraseña.
chmod 600 /ruta/clave-ocr.txt
sudo bash "$BISSAR_INSTALL_DIR/bissar-ocr-install.sh" --key-file /ruta/clave-ocr.txtPara elegir otra contraseña inicial de bissar, guárdela en un archivo separado con permisos 0600 y añada --user-password-file /ruta/password-bissar.txt al comando. Se omite si la cuenta ya existe.
Windows Server con Next.js: ver pasos del instalador
Para Windows Server 2016 o posterior (x64) con acceso HTTPS a https://bissar.co. Usa la misma clave y la misma activación que el CLI de Linux: el servidor aparece en “Claves e instalaciones” y se revoca igual. Entregue al cliente la clave desde “Ver clave de activación”.
1. Descargar el instalador en el servidor
En PowerShell, en la carpeta donde quiera guardarlo:
Invoke-WebRequest https://bissar.co/api/v1/bissar-ocr/install/windows/bissar-ocr-windows-1.0.1.exe -OutFile bissar-ocr-windows-1.0.1.exe
Get-FileHash .\bissar-ocr-windows-1.0.1.exe -Algorithm SHA256El hash debe ser 46acd9cfc6325695eb844af4bed1ca296ad813121e81f2d96fceef919bd8e5d6. También puede descargar el instalador desde el navegador del servidor. No está firmado digitalmente: si Windows muestra “Windows protegió su PC”, elija Más información → Ejecutar de todas formas.
2. Ejecutarlo y pegar la clave
Haga doble clic sobre bissar-ocr-windows-1.0.1.exe y acepte el aviso de administrador. Cuando aparezca “Clave BISSAR-OCR”, pegue la clave con clic derecho y presione Enter. La clave no se muestra mientras la escribe.
El instalador hace lo siguiente:
- Activa el servidor: registra hostname, IP, sistema operativo y MachineGuid, y consume una activación. Si ya existe una licencia vigente, la conserva y no consume otra.
- Instala el servicio BissarOCR con inicio automático y reinicio ante fallos.
- Verifica la conexión con Bissar.
El token queda en C:\ProgramData\BissarOCR\config.json. Solo pueden leerlo SYSTEM, Administradores y el servicio. El puente escucha únicamente en http://127.0.0.1:8585.
3. Comprobar el servicio
cd "C:\Program Files\BissarOCR"
.\bissar-ocr.exe doctor
sc.exe query BissarOCRAbra PowerShell o el Símbolo del sistema como Administrador; los comandos funcionan en ambos. doctor debe devolver "ok": true y el servicio debe aparecer como RUNNING. Después pulse Actualizar en “Claves e instalaciones”.
4. Conectar la aplicación Next.js
En la carpeta del proyecto, instale el conector. Detecta el servicio automáticamente y no necesita la clave.
npm install https://bissar.co/api/v1/bissar-ocr/install/next/bissar-ocr-next-1.1.0.tgzCree el archivo app/api/bissar-ocr/procesar/route.ts. La función autorizar es obligatoria y debe comprobar la sesión de la aplicación del cliente.
import { crearRutaProcesar } from '@bissar/ocr-next/next';
export const runtime = 'nodejs';
export const dynamic = 'force-dynamic';
export const POST = crearRutaProcesar({ autorizar: async () => Boolean((await auth())?.user) });El navegador solo llama a esta ruta, y la aplicación solo habla con el servicio local. El paquete incluye el componente BissarOcrCarga, rutas para consultar horarios y su guía completa en el README.
Instalación desatendida, otra clave o desinstalar
Instalación sin intervención, en PowerShell como Administrador. Guarde la clave en un archivo, ejecute el comando y borre el archivo después:
.\bissar-ocr-windows-1.0.1.exe instalar --clave-archivo C:\ruta\clave-ocr.txt --silenciosoAnte HTTP 401/403 o una instalación revocada, ejecute de nuevo el instalador: pedirá otra clave. Para solicitarla aunque la licencia siga vigente:
.\bissar-ocr-windows-1.0.1.exe instalar --reactivarLa configuración anterior solo se reemplaza si la nueva activación tiene éxito. Si el puerto 8585 está ocupado, añada --puerto 8586; para un proxy corporativo, --proxy http://proxy:8080.
Para desinstalar, use el comando siguiente. Conserva la configuración salvo que añada --borrar-config:
cd "C:\Program Files\BissarOCR"
.\bissar-ocr.exe desinstalarSin instalar servicios: activar con npx
Úselo cuando el servidor no permita instalar servicios. La aplicación Next.js lee el token directamente. Ejecute en PowerShell como Administrador, en la carpeta del proyecto:
npm install https://bissar.co/api/v1/bissar-ocr/install/next/bissar-ocr-next-1.1.0.tgz
npx bissar-ocr-next activar --usuario-servicio "IIS AppPool\NOMBRE_DEL_GRUPO"Sustituya IIS AppPool\NOMBRE_DEL_GRUPO por la cuenta que ejecuta Next.js. Si la aplicación corre como servicio con usuario propio, use "SERVIDOR\usuario"; con Servicio de red, use "*S-1-5-20". Si cambia la cuenta, use npx bissar-ocr-next permisos --usuario-servicio "…".
Claves e instalaciones
Servidores registrados y actividad de las licencias
“Activa” indica una instalación autorizada, no que el servidor esté conectado. Hostname, sistema operativo y UUID son los datos enviados al activar el CLI o el conector Next.js. Fechas en hora de Colombia.
Claves
Instalaciones y servidores
Test HUS — Rendimiento del servidor
Mide cuántas solicitudes por minuto aguanta el API del HUS antes de degradarse. Visible solo para davebas.
Solo se disparan consultas de lectura (catálogos y autenticación): la prueba nunca registra pacientes ni agenda citas. Contra HUS Producción la carga la siente el hospital de verdad — úselo fuera de horario pico y con escalones cortos.
Pasado este tiempo la solicitud cuenta como fallida.
Sube la carga por escalones y clasifica cada uno: óptimo, ineficiente (responde pero encolando), falla o colapso. Corta sola al primer escalón con errores.
Solicitudes simultáneas en cada escalón.
Diagnóstico de endpoints
Prueba uno por uno TODOS los servicios del HUS y muestra cuáles responden bien y cuáles fallan.
Cada servicio se consulta varias veces, porque el HUS falla de forma intermitente: con una sola llamada el resultado sería una moneda al aire. Usa el servidor objetivo seleccionado arriba. Los servicios que modifican datos (agendar, cancelar, registrar) se listan pero nunca se ejecutan.
Pruebas anteriores
Historial de corridas para comparar el rendimiento entre días.
Cupos por Día
Calendario de Citas
Registrar nueva cita
Identifique al paciente, consulte la fuente operativa y confirme el turno de forma trazable.
Identifique al paciente
Consulte el documento para validar los datos del paciente antes de buscar una cita.
Digite únicamente números. La consulta se realiza directamente en HUS.
Nuevo caso en cola
Importar Lista de Espera
Analice solicitudes históricas, revise la relación Actividad–CUPS y apruebe cada EPS antes de consultar al paciente por WhatsApp.
Aprobación por EPS
Revise conteos y bloqueos. Aprobar inicia el procesamiento durable, no un envío masivo dentro del navegador.
Pacientes y solicitudes
Últimos registros de la carga.
Histórico de cargas
Cada carga conserva quién la creó, sus EPS aprobadas y el desenlace Sí/No/sin respuesta por paciente.
EPS Autorizadas
Catálogo jerárquico de EPS Principales por régimen (Contributivo / Subsidiado). Los pacientes nuevos usan el Contrato Activo; los históricos conservan su convenio.
Sedes
Registre las sedes del hospital (nombre, dirección y teléfonos). Cada CUPS usa una sede; la dirección de esa sede se le informa al paciente en la confirmación de la cita. Un CUPS sin sede asignada usa la primera sede activa.
Cupos bloqueados
Consulte qué disponibilidad quedó fuera del agendamiento, a quién afecta y cuándo volverá a estar habilitada.
Estados de Afiliación EPS
Configure qué estados de afiliación de ADRES permiten continuar con el proceso de atención. Los estados marcados como Permitido podrán agendar citas; los Denegado recibirán un mensaje y se terminará la llamada.
Anuncios del equipo
Crear orden / autorización
Genera órdenes médicas y autorizaciones oficiales o de prueba en formato PDF o PNG con datos consultados directamente en HUS.
1. Consultar paciente
La búsqueda valida la identidad, EPS y régimen del paciente en tiempo real.
Flujo del Agente Telefónico — BELEN (IA)
Diagrama detallado del proceso de atención automatizada de llamadas del agente BELEN (IA).
consentimiento Ley 1581
Normaliza voz → dígitos
Obtiene tipo_doc, EPS, estado
Verifica convenio con HUS
Consulta en vivo a HUS (wsbase/consultar/paciente)
sexo, teléfono, email
Auto-completa desde ADRES
Guarda MySQL + sync HUS
Transcripción + Audio
Traduce resumen EN→ES
+ JSONL backup
API REST — Documentación e Integración
Visión general
El API REST de Bissar HUS permite a sistemas de terceros consultar pacientes, agendar citas y obtener información del Hospital Universitario de Santander.
Toda llamada autentica con un token Bearer; cada token está vinculado a un client_code y a un conjunto de scopes (permisos granulares).
https://bissar.co/api/v1Autenticación: header
Authorization: Bearer <tu_token>Recomendado: incluir también
X-Client-Code: <tu_code> (defensa en profundidad)
- Catálogo CUPS extendido — los registros en
bissar_cupsahora incluyentipo_consulta,recomendaciones_preparacion,observacionesyespecialidad_hus(nombre canónico HUS). Editables desde Catálogo CUPS, expuestos enGET /api/v1/cups. - Mapeo CUPS → especialidad canónica — al pegar el nombre HUS exacto en el campo
especialidad_hus, BELEN (IA) (WhatsApp y voz) usa ese nombre directamente al agendar, evitando matching difuso por puntuación o palabras extra (ej. "CIRUGÍA PLÁSTICA, ESTÉTICA Y RECONSTRUCTIVA" se resuelve correctamente a HUS "CIRUGIA PLASTICA Y ESTETICA"). - Segundo validador en
consultar_horarios— si la búsqueda primaria no encuentra agenda, intenta automáticamente con el nombre canónico del catálogo CUPS antes de derivar a lista de espera (reduce falsos negativos). - Disponibilidad endurecida —
GET /api/v1/especialidad/{codigo}/disponibilidadahora paraleliza médicos × actividades con semáforo (16 concurrentes) y aplica un presupuesto de 28 s; en timeout devuelve{"disponible": false, "timeout": true}en lugar de un 504 HTML. - Confirmación de cita con preparación — la herramienta
asignar_citadel MCP devuelve, junto con el OID de la cita, las recomendaciones y observaciones registradas en el CUPS para que el agente las lea al paciente. - Reporte rojo "Sin disponibilidad" en el panel — lista los baches de oferta del catálogo HUS en un PDF imprimible (Especialidades → 🚫).
- Rol nuevo
lista_espera— usuarios con acceso restringido SOLO a la cola de lista de espera (no toca pacientes/citas/CUPS). - Indicadores de salud (junio 2026) — nueva familia
GET /api/v1/indicadorescon 21 indicadores CEX (entre CEX-02 y CEX-37, no consecutivos), ONC-33..37, P.3.3..P.3.7 y el reporte mensual de la Resolución 1552 de 2013 (scopeindicadores:leer). Cada respuesta declara su metodología y advertencias (proxies, universo del canal digital); el catálogo es la fuente de verdad de los códigos disponibles. - Endpoints de escritura (junio 2026) — los scopes
paciente:registrar,cita:agendarycita:cancelarya tienen endpoint:POST /api/v1/pacientes/registrar,POST /api/v1/citas/agendar(con todos los gates del panel y verificación anti cita-fantasma) yPOST /api/v1/citas/cancelar. El modal "Nuevo cliente" ahora lee los scopes del backend, agrupados y con descripción — los de escritura van marcados.
Importa el JSON en Postman/Insomnia/Thunder Client, edita las variables token y client_code con los que recibiste al crear tu cliente, y todos los requests quedan listos para ejecutar.
Inicio rápido
## 1. Health check (sin auth)
curl https://bissar.co/api/v1/health
## 2. Buscar paciente por documento
curl -H "Authorization: Bearer bsr_TU_TOKEN_AQUI" \
-H "X-Client-Code: TU-CLIENT-CODE" \
"https://bissar.co/api/v1/paciente/buscar?documento=1033750294&tipoDocumento=1"
## 3. Listar especialidades
curl -H "Authorization: Bearer bsr_TU_TOKEN_AQUI" \
https://bissar.co/api/v1/especialidades
Endpoints disponibles
| Método | Endpoint | Scope | Descripción |
|---|---|---|---|
| Sistema | |||
| GET | /api/v1/health | — | Estado del API (ping sin auth) |
| GET | /api/v1/stats | stats:leer | Estadísticas globales (totales por tabla) |
| Pacientes | |||
| GET | /api/v1/paciente/buscar?documento=&tipoDocumento= | paciente:leer | Busca paciente HUS por documento |
| GET | /api/v1/paciente/{documento}/resultados?tipoDocumento= | paciente:resultados | Resultados de laboratorio (tipoDocumento numérico) |
| GET | /api/v1/paciente/{documento}/imagenes?tipoDocumento= | paciente:resultados | Imágenes diagnósticas (tipoDocumento alfabético: CC, CE, TI, RC) |
| POST | /api/v1/pacientes/registrar | paciente:registrar | Registra un paciente nuevo en HUS. Si ya existe devuelve ya_existe sin duplicar; siempre respalda en el registro local. |
| Citas | |||
| GET | /api/v1/calendario?mes=&anio= | calendario:leer | Citas agendadas agrupadas por día |
| GET | /api/v1/cita/paciente/{paciente_oid} | cita:leer | Citas asignadas a un paciente |
| POST | /api/v1/citas/agendar | cita:agendar | Agenda una cita en HUS con el mismo motor del panel. Respeta kill-switch y gate CUPS "Solo Manual" (envíe cups); solo confirma si HUS devuelve la cita al re-consultarla (verificación anti cita-fantasma). Auditada con canal api. |
| POST | /api/v1/citas/cancelar | cita:cancelar | Cancela una cita en HUS por su oidCita |
| GET | /api/v1/lista-espera | lista-espera:leer | Pacientes en lista de espera (priorizados) |
| Especialidades y disponibilidad | |||
| GET | /api/v1/especialidades | especialidades:leer | Catálogo HUS de especialidades |
| GET | /api/v1/especialidades/disponibles | disponibilidad:leer | Especialidades con cupo real (escaneo activo) |
| GET | /api/v1/especialidad/{codigo}/disponibilidad | disponibilidad:leer | Detalle de horarios disponibles para una especialidad |
| Catálogos | |||
| GET | /api/v1/cupsparams: q, grupo, page, page_size | cups:leer | Buscar en catálogo CUPS por código o descripción. Devuelve además: tipo_consulta, recomendaciones_preparacion, observaciones, especialidad_hus (nombre canónico HUS). |
| GET | /api/v1/cups/grupos | cups:leer | Grupos del catálogo CUPS |
| GET | /api/v1/cups/subgrupos?grupo= | cups:leer | Subgrupos CUPS, opcionalmente filtrados por grupo |
| GET | /api/v1/eps | eps:leer | EPS autorizadas y no autorizadas con convenio |
| GET | /api/v1/estados-afiliacion | eps:leer | Estados de afiliación EPS y si permiten atención |
| GET | /api/v1/faq?categoria= | faq:leer | Preguntas frecuentes del hospital |
| GET | /api/v1/faq/categorias | faq:leer | Categorías disponibles en el FAQ |
| Salud Pública / ADRES | |||
| GET | /api/v1/adres/consultar?documento= | adres:leer | Consulta ADRES (Ministerio de Salud) — afiliación, EPS, régimen |
| GET | /api/v1/salud-publica/stats | salud-publica:leer | Estadísticas agregadas del programa MGE |
| Indicadores de salud (CEX / ONC / Resolución 1552) | |||
| GET | /api/v1/indicadores | indicadores:leer | Catálogo de indicadores disponibles (21 indicadores CEX entre CEX-02 y CEX-37 — no consecutivos —, ONC-33..37, P.3.3..P.3.7, Resolución 1552) con estado de datos y advertencias metodológicas. Universo: solo citas/solicitudes del canal Bissar, no toda la central del HUS. |
| GET | /api/v1/indicadores/{codigo}params: desde, hasta (default: últimos 30 días) | indicadores:leer | Calcula un indicador puntual, ej. CEX-35 (oportunidad general: n, promedio, mediana, mín, máx, % >30 días), CEX-31 (citas por especialidad), CEX-18 (demanda insatisfecha), P.3.3 (espera 1ª vez Medicina Interna)."Primera vez" se infiere del CUPS de la orden (8902xx); ginecología y obstetricia no son separables (GINECOOBSTETRICIA en HUS). |
| GET | /api/v1/indicadores/resolucion-1552?mes=YYYY-MM | indicadores:leer | Reporte mensual Resolución 1552 de 2013: citas asignadas, sumatoria y promedio de días de espera según solicitud, y mín/máx por especialidad (numerales 1, 2, 4 y 6). Numerales 3 y 5 (fecha deseada por el usuario) se reportan en null: el dato no se captura en el flujo actual. |
Ejemplos por lenguaje
# pip install requests
import requests
API = "https://bissar.co/api/v1"
TOKEN = "bsr_TU_TOKEN_AQUI"
CODE = "TU-CLIENT-CODE"
HEADERS = {
"Authorization": f"Bearer {TOKEN}",
"X-Client-Code": CODE,
}
# Buscar paciente
r = requests.get(f"{API}/paciente/buscar",
params={"documento": "1033750294", "tipoDocumento": "1"},
headers=HEADERS, timeout=15)
print(r.status_code, r.json())
Códigos de respuesta
| 200 | OK · respuesta válida |
| 401 | Token inválido, expirado o revocado |
| 403 | Token sin scope para este endpoint |
| 429 | Rate limit excedido — reintenta más tarde |
| 502 | Error consultando HUS upstream |
Seguridad
- Los tokens se almacenan hasheados (SHA-256) — el sistema nunca puede recuperar el plano.
- El token plano se muestra solo una vez en la creación. Si lo pierdes, regeneralo (invalida el anterior).
- Cada cliente tiene un rate limit configurable (default: 60 req/min).
- Toda llamada se registra en
bissar_api_callscon IP, ruta, status y duración. - Soporta scopes granulares — el principio de mínimo privilegio.
- Los tokens pueden tener expiración opcional.
MCP Server — Herramientas del Agente BELEN (IA)
El servidor MCP (Model Context Protocol) expone herramientas que BELEN (IA) usa para razonar y operar contra el sistema HUS. Cada interacción de BELEN (IA), telefónica o por WhatsApp, puede invocar varias de estas tools en cadena para resolver una tarea: identificar al paciente, validar EPS, buscar disponibilidad, agendar cita, etc.
Ambiente actual:
cargando…
