//Analisi delle cartelle cliniche di un’azienda ospedaliera //Requisiti dei Dati // Paziente: // Nome (Stringa) // Ricoveri (Array di Documenti): // data (ISODate) // diagnosi (Stringa) // anamnesi (Stringa) // prognosi (Stringa) // data_di_dimissione (ISODate) //1. Creazione del database e delle Collezioni // - Creare un database chiamato cartelle_cliniche. - Creare una collezione chiamata pazienti che memorizzi i dati sopra descritti. db = db.getSiblingDB("cartelle_cliniche") //NOTA!! Non è necessartio eseguire il comando "db.createCollection('pazienti')" in quanto la keyword "insertMany" per l'inserimento dei dati, crea la collection se //non esiste //2. Inserimento dei Dati di Prova db.pazienti.insertMany([ { "nome": "Lisa Rossi", "ricoveri": [ { "data": ISODate("2026-03-12T08:30:00Z"), "diagnosi": "Frattura scomposta del radio distale sinistro", "anamnesi": "Paziente riferisce caduta accidentale in bicicletta con appoggio sul polso sinistro. Non presenta patologie pregresse di rilievo. Nessuna allergia nota.", "prognosi": "Guarigione stimata in 30 giorni con immobilizzazione gessata", "data_di_dimissione": ISODate("2026-03-14T10:00:00Z") }, { "data": ISODate("2026-04-05T14:15:00Z"), "diagnosi": "Polmonite acquisita in comunità, lobo inferiore destro", "anamnesi": "Paziente ex fumatore, iperteso in terapia con ACE-inibitori, presenta febbre da 4 giorni, tosse produttiva e dispnea da sforzo.", "prognosi": "Risoluzione attesa in 10-14 giorni con terapia antibiotica mirata", "data_di_dimissione": ISODate("2026-04-12T09:45:00Z") } ] }, { "nome": "Robert William", "ricoveri": [ { "data": ISODate("2026-05-20T22:10:00Z"), "diagnosi": "Appendicite acuta non complicata", "anamnesi": "Dolore addominale in fossa iliaca destra insorto 12 ore prima, associato a nausea e vomito. Nessun precedente chirurgico.", "prognosi": "Favorevole dopo appendicectomia laparoscopica, ripresa attività normale in 2 settimane", "data_di_dimissione": ISODate("2026-05-22T11:30:00Z") }, { "data": ISODate("2026-06-08T07:00:00Z"), "diagnosi": "Scompenso cardiaco congestizio riacutizzato", "anamnesi": "Paziente con cardiopatia ischemica nota, scarsa aderenza terapeutica, edemi declivi ingravescenti e ortopnea da 5 giorni.", "prognosi": "Stabilizzazione clinica, prognosi a lungo termine riservata data la comorbidità", "data_di_dimissione": ISODate("2026-06-16T13:20:00Z") } ] }, { "nome": "John Lennon", "ricoveri": [ { "data": ISODate("2026-07-01T16:45:00Z"), "diagnosi": "Colecistite acuta litiasica", "anamnesi": "Dolore in ipocondrio destro post-prandiale ricorrente da mesi, ecografia positiva per calcolosi biliare multipla.", "prognosi": "Buona dopo colecistectomia in laparoscopia, dimissione senza complicanze", "data_di_dimissione": ISODate("2026-07-04T10:15:00Z") }, { "data": ISODate("2026-01-15T09:20:00Z"), "diagnosi": "Ictus ischemico territorio arteria cerebrale media sinistra", "anamnesi": "Paziente iperteso e diabetico tipo 2, presenta improvvisa emiparesi destra e afasia insorte al risveglio. Fibrillazione atriale non nota in anamnesi.", "prognosi": "Recupero parziale atteso con riabilitazione intensiva, deficit residuo probabile", "data_di_dimissione": ISODate("2026-02-02T15:00:00Z") } ] }, { "nome": "Albert Einstein", "ricoveri": [ { "data": ISODate("2026-02-18T11:40:00Z"), "diagnosi": "Pancreatite acuta di origine biliare", "anamnesi": "Dolore epigastrico a barra irradiato al dorso, insorto dopo pasto abbondante. Storia di calcolosi biliare nota da 2 anni, non trattata.", "prognosi": "Favorevole con terapia conservativa, indicata colecistectomia elettiva a distanza", "data_di_dimissione": ISODate("2026-02-27T10:30:00Z") }, { "data": ISODate("2026-03-30T19:05:00Z"), "diagnosi": "Trauma cranico commotivo con frattura costale associata", "anamnesi": "Incidente stradale come motociclista, casco indossato correttamente. GCS 15 all'arrivo, dolore toracico in sede costale destra.", "prognosi": "Buona, osservazione neurologica negativa, guarigione costale in 4-6 settimane", "data_di_dimissione": ISODate("2026-04-02T08:15:00Z") } ] }, { "nome": "Leonardo da Vinci", "ricoveri": [ { "data": ISODate("2026-04-22T06:50:00Z"), "diagnosi": "Sepsi da infezione delle vie urinarie complicata", "anamnesi": "Paziente anziano con catetere vescicale a permanenza, febbre elevata, confusione mentale acuta e ipotensione all'ingresso in Pronto Soccorso.", "prognosi": "Riservata nelle prime 48 ore, successivo miglioramento con terapia antibiotica endovenosa", "data_di_dimissione": ISODate("2026-05-03T12:00:00Z") }, { "data": ISODate("2026-05-10T13:25:00Z"), "diagnosi": "Ernia del disco L4-L5 con radicolopatia", "anamnesi": "Lombalgia cronica riacutizzata da 3 settimane, irradiazione lungo l'arto inferiore sinistro, parestesie al piede, non deficit motori.", "prognosi": "Buona con trattamento conservativo e fisioterapia, chirurgia non indicata al momento", "data_di_dimissione": ISODate("2026-05-14T09:00:00Z") } ] } ]) // 3. Analisi dei Tempi di Ricovero // Scrivere uno script per: - Calcolare il tempo medio (in giorni) che intercorre tra la data di ricovero e la data di dimissione per tutti i pazienti. - Mostrare i //risultati in un formato leggibile. db.pazienti.aggregate([ { $unwind: "$ricoveri" }, { $project: { giorni_ricovero: { $dateDiff: { startDate: "$ricoveri.data", endDate: "$ricoveri.data_di_dimissione", unit: "day" } } } }, { $group: { _id: null, tempo_medio_ricovero: { $avg: "$giorni_ricovero" } } }, { $project: { _id: 0, "Tempo medio di ricovero (giorni)": "$tempo_medio_ricovero" } } ])