Zum Inhalt

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

  1. Repo privado no es suficiente. Aunque los repos son privados, se aplican reglas de privacidad como si pudieran ser publicos en el futuro.
  2. Minimos datos necesarios. Solo se versionan los datos estrictamente necesarios para reproducir el analisis.
  3. 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 frente
  • sensibilidad: publica | interna | sensible | restringida
  • sha256: hash para verificar integridad
  • almacenamiento: 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.py pasa
  • [ ] 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:

  1. Crear version anonimizada (reemplazar nombres por Sujeto N, eliminar DNI/emails)
  2. Versionar SOLO la version anonimizada
  3. Registrar en manifest con sensibilidad sensible
  4. 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