Klinik randevu platformu

Hastanın telefondan randevu alıp ertelediği, kliniğin takvimini ve doktor programlarını yönettiği, iptal edilen saatleri bekleme listesiyle dakikalar içinde dolduran iki taraflı bir randevu platformu.

Tüm projeler

Kimin ihtiyacı

Bir klinikte en pahalı şey boş kalan saattir. Hasta son anda iptal eder ya da hiç gelmez; resepsiyon listeyi telefonla tek tek arar, saat çoğu zaman boş geçer. Aynı gün, erken bir saat bekleyen başka hastalar vardır ama o saatin açıldığından haberleri olmaz. Hasta tarafında da randevu almak, hatırlamak ve ertelemek hâlâ telefon ve bekleme demektir.

Ne kurdum

Gapless'i iki taraflı tasarladım. Hasta mobil uygulamada üç dokunuşla randevu alıyor, hatırlatmayı tek dokunuşla onaylıyor ya da randevusunu başka bir saate taşıyor. Klinik tarafında masaüstü panel var: doktorlar sütun, randevular blok ve iptal edilen her saat takvimde açık bir boşluk olarak görünüyor. Saat açıldığı anda Gapless bekleme listesinden uyan hastaları sıralıyor, onlara teklif gönderiyor, ilk kabul eden saati alıyor ve boşluk takvimde kapanıyor. Otomatik doldurma açıkken bunu bütün gün için kendisi yapıyor. Doktor programları, izinler ve gelmeme riski yüksek randevular için ek hatırlatmalar da aynı panelde.

Akış

  1. Hasta uygulamadan muayene türünü ve ilk uygun saati seçer, randevusunu üç dokunuşta alır.
  2. Randevudan 48 ve 2 saat önce hatırlatma gelir; hasta tek dokunuşla onaylar ya da başka bir saate taşır.
  3. İptal edilen ya da bırakılan saat takvimde açık bir boşluk olarak görünür ve bekleme listesine açılır.
  4. Gapless uyan hastalara teklif gönderir; ilk "Take it" diyen saati alır, boşluk panelde anında kapanır.
  5. Klinik doktor programlarını ve izinleri yönetir, riskli randevulara ek hatırlatma gönderir, günün sonunda doluluğu tek ekranda görür.

Önemli kararlar

  • Bir saat asla iki kişiye verilmez

    Çakışma kontrolü uygulama kodunda değil, veritabanında: randevular Postgres'te zaman aralığı olarak tutuluyor ve bir exclusion constraint üst üste binmeyi imkânsız kılıyor. Aynı saniyede iki hasta "Take it"e bassa da biri kazanıyor, diğeri sıradaki saati görüyor.

  • İptal bir olay, arkasında bir akış var

    Saat açıldığı anda Temporal üzerinde bir teklif akışı başlıyor: uyan hastalara dalga dalga teklif gidiyor, her teklif 10 dakika tutuluyor, süre dolunca sıradakine geçiyor. Hatırlatmalar da aynı dayanıklı zamanlayıcılarla çalışıyor; sunucu yeniden başlasa da hiçbiri kaybolmuyor.

  • Hasta ve klinik aynı takvime bakıyor

    Expo ile yazılan mobil uygulama ve Next.js paneli aynı şemaları paylaşıyor; her değişiklik WebSocket ile bütün ekranlara aynı saniyede düşüyor. Klinik sistemleriyle eşitleme FHIR R4'ün Schedule, Slot ve Appointment kaynaklarıyla yapılıyor.

  • Bildirim ne gerekiyorsa o kadar söylüyor

    Push ve SMS yalnızca saat ve klinik adını taşıyor, sağlık bilgisi içermiyor; ayrıntı uygulamanın içinde, giriş yapmış hastaya görünüyor. Arayüzde renk yalnızca iki şey demek: aqua "bu saat açık", kırmızı "bu saat yeniden doldu".

Teknolojiler

  • Expo
  • React Native
  • Next.js 16
  • TypeScript
  • Postgres
  • Temporal
  • WebSockets
  • Twilio
  • FHIR R4

Ekranlar

İlgili hizmetFullstack uygulamalar ve otomasyon

Benzer bir şeye mi ihtiyacın var?

Ne yapmak istediğini birkaç cümleyle anlat.

Proje başlat