Salta el contingut

Projecte 6 — TeleSalut Selva

Camp Valor
Empresa TeleSalut Selva (plataforma de telemedicina, col·laboradora de l'Hospital de Blanes)
Sector Salut / telemedicina
Nivell Mitjà-Sènior — privacitat extrema: dades de salut
Durada estimada 8 hores
Blocs relacionats Bloc 2 (relacional, seguretat), Bloc 4 (arquitectura), Bloc 8 (integritat i ètica)

Context

TeleSalut Selva ofereix consultes mèdiques per videotrucada als municipis rurals de la comarca de la Selva, en col·laboració amb l'Hospital de Blanes. A diferència de tots els projectes anteriors, aquí les dades no són vendes ni events d'aplicació: són dades de salut, considerades "categoria especial" pel RGPD (article 9), amb obligacions legals molt més estrictes que qualsevol altra dada personal.

Aquest no és un projecte més

Un error de qualitat en un informe de vendes es corregeix refent l'informe. Un accés indegut a l'historial mèdic d'una persona és, per definició, irreversible i pot tenir conseqüències legals greus per a l'organització. Tracta aquest projecte amb el rigor que et demanaria un/a DPO (Delegat/da de Protecció de Dades) real.

Tasca: el RGPD exigeix una base legal específica per tractar dades de salut (típicament, consentiment explícit o interès vital). Redacta, en 5-6 línies, quina informació hauria de constar al registre d'activitats de tractament de TeleSalut Selva per a la taula consultes_mediques (finalitat del tractament, base legal, termini de conservació, i qui hi té accés).

Dia 2 — k-anonimat per a un dataset de recerca

L'Hospital de Blanes vol cedir un extracte anonimitzat de consultes de telemedicina a un grup de recerca universitari sobre l'accés a la sanitat rural. El dataset original té aquesta forma:

edat municipi sexe diagnòstic
34 Sant Hilari Sacalm Dona Migranya
71 Arbúcies Home Hipertensió
34 Sant Hilari Sacalm Dona Ansietat

El problema: a un municipi petit com Sant Hilari Sacalm, la combinació (edat=34, municipi, sexe) pot identificar una persona concreta encara que s'hagi eliminat el nom.

Dataset

Dades 100% fictícies

El fitxer següent és íntegrament sintètic i generat aleatòriament: cap fila representa una persona real ni prové de cap hospital o centre de salut. S'ha construït únicament per practicar tècniques d'anonimització.

Fitxer Contingut Files
consultes_mediques.csv id_consulta, edat, municipi, sexe, diagnostic 320

Tasca: explica el concepte de k-anonimat (que cada combinació d'atributs quasi-identificadors aparegui com a mínim k vegades al dataset) i proposa dues tècniques concretes per aconseguir un k-anonimat de, com a mínim, k=5 amb aquestes dades (per exemple, generalitzar l'edat en franges de 10 anys, o agrupar municipis petits en "comarca"). Comprova amb codi (pandas: groupby(["edat","municipi","sexe"]).size()) quin percentatge de combinacions de consultes_mediques.csv no compleix k=5 abans de generalitzar, i quant millora (o no) després d'aplicar les teves tècniques.

Dia 3 — Seguretat a nivell de fila (Row-Level Security)

Un metge de Sant Hilari Sacalm només ha de poder consultar les dades dels seus propis pacients, no de tots els pacients de la comarca.

-- PostgreSQL: activar RLS a la taula
ALTER TABLE consultes_mediques ENABLE ROW LEVEL SECURITY;

-- Política: un metge només veu les consultes on ell és el professional assignat
CREATE POLICY metge_nomes_seus_pacients ON consultes_mediques
    FOR SELECT
    USING (id_metge = current_setting('app.id_metge_actual')::int);

Tasca: explica què passaria si aquesta política no existís i qualsevol metge amb accés a la base de dades pogués fer un SELECT * FROM consultes_mediques sense filtre. Proposa una segona política de RLS per al cas d'un/a administratiu/va que necessita veure dades de facturació però no el contingut clínic de la consulta.

Dia 4 — Traçabilitat d'accessos (audit trail)

Tasca: dissenya l'esquema d'una taula log_accessos_dades_salut que registri, com a mínim: qui ha consultat quina dada, quan, i des de quina aplicació. Explica per què aquest registre ha de ser immutable (ningú, ni tan sols un administrador de sistemes, hauria de poder-lo modificar ni esborrar a posteriori) i quina tecnologia de les vistes al mòdul (per exemple, un format de taula amb time travel del Bloc 4) ajudaria a garantir-ho.

Lliurament

  • Anàlisi de base legal i registre d'activitats (Dia 1).
  • Proposta de k-anonimització amb k≥5 (Dia 2).
  • Polítiques de Row-Level Security (Dia 3).
  • Disseny de la taula d'auditoria immutable (Dia 4).

Mòdul M5074 Sistemes de Big Data | Institut Sa Palomera (Blanes) | Curs CEIABD 2026-2027