Salute e malattia

Posizione |  | Salute e Malattia >  | Settore sanitario | Ospedali

Diagramma classi UML avanzato per sistemi gestione ospedaliera

Questo diagramma classi UML completo modella i core actors, entità, e relazioni per un moderno hospital management system (HMS), supportando workflow clinici, amministrativi, e finanziari.

Classi Actor

Paziente

+----------------+
| Actor: Paziente |
+----------------+
* Attributi:
- PatientID: String
- Nome: String
- DataNascita: Date
- Genere: Enum
- Indirizzo: Address
- Telefono: String
- Email: String
- Assicurazione: InsurancePolicy
- ContattoEmergenza: ContactInfo
* Operazioni:
+ Registra()
+ AggiornaProfilo()
+ RichiediAppuntamento()
+ VisualizzaCartellaClinica()
+ VisualizzaStoricoFatturazione()
+ PagaFattura()
+ FornisciConsenso()

Medico

+-------------------+
| Actor: Medico |
+-------------------+
* Attributi:
- DoctorID: String
- Nome: String
- Specialità: SpecialtyEnum
- Dipartimento: Department
- NumeroLicenza: String
- AnniEsperienza: Integer
- Orario: Schedule
* Operazioni:
+ DiagnosticaPaziente()
+ PrescriveTrattamento()
+ EsegueProcedura()
+ VisualizzaCartellePazienti()
+ GestisciAppuntamenti()
+ FirmaDocumentazione()
+ OrdinaEsami()

Attori aggiuntivi

  • Infermiere - Cura paziente, somministrazione farmaci, monitoraggio segni vitali, esecuzione piano cura
  • Amministratore - Gestione utenti, configurazione sistema, reporting, compliance
  • Tecnico laboratorio - Processamento campioni, inserimento risultati, gestione QC
  • Farmacista - Verifica farmaci, dispensazione, controllo interazioni, preparazione
  • Specialista fatturazione - Generazione claim, coding, gestione dinieghi, registrazione pagamenti

Classi entità core

Appuntamento

+----------------------+
| Classe: Appuntamento |
+----------------------+
* Attributi:
- AppointmentID: String
- PatientID: String
- ProviderID: String
- DateTime: DateTime
- Durata: Integer
- Tipo: AppointmentType
- Status: AppointmentStatus
- Locazione: Location
- Motivo: String
* Operazioni:
+ Schedule()
+ Reschedule()
+ Cancel()
+ CheckIn()
+ Complete()
+ GetDetails()

CartellaClinica

+--------------------------+
| Classe: CartellaClinica |
+--------------------------+
* Attributi:
- RecordID: String
- PatientID: String
- Incontri: List<Encounter>
- Diagnosi: List<Diagnosis> (ICD-10)
- Allergie: List<Allergy>
- Farmaci: List<Medication>
- Immunizzazioni: List<Immunization>
- ListaProblemi: List<Problem>
* Operazioni:
+ AggiungiIncontro()
+ AggiungiDiagnosi()
+ AggiornaListaProblemi()
+ GeneraRiassunto()
+ ExportCCD()

Trattamento / PianoCura

+------------------+
| Classe: Trattamento |
+------------------+
* Attributi:
- TreatmentID: String
- PatientID: String
- ProviderID: String
- Diagnosi: Diagnosis
- Piano: PianoCura
- Farmaci: List<Prescrizione>
- Ordini: List<Ordine>
- Status: TreatmentStatus
* Operazioni:
+ CreaPiano()
+ AggiornaPiano()
+ AggiungiPrescrizione()
+ AggiungiOrdine()
+ GetStorico()

Fatturazione e Finanziario

+----------------+
| Classe: Fattura |
+----------------+
* Attributi:
- BillID: String
- PatientID: String
- EncounterID: String
- LineItems: List<BillLineItem>
- TotaleAddebiti: Decimal
- PagamentiAssicurazione: Decimal
- ResponsabilitàPaziente: Decimal
- Status: BillingStatus
* Operazioni:
+ Genera()
+ InviaClaim()
+ RegistraPagamento()
+ Rettifica()
+ GeneraEstrattoConto()

Ospedale / Organizzazione

+---------------------------+
| Classe: Ospedale |
+---------------------------+
* Attributi:
- HospitalID: String
- Nome: String
- Indirizzo: Address
- Telefono: String
- NumeroLicenza: String
- NumeroLetti: Integer
- Dipartimenti: List<Department>
- Provider: List<Provider>
* Operazioni:
+ GestisciRisorse()
+ GeneraReport()
+ ConfiguraWorkflow()
+ AuditCompliance()

Relazioni chiave

  • Paziente 1..* — * Appuntamento (Paziente ha molti appuntamenti)
  • Medico 1..* — * Appuntamento (Medico ha molti appuntamenti)
  • Paziente 1 — 1 CartellaClinica (Una cartella per paziente)
  • Incontro 1..* — * Ordine (Incontro genera ordini)
  • Ordine 1 — 1..* Risultato (Ordini lab/imaging producono risultati)
  • Incontro 1 — 1 Fattura (Ogni incontro genera fatturazione)
  • Ospedale 1 — * Dipartimento (Ospedale contiene dipartimenti)
  • Dipartimento 1 — * Provider (Dipartimento ha provider)

Design Patterns applicati

  • Facade: HospitalManagement semplifica interazioni subsistemi
  • Observer: Notifiche appuntamenti, alert risultati critici
  • Strategy: Regole fatturazione per payer, algoritmi scheduling
  • State: AppointmentStatus, TreatmentStatus, BillingStatus
  • Composite: PianoCura composto da Ordini, Farmaci, Obiettivi

Nota implementazione: Questo modello allinea con risorse HL7 FHIR (Patient, Practitioner, Encounter, CarePlan, MedicationRequest, Claim) per interoperabilità.