Oggi vediamo un programma in Python che ci permette di gestire una struttura sanitaria, in particolare possiamo aggiungere nuovi pazienti, visualizzare le informazioni di un paziente, registrare l'uscita di un paziente e aggiungere le informazioni sulla consegna di beni per un paziente. Tutto da un semplice file!
Iniziamo importando la libreria json per la lettura e la scrittura di file. All'inizio viene creato un dizionario vuoto pazienti per archiviare le informazioni sui pazienti.
Di seguito viene verificato se esiste già un file pazienti.txt contenente informazioni sui pazienti. In caso positivo il dizionario pazienti viene "occupato" con i dati presenti nel file.
Viene poi avviato un ciclo while che continua finché l'utente non sceglie di uscire dal programma in particolare righe 14 a 29. All'interno di questo ciclo vengono presentate all'utente varie opzioni per la gestione. L'utente può scegliere di aggiungere un nuovo paziente, visualizzare le informazioni di un paziente, registrare l'uscita di un paziente o aggiungere una consegna per un paziente.
Quindi se l'utente sceglie l'opzione 1, si richiede all'utente di inserire le informazioni sul paziente (nome, cognome, data di ingresso e reparto) e le memorizza su "pazienti" come un nuovo elemento con chiave composta dal nome e cognome del paziente. Il campo "Consegne" del dizionario viene inizializzato come un dizionario vuoto. Poi alla riga 22 si restituisce un messaggio di conferma dell'aggiunta.
Se l'utente sceglie l'opzione 2 si richiede all'utente di inserire il nome e il cognome del paziente di cui vuole visualizzare le informazioni. Se le informazioni del paziente sono presenti nel dizionario "pazienti" vengono restituiti il nome, il cognome, il reparto, ecc... Se il paziente non viene trovato ovviamente viene restituito un messaggio di errore e così via...
Il codice potete trovarlo online qui!
import json
# Dizionario per archiviare informazioni sui pazienti
pazienti = {}
# Verifica se esiste già un file con informazioni sui pazienti
try:
with open("pazienti.txt", "r") as file:
pazienti = json.load(file)
except FileNotFoundError:
pass
while True:
print("\nGestione pazienti:")
print("1. Aggiungi un nuovo paziente")
print("2. Visualizza informazioni paziente")
print("3. Registra uscita paziente")
print("4. Aggiungi consegna paziente")
print("5. Esci")
scelta = input("\nScegli un'opzione: ")
if scelta == "1":
nome = input("\nInserisci il nome del paziente: ")
cognome = input("Inserisci il cognome del paziente: ")
data_inizio = input("Inserisci la data di ingresso del paziente (dd/mm/yyyy): ")
reparto = input("Inserisci il reparto in cui il paziente e' ospitato: ")
pazienti[nome + " " + cognome] = {"Reparto": reparto, "Data ingresso": data_inizio, "Consegne": {}}
print("\nPaziente aggiunto con successo.")
elif scelta == "2":
nome = input("\nInserisci il nome del paziente: ")
cognome = input("Inserisci il cognome del paziente: ")
if nome + " " + cognome in pazienti:
print("\nNome: " + nome + "\nCognome: " + cognome)
print("Reparto: " + pazienti[nome + " " + cognome]["Reparto"])
print("Data ingresso: " + pazienti[nome + " " + cognome]["Data ingresso"])
print("Consegne:")
for data, consegna in pazienti[nome + " " + cognome]["Consegne"].items():
print(f"{data}: {consegna}")
if "Data uscita" in pazienti[nome + " " + cognome]:
print("Data uscita: " + pazienti[nome + " " + cognome]["Data uscita"])
else:
print("\nIl paziente specificato non e' presente nella lista.")
elif scelta == "3":
nome = input("\nInserisci il nome del paziente: ")
cognome = input("Inserisci il cognome del paziente: ")
if nome + " " + cognome in pazienti:
data_fine = input("Inserisci la data di uscita del paziente (dd/mm/yyyy): ")
pazienti[nome + " " + cognome]["Data uscita"] = data_fine
print("\nUscita registrata con successo.")
else:
print("\nIl paziente specificato non e' presente nella lista.")
elif scelta == "4":
nome = input("\nInserisci il nome del paziente: ")
cognome = input("Inserisci il cognome del paziente: ")
if nome + " " + cognome in pazienti:
data_consegna = input("Inserisci la data della consegna (dd/mm/yyyy): ")
consegna = input("Inserisci la descrizione della consegna: ")
pazienti[nome + " " + cognome]["Consegne"][data_consegna] = consegna
print("\nConsegna registrata con successo.")
else:
print("\nIl paziente specificato non e' presente nella lista.")
Lo reputo un esempio molto interessante che si potrebbe perfezionare con l'aggiunta di una crittografia, vedi ad esempio le librerie cryptography o pycryptodome, ovviamente da non perdere la chiave!😉