CHU-IPTV — Smart Room Hub : Portail TV interactif & services connectés pour chambre patient
- Ports non conflictuels avec iptv-cosmolan existant - URLs API pointant vers systemd.cosmolan.fr:4100 - Container names explicites (chu-iptv-*) |
||
|---|---|---|
| apps | ||
| deploy | ||
| docs | ||
| services | ||
| .gitignore | ||
| README.md | ||
CHU-IPTV — Smart Room Hub
Portail TV interactif et Hub de services connectés pour chambre patient.
Vision
Transformer la télévision de chambre en un hub de services connectés (Smart Room Hub) intégrant le divertissement, l'éducation thérapeutique, la domotique et la communication bidirectionnelle avec le personnel soignant.
Ce projet s'inscrit dans une démarche de "Smart Hospital" en tirant parti de l'IoT et de l'Edge Computing pour offrir une expérience patient personnalisée, fluide et sécurisée.
Cibles
| Module | Description |
|---|---|
apps/android-tv |
APK Android TV native (Kotlin/Compose TV/Media3) |
apps/mobile-web |
PWA smartphone ouverte via QR code (télécommande + services) |
apps/admin-web |
Console poste soignant, supervision chambres, alertes et chat |
services/api |
API centrale NestJS, authentification session, WebSocket, gRPC |
services/stream |
Import M3U, catalogue chaînes, statut flux, proxy HLS |
services/mqtt-broker |
Broker MQTT pour événements IoT (domotique, capteurs, alertes) |
deploy/local |
Lancement local dev (Docker Compose) |
deploy/android-tv |
Packaging APK, configs kiosk/autostart, MDM |
deploy/windows-kiosk |
PWA ou Electron en mode Assigned Access |
deploy/edge-node |
Configuration du nœud Edge Computing local |
Principe Produit
La TV de chambre devient un portail de services :
- IPTV en plein écran (TNT gratuite + bouquets Premium).
- Menus utilisables à la télécommande (D-Pad navigation).
- QR code de connexion smartphone (session éphémère sécurisée).
- Smartphone comme télécommande et portail de services.
- Chat patient / poste soignant (texte + notifications).
- Demandes qualifiées : eau, douleur, toilette, repas, couverture, aide (routage intelligent).
- Alerte malaise en canal complémentaire (sans remplacer l'appel malade réglementaire).
- Éducation thérapeutique : vidéos ciblées selon la pathologie (via HL7/FHIR).
- Domotique : contrôle lumières, stores, température depuis la TV ou le smartphone.
- Visioconférence sécurisée avec la famille ou un spécialiste.
- Accessibilité : fort contraste, TTS, contrôle vocal (Edge AI).
Stack Technique
| Composant | Technologie |
|---|---|
| Android TV | Kotlin, Jetpack Compose for TV, Media3 ExoPlayer |
| Backend API | Node.js / NestJS, TypeScript, Prisma ORM |
| Temps réel (client) | WebSocket (Socket.IO) |
| Temps réel (inter-services) | gRPC (Protocol Buffers) |
| IoT / Domotique | MQTT (Mosquitto broker) |
| Base de données | PostgreSQL (sessions, logs) + Redis (cache, pub/sub) |
| Smartphone | PWA (React, Vite, TailwindCSS) |
| Admin | Web app responsive (React, TailwindCSS) |
| Edge Computing | Mini-serveur local (Docker, Traefik) |
| MDM | Scalefusion / Hexnode (déploiement kiosk) |
| CI/CD | Forgejo Actions / Drone CI |
| Conteneurisation | Docker + Docker Compose |
Conformité & Sécurité
- Pas de données de santé nominatives dans le système IPTV.
- Session liée à un identifiant de séjour/lit, jamais au patient directement.
- Expiration automatique des sessions QR.
- Wipe automatique à la sortie du patient (événement HL7).
- Journalisation chiffrée des demandes et alertes (audit trail).
- Hébergement HDS obligatoire si cloud externe.
- Ne jamais présenter l'alerte comme remplacement de l'appel malade.
- Mode dégradé : TV sans smartphone, smartphone sans télécommande, dashboard sans IPTV.
Démarrage Rapide (Dev Local)
# Cloner le dépôt
git clone https://git.cosmolan.fr/tarzzan/iptv-cosmolan.git
cd iptv-cosmolan
# Lancer l'environnement de développement
docker compose -f deploy/local/docker-compose.yml up -d
# Accéder aux interfaces
# TV Simulator : http://localhost:3000
# Mobile Web : http://localhost:3001
# Admin Web : http://localhost:3002
# API : http://localhost:4000
Licence
Projet privé — Cosmolan / William MERI.