Vai al contenuto
megapromotingParliamone

Soluzioni · Cliniche odontoiatriche

Elenco dei servizi con indicazione di copertura tramite l'assicurazione obbligatoria, modificabile dalla reception — non un PDF con i prezzi inviato via e-mail.

Un sito web di una clinica dentale si giudica da una sola cosa: se la persona trova il servizio di cui ha bisogno, con il prezzo e la sua unità — per dente, per mascella, per seduta — e se sa se rientra o no nell'assicurazione. Il resto è decorazione. Costruiamo la struttura che lo sostiene e il pannello da cui il personale lo modifica da solo.

Già costruitoLucrarea se poate verifica din exterior chiar acum: datele publice ale unui centru stomatologic raional pe care îl administrăm sunt servite ca fișier structurat — 89 de servicii, fiecare cu categorie, subcategorie, denumire, preț, unitate de măsură și un indicator de eligibilitate pentru asigurarea obligatorie, dintre care 27 marcate ca eligibile; 7 categorii și 10 subcategorii, verificate de noi pe 06.09.2026. A doua parte a dovezii e securizarea, cu diff în istoric: la preluare, parola de administrator era comparată în browser și ajungea în pachetul JavaScript public, iar scrierile pe interfața de programare se puteau face de oricine de pe internet. Precizarea corectă, ca să nu ne atribuim mai mult decât e al nostru: prima variantă a site-ului nu e a noastră. Contribuția care se poate arăta cu diff e preluarea, securizarea, tipurile, integrarea continuă și igiena dependințelor.

Una clinica dentale non vende «servizi». Vende un elenco molto lungo di voci tariffarie con unità che non assomigliano a nulla di un altro settore: per dente, per mascella, per estrazione, per caso trattato, per seduta, per visita, per intervento. La persona che cerca su internet non cerca la clinica, ma la propria voce: quanto costa un'estrazione, si paga per dente o per visita, è coperta dall'assicurazione. Un sito che risponde a questo è utile; uno che ha una pagina «Prezzi» con un PDF allegato no.

La seconda cosa che la realtà di una clinica richiede è che l'elenco sia modificabile senza programmatore. Le tariffe cambiano, i medici cambiano, il programma delle urgenze viene annunciato in modo diverso d'inverno. Se ogni modifica passa attraverso uno sviluppatore, l'elenco resta vecchio e, in pochi mesi, i pazienti arrivano con il prezzo dell'anno scorso. La struttura che costruiamo tiene i dati pubblici — servizi e team — in file strutturati letti sia dall'interfaccia di programmazione, sia direttamente dalla parte visibile del sito, e il personale li modifica da un pannello.

La terza cosa, che nessuno chiede nel brief e che conta di più, è chi può scrivere in quell'elenco. Al momento della presa in carico del progetto di cui scriviamo qui, chiunque su internet poteva inviare una scrittura verso l'interfaccia di programmazione, e la password del pannello finiva nel pacchetto JavaScript servito al browser — perché la verifica avveniva nel browser. Abbiamo spostato la verifica sul server: la password non lascia più il server, torna un token firmato valido dodici ore, con limite di otto tentativi ogni quindici minuti per indirizzo IP e confronti in tempo costante; l'interfaccia ascolta solo sull'indirizzo locale, quindi il server web è l'unica via pubblica.

L'indicazione di copertura tramite l'assicurazione obbligatoria merita una frase separata, perché è il campo con il valore più alto per il paziente e il rischio più alto per la clinica: è un'affermazione con conseguenze. Per questo vive come dato modificato dall'istituzione, non come testo scritto da noi in una pagina; noi costruiamo il campo, la visualizzazione e la possibilità di correggerlo in un minuto.

Cosa comprende

Cosa cambia concretamente nelle cliniche odontoiatriche

Ogni servizio è una voce con la propria unità, non una riga in una tabella dei prezzi

La struttura dei dati di ciascun servizio ha categoria, sottocategoria, denominazione, prezzo, unità di misura e indicatore di eleggibilità per l’assicurazione obbligatoria. Le unità sono quelle reali del settore — dente, mascella, estrazione, caso trattato, seduta, visita, consultazione, anestesia, procedura, indagine, intervento — perché un prezzo senza unità produce esattamente la conversazione che la reception vuole evitare.

La tassonomia su due livelli, così che l’elenco lungo resti scorribile

Categoria e sottocategoria, non un elenco piatto. Nel lavoro di cui scriviamo: 7 categorie e 10 sottocategorie oltre 89 servizi. L’ordine di grandezza conta — sotto le cento voci, una tassonomia su due livelli è sufficiente; oltre qualche centinaio, la struttura diventa un altro discorso e lo diciamo prima, non dopo.

La marcatura di copertura tramite assicurazione, come dato dell’istituzione

L’indicatore di eleggibilità sta su ogni servizio, nei dati pubblici, ed è modificabile dalla clinica. Nel lavoro citato, 27 dei 89 servizi sono marcati come eleggibili. Non scriviamo noi cosa rientra nell’assicurazione e non lo deduciamo: è un’affermazione dell’istituzione, con conseguenze per il paziente, e deve poter essere corretta da essa in qualsiasi momento.

Schermi separati per urgenze, ortodonzia, impianti, pedodonzia

Non un’unica pagina „Servizi”. Il sito ha 22 schermi, dai servizi e prezzi fino a urgenze, ortodonzia, impianti, pedodonzia, trasparenza e feedback. Il motivo è pratico: chi cerca „urgenza odontoiatrica” la domenica sera non vuole una pagina generale, e una pagina di sezione ha qualcosa da dire sul programma e su ciò che vi si fa.

Il personale modifica, lo sviluppatore non è in catena

I servizi e il team si modificano da un pannello, mentre le scritture richiedono un token valido; le letture restano pubbliche, così il sito funziona senza autenticazione. La conseguenza per la clinica: una modifica di tariffa entra nello stesso giorno, non nella successiva iterazione di sviluppo.

La password non lascia il server, e i tentativi sono limitati

L’autenticazione avviene sul server e restituisce un token firmato con HMAC-SHA256, valido 12 ore, con un massimo di 8 tentativi ogni 15 minuti per indirizzo IP e confronti in tempo costante. Il segreto di firma viene generato automaticamente, in un file con permessi limitati, tenuto fuori dal repository. Sono cifre del codice, non principi generali — si possono leggere e contestare.

L’interfaccia di programmazione non è esposta direttamente su Internet

Ascolta solo sull’indirizzo locale, quindi il server web front-end è l’unico canale pubblico; l’elenco dei domini consentiti è esplicito, e il corpo delle richieste è limitato a 1 MB. Le scritture richiedono un token, le letture no. È una configurazione comune — il problema è che, quando manca, non si vede dall’esterno fino al giorno in cui qualcuno la trova.

L’integrazione continua rifiuta il pacchetto se vi trova un segreto

La verifica che compila e controlla i tipi fa anche una cosa che pochi progetti fanno: cerca segreti nel pacchetto costruito e si interrompe se ne trova. È direttamente legata al difetto corretto in fase di presa in carico — una password era finita nel pacchetto pubblico proprio perché nulla verificava questo aspetto. In più, aggiornamenti delle dipendenze con cadenza settimanale.

Ciò che non fa un sito di una clinica odontoiatrica

Non conferma una prenotazione da sola: raccoglie la richiesta, mentre la conferma richiede una persona oppure una connessione al sistema di prenotazioni della clinica — lavoro separato, con le proprie condizioni. Non pubblica informazioni cliniche scritte da noi: il contenuto sui trattamenti è responsabilità degli specialisti. E non decide cosa rientra nell’assicurazione.

Traseul

Come passa una richiesta attraverso il sistema.

01

Inventariamo il nomenclatore prima del design

La prima consegna è l’elenco delle voci tariffarie con l’unità di ciascuna e con l’indicazione di copertura, nella forma in cui la mantiene la clinica. Se l’elenco non esiste in una forma strutturata — e di solito esiste come file di calcolo o come documento — lo strutturiamo noi, e la clinica lo conferma. Il design viene dopo, perché dipende da quante voci sono.

02

Costruiamo la struttura pubblica e il pannello, nella stessa fase

Le schermate pubbliche e il pannello da cui si modifica non si realizzano separatamente, perché altrimenti compaiono campi visualizzati che non si possono modificare. Consegniamo il sito con i dati reali caricati, non con contenuti di riempimento — un sito di clinica pieno di testo provvisorio non può essere valutato da nessuno.

03

Chiudiamo le scritture e verifichiamo dall’esterno

Autenticazione sul server, token firmato, limite di tentativi, interfaccia di programmazione solo sull’indirizzo locale, elenco di domini consentiti, limite massimo sul corpo delle richieste. Consegniamo il risultato di una verifica effettuata dall’esterno: cosa si può leggere senza autenticazione e cosa non si può scrivere.

04

Consegniamo con formazione per chi modifica, non solo con le password

Consegniamo gli accessi, il documento di messa in esercizio e una breve formazione per la persona che cambierà i prezzi e il team. La consegna non si considera conclusa finché qualcuno della clinica non ha fatto, da solo, una modifica che appare sul sito.

1Server web în față2pachet static construit3interfață de programare doar pe adresa locală4fișiere structurate cu serviciile și echipaCitirile trec public; scrierile cer un jeton semnat, valabil 12 ore.
4 straturi

I dati

Cosa tocchiamo, dove risiedono e quanto rimangono

Le regole differiscono da un settore all’altro. Queste sono quelle che si applicano nelle cliniche odontoiatriche.

Cosa è pubblico e cosa no, su un sito di clinica
Pubblico: l’elenco dei servizi con unità e indicazione di copertura, il team, l’orario, i contatti dell’istituzione. Non pubblico: tutto ciò che arriva da un modulo. La distinzione sembra evidente finché qualcuno mette nella pagina di feedback un messaggio con il proprio nome e il proprio problema — per questo i moduli e la visualizzazione pubblica non condividono mai la stessa fonte.
La richiesta di prenotazione contiene dati sulla salute
«Mi fa male il dente del giudizio in basso a sinistra» è un’informazione sulla salute di una persona identificabile, di una categoria con regime più rigoroso. Le conseguenze pratiche si stabiliscono in fase di implementazione: chi ha accesso ai messaggi ricevuti, per quanto tempo vengono conservati, su quale canale arrivano e cosa non si chiede mai nel modulo.
I prezzi e l’indicazione di copertura appartengono all’istituzione
Li costruiamo come struttura e come pannello; il loro contenuto è della clinica e cambia su sua decisione. Non pubblichiamo alcuna cifra tariffaria come esempio nei nostri materiali, nemmeno a titolo illustrativo — una tariffa estrapolata dal contesto diventa un’affermazione sulla clinica.
Chi può scrivere nei dati pubblici
Solo chi ha un token valido, ottenuto tramite autenticazione sul server, con limite di tentativi. Le letture sono pubbliche perché devono esserlo. La differenza tra queste due frasi è esattamente il difetto che abbiamo corretto nella presa in carico del progetto citato.
Cosa rimane nella cronologia del repository
Una cronologia di progetto contiene, quasi sempre, dati che nessuno vi ha inserito intenzionalmente: un numero di telefono, un indirizzo e-mail, il nome dell’amministratore dei contenuti. Li trattiamo come tali — non vengono inclusi nei materiali pubblici e vengono rimossi dai contenuti su richiesta del cliente.

Un caso

Una password di amministratore che finiva nel pacchetto servito al browser

La situazione

Alla presa in carico di un sito di centro odontoiatrico, il pannello di amministrazione aveva due problemi visibili solo dall’interno. Primo: la password veniva confrontata nel browser, quindi finiva nel pacchetto JavaScript pubblico. Secondo: le richieste di scrittura verso l’interfaccia di programmazione potevano essere effettuate da chiunque su internet, e la porta era esposta direttamente.

Cosa abbiamo costruito

Abbiamo spostato la verifica sul server: l’autenticazione restituisce un token firmato con HMAC-SHA256, valido 12 ore, con limite di 8 tentativi ogni 15 minuti per indirizzo IP e confronti a tempo costante; il segreto di firma viene generato automaticamente, con diritti limitati, fuori dal repository. L’interfaccia di programmazione è rimasta in ascolto solo sull’indirizzo locale, con il server web davanti, elenco di domini consentiti e corpo della richiesta limitato a 1 MB. Le scritture sui servizi e sul team richiedono il token; le letture sono rimaste pubbliche. Soprattutto, integrazione continua che compila, verifica i tipi e rifiuta il pacchetto se vi trova un segreto.

Cosa è emerso

I dati pubblici della clinica si possono verificare dall’esterno ancora oggi: 89 servizi, ciascuno con categoria, sottocategoria, prezzo, unità e indicatore di copertura tramite assicurazione, di cui 27 segnati come idonei. Ciò che è cambiato è chi può scriverci.

Cosa non dice il caso

Non siamo stati noi a costruire la prima versione del sito. Dalla cronologia del repository, una parte dei commit appartiene a sviluppatori esterni. Il contributo che possiamo mostrare con diff è la presa in carico: sicurezza, integrazione continua, tipi, dipendenze.

Domande

Cosa chiede una persona di cliniche odontoiatriche

Possiamo cambiare da soli i prezzi, senza chiamarvi?

Sì — questa è metà del lavoro. I servizi e il team si modificano da un pannello; le scritture richiedono autenticazione, le letture restano pubbliche. Il nostro consiglio: alla consegna, la persona che se ne occuperà effettua la modifica davanti a noi, così sappiamo che funziona dalle sue mani, non dalle nostre.

Come mostriamo cosa rientra nell’assicurazione obbligatoria?

Come indicatore su ogni servizio, negli stessi dati che modificate. Nel lavoro che citiamo, 27 servizi su 89 sono segnati come idonei. Noi costruiamo il campo e la visualizzazione; ciò che è idoneo è l’affermazione dell’istituzione, perché ha conseguenze per il paziente e per la clinica.

Perché conta l’unità di misura in un prezzo?

Perché in odontoiatria il prezzo non è per visita. È per dente, per mascella, per estrazione, per caso trattato, per seduta. Un prezzo mostrato senza unità produce esattamente la conversazione che la reception ha dieci volte al giorno e, peggio, la sensazione del paziente che gli sia stato detto altro al telefono.

Il sito può fare prenotazioni?

Può raccogliere la richiesta. La conferma di un orario richiede o una persona che controlli l’agenda, o una connessione al sistema di prenotazioni della clinica — è un lavoro separato, con verifica di compatibilità prima. Non chiamiamo «prenotazione online» un modulo che invia un’e-mail.

Chi scrive i testi sui trattamenti?

Specialisti della clinica. Noi non scriviamo informazioni cliniche e non le «ottimizziamo» per la ricerca, perché significherebbe formulare affermazioni mediche a nome di un’istituzione medica. Strutturiamo, poniamo le domande a cui il testo deve rispondere e lo pubblichiamo dopo la conferma.

Ho già un sito fatto da un’altra persona. Potete prenderlo in carico?

Sì, e il lavoro di cui scriviamo qui è proprio questo. Cosa facciamo per prima cosa in una presa in carico: guardiamo cosa si può scrivere dall’esterno, dove si trovano le password e cosa arriva nel pacchetto servito al browser. Nel caso citato, la password di amministratore arrivava nel pacchetto pubblico, e le scritture potevano essere fatte da chiunque. Abbiamo spostato la verifica sul server e abbiamo chiuso le scritture.

Quanto velocemente si vede una modifica di tariffa?

Immediatamente dopo il salvataggio, perché i dati pubblici vengono letti dalla stessa fonte che state modificando. Ciò che non promettiamo è la velocità con cui si aggiornano i risultati dei motori di ricerca — questo non dipende da noi e non possiamo garantirlo.

Cosa succede ai dati del modulo di contatto?

Si stabilisce in fase di implementazione: dove arrivano, chi li vede, per quanto tempo vengono conservati e cosa non viene mai richiesto nel modulo. In una clinica, il messaggio contiene spesso una descrizione di un problema di salute, quindi non è «un lead», ma una categoria di dati con regime rigoroso — e il suo trattamento viene scritto nella politica pubblicata della clinica.

Il sito dirà che è stato fatto da voi?

Solo se lo desiderate. Alcuni dei nostri lavori riportano l’attribuzione nel piè di pagina, altri no — dipende dal cliente. Lo menzioniamo perché è una domanda che pongono le cliniche e perché, quando il sito non riporta alcuna attribuzione, anche noi non ci presentiamo come autori senza il loro consenso.

Cosa vorresti che funzionasse meglio?

Raccontaci il tuo processo. Insieme stabiliamo cosa vale la pena costruire, cosa possiamo collegare e come verifichiamo il risultato.

Parliamone