Progetto di Tesi - Sistema web completo per la gestione pazienti, creazione e analisi di alberi genealogici in ambito medico-genetico
Il Sistema di Gestione Pedigree Genetici Γ¨ una piattaforma web completa sviluppata per supportare professionisti sanitari nella gestione pazienti, creazione e analisi di alberi genealogici in ambito medico-genetico. Il sistema integra la potente libreria PedigreeJS, sviluppata dal team del Centre for Cancer Genetic Epidemiology dell'UniversitΓ di Cambridge, con un'interfaccia moderna e intuitiva.
- Digitalizzazione dei processi di raccolta dati genealogici
- Standardizzazione secondo formati medici internazionali (BOADICEA, CanRisk)
- Miglioramento dell'efficienza nella consulenza genetica
- Facilitazione dell'analisi del rischio ereditario
- β Operazioni CRUD complete (Create, Read, Update, Delete)
- β Anagrafica dettagliata pazienti
- β Gestione caregiver - Assegnazione e gestione assistenti/familiari
- β Dashboard intuitiva per navigazione rapida
- β Ricerca e filtri avanzati
- β Creazione interattiva di alberi genealogici
- β Pannello laterale personalizzato per editing dettagli
- β Validazione real-time dei dati inseriti
- β Gestione gemelli (monozigoti/dizigoti)
- β Controllo modifiche non salvate con guard di navigazione
- β Export PNG/SVG ad alta risoluzione
- β Export BOADICEA v4 (standard medico internazionale)
- β Export CanRisk v4.0 (analisi rischio genetico)
- β Export JSON (formato nativo)
- β Stampa PDF professionale
- β Import da formati medici standard
- β Diagnosi oncologiche con etΓ di insorgenza
- β Storia riproduttiva (aborti, stillbirth, interruzioni)
- β Stato adozione (adottato/dato in adozione)
- β Validazione coerenza dati medici
Il sistema segue un'architettura client-server moderna con separazione netta tra front-end e back-end:
βββββββββββββββββββ HTTP/REST βββββββββββββββββββ JPA/Hibernate βββββββββββββββββββ
β β ββββββββββββββββΊ β β ββββββββββββββββββββΊ β β
β Angular 19 β β Spring Boot β β PostgreSQL β
β (Front-end) β β (Back-end) β β (Database) β
β β β β β β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β
β β
βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ
β PedigreeJS β β Spring Data β
β (Rendering) β β JPA β
βββββββββββββββββββ βββββββββββββββββββ
- Angular 19.0.5 - Framework principale
- Bootstrap 5.3.3 - UI Framework
- PedigreeJS v4.0.0-rc1 - Rendering pedigree
- D3.js - Visualizzazioni grafiche
- jQuery 3.7.1 - Manipolazione DOM
- FontAwesome 6.7.2 - Iconografia
- ApexCharts 3.49.2 - Grafici e statistiche
- Spring Boot 3.4.4 - Framework principale
- Spring Data JPA - Persistenza dati
- Spring Security - Autenticazione e autorizzazione
- Spring Validation - Validazione dati
- Java 17 - Linguaggio di programmazione
- Maven - Gestione dipendenze
- Lombok - Riduzione boilerplate code
- PostgreSQL - Database relazionale principale
- Hibernate - ORM (Object-Relational Mapping)
- Git - Controllo versione
- GitHub - Repository hosting
- ESLint - Linting JavaScript/TypeScript
- Prettier - Code formatting
- Node.js (versione 18+ consigliata) - Include npm automaticamente
- Java 17+ (JDK, non solo JRE)
- Maven 3.6+ (opzionale - il progetto include Maven Wrapper)
- PostgreSQL 12+
- Git
-
Installa PostgreSQL (se non giΓ presente)
-
Importa il database dal dump incluso:
# Crea il database
createdb [nome_db]
# Importa il dump
psql -d [nome_db] -f db/medical_db_dump.sql
- Configura le credenziali in
back-end/crud/src/main/resources/application.properties
git clone https://github.com/D4n1l0S4/tesi-app.git
cd tesi-app
cd front-end/angular
npm install
cd back-end/crud
# Opzione 1: Se hai Maven installato
mvn clean install
# Opzione 2: Usando Maven Wrapper (raccomandato)
# Su Linux/macOS:
./mvnw clean install
# Su Windows:
mvnw.cmd clean install
# Assicurati che PostgreSQL sia in esecuzione
sudo service postgresql start
# oppure su macOS: brew services start postgresql
# oppure su Windows: net start postgresql-x64-XX
cd back-end/crud
# Su Windows:
.\mvnw.cmd spring-boot:run
# Su Linux/macOS:
./mvnw spring-boot:run
# Se hai Maven installato globalmente:
mvn spring-boot:run
Il server sarΓ disponibile su: http://localhost:8085
cd front-end/angular
npm start
L'applicazione sarΓ disponibile su: http://localhost:4200
β οΈ Nota: Servono 2 terminali separati - uno per il back-end e uno per il front-end.
- Ctrl + C in entrambi i terminali per fermare i servizi
- Verifica:
netstat -ano | findstr ":4200 :8085"
(nessun output = servizi fermati)
- Naviga su
http://localhost:4200
- Effettua il login con le credenziali di test:
- Username:
user
- Password:
12345678
- Username:
- Accedi alla dashboard principale
- Sezione "Pazienti" β Visualizza lista completa
- "Aggiungi Paziente" β Inserisci nuova anagrafica
- Modifica/Elimina β Gestisci pazienti esistenti
- Gestione Caregiver β Assegna assistenti/familiari ai pazienti
- Ricerca e filtri β Trova rapidamente pazienti specifici
- Sezione "Genetica" β Seleziona paziente
- "Crea Pedigree" β Avvia editor interattivo
- Aggiungi familiari β Usa widget PedigreeJS
- Pannello laterale β Modifica dettagli persona selezionata
- Salva β Persisti nel database
- Apri pedigree esistente
- Toolbar Export β Scegli formato desiderato
- Download automatico del file generato
server.port=8085
spring.datasource.url=jdbc:postgresql://localhost:5432/[nome_db]
spring.datasource.username=[username_db]
spring.datasource.password=[password_db]
spring.jpa.hibernate.ddl-auto=update
cors.allowed.origins=http://localhost:4200
// src/environments/environment.ts
export const environment = {
production: false,
apiUrl: 'http://localhost:8085/api/v1'
};
tesi-app/
βββ π front-end/
β βββ π angular/
β βββ π src/
β β βββ π app/
β β β βββ π components/
β β β β βββ π genetica/ # Dashboard genetica
β β β β βββ π pedigree-viewer/ # Editor pedigree
β β β βββ π services/ # Servizi Angular
β β β βββ π models/ # Modelli TypeScript
β β β βββ π guards/ # Route guards
β β βββ π assets/
β βββ π libs/
β βββ π pedigreejs/ # Libreria PedigreeJS
βββ π back-end/
β βββ π crud/
β βββ π src/main/java/
β β βββ π it/uniba/crud/
β β βββ π controller/ # REST Controllers
β β βββ π service/ # Business Logic
β β βββ π repository/ # Data Access
β β βββ π model/ # EntitΓ JPA
β β βββ π dto/ # Data Transfer Objects
β βββ π src/main/resources/
βββ π db/ # Database dump e script
β βββ medical_db_dump.sql # Dump completo del database
βββ π README.md
Formato | Descrizione | Uso Clinico |
---|---|---|
PNG | Immagine ad alta risoluzione | Documentazione medica |
SVG | Grafico vettoriale scalabile | Pubblicazioni scientifiche |
JSON | Formato nativo del sistema | Backup e interoperabilitΓ |
BOADICEA v4 | Standard internazionale | Analisi rischio breast/ovarian cancer |
CanRisk v4.0 | Formato CanRisk | Valutazione rischio multi-cancer |
Documento stampabile | Referti e documentazione |
- β JSON (formato nativo)
- β BOADICEA (standard medico)
- β CanRisk (formato rischio)
- β PED (formato genealogico)
Questo progetto Γ¨ stato sviluppato come progetto di tesi. Per contributi o segnalazioni:
- π΄ Fork del repository
- πΏ Crea feature branch (
git checkout -b feature/AmazingFeature
) - πΎ Commit delle modifiche (
git commit -m 'Add AmazingFeature'
) - π€ Push del branch (
git push origin feature/AmazingFeature
) - π Apri Pull Request
Questo progetto Γ¨ sviluppato per scopi accademici come parte di un progetto di tesi universitaria.
- PedigreeJS: GPL-3.0-or-later (Centre for Cancer Genetic Epidemiology, University of Cambridge)
- Angular: MIT License
- Spring Boot: Apache License 2.0
- Bootstrap: MIT License
Danilo Santo
- π UniversitΓ : UniversitΓ degli Studi di Bari Aldo Moro, Dipartimento di Informatica.
- π§ Email: [email protected]
- πΌ LinkedIn: https://www.linkedin.com/in/danilo-santo-1107a2358/
- Centre for Cancer Genetic Epidemiology, University of Cambridge per lo sviluppo della libreria PedigreeJS
- Relatore di tesi per la supervisione e guida durante lo sviluppo
- Community open source per le librerie utilizzate
β Se questo progetto ti Γ¨ stato utile, lascia una stella! β
Sviluppato con β€οΈ per la comunitΓ medico-genetica