Portfolio / Siti Web Aziende Sanitarie

Sito per poliambulatorio

  • Integrazione CRM
  • Accessibilità
  • Sincronizzazione dati e prestazioni
Cliente: Poliambulatorio San Matteo
Settore: Siti Web Aziende Sanitarie

Progetto sviluppato a nome e per conto di Dinova SRL

Un sito per poliambulatorio gestisce informazioni che cambiano spesso: prestazioni, specialisti, giorni di presenza, modalità di prenotazione. Nel progetto per il Poliambulatorio San Matteo la sfida principale non era estetica. Riguardava la coerenza dei dati tra il gestionale della struttura e le pagine pubbliche, insieme alle prestazioni del front-end e all’accessibilità.

Il contesto: due fonti per gli stessi dati

Nelle strutture sanitarie prestazioni e schede dei medici esistono quasi sempre in due posti. Il CRM interno è la fonte operativa, mentre il CMS ospita la versione pubblica. Senza un collegamento tra i due sistemi, ogni modifica va riportata a mano. Così nascono disallineamenti: un medico che non collabora più resta online, una prestazione nuova non compare. L’obiettivo era eliminare questa doppia manutenzione.

Integrazione con il CRM del cliente

Come fonte di verità è stato scelto il CRM, non il sito. Una decisione meno ovvia di quanto sembri, perché il team redazionale perde parte del controllo sui testi. Tuttavia la segreteria lavora già nel gestionale, quindi spostare lì l’unico punto di inserimento riduce gli errori alla radice.

Mappatura dei contenuti

Prestazioni e medici sono stati modellati come tipi di contenuto distinti, collegati da una relazione molti-a-molti. Ogni record conserva l’identificativo esterno del CRM. Questo dettaglio rende la sincronizzazione idempotente: lo stesso dato importato due volte aggiorna l’elemento esistente invece di duplicarlo.

Gestione degli aggiornamenti

Il flusso di sync segue una sequenza precisa:

  1. lettura dei record modificati tramite API;
  2. confronto con l’identificativo esterno già salvato;
  3. creazione o aggiornamento del contenuto, con slug stabili per non perdere posizionamento;
  4. archiviazione, mai cancellazione, degli elementi rimossi dal CRM;
  5. invalidazione mirata della cache.

Il quarto passaggio merita una nota. Archiviare anziché eliminare permette di gestire redirect e di recuperare una scheda disattivata per errore.

Ottimizzazione del codice del sito per il poliambulatorio

Le relazioni tra medici e prestazioni generano query potenzialmente pesanti, soprattutto nelle pagine di elenco. Per questo i risultati più richiesti vengono messi in cache e rigenerati solo quando la sync modifica davvero un record. Il carico sul database resta così contenuto anche con molte schede.

Sul front-end il lavoro è stato più tradizionale, anche se non banale. CSS e JavaScript vengono caricati solo nelle pagine che li usano. Le immagini dei medici sono servite in formati moderni, con dimensioni responsive e caricamento differito sotto la piega. Gli script di terze parti sono ridotti al minimo indispensabile: ogni widget esterno ha un costo in prestazioni e in privacy.

Verifiche WCAG e accessibilità

Il riferimento adottato è il livello AA delle Web Content Accessibility Guidelines. Per un sito sanitario la scelta ha una motivazione pratica: una parte rilevante dell’utenza è anziana o ha difficoltà visive.

I test automatici individuano bene contrasti insufficienti, attributi alt mancanti ed etichette assenti nei form. Da soli però non bastano. Le verifiche manuali hanno riguardato la navigazione da tastiera, la visibilità del focus, il link per saltare al contenuto e la lettura con screen reader delle schede medico. Proprio qui emergono i problemi più sottili, per esempio una gerarchia di titoli incoerente generata da dati importati.

C’è poi un vantaggio collaterale dell’integrazione. Poiché i contenuti arrivano dal CRM in forma strutturata, il markup resta uniforme e si evitano gli errori tipici della formattazione manuale.

Da questo progetto si ricavano tre indicazioni replicabili. La prima: definire subito quale sistema è la fonte di verità e salvare gli identificativi esterni. La seconda riguarda la cache, da legare agli eventi di sincronizzazione anziché a scadenze fisse. La terza: affiancare sempre verifiche manuali ai test WCAG automatici. Chi sta valutando un intervento simile può partire da un’analisi del gestionale esistente e dei costi, per esempio con un servizio WordPress all-inclusive che includa sviluppo, manutenzione e controlli periodici.