Salta al contenuto principale
WIP EUPL-1.2Healthcare

Telemedic

Piattaforma telemedicina open-source con WebRTC + FHIR + SSO, EU public sector compliant

Stato
WIP
Licenza
EUPL-1.2
Categoria
Healthcare
Aggiornato

Stato del progetto

Descrizione

Telemedic è una piattaforma di telemedicina open-source che permette consulti video tra medico e paziente con qualità clinica (HD + audio chiaro + bandwidth adattivo) e tracciabilità conforme ai requisiti EU. L'architettura combina WebRTC peer-to-peer per il flusso media (latency <200ms target, no transcodifica server-side se possibile), un server di signaling Spring Boot 3 che gestisce session setup/teardown e ICE candidate exchange, e un layer FHIR R4 che persiste i metadati del consulto (Encounter, DiagnosticReport, Practitioner, Patient, Observation) per integrazione con sistemi EHR esistenti come MedBook. La sicurezza è progettata per dati sanitari sensibili: DTLS-SRTP per cifratura media end-to-end, Keycloak SSO con OIDC per autenticazione medico e paziente, audit log immutabile di ogni sessione (chi ha visto chi, quando, durata, esito), session recording opzionale e configurabile (con consenso esplicito del paziente, cifrato a riposo e accessibile solo al medico curante). L'integrazione TimescaleDB permette di archiviare metriche di qualità (RTT, packet loss, jitter, bitrate medio) per audit qualità tecnica e troubleshooting. Il frontend Angular 21 SSR con standalone components offre una UI semplice (lobby, waiting room, sala consulto, chat di testo accessoria, condivisione file referti) accessibile WCAG 2.1 AA. License EUPL-1.2 per allineamento EU public sector. Deploy target: cliniche piccole-medie, mutualistiche, telemedicina pubblica regionale, studi specialistici (cardiologia, psichiatria, dermatologia con foto-consulto). La filosofia è 'sovereign telemedicine': i dati clinici e i flussi video non transitano mai per server US-based, niente Zoom/Teams sotto-il-cofano, niente analytics commerciali.

Funzionalità chiave

  • WebRTC peer-to-peer HD

    Signaling Spring Boot, ICE candidate exchange, STUN/TURN configurabili, fallback relay se peer-to-peer fallisce, bitrate adattivo.

  • Cifratura DTLS-SRTP end-to-end

    Media stream cifrato peer-to-peer, niente decifratura intermedia, key rotation per session, FIPS 140-2 compliant ciphers.

  • FHIR R4 Encounter integration

    Encounter Resource creato a session start, DiagnosticReport persistito a session end, integrazione MedBook o EHR esistente via REST.

  • Keycloak SSO medico + paziente

    Due realm Keycloak (clinic + patient), autenticazione SPID/CIE supportata in roadmap Q1 2027, OIDC standard.

  • Audit log immutabile sessioni

    Tabella _aud Envers su Encounter, durata sessione, esito, motivo cancellazione, log immutabile per audit AGENAS/AgID.

  • Recording opzionale cifrato

    Session recording con consenso esplicito paziente (UI dedicata), MP4 cifrato a riposo, retention configurabile, accesso restricted al medico.

  • Metriche qualità TimescaleDB

    RTT, packet loss, jitter, bitrate medio per session, dashboard Grafana ready, alert se qualità sotto soglia clinica accettabile.

  • Frontend WCAG 2.1 AA

    Standalone components Angular 21, screen reader compatible, keyboard navigation, contrasto WCAG AA verificato, supporto reduced motion.

Tech stack

  • Spring Boot 3.4
  • Java 21
  • WebRTC
  • Angular 21
  • FHIR R4
  • Keycloak SSO
  • TimescaleDB
  • coturn (STUN/TURN)
  • Docker Compose

Casi d'uso

  • Clinica specialistica che offre consulti follow-up via telemedicina (cardiologia, psichiatria, dermatologia)
  • Mutualistica o assicurazione sanitaria che integra telemedicina nel piano di copertura
  • Telemedicina pubblica regionale (USL) come alternativa open-source a soluzioni commerciali
  • Studio medico associato che vuole offrire consulti remoti senza esporre dati a SaaS US

Roadmap

  1. v0.1.0 Pianificata

    Signaling + WebRTC base

    • Signaling server Spring Boot WebSocket
    • WebRTC peer connection setup + ICE
    • Frontend Angular lobby + sala consulto base
    • Keycloak SSO medico realm
  2. v0.5.0 Pianificata

    FHIR integration + Audit + Quality metrics

    • Encounter + DiagnosticReport FHIR mapping
    • Hibernate Envers audit log sessioni
    • TimescaleDB metrics RTT/jitter/packet loss
    • Patient realm Keycloak + UI consenso
  3. v1.0.0 Pianificata

    Recording + WCAG + Production deploy

    • Session recording cifrato opzionale
    • WCAG 2.1 AA audit frontend
    • Documentazione MkDocs + deploy guide
    • Integration test end-to-end con MedBook

A chi è rivolto

  • Pro Dev senior
  • Decision Maker / Founder

Quick Start

Avvia il progetto localmente in pochi comandi.

# Quick start (work-in-progress, repo non ancora pubblicato)
# git clone https://github.com/<tba>/telemedic.git
# cd telemedic
# cp .env.example .env  # configura STUN/TURN, Keycloak, TimescaleDB
# docker compose up -d  # signaling + keycloak + timescale + frontend

Contribuisci al progetto

Telemedic è open source. Apri una issue, proponi una pull request o lascia una stella su GitHub: ogni contributo, anche piccolo, è benvenuto.

  • ⭐ Lascia una stella se ti è utile
  • 🐛 Segnala bug o proponi feature via issue
  • 🔧 Invia pull request con fix o miglioramenti
  • 📣 Condividi il progetto se lo trovi interessante