UDENTIVA Plataforma Inteligente de Gestión Dental
CALIDAD DEL SOFTWARE Y MADUREZ DE PROCESOS

Nuestro proceso de desarrollo de software y cumplimiento de SPICE

UDENTIVA incorpora a la propia arquitectura la madurez de procesos que se exige al software sanitario. Esta página expone, con pruebas, nuestro ciclo de vida de desarrollo, los niveles de capacidad SPICE / ISO-IEC 15504, nuestros mecanismos de registro y control continuo de errores, nuestros criterios de versión y seguridad, y nuestro historial de desarrollo.

Base legal: Reglamento sobre Sistemas de Gestión de Información Sanitaria (n.º de norma 39682), art. 6 y art. 20: requisito de certificación de calidad del software (CMMI/SPICE).

La arquitectura de procesos de UDENTIVA es un enfoque de gestión de calidad y procesos de software, listo para auditoría y alineado con los principios de SPICE / ISO/IEC 15504.

La definición de procesos, la implementación y los productos de trabajo trazables están estructurados; los mecanismos de medición cuantitativa, prevención de defectos y mejora continua operan en producción. La declaración oficial de nivel de capacidad está sujeta a una evaluación independiente (appraisal).

Niveles de capacidad SPICE

SPICE evalúa los procesos con niveles de capacidad del 0 al 5. UDENTIVA está estructurado para cumplir las expectativas de los Niveles 1-3 en cuanto a definición de procesos, implementación y productos de trabajo trazables; para los Niveles 4-5 se operan mecanismos de medición cuantitativa y mejora continua. La declaración oficial de nivel está sujeta a evaluación independiente.

0
Eksik (Incomplete)
El proceso no se aplica/no alcanza el objetivo.
1
Realizado (Performed)
El proceso existe y produce sus resultados.
2
Gestionado (Managed)
El proceso se planifica, se monitorea; los productos de trabajo se gestionan.
3
Establecido (Established)
El proceso estándar definido se aplica de forma consistente en todo el proyecto.
4
Predecible (Predictable)
El proceso se controla cuantitativamente (mediante medición).
5
Optimize Eden (Optimizing)
Mejora continua + prevención de defectos + innovación de procesos.

Los mecanismos de control cuantitativo y mejora continua correspondientes a los Niveles 4-5 se operan a continuación con sus evidencias (medición en vivo, registro de errores/CAPA, historial de despliegues).

Áreas de proceso SPICE → Aplicación → Prueba

Cada área de proceso se corresponde con una implementación concreta y una evidencia auditable en UDENTIVA. El proceso no es un documento, es código en funcionamiento.

Área de procesoAplicación UDENTIVAPrueba
ENG.1 Extracción de requisitosMapa de fases + definición de requisitos por slice vertical (vertical slice); el contrato de proyecto UDENTIVA.md fija los requisitos.UDENTIVA.md (REGLAS DE ORO), especificación técnica 02_tech_spec/, mapa de fases/módulos
ENG.4 Diseño de softwareMonolito modular; los paquetes de contexto (context) no comparten sus tablas entre sí; comunicación mediante interface; servicio externo = adapter.regla de límites internal/{identity,patient,billing,export,...}; ADR-001..008
ENG.5 Construcción de softwareSQL explícito (sqlc, sin ORM); context como primer parámetro en cada función; envoltura de errores %w; dinero = numeric.override de tipo en sqlc.yaml (numeric→string), db/queries/*.sql, gofmt/golangci-lint
ENG.6 Integración de softwareCadena loopback PHP(BFF) ↔ Go ↔ PostgreSQL ↔ Redis; única superficie pública.web/core/ApiClient, salud de componentes /healthz (db+redis)
ENG.7 Pruebas de softwarePrueba de aislamiento cross-tenant (la más crítica), idempotencia, conflicto de citas, precisión monetaria, 2FA/OTP, vector TOTP RFC6238, QR (verificación OpenCV+ISO).internal/integration/*_test.go, platform/totp/totp_test.go, go test ./...
SUP.1 Aseguramiento de calidadCada PR debe cumplir las REGLAS DE ORO; lint limpio; si la prueba de aislamiento está en rojo en CI, no hay merge.golangci-lint, Definition of Done kontrol listesi
SUP.8 Gestión de configuraciónControl de versiones Git (branch core); versionado de esquema secuencial con goose; los artefactos de build se respaldan.git, goose_db_version tablosu, .tools/deploy yedekleri
SUP.9 Resolución de problemasRegistro de auditoría de solo adición (append-only) + outbox de correo/SMS (registro de cada envío) + disciplina de respaldo/rollback de despliegue.audit_log, email_outbox/sms_outbox, bin/server.exe.bak-* rollback
SUP.10 Gestión de solicitudes de cambioCada cambio de esquema es una nueva migración numerada; reversible (goose Down); aprobación del clasificador de despliegue.db/migrations/0001..0027, +goose Up/Down
MAN.3 Gestión de proyectoEntrega por slice vertical (cada slice funciona de extremo a extremo); notas de traspaso de sesión.super-devam.md, faz tablosu (DoD per dilim)
MAN.6 MediciónVerificación de salud, medición de capacidad, métricas de envío de correo/SMS, volumen de auditoría, telemetría de eventos en vivo./healthz, panel de Monitoreo de Procesos y Calidad (evento/error/despliegue/KPI)

Arquitectura por capas y seguridad de datos

Las responsabilidades están divididas en capas; la autoridad del dominio reside en un único punto y está aislada mediante loopback. El navegador solo ve el BFF ligero y nunca puede acceder directamente a la capa de dominio ni de datos.

CapaResponsabilidad y seguridadUbicación
Sunum (BFF)PHP 8.4 — BFF ligero: sesión, render, CSRF, enrutamiento. SIN regla de negocio/DB. Única superficie pública (IIS:443).web/
Uygulama / DomainMonolito modular en Go — la ÚNICA autoridad del dominio. RBAC, reglas de negocio, transacciones. Solo escucha en 127.0.0.1.api/internal/
VeriPostgreSQL — cada tabla con tenant_id + RLS FORCE; SQL explícito (sqlc), parametrizado. Dinero en numeric.api/db/
Caché / ColaRedis — sesión, idempotencia, bloqueo distribuido, cola asynq (SMS/e-fatura).platform/redisx
Nesne DepolamaCompatible con S3 — archivos grandes (radiografías) presigned/stream; el blob nunca está en la DB.platform/storage
Servicio externo (adapter)e-Fatura, SMS (NetGSM), correo electrónico (SMTP), (más adelante e-Nabız/MEDULA/DICOM) — abstraídos detrás de una interface.internal/notify

Medición cuantitativa y KPI: telemetría de procesos en vivo

La medición no es una declaración, sino un sistema en funcionamiento. Todas las operaciones se cuentan en vivo (éxito/fallo), los errores de producción quedan capturados en un registro permanente y el siguiente marco de KPI se vincula a acciones periódicas. Las fuentes de datos son tablas reales: event_counter (contador de operaciones en vivo), error_log (registro permanente de errores), deploy_log (registro de despliegues).

Área de mediciónKPIObjetivoFuente de datosPeriodoAcción
Seguridad de aislamiento de tenantcross-tenant test fail0CI / izolasyon testiher PRBloqueo de merge
Error de producciónerror abierto (5xx/panic)0error_log (persistente)continuo/en vivoRCA + CAPA zorunlu
Tasa de éxito de operacionessuccess / toplam event≥ 99 %event_counter (en vivo)continuo/en vivoCausa raíz en caso de caída
Tiempo de resoluciónMTTR (resolución prom.)↓ tendencia decrecienteerror_log (resolved)mensualTrend incelemesi
Fiabilidad de desplieguetasa de rollback< %5deploy_log30 díasRollback review
Seguridad de identidad2FA/OTP kritik olay0audit + event_countermensualEndurecimiento
Fiabilidad de mensajeríaSMS/e-posta failure↓ baja*_outboxdiarioRevisión de proveedor
Preparación de restauraciónéxito de prueba de restauración%100DR test (hedef)trimestralActualizar runbook
Estos KPI se monitorizan en tiempo real desde el panel en vivo de "Monitoreo de Procesos y Calidad" al que accede el operador de plataforma: tasa de éxito de transacciones, número de errores abiertos, MTTR (tiempo medio de resolución), número de despliegues y tasa de rollback.

Ciclo de prevención de defectos y mejora continua (RCA/CAPA)

Cada error de producción pasa por un ciclo de análisis de causa raíz (RCA) y acción correctiva/preventiva (CAPA) estándar; la repetición del mismo error se evita mediante control de regresión y seguimiento de tendencias.

1
Registro de incidentes / errores

El error de producción (5xx/panic) se captura automáticamente → error_log persistente (al repetirse la misma firma, count++, tendencia de defectos).

2
Clasificación

Se determinan el nivel (error/panic), el impacto y el número de repeticiones; la prevalencia se mide con los contadores de eventos fallidos.

3
Causa raíz (RCA)

En el panel de Monitoreo de Procesos se realiza y se registra el análisis de causa raíz.

4
Acción correctiva/preventiva (CAPA)

Se define y se registra una acción correctiva + acción preventiva (código, prueba, regla de migración, control de seguridad).

5
Control de regresión

Se agrega una prueba/regla que impide la repetición del mismo error; se monitorea con telemetría continua.

6
Trend incelemesi

Las tendencias de KPI (MTTR, tasa de errores, rollback) se evalúan periódicamente; para errores recurrentes se abre una acción a nivel de proceso.

Mecanismos en funcionamiento: registro, control y mejora continua de errores

La esencia del Nivel 5 de SPICE: registro continuo de errores, mantenimiento bajo control, prevención de defectos y mejora continua. UDENTIVA opera estos mecanismos en producción.

Registro continuo de errores

El audit_log inmutable (append-only) registra de forma persistente cada operación crítica; email_outbox/sms_outbox registran cada envío (status, attempts, error). Ningún evento se pierde silenciosamente.

audit_log, *_outbox (status/error/attempts)
Control de errores y reversión

Sobre de error consistente {error:{code,message}}; el error interno/stack nunca se filtra. Antes de cada despliegue, respaldo del binary + web; ante una caída, rollback en segundos con bin/server.exe.bak-*.

httpx.Error, deploy yedek/rollback runbook
Prevención de defectos (Defect Prevention)

Arquitectura fail-closed: sin contexto RLS, 0 filas; la idempotencia impide la doble operación; el dinero numeric hace imposible el error de float; la whitelist (dataset de exportación) previene la inyección SQL. Los errores se previenen desde el diseño.

RLS FORCE, Idempotency-Key SETNX, numeric, view whitelist
Verificación independiente

Los componentes críticos se verifican con dos métodos independientes: vector de prueba TOTP RFC6238, decodificación OpenCV cv2 + codeword de referencia ISO/IEC 18004 para el QR, prueba de aislamiento cross-tenant.

pruebas de integración + verificación con decodificador externo
Ciclo de mejora continua

En cada sesión: auditoría de seguridad → hallazgos → endurecimiento (p. ej. se agregó RBAC de fase2/fase3, 2FA, Export API). La memoria institucional se preserva con notas de proceso (super-devam.md).

auditoría de seguridad → ciclo de endurecimiento
Innovación de procesos

Una nueva exigencia regulatoria (Vista VEM) se convierte directamente en funcionalidad de producto y en evidencia; los cambios normativos se monitorean continuamente y se registran en el mapa de cumplimiento.

Export API/vistas VEM, mapa de cumplimiento /mevzuat

Control de Edition (versión)

Una única base de código, restricción por flags, sin fork.

  • El flag EDITION=base determina el MVP de clínica única; la visibilidad del menú (app.php) y el acceso a rutas (index.php) se leen de la allowlist Edition::allows().
  • El RBAC de Go ES LA AUTORIDAD; Edition es solo una restricción de UI/superficie — la autorización real se impone en la capa de la API (visibilidad ≠ seguridad).
  • En la versión full todos los módulos están abiertos; en la versión base los módulos de crecimiento de Fase 2/Fase 3 están ocultos. SIN fork — una única base de código, restringida por flag.
  • Los límites de capacidad se miden mediante el plan/paquete por tenant (modelo de suscripción de plataforma); al excederse, aviso suave (no bloquea).

Mecanismos de versionado

Versión trazable en la capa de esquema, fuente, despliegue y API.

Versionado de esquema
Migración secuencial con goose (0001 → 0027); cada cambio numerado + reversible (Up/Down). La versión aplicada se sigue en la tabla goose_db_version. La migración de producción se valida en una DB limpia.
Versionado de código fuente
Control de versiones Git (branch: core); repositorio bare central aislado. Todo trabajo significativo se commitea; los secretos (connection.md, .tools) en gitignore — la contraseña nunca se commitea.
Versionado de despliegue
El binary de Go se compila (-ldflags "-s -w"), SOLO swap de bin/server.exe (nunca el wrapper WinSW). Antes de cada despliegue, respaldo del binary + web (con timestamp). Cache-bust de assets estáticos ?v=N.
Versionado de API
Los endpoints públicos con prefijo /v1; Export API /export/v1. Se mantiene la compatibilidad hacia atrás; un cambio disruptivo es una nueva versión.

Uso de Git, Rewind y Rollback

Todo el proceso de desarrollo bajo control de versiones; cada despliegue es reversible (rewind/rollback).

Control de versiones
Git (branch: core); repositorio bare central aislado. Todo trabajo significativo se commitea; el historial es trazable.
Gestión de secretos
Contraseñas/claves/datos de conexión en gitignore — NUNCA se commitean (connection.md, .tools, *.zip).
Aislamiento
Solo se versiona este directorio de proyecto; no se toca el código fuente de otros proyectos.
Trazabilidad
Los commits se basan en slice vertical/funcionalidad; el registro de despliegue (deploy_log) enlaza la cadena commit→release→prod.
Rewind / Rollback: Antes de cada despliegue se realiza una copia de seguridad del binario + web + base de datos (con marca de tiempo). El esquema es reversible mediante migraciones (goose Down); el binario en ejecución se restaura a la versión anterior (bin/server.exe.bak-*) en segundos; la web se restaura desde el archivo anterior. Ante un incidente, la producción puede revertirse a su último estado correcto.

Criterios de seguridad (reglas de oro)

La seguridad no es una función, es la propia arquitectura. Reglas innegociables cuya vulneración supone el rechazo del PR:

Aislamiento a nivel de fila (RLS FORCE, fail-closed)
Cada tabla con tenant_id; sin contexto, la policy devuelve 0 filas. La prueba de aislamiento cross-tenant es una puerta de CI.
Atomik & idempotent yazma
Operación multi-entidad en una única transacción (todo o nada); cada mutación impide la doble operación mediante Idempotency-Key.
Para = numeric
Float PROHIBIDO; redondeo en un solo lugar, 2 decimales. El error financiero es imposible por diseño.
Identidad y sesión
Contraseña con argon2id; session_key opaco en Redis (TTL deslizante); verificación en dos pasos (TOTP); el session_key no se expone al navegador.
Topoloji izolasyonu
Go solo escucha en 127.0.0.1; la única superficie pública es PHP/BFF. Los puertos de backend (DB/Redis) están cerrados al exterior.
Auditoría inmutable
audit_log de solo adición (append-only); la PII/secretos no se registran/se enmascaran; TCKN/datos de salud son de naturaleza especial.
Consulta parametrizada
Todo el SQL parametrizado (sqlc/pgx) — la inyección SQL es imposible; los nombres de dataset en whitelist.
Localización de datos
Los datos de salud solo en Turquía; sin transferencia al exterior (KVKK art. 9, Reglamento KSV art. 16).

Development History (historial de desarrollo)

El sistema se construyó con cortes verticales, cada uno funcionando de principio a fin. A continuación se muestran las fases y la cronología de los recientes trabajos de seguridad/regulación.

Faz 0 Esqueleto

pgx+sqlc, goose, prueba RLS fail-closed, WithTenantTx, middleware de sesión, login+RBAC, auditoría, loopback PHP↔Go, base asynq, health.

Faz 1 Núcleo clínico (9 slices verticales)

CRUD de pacientes + prueba de aislamiento cross-tenant → Citas (exclusion constraint + Redis lock) → Odontograma/Plan de tratamiento (FDI, append-only) → Cobro/Cuenta corriente/Caja (derive, idempotente) → adapter e-Fatura (fast-follow) → Inventario → Radiografía (S3) → Recordatorio por SMS (asynq backoff).

Platform Consola de administración de plataforma

Tier de operador de plataforma (súper-admin) (X-Platform-Key, plano de identidad separado); gestión de tenants, modelo de suscripción/facturación, medición de capacidad, editor de versiones legales, reCAPTCHA, ajustes de NetGSM.

Crecimiento Multi-idioma y sitio web de clínica

i18n (20 dil, key-based, RTL); 20 tema + klinik public site (/s/{slug}) + lead-booking; demo klinik siteleri.

2026-06 Seguridad de identidad y comunicación

Primitiva OTP compartida; restablecimiento de contraseña + magic-link + activación de cuenta (SMTP real); núcleo de SMS NetGSM; auth pública multi-tenant; gestión de usuarios de clínica.

2026-06 Verificación en dos pasos (2FA)

TOTP (RFC6238) + códigos de respaldo; QR OBLIGATORIO (independiente de externos, qr.js limpio de CSP; verificado de forma independiente con OpenCV+ISO); verificación de teléfono por SMS (consentimiento KVKK).

2026-06 Cumplimiento normativo

Vista VEM (Modelo de Datos Mínimo) 12 vistas de exportación + Export API (definido por SuperUser, bloqueado por tenant, fail-closed); mapa de Normativa y Cumplimiento; revisión de contratos legales 100 % orientada a la normativa.

2026-06 Soporte y proceso

Centro de Soporte con seguimiento de tickets; documentación de procesos SPICE (esta página); auditoría de seguridad continua + endurecimiento.

Más sobre la madurez de procesos y el cumplimiento

Para obtener información detallada sobre arquitectura, seguridad y cumplimiento normativo, contacte con nuestro equipo.

Normativa y cumplimiento Contactar