· 2026
Pratisyen nöbet çizelgesi üretici
Tek dosyalık bir web aracı: acil servisin pratisyen hekimleri için aylık nöbet çizelgesini, izin günleri ve kişisel tercihler dikkate alınarak otomatik üretiyor.
Sorun
Her ayın sonunda servis sorumlusu olarak gelecek ayın nöbet çizelgesini hazırlamam gerekiyor. Pratisyen hekim kadrosu rotasyonla değiştiği için bu süreç sürekli yeniden yapılıyor: hekim sayısı dalgalanıyor, kimisinin sabit nöbet tutmak istemedikleri günler oluyor, hafta sonu ve resmi tatil yükünün adil dağıtılması gerekiyor, kimse iki gün üst üste nöbet tutamamalı. Bunu Excel’de yapmak hem yorucu hem de hatalı: bir hekimi unutuyorsun, bir izin gününü gözden kaçırıyorsun, ay sonunda kimin daha fazla saat tuttuğunu bilemiyorsun.
Daha önce bu iş manuel yapılıyordu; iki üç saat sürüyordu ve sonuç hiçbir zaman adil olmuyordu.
Ne yaptım
Tek dosyalık bir HTML aracı. Tarayıcıda açılıyor, kurulum yok, veriler localStorage’da kalıyor — yani her bilgisayar kendi kayıtlarını tutuyor, sunucu yok.
Hekim listesi, izin günleri, “bu gün çalışmak istemiyorum” ve “bu gün çalışmak istiyorum” istekleri arayüzden giriliyor. Resmi tatiller (Kurban, Ramazan, milli bayramlar) otomatik tespit ediliyor; ay başında ek tatil eklemek de mümkün. Bir butona basınca çizelge üretiliyor.
Üretilen çizelgenin altında her hekim için toplam saat, hafta sonu nöbeti sayısı ve resmi tatil nöbeti sayısı görünüyor — kim neyi ne kadar tuttu, tek bakışta belli. Tüm çizelge Excel olarak indirilebiliyor. Geçmiş aylar arşivleniyor.
Teknik olarak ilginç olan ne
Asıl iş, optimizasyon mantığında. Saf bir “gün gün, en uygun hekimi ata” yaklaşımı her zaman dengeli sonuçlar üretmiyor — özellikle hafta sonu nöbetleri belirli hekimlerde birikiyor, çünkü algoritma o günlerde kimi tercih edeceğini lokal olarak bilemiyor.
Bunun yerine, çizelgeyi birden çok kez yeniden üretiyorum (rastgele başlangıç tohumlarıyla, altı kere) ve bir skor fonksiyonuyla en iyisini seçiyorum. Skor; toplam saat varyansı, hafta sonu nöbet dağılım varyansı, resmi tatil nöbet dağılım varyansı, ve hekim isteklerinin ihlal sayısının ağırlıklı toplamı. Tüm bunların üzerine basit bir hill-climbing geçişi yaparak iki rastgele hekimin nöbetlerini değiştiriyorum; skor düşerse değişikliği tutuyorum, düşmezse geri alıyorum, dört yüz iterasyon kadar.
Sonuç, manuel çizelgelerden daha dengeli çıkıyor — özellikle hafta sonu yükü konusunda. Algoritma kusursuz değil; bazen iki hekim arasında 12-24 saatlik fark kalıyor. Ama Excel’de çıkardığım çizelgelerle karşılaştırınca, hem süre olarak (üç saatten otuz saniyeye) hem de adalet açısından açık ara önde.
Sonuç
Birkaç aydır servisin nöbet çizelgesi bu araçla yapılıyor. Ay başında liste sorumlusu arkadaş oturup yarım saatte hekim listesini ve istekleri girip çizelgeyi üretiyor; eskiden iki üç saatte yapılan iş, neredeyse yarım dakikaya inmiş durumda. Daha önemlisi, çizelge çıktıktan sonra “ben neden bu kadar çok hafta sonu nöbeti aldım” tartışmaları büyük ölçüde kayboldu — çünkü dağılım gerçekten dengeli oluyor, ve isteyen herkes kendi saatini ve dağılımını araçtan görebiliyor.