Prejsť na obsah
Integrácie a automatizácia5 min čítania

Rezervačný systém v Google Kalendári, bez vlastnej databázy

Mnoho ambulancií a štúdií už plánuje v Google Kalendári. Online objednávanie potom rieši ďalším systémom, ktorý sa s kalendárom musí synchronizovať. Pri jednoduchších prevádzkach to ide aj bez neho. Web môže voľné termíny čítať priamo z kalendára a nové rezervácie doň rovno zapisovať. Presne tak sme to postavili pre Alma Medical.

Prečo kalendár namiesto rezervačného systému

Klinika Alma Medical chcela, aby sa pacienti mohli online objednať na vyšetrenie znamienok.

Recepcia pritom už všetko plánuje v Google Kalendári: ordinačné hodiny, dovolenky, školenia aj návštevy dohodnuté po telefóne.

Pridať ďalší rezervačný systém by znamenalo dve miesta, kde sa musia termíny zhodovať, a ďalšiu synchronizáciu, ktorá môže zlyhať.

Preto rezervácie nemajú vlastnú databázu termínov. Zdrojom pravdy je kalendár kliniky. Web z neho vypočíta voľné časy a nové návštevy doň zapisuje ako bežné udalosti.

Recepcia ďalej pracuje tam, kde pracovala vždy.

Ako to funguje

Voľné termíny určuje recepcia

Kedy sa dá online objednať, nenastavuje nikto v administrácii webu.

Recepcia vytvorí v kalendári udalosť, ktorej názov začína slovom „Online“. Napríklad opakovanú „Online · Dermatoskopia“ každý pracovný deň od 8 do 14 hodín.

Len vnútri týchto okien web ponúkne pacientom dvadsaťminútové termíny.

Potrebuje klinika budúcu stredu skončiť skôr? Upraví udalosť v kalendári. Hotovo. Bez zásahu do webu.

Všetko ostatné termín blokuje

Každá iná udalosť v kalendári daný čas obsadí. Platí to aj pre celodenné udalosti, napríklad dovolenku.

Výnimkou sú udalosti nastavené v Google Kalendári ako Voľno. Tie neblokujú bežné plánovanie a ignoruje ich aj rezervačný web.

Web zároveň neponúka termíny skôr než dve hodiny vopred ani ďalej než štyri týždne.

Pacient dostane len zoznam voľných časov. Mená pacientov, názvy stretnutí ani obsah ostatných udalostí sa do prehliadača neposielajú.

Výber termínu online rezervácie na webe Alma Medical
Výber termínu na webe Alma Medical. Voľné časy na snímke sú ukážkové.

Dvaja pacienti, jeden termín

Medzi zobrazením voľného času a odoslaním formulára môže uplynúť niekoľko minút. Medzitým si rovnaký termín môže vybrať niekto iný.

Preto dostupnosť nekontrolujeme len pri načítaní stránky.

Pred vytvorením rezervácie web overí kalendár znova. Po zápise navyše kontroluje, či v rovnakom čase nevznikol súbežný konflikt.

Ak áno, systém jednu rezerváciu nepovažuje za potvrdenú a pacientovi ponúkne výber iného termínu.

Toto je detail, ktorý na obrázku rezervačného formulára nie je vidieť. Ale bez neho môže aj jednoduchý systém začať rozdávať jeden termín dvom ľuďom.

Potvrdenie, pripomienka a zrušenie

Po rezervácii príde pacientovi e-mail s potvrdením a odkazom na zrušenie. Deň pred návštevou odíde pripomienka.

Odkaz na zrušenie je podpísaný, takže nestačí zmeniť pár znakov v URL a dostať sa k cudzej rezervácii.

Samotný odkaz navyše nič neruší. Najprv otvorí stránku a až na nej pacient zrušenie potvrdí tlačidlom.

Dôvod je celkom praktický: e-mailové služby, bezpečnostné filtre a náhľady odkazov URL často automaticky otvárajú. Keby samotné načítanie odkazu rezerváciu rušilo, zvládol by to e-mailový filter skôr než pacient.

Čo treba nastaviť

  • Google Calendar API. Web potrebuje technický účet a prístup ku konkrétnemu kalendáru, z ktorého bude čítať a do ktorého bude zapisovať.
  • Prístup len tam, kam je potrebný. Technický účet dostane oprávnenie k určenému kalendáru. Nemusí mať prístup k e-mailu ani k ostatným kalendárom kliniky.
  • Odosielanie e-mailov. Potvrdenia a pripomienky posielame z domény kliniky cez overenú e-mailovú službu.
  • Prístupové údaje len na serveri. Kľúče ku Googlu ani e-mailovej službe nie sú v kóde posielanom do prehliadača. Sú uložené v serverovom prostredí hostingu.

A počítame aj s tým, že niektorá služba práve nemusí odpovedať.

Ak web nemôže bezpečne zistiť dostupnosť termínov, neponúka rezerváciu naslepo. Namiesto formulára ukáže možnosť objednať sa telefonicky.

Kde táto cesta končí

Google Kalendár ako zdroj rezervácií funguje dobre pre jeden alebo niekoľko jednoduchých typov návštev s pevnou dĺžkou.

Potom však príde bod, keď si už vlastná databáza alebo hotový rezervačný systém svoju zložitosť zaslúži.

  • Platba vopred. Termín býva potrebné počas platby dočasne zablokovať a riešiť, čo sa stane pri nedokončenej transakcii.
  • Viac kapacít. Traja pacienti v rovnakom čase, niekoľko zamestnancov, konkrétny prístroj alebo miestnosť už z jedného kalendára rýchlo urobia hlavolam.
  • Rôzne dlhé služby. Dvadsať minút na jednu návštevu a deväťdesiat na inú znamená zložitejšiu prácu s dostupnosťou.
  • Štatistiky a ďalšia automatizácia. Koľko rezervácií prišlo z webu, koľko ich ľudia zrušili alebo kto sa opakovane nedostavil, sa z kalendára zistiť dá. S databázou sa s tým však pracuje podstatne lepšie.
  • Citlivé dáta. Pri zdravotníckom zariadení môže už samotná informácia o rezervácii vypovedať o čerpaní zdravotnej starostlivosti. Preto do kalendára ukladáme len údaje, ktoré klinika pre rezerváciu skutočne potrebuje, a riešime prístupové práva, zabezpečenie účtov aj podmienky spracúvania dát.

Jednoduchšie technické riešenie nie je automaticky horšie. Len musí byť naozaj jednoduchšie aj v prevádzke, nie iba pri vývoji.

Kedy stačí hotový rezervačný systém a kedy už dáva zmysel niečo vlastné, rozoberáme v článku Rezervačný systém: hotový, doplnok, alebo vlastný?

Časté otázky

Uvidí pacient, kto je objednaný pred ním?

Nie. Web z kalendára používa informácie potrebné na výpočet dostupnosti, ale pacientovi vracia len voľné časy. Obsah ostatných udalostí zostáva na serveri.

Čo keď recepcia zapíše návštevu ručne?

Nič ďalšie robiť nemusí. Len čo je v kalendári udalosť, daný čas sa pri ďalšom načítaní už neponúkne ako voľný. Rovnako fungujú dovolenky, porady alebo iné blokácie.

Ide to aj s kalendárom v Microsoft 365?

Áno. Princíp môže byť rovnaký: dostupnosť sa číta z kalendára a nové rezervácie sa doň zapisujú cez API. Microsoft 365 na to používa Microsoft Graph, takže nejde o rovnaké napojenie ako pri Googli, ale z pohľadu používateľa môže celý systém fungovať prakticky rovnako.

AutorOndřej Koziorek

Founder a creative director NKZ. V nkz.dev vedie zadanie, UX/UI a smerovanie digitálnych produktov.

Ďalej zo zápiskov
E-shopy

Rezervačný systém: hotový, alebo vlastný

Kedy stačí hotový systém, kedy doplnok a kedy začína dávať zmysel vlastné riešenie.

Prečítať
Integrácie a automatizácia

Čo pripraviť pred napojením účtovníctva a e-shopu?

Číselné rady, DPH, vratky, platby a chyby: čo rozhodnúť pred vývojom.

Prečítať
Služba

Integrácie a automatizácia

Prepojenie systémov, ktoré si dnes dáta odovzdávajú ručne.

Viac o službe