Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SOMMARIO
Il framework che verrà utilizzato sarà Laravel, con un template responsive in grado di fornire
all’utente una web application con ottima usabilità sia versione desktop che mobile.
Dopo una attenta analisi abbiamo elaborato una serie di sviluppi necessari per ampliare e portare
a termine il progetto. Nel dettaglio dell’analisi quindi, andremo ad illustrare le parti attualmente
mancanti o incomplete.
2. Dettagli analisi
GESTIONE UTENTI
Va strutturata interamente la gestione utenti che possono registrarsi ed interagire con il portale. Gli
utenti possono essere di tue tipi: DOTTORE e CLIENTE.
Va strutturata la gestione ruoli e permessi da associare a ciascun utente.
- potrà registrarsi al portale, inserendo i suoi dati anagrafici. In fase di registrazione seleziona
una serie di specializzazioni e subspecializzazioni, e seleziona, se presente una struttura di
riferimento della quale fa parte (Es: Struttura Ospedaliera e/o studio medico).
Se lo studio o la struttura non è presente, può segnalare la creazione di una nuova
struttura.
- La registrazione non abilita in automatico l’utente. Agli ADMIN del sito viene segnalata la
richiesta di abilitazione di un nuovo utente. In questo caso l’admin dovrà verificare i dati,
editarli se necessario e, se tutto coerente, abilitare l’utente. All'utente arriverà una notifica di
avvenuta abilitazione al portale.
- Il dottore abilitato, avrà accesso al portale come DOTTORE, avrà una sua interfaccia
frontend dove potrà
- Richiedere di modificare, aggiungere, cancellare specializzazioni ed info del proprio
profilo tramite comunicazione con admin.
- Impostare uno slot orario dove sono accettate visite e/o erogazione di servizi.
- impostare serie di servizi e/o esami che può erogare, selezionandoli da una base
dati già impostata. Per ogni servizio può impostare i dati “Prezzo” ed “Orario”. Ogni
servizio/presazione andrà a creare un vero e proprio prodotto, che sarà quello puoi
acquistato dall’utente in fase di checkout.
- Visualizzare le prenotazioni ricevute e gestirle (annullare appuntamento,
comunicare col cliente)
Verrà creata una tabella USERS con la possibilità di associare due ruoli (Cliente o Dottore)
Verrà creata una tabella specializzazioni ed una di sub-specializzazioni. Le sub-specializzazioni
sono collegate ad una specializzazione padre. Ad ogni utente DOTTORE possono essere
associate una o più specializzazioni ed una o più subspecializzazioni.
Verrà creata una tabella STRUTTURE che possono essere di due tipi (OSPEDALE oppure
STUDIO MEDICO). Conserva dati come nome, località, regione, indirizzo. Ad ogni DOTTORE può
essere associata una o più struttura.
Verrà creata una tabella di SERVIZI contenente servizi/esami erogabili. Questa tabella sarà
gestibile solo da lato ADMIN sia in inserimento che in modifica. Ad ogni servizio sarà associato un
settore, che non è altro che una SPECIALIZZAZIONE.
Verrà creata una tabella REGIONI contenente tutte le regioni italiane.
Associando REGIONE e SERVIZIO, si potrà tener traccia di un codice TICKET ed un
CODICEREGIONALE del servizio, che varia da regione a regione.
Verrà creata una tabella PRODOTTO. Ad ogni prodotto sarà associato: un dottore di riferimento,
una struttura, un SERVIZIO. Ogni prodotto avrà un costo, ed una durata, ed il valore del tempo
medio di attesa.
PRENOTAZIONE SERVIZIO
La prenotazione di un servizio può avvenire in due modalità: Ricerca Prestazione Specifica oppure
tramite Wizard Sintomi.
Nel caso in cui l’utente scelga questa modalità, all’utente verrà chiesta una doppia opzione:
verranno subito chiesti una serie di dati: Nome, email, età, sesso, località e se sta compilando il
form per se stesso o per una terza persona.
Dopo questo step viene chiesto se l’utente avverte un malessere FISICO o PSICOLOGICO.
Dopo questa scelta, tramite il Symptom Checker, l’utente selezionerà la parte del corpo dove
avverte dolore. Questa mostrerà una serie di sintomi: selezionando un sintomo, si verrà
reindirizzati ad un medico specialista collegato al sintomo trovato. Ci sarà anche la possibilità di
cercare un sintomo che non sia necessariamente collegato ad una parte specifica del corpo,
Una volta selezionato il dottore, si può procedere alla prenotazione. Nel caso di prenotazione da
wizard, verrà aggiunto in automatico al carrello un prodotto di tipo “Prima Visita”, che dovrà quindi
essere associato di default ad ogni medico.
Prima di completare la procedura di acquisto, se l’utente non è loggato, chiederà all’utente di
registrarsi, portando dietro i dati anagrafici fin qui inseriti. In maniera analoga, se l’utente inizia la
procedura da loggato, mostra in maniera precompilata i dati contenuti in anagrafica.
La prenotazione di un servizio in questa prima fase, quindi, può avvenire solo per un Utente
Loggato.
Verrà implementato un carrello che permetterà di effettuare l’acquisto con due modalità: CARTA o
PAGAMENTO IN LOCO.
La transazione avverrà fra cliente ed il portale “MigliorCura.it”.
Per ogni transazione verranno salvati dei dati di FATTURAZIONE, che fanno riferimento all’ordine.
Ad ogni ordine sarà associato il cliente.
Ogni prenotazione, occuperà una casella nel calendario, che renderà la data e ora non più
disponibile per un altro cliente.
Una volta effettuata la prenotazione, verrà impostato un sistema di notifiche ad utente e dottore.
Al Dottore ed al Cliente arriverà una notifica via mail e via SMS di avvenuta prenotazione.
Al Cliente ed al Dottore arriverà una notifica 12 ore prima della visita via mail.
Al Cliente ed al Dottore arriverà una notifica 6 ore prima via SMS.
CRITICITA’:
- Integrazione del sistema Symptom Checker in Laravel
- Integrazione sistema invio SMS (tramite Twilio)
- Integrazione Carrello con sistema di pagamento via carta (tramite carrello Stripe)
Va creata mappata una tabella BODY PARTS che mappa le parti del corpo.
Va strutturata e mappata una tabella SINTOMI, collegati ad una o più parti del corpo. A loro volta
ogni sintomo va mappato con una o più Specializzazione e/o Sub Specializzazione. I Sintomi
avranno anche un campo tipo che potrà essere solo di due tipi: “Fisico” o “Psicologico”.
Per le procedure di checkout dell’odine/prenotazione, oltre alla sopra citata tabella di PRODOTTO,
verrà implementata una tabella ORDINE che rappresenta la prenotazione. Una tabella
APPUNTAMENTO che serve a fissare una data a calendario e che sarà collegata a DOTTORE e
STRUTTURA relativa.
La tabella ORDINE rappresenterà la testata dell’ordine.
Ci sarà anche una tabella dati fatturazione, collegata all’utente CLIENTE.
CI sarà una tabella RIGHE_ORIDINE che riporterà il codice del PRODOTTO acquistato ed il
codice dell’APPUNTAMENTO, ed il costo pagato sulla prestazione.
Va strutturata anche una tabella NOTIFICATIONS che gestisce le notifiche ed i cron di invio dei
vari reminder e notifiche.
PANNELLO ADMIN
CRITICITA’:
Da valutare a parte una eventuale importazione di dati tramite tracciati CSV (da valutare anche
sulla base dei tracciati a disposizione)
INTERFACCIA GRAFICA
L’implementazione di una nuova veste grafica da valutare in un secondo momento, sulla base
delle grafiche che verrano fornite.