Politica de privacidad y manejo de datos clinicos LABIS¶
Version: 1.0 Fecha: 2026-05-07 Aplica a: todos los frentes en labis-eppa-software (monorepo)
Principios¶
- Repo privado no es suficiente. Aunque los repos son privados, se aplican reglas de privacidad como si pudieran ser publicos en el futuro.
- Minimos datos necesarios. Solo se versionan los datos estrictamente necesarios para reproducir el analisis.
- Gate humano obligatorio. Ningun dato sensible entra al repo sin revision humana explicita.
Clasificacion de sensibilidad¶
| Nivel | Descripcion | Ejemplo | Almacenamiento |
|---|---|---|---|
publica |
Informacion publica o academica | Circulares, papers publicados | repo-lfs o repo-plain |
interna |
Material de trabajo sin datos de pacientes | Propuestas, borradores, codigo R | repo-lfs o repo-plain |
sensible |
Datos biometricos/clinicos anonimizados | Mediciones con sujetos numerados | repo-lfs (solo si anonimizado) |
restringida |
Datos identificables de pacientes | Nombres, DNI, historias clinicas, fotos con rostro | storage-privado o no-versionar |
Reglas por tipo de dato¶
Que SE versiona (en repo con LFS)¶
- Codigo fuente (R, Python, scripts)
- Documentos academicos sin datos de pacientes
- Datos anonimizados (sujetos como numeros: Sujeto 1, Sujeto 2)
- Resultados estadisticos agregados
- Propuestas e ideas de investigacion
Que NO se versiona (requiere storage privado o decision humana)¶
- Archivos con nombres de pacientes en el nombre del archivo
- Archivos con datos personales directos (DNI, nombre completo, telefono, email de pacientes)
- Fotos o videos donde se identifique a personas
- Historias clinicas o diagnosticos individuales
- Datos crudos no anonimizados
Patrones de nombre prohibidos en el repo¶
Los siguientes patrones en nombres de archivo disparan alerta del validador:
- paciente, dni, historia_clinica, hc_, diagnostico_
Archivos existentes con estos patrones deben evaluarse para anonimizacion o remocion.
Privacy manifest obligatorio¶
Cada frente con archivos en sources/ DEBE mantener un docs/privacy-manifest.json con:
[
{
"archivo": "sources/path/to/file.xlsx",
"sensibilidad": "sensible",
"sha256": "hash-del-archivo",
"almacenamiento": "repo-lfs",
"notas": "Datos anonimizados, sujetos numerados"
}
]
Campos requeridos¶
archivo: ruta relativa al frentesensibilidad: publica | interna | sensible | restringidasha256: hash para verificar integridadalmacenamiento: repo-lfs | repo-plain | storage-privado | no-versionar
Validacion automatica¶
python3 shared/scripts/validate_privacy.py
Este script:
1. Busca archivos con extensiones sensibles en sources/
2. Verifica que cada uno este en el privacy manifest
3. Valida campos requeridos y valores permitidos
4. Detecta nombres de archivo prohibidos
Checklist para PRs con datos nuevos¶
Antes de mergear un PR que agrega archivos a sources/:
- [ ] El archivo esta en el privacy-manifest.json del frente
- [ ] La sensibilidad esta clasificada correctamente
- [ ] Si es
sensible: verificar que no contiene datos identificables directos - [ ] Si es
restringida: NO debe estar en el repo, mover a storage privado - [ ] El SHA-256 coincide con el archivo
- [ ]
python3 shared/scripts/validate_privacy.pypasa - [ ] No hay nombres de archivo con patrones prohibidos
Reglas para informes y reportes¶
- NUNCA incluir nombres de pacientes en reportes
- Usar siempre "Sujeto N" en lugar de nombres
- No incluir datos que permitan re-identificacion (combinacion de edad + sexo + diagnostico en muestras pequenas)
- Citar fuentes con ID de email/thread, no con contenido personal
Citacion de fuentes¶
Formato permitido: gmail:<cuenta>:<message_id> o sources/gmail/<thread_id>/<archivo>
Formato NO permitido: copiar texto completo de emails con firmas personales
Anonimizacion¶
Cuando un archivo con datos de pacientes es necesario para el analisis:
- Crear version anonimizada (reemplazar nombres por Sujeto N, eliminar DNI/emails)
- Versionar SOLO la version anonimizada
- Registrar en manifest con sensibilidad
sensible - El original queda en storage privado local, referenciado pero no commiteado
Acciones pendientes detectadas¶
| Frente | Archivo problematico | Accion requerida |
|---|---|---|
| eppa | PACIENTES DATOS GENERALES ACTUALIZADO 2026.xlsx | Evaluar: anonimizar o mover a storage privado |
| openpose | PACIENTES DATOS GENERALES ACTUALIZADO 2026.xlsx | Mismo archivo duplicado, misma accion |
| eppa | 120 archivos sensibles sin privacy manifest | Crear fronts/eppa/docs/privacy-manifest.json |
| openpose | 37 archivos sensibles sin privacy manifest | Crear fronts/openpose/docs/privacy-manifest.json |
Ejemplos¶
Permitido¶
sources/gmail/exoesqueleto/19dd48aa8b5b941c/Informe.html
-> sensibilidad: sensible (mediciones biomecanicas, sujetos numerados)
-> almacenamiento: repo-lfs
NO permitido¶
sources/gmail/.../PACIENTES DATOS GENERALES ACTUALIZADO 2026.xlsx
-> Tiene "PACIENTES" en el nombre
-> Probablemente contiene datos identificables
-> Accion: evaluar contenido, anonimizar si necesario, renombrar