Sistema di refertazione per Curve da Carico Orale di Glucosio (OGTT) con grafici interattivi, generazione PDF e archivio pazienti.
- 8 preset predefiniti: glicemica 3/4/5/6 punti, gravidanza IADPSG, insulinemica, combinata 5+5 e 6+6
- Valori di riferimento personalizzabili per ogni tempo di prelievo
- Supporto unità: mg/dL, mmol/L (glicemia) — µUI/mL, pmol/L (insulinemia)
- Toggle gravidanza con criteri IADPSG/WHO
- Tempi di prelievo personalizzabili (minuti separati da virgola)
- Tabelle dinamiche con validazione in tempo reale
- Badge colorati: ✅ Normale,
⚠️ Basso, 🔴 Alto - Intervalli di riferimento visibili per ogni punto
- Curve smooth con interpolazione cubica monotona (Chart.js)
- Area di riferimento min/max ombreggiata
- Grafici separati per glicemia (verde) e insulinemia (arancione)
- Tooltip con valori e unità
- Glicemia adulti: Normale / IGT (pre-diabete) / Diabete Mellito
- Gravidanza: Criteri IADPSG per diabete gestazionale
- Insulinemia: Analisi picco, picco ritardato, insulino-resistenza
- Toggle per mostrare/nascondere l'interpretazione
- Report professionale su singola pagina A4
- Header personalizzabile con logo/intestazione
- Tabelle risultati con valori di riferimento
- Grafici in riquadri quadrati affiancati
- Interpretazione diagnostica
- Note e metodica
- Footer con data generazione e numerazione pagine
- Database locale (localStorage) per pazienti e referti
- Ricerca per cognome, nome, codice fiscale, data
- Statistiche: totale referti, pazienti unici, esami gravidanza
- Caricamento rapido di referti salvati
- Esportazione/importazione JSON per backup e portabilità
- Download PDF dalla cache
- Salvataggio header, titolo, metodica, unità tra sessioni
- Ripristino automatico all'apertura
Clona la repo → Apri index.html nel browser
# Python
python -m http.server 8080
# Node.js
npx serve .
# PHP
php -S localhost:8080Poi aprire http://localhost:8080 nel browser.
- Vai su Settings → Pages nella tua repo
- Seleziona il branch
maine la cartella root/ - Il sito sarà disponibile su
https://tuoutente.github.io/nome-repo/
├── index.html # Pagina principale
├── css/
│ └── styles.css # Stili UI completi
├── js/
│ ├── state.js # Stato globale, valori riferimento, preset
│ ├── presets.js # Rendering e selezione preset
│ ├── config.js # Configurazione, interpolazione, editor riferimenti
│ ├── navigation.js # Navigazione sezioni
│ ├── data-entry.js # Tabelle inserimento e validazione
│ ├── charts.js # Grafici Chart.js (screen + PDF)
│ ├── results.js # Riepilogo risultati e interpretazione
│ ├── storage.js # Persistenza impostazioni (localStorage)
│ ├── database.js # Archivio pazienti e referti
│ ├── pdf-generator.js # Generazione PDF (jsPDF)
│ └── init.js # Inizializzazione e bootstrap
├── README.md
├── LICENSE
└── .gitignore
| Libreria | Versione | Utilizzo |
|---|---|---|
| Chart.js | 4.4.1 | Grafici interattivi |
| jsPDF | 2.5.1 | Generazione PDF |
| DM Sans | — | Tipografia UI |
| Source Serif 4 | — | Titoli |
Nota: Le librerie vengono caricate da CDN. Per uso offline, è possibile scaricarle localmente.
| Tempo | Minimo | Massimo |
|---|---|---|
| Basale | 60 mg/dL | 100 mg/dL |
| 120 min | — | < 140 (normale), 140-199 (IGT), ≥ 200 (diabete) |
| Tempo | Limite |
|---|---|
| Basale | < 92 mg/dL |
| 60 min | < 180 mg/dL |
| 120 min | < 153 mg/dL |
Un singolo valore fuori range → Diabete gestazionale
| Tempo | Minimo | Massimo |
|---|---|---|
| Basale | 2 µUI/mL | 25 µUI/mL |
| 30-60 min (picco) | 20 µUI/mL | 120 µUI/mL |
| 120 min | 6 µUI/mL | 56 µUI/mL |
- Nessun dato viene trasmesso a server esterni
- Tutti i dati restano nel browser (localStorage)
- L'applicazione funziona completamente offline
- L'archivio può essere esportato/importato come file JSON
MIT License — Libero utilizzo, modifica e distribuzione.
Per contribuire:
- Fork della repo
- Crea un branch:
git checkout -b feature/nome-feature - Commit:
git commit -m 'Aggiunta funzionalità X' - Push:
git push origin feature/nome-feature - Apri una Pull Request
Sviluppato per uso clinico-laboratoristico. I risultati devono essere sempre interpretati dal medico nel contesto clinico del paziente.