DPIA — Data Protection Impact Assessment
Riferimento normativo: art. 35 GDPR (Regolamento UE 2016/679); Provvedimento Garante Privacy 11 ottobre 2018 "Elenco delle tipologie di trattamenti soggetti al meccanismo di coerenza".
Versione: 1.0 Data redazione: 2026-05-19 Prossima revisione: 2027-05-19 (oppure prima a fronte di modifica sostanziale del trattamento). Titolare DPIA: MindBitLabs SRLS in costituzione — fondatore Andrea Porzi (data processor). Titolari del trattamento: studi dentistici utenti di Hydradent SaaS.
1. Quando questa DPIA si applica
La DPIA è obbligatoria ai sensi dell'art. 35 GDPR quando ricorrono almeno due dei seguenti criteri (linee guida WP29 / EDPB):
| Criterio | Hydradent | Note |
|---|---|---|
| Dati di categoria speciale (art. 9) | ✅ Sì | Anamnesi, allergie, cartelle cliniche, imaging diagnostico |
| Trattamento su larga scala | ⚠️ Attualmente NO | Sotto 5000 pazienti aggregati. Diventa sì oltre |
| Soggetti vulnerabili | ✅ Sì | Pazienti che includono minori, anziani |
| Uso di nuove tecnologie | ✅ Sì | AI (Whisper transcription, Llama SOAP), Imaging Cloud con DICOM viewer |
| Decisioni automatizzate art. 22 | ❌ No | AI è strumento di supporto, decisione clinica resta al dentista |
| Sorveglianza sistematica | ❌ No | Solo audit log accessi |
| Combinazione di dataset | ❌ No | Dati restano siloed per org cliente |
| Limitazione esercizio diritti | ❌ No | Export + cancellazione self-service |
Conclusione: 3 criteri su 8 ricorrono → DPIA dovuta e formalmente redatta.
2. Descrizione sistematica del trattamento
2.1 Natura del trattamento
SaaS gestionale per studi odontoiatrici: anagrafica paziente, anamnesi, cartella clinica FDI, parodontogramma, agenda, fatturazione, Sistema TS, imaging diagnostico.
2.2 Finalità
- Gestione cartella clinica paziente (base giuridica: contratto con paziente + obbligo legale art. 92 D.Lgs. 196)
- Adempimenti fiscali (Sistema TS, fatturazione elettronica B2B SdI) — obbligo legale
- Comunicazione paziente (reminder, magic link portale) — esecuzione contratto
- AI di trascrizione e messa in forma (nota della visita dalla registrazione, testo dei referti PDF, anamnesi in chat, bozze di messaggi) — legittimo interesse + opt-out. Dal 29/09/2026 nessuna funzione AI valuta dati clinici, segnala rischi, suggerisce terapie o dà priorità ai pazienti: Hydradent non è un dispositivo medico (Reg. UE 2017/745, MDCG 2019-11 rev.1)
- Conservazione AgID fatture B2B — obbligo legale
2.3 Categorie di dati trattati
- Dati identificativi: nome, cognome, CF, data nascita, contatti, indirizzo
- Dati di categoria speciale art. 9 GDPR:
- Anamnesi medica (patologie, allergie, farmaci, abitudini)
- Cartella clinica odontoiatrica (eventi per dente, parodontogrammi, terapie)
- Imaging diagnostico (radiografie, CBCT, foto cliniche)
- Audio registrazioni visite (Whisper transcription)
- Dati di pagamento (importi fattura, metodo pagamento — niente carta credito)
2.4 Categorie di interessati
- Pazienti dello studio (minori, adulti, anziani)
- Personale dello studio (titolare, dentisti, igienisti, assistenti, segreteria)
- Familiari/relativi del paziente (per consensi minori, in casi specifici)
2.5 Destinatari (sub-processor)
Lista pubblica aggiornata: https://hydradent.com/sicurezza/sub-processori. Vedi apps/web/lib/subprocessors.ts per codice sorgente.
2.6 Trasferimenti extra-UE
- Convex, Clerk, Resend, Backblaze, Vercel, Cloudflare, Groq, Sentry, Stripe: sede legale USA con Standard Contractual Clauses (SCC) approvate dalla Commissione UE.
- Sogei, Aruba: Italia (zero transfer).
- Meta WhatsApp Business: Irlanda (EU/EEA).
- Transfer Impact Assessment (TIA) condotta per sub-processor USA: il legittimo interesse al servizio + crittografia in transit + accesso governativo improbabile per dati dentali europei conduce a valutazione "accettabile".
2.7 Durata della conservazione
- Cartelle cliniche: 10 anni dall'ultimo accesso (art. 92 D.Lgs. 196/2003 + AGENAS linee guida)
- Fatture: 10 anni (art. 2220 c.c.)
- Audit log: 10 anni (allineato a cartelle cliniche per coerenza forense)
- Cookie tecnici: durata sessione
- AI cache (summary, red flag, funzioni tolte il 29/09/2026): nessuna nuova scrittura, le righe rimaste le cancella il cron entro 30 giorni
- Token portale/firma: 30 giorni post-scadenza
- Dopo cancellazione studio: backup conservato 90 giorni poi cancellazione definitiva
3. Necessità e proporzionalità
3.1 Necessità
Tutti i dati raccolti sono necessari per le finalità dichiarate:
- Anagrafica → fatturazione + comunicazione paziente
- Anamnesi → sicurezza clinica (allergie pre-anestesia)
- Imaging → diagnosi + condivisione con specialisti
- Audio → supporto AI alla redazione note cliniche (opt-out disponibile)
3.2 Proporzionalità
Non sono raccolti dati eccedenti rispetto alle finalità. Campi liberi (note cliniche) sono in roadmap per cifratura E2E (vedi v1.1 post-Q3 2026) per minimizzare l'accesso del data processor.
3.3 Minimizzazione
- Imaging share verso paziente: NON espone organizationId/patientId al destinatario (vedi spec)
- AI: riceve solo la trascrizione (senza anagrafica ne' anamnesi) per la nota della visita; nome, CF, contatti oscurati nei testi
- Audit log: append-only, non modificabile
- Cancellazione cascading art. 17 estesa a 23+ tabelle (vedi
convex/gdpr.ts)
4. Rischi per i diritti e le libertà degli interessati
4.1 Rischi identificati
| # | Rischio | Probabilità | Impatto | Score |
|---|---|---|---|---|
| R1 | Accesso non autorizzato a database Convex (compromissione credenziali staff Hydradent) | Bassa | Alto | Medio |
| R2 | Data breach lato sub-processor USA (Convex, Backblaze, Clerk, Groq, Resend) | Bassa | Alto | Medio |
| R3 | Esposizione dati via signed URL Backblaze esfiltrata | Bassa | Medio | Basso |
| R4 | Compromissione account Clerk dello studio (phishing, password debole) | Media | Alto | Medio-Alto |
| R5 | Errore software che scrive dati nel record sbagliato (es. nota clinica paziente A su B) | Bassa | Alto | Medio |
| R6 | AI che sbaglia la trascrizione o la messa in forma (es. dente o dosaggio errato nella nota) | Media | Basso | Basso |
| R7 | Vendor lock-in Convex (impossibile auto-host) | Alta | Basso | Medio |
| R8 | Cancellazione accidentale dati paziente da titolare (errore UI) | Media | Alto | Medio-Alto |
4.2 Misure di mitigazione
R1 — Accesso non autorizzato Convex
- Convex MFA obbligatoria su account staff Hydradent
- Audit log accessi visibile dal cliente (
internalAccessLogtable) - Onboarding nuovo staff: NDA + training GDPR + onboarding restrictivo
- Procedura revoca immediata in offboarding
R2 — Sub-processor USA breach
- DPA con ognuno + verifica SOC 2 Type II / ISO 27001
- Encryption at-rest + in transit on tutti
- Monitoring tramite Sentry per pattern anomali
- Sub-processor list pubblica permette al cliente di valutare
R3 — Signed URL leak
- TTL breve: PUT 10 min, GET 15 min
- HEAD verify post-upload (anti-spoof)
- Random key part nel B2 key (UUID) impedisce enumeration
- Tracking accessi su share token (accessCount, lastAccessedIp)
- Watermark dinamico anti-screenshot diffusion
R4 — Account studio compromesso
- Verifica in due passaggi nostra (dal 29/09/2026; l'MFA di Clerk e' nel piano a pagamento): codice TOTP da app di autenticazione + 10 codici di riserva, legata alla sessione Clerk (claim
sid) per 12 ore, controllata sul server inrequireAuth(convex/lib/mfa.ts). Obbligatoria per tutti dal 29/09/2026 (MFA_OBBLIGATORIA=1sull'ambiente Convex di produzione). Dal 30/09/2026 "Ricorda questo dispositivo", spento di base e acceso dal titolare per il suo studio: il browser crea una chiave ECDSA P-256 non esportabile (IndexedDB) e la sua firma di dispositivo + sessione + ora vale come il codice per 30 giorni, revocabile dall'utente, dal titolare (togliendo il consenso o azzerando) e dall'assistenza. Rischio residuo: chi ha accesso al computer registrato e conosce la password entra senza telefono; per questo il consenso e' del titolare e va dato solo con computer ad accesso personale e blocco schermo. Dal 12/10/2026 la passkey (impronta, Face ID, Windows Hello o telefono, standard WebAuthn) vale come alternativa al codice dell'app: il secondo fattore resta il possesso del dispositivo con la chiave privata; Hydradent conserva solo la chiave pubblica e non riceve dati biometrici (impronta e volto restano sul dispositivo). Sfida casuale per sessione, valida 5 minuti e una volta sola; restano i codici di riserva e la scadenza di 12 ore - Tentativi di codice limitati (5 ogni 10 minuti); segreto cifrato AES-256-GCM (
MFA_SECRET_KEY); azzeramento solo dal titolare o dall'assistenza - Session timeout 24h, refresh con Clerk
- Login alerts via email
R5 — Bug cross-record
- Test convex-test su mutation critiche
- Audit log permette ricostruzione
- Cascade tests (gdpr.test.ts)
R6 — AI errori
- L'AI trascrive e mette in forma, non valuta: niente red flag, piani suggeriti, sintesi o priorità (tolti il 29/09/2026)
- La nota della visita usa solo la trascrizione; i denti proposti dall'AI restano in attesa finché il dentista non li conferma
- AI è esclusivamente strumento di supporto, mai decisione automatizzata
- Output AI marchiato chiaramente come AI-generated nella UI
- Disclaimer in privacy + nella feature
R7 — Vendor lock-in
- Export totale art. 20 disponibile sempre (JSON dump)
- Schema dati documentato in
docs/PROJECT_OVERVIEW.md - Future: investigazione Convex self-hosted
R8 — Cancellazione accidentale
- Conferma doppia con typing "ELIMINA DEFINITIVAMENTE"
- Audit log permanente pseudonimizzato (CF sostituito con SHA-256 hash)
- Backup conservato 90gg post-cancellazione studio
5. Consultazione del DPO
Hydradent non ha attualmente DPO formalmente designato (sotto soglia obbligo art. 37 GDPR). Quando si raggiungeranno 5000 pazienti aggregati o all'attivazione SRLS, sarà designato DPO esterno freelance specializzato in sanità.
Nel frattempo, il fondatore Andrea Porzi è privacy contact:
support@hydradent.com
6. Consultazione del Garante
Non ricorrono le condizioni che impongono consultazione preventiva del Garante (art. 36 GDPR): i rischi residui dopo le misure di mitigazione sono valutati "medio-bassi" e gestibili nel framework standard processor.
7. Revisione
Questa DPIA va rivista:
- Annualmente (data prossima revisione: vedi header)
- A fronte di modifica sostanziale del trattamento (nuova feature AI, nuovo sub-processor critico, modifica architettura)
- A fronte di incidente GDPR significativo
- A fronte di nuove linee guida EDPB / Garante rilevanti
8. Modifiche
| Versione | Data | Modifiche |
|---|---|---|
| 1.0 | 2026-05-19 | Prima redazione formale |