Hastane vardiya planlaması, bir servisteki her vardiyayı gereken sayıda ve yetkinlikte personelle doldururken dinlenme ve çalışma süresi kurallarına uymak, gece, hafta sonu ve bayram nöbetlerini de belli kişilerin sırtına yüklemeden dağıtmak demektir. Beş altı kişilik, düzeni hiç değişmeyen bir birimde bunu Excel'de yapmak mümkün. Otuz hemşire, üç vardiya tipi ve her ay değişen izinler işin içine girdiğinde ise çizelgeyi elle tutturmak zorlaşır ve problemi optimizasyon modeliyle çözen bir yazılıma ihtiyaç doğar.
Kasım 2023'ten beri müşterimiz Oplist'in mühendislik ekibiyiz. Oplist, hastane birimlerinin vardiya çizelgesini otomatik hazırlayan bir yazılım geliştiriyor. Ürün Oplist'in; biz geliştirmesini ve bakımını onlarla birlikte yapıyoruz.
Çizelgenin uyması gereken kurallar
Hemşire çizelgeleme, yöneylem araştırmasında uzun zamandır çalışılan bir problem ve araştırma yarışmalarında kullanılan problem tanımları iyi bir kontrol listesi işi görüyor. İkinci Uluslararası Hemşire Çizelgeleme Yarışması (INRC-II) kuralları ikiye ayırıyor: geçerli bir çizelgenin asla çiğneyemeyeceği zorunlu kısıtlar ve ihlal edilebilen ama her ihlalde ceza puanı yazılan esnek kısıtlar. Bir hastane servisinde bu liste aşağı yukarı şöyle görünür:
- her vardiyada asgari kişi sayısı, bazı vardiyalarda belirli bir yetkinlik (gece mutlaka kıdemli bir hemşire, yoğun bakımda sertifikalı biri)
- bir kişiye günde en fazla bir vardiya
- yasak geçişler: en bilineni, gece vardiyasından çıkan birinin yeterince dinlenmeden sabah vardiyasına yazılması
- dinlenme süreleri, art arda en fazla kaç gece tutulabileceği ve belli bir dönemdeki toplam çalışma saati
- sözleşme farkları: tam zamanlı, yarı zamanlı, yalnızca gece çalışan, hafta sonu çalışmayan
- izin talepleri ve kimsenin istemediği vardiyaların eşit dağılımı
Özel hastanelerde iş sözleşmesiyle çalışan personel 4857 sayılı İş Kanunu'na tabidir ve kanun bu listenin bir kısmını doğrudan belirliyor:
- Haftalık çalışma süresi en çok 45 saat. Taraflar anlaşırsa günde 11 saati aşmamak şartıyla günlere farklı dağıtılabilir; bu durumda iki aylık dönemde haftalık ortalama 45 saati geçemez. Bu denkleştirme süresi toplu iş sözleşmesiyle dört aya çıkarılabilir (madde 63).
- Çalışma hayatında gece, en geç 20.00'de başlayıp en erken 06.00'ya kadar süren ve en fazla 11 saatlik dönemdir. Gece çalışması 7,5 saati geçemez; sağlık hizmetlerinde işçinin yazılı onayı alınarak bu süre aşılabilir (madde 69).
- Gece ve gündüz postası olan işlerde bir hafta gece çalışan işçi sonraki hafta gündüz postasına alınır, iki haftalık nöbetleşme de uygulanabilir. Postası değişen işçi kesintisiz en az 11 saat dinlenmeden yeni postasına başlayamaz (madde 69).
- Yedi günlük dönem içinde kesintisiz en az 24 saat hafta tatili verilir (madde 46).
- Ulusal bayram ve genel tatilde çalışan işçiye o gün için ayrıca bir günlük ücret ödenir (madde 47).
Postalar hâlinde çalışmaya ilişkin yönetmelik normalde 24 saatte en az üç posta istiyor; 2017'deki değişiklikten beri sağlık hizmetlerinde iki posta da yeterli. Aynı yönetmeliğe göre süresinin yarısından fazlası gece dönemine denk gelen posta gece çalışması sayılır. 20.00–08.00 postası da bu yüzden gece postasıdır ve 7,5 saati aştığı için yalnızca yazılı onay vermiş personele yazılabilir. Çizelge aracının bu onayı bilmesi gerekir: aynı 12 saatlik gece postası bir hemşire için kurala uygundur, onay vermemiş meslektaşı için değildir.
Kamu hastanelerinde tablo farklı. Memur statüsündeki personel 657 sayılı Devlet Memurları Kanunu'na tabidir; yukarıdaki İş Kanunu hükümleri onlara uygulanmaz, çalışma süresi ve nöbet başka kurallarla yürür. Biz hukukçu değiliz; kuralları yazılıma girmeden önce hastanenin İK ve hukuk birimiyle teyit edin.
Buradan çıkan pratik sonuç şu: kurallar, hastanenin okuyup değiştirebildiği ayarlarda durmalı. "Dinlenme kuralını nasıl değiştiririz?" sorusuna yazılım firmasının cevabı "destek talebi açın" ise bir kez daha düşünün.
Excel neden bir noktadan sonra yetmiyor
Küçük ve sabit düzende dönen bir birimde Excel'in yettiğini söyledik. Servis büyüdükçe iş değişir. Otuz hemşire, üç vardiya tipi ve 30 günlük bir ay, tek tek karar verilmesi gereken 2.700 kişi-gün-vardiya kombinasyonu demek ve her karar önceki ve sonraki günlerin kurallarına dokunuyor.
Çizelgeyi elle hazırlayan sorumlu hemşire genellikle önce gece nöbetlerini yerleştirir, sonra hafta sonlarını ayarlar, en son da bu ayarların açtığı boşlukları doldurmaya çalışır. Her düzeltme iki hafta sonraki bir dinlenme kuralını bozabilir. Dağılım da zamanla bozulur, çünkü son üç bayramda kimin nöbet tuttuğunun hesabını kimse düzenli olarak tutmaz. Bir hemşire "bu ay neden dört hafta sonu çalışıyorum?" diye sorduğunda verilebilecek tek dürüst cevap "öyle denk geldi" olur ve bu kimseyi ikna etmez.
Optimizasyon motoru çizelgeyi nasıl kurar
Çizelgeleme motoru kuralları matematiksel bir modele çevirip bir çözücüye verir. Oplist'in motoru hemşire çizelgeleme problemi için kurulmuş optimizasyon modellerinden oluşuyor ve Python'da çalışan bir MILP (karma tamsayılı doğrusal programlama) çözücüsüyle çözülüyor. İçinde makine öğrenmesi yok. Böyle bir modelin iskeleti, sadeleştirilmiş hâliyle şöyle:
x[k, g, v] = 1, k kişisi g gününde v vardiyasında çalışıyorsa; değilse 0
Zorunlu kısıtlar
her gün g ve vardiya v: k üzerinden x[k, g, v] toplamı >= gerekli[g, v]
her kişi k ve gün g: v üzerinden x[k, g, v] toplamı <= 1
geceden sabaha geçiş yok: x[k, g, gece] + x[k, g+1, sabah] <= 1
izin: k, g gününde izinliyse x[k, g, v] = 0
Esnek kısıtlar (ihlal başına ceza)
karşılanmayan izin talebi 10
hafta sonunun yalnızca bir günü çalışma 30
sözleşme sınırını aşan hafta sonu 30
Amaç: toplam cezayı en aza indirmekBuradaki ceza ağırlıkları INRC-II'de kullanılan değerler; gerçek bir hastanede bu sayıları hastane belirler.
Çözücü, hiçbir zorunlu kısıtı çiğnemeyen atamalar arasında toplam cezası en düşük olanı arar. Bu yaklaşımın iki pratik sonucu var. Birincisi, kuralların hepsi açıkça yazıldığı için geçerli bir çizelge çıkmadığında hangi kuralların çeliştiğini bulabilirsiniz; örneğin izinler düşüldükten sonra servisteki kadronun karşılayamadığı bir gece asgari kişi sayısı. İkincisi, ağırlıklar birer yönetim kararıdır. Karşılanmayan bir izin talebi mi daha ağır sayılmalı, bölünmüş bir hafta sonu mu? Buna servis sorumlusu karar vermeli; iyi bir yazılım bu ayarları onun önüne koyar.
Çalıştırıp deneyebileceğiniz bir örnek isterseniz, Google OR-Tools'un personel çizelgeleme sayfasında (İngilizce) hazır bir hemşire çizelgeleme modeli var. MILP yerine kısıt programlama çözücüsü kullanıyor ama model aynı mantıkla kuruluyor.
Adil dağılım: saymak ve unutmamak
Adil dağılım, nasıl ölçüleceği yazılana kadar soyut bir hedef olarak kalır. Pratikte kimsenin istemediği vardiyaları (gece, hafta sonu, bayram ve genel tatil) kişi başına saymak ve bu sayıları birbirine yakın tutmak demektir. Amaç fonksiyonu en yüksek sayıyı ya da en yüksekle en düşük arasındaki farkı küçültecek şekilde kurulabilir; yarı zamanlı çalışanın hedefi de sözleşmesiyle orantılı olmalı.
Türkiye'de bayramlar ayrı bir sayaç ister. 2429 sayılı Kanun'a göre Ramazan ve Kurban Bayramı arife günü saat 13.00'te, Cumhuriyet Bayramı da 28 Ekim saat 13.00'te başlar. Bu günler aylık çizelgede birkaç hücreden ibarettir ama personel kimin kaç bayram nöbeti tuttuğunu yıl boyunca hatırlar.
Sayaçlar ay sonunda sıfırlanmamalı. INRC-II planı haftalık yapıyor ve her hafta bir sonrakine bir geçmiş aktarıyor: her hemşirenin son vardiyası, art arda kaç gün çalıştığı, o ana kadarki toplam vardiya ve hafta sonu sayısı. Aylık çizelgenin de aynı hafızaya ihtiyacı var. Ayın 29'u, 30'u ve 31'inde gece tutan biri yeni aya sabah vardiyasıyla başlayamaz; yılbaşı gecesini tutan da bir sonraki bayramda listenin başına yazılmamalı.
Personele kendi sayılarını göstermenizi de öneririz. "Son üç ayda 4 hafta sonu çalıştınız, servis ortalaması 4" gibi bir satır üzerine konuşmak, algoritmayı anlatmaktan çok daha kolaydır.
İzin türleri ve dağınık İK verisi
Çizelge aracı "müsait" ve "müsait değil" bilgisiyle çalışamaz. Oplist, Türkiye'deki özel hastanelerin İK ve bordro sistemlerine canlı API entegrasyonlarıyla bağlı; yenileri de yolda. İzin sebeplerini ve türlerini bu entegrasyonlardan alıyor: hastalık (raporlu) izni ve diğer izin sebepleri, saatlik izinler, eğitim gibi blok izinler. Çizelgeleme kuralları izin türüne göre değişir. Saatlik izin kişiyi vardiyanın bir kısmından çıkarır; eğitim gibi bir blok izin ise günlerce çizelge dışında tutar ve çalışma saatine sayılabilir.
Kaynak veri de temiz gelmiyor. Hastanelerin sistemlerinde mükerrer personel kayıtları olabiliyor; iki izin çakıştığında da bazı izin türleri diğerlerinden önce geliyor. İkisini de Oplist'in içinde çözüyoruz: personel kayıtlarını tekilleştiriyor, izinlere bir öncelik sırası uyguluyoruz; gelen her kaydı olduğu gibi kabul etmiyoruz. Oplist'i yeni altyapıya taşırken en çok zorlandığımız konu zaman ve veri bütünlüğüydü. Mükerrer kayıtlar ve izin önceliği, bu işin veri bütünlüğü tarafıydı.
Zaman ayrı bir hata kaynağı. Gece vardiyası bir gün başlayıp ertesi gün biter ve bordronun bu saatleri hangi güne yazacağına karar vermesi gerekir. Bayram da gün ortasında başlayabilir: 28 Ekim'de 08.00–20.00 vardiyasında çalışan birinin 13.00'ten sonraki saatleri ulusal bayram tatiline denk gelir ve bordroya bu ayrımla gitmelidir. Her vardiyanın başlangıç ve bitişini kesin zaman damgası olarak saklayın; çalışılan saatleri çizelgede yazan saatlerden değil, bu damgalardan hesaplayın.
KVKK açısından ilke basit: çizelgenin, birinin raporlu olduğunu ve ne kadar süre raporlu olacağını bilmesi yeter, tanıyı bilmesine gerek yok. 6698 sayılı Kanun 6. maddede sağlık verisini özel nitelikli kişisel veri sayıyor, 4. maddede de verinin amaçla bağlantılı, sınırlı ve ölçülü işlenmesini şart koşuyor. Entegrasyonu tıbbi ayrıntı İK'da kalacak şekilde kurun. Raporlu olma bilgisi de kişinin sağlığı hakkında bir şey söylediği için onu yalnızca çizelgeyi hazırlayanlar görsün. Hastane sistemleriyle entegrasyonun teknik tarafını HBYS yazımızda ayrıca anlattık.
Onay, değişiklik ve bordro
Üretilen çizelge bir taslaktır. Servis sorumlusu inceler, birkaç vardiyayı kaydırır, onaylar; personel çizelgeyi ancak bundan sonra görür. Oplist'te çözücünün etrafındaki kurum ve rol yönetimini, onay akışlarını ve e-posta bildirimlerini biz kurduk; bir de Google Sheets eklentisi geliştirdik.
Asıl iş onaydan sonra başlar: nöbet değişimleri, sabah gelen "raporluyum" telefonları, ay ortasında işten ayrılan biri. İki kural işinizi kolaylaştırır. Elle yapılan her değişiklik, üretilen çizelgeyle aynı kontrollerden geçmeli ve bir değişim dinlenme kuralını bozuyorsa yazılım bunu açıkça söylemeli. Ayrıca her değişiklik kimin, ne zaman yaptığıyla birlikte kayıt altına alınmalı; bordro da sonradan çıkabilecek bir itiraz da çizelgenin son hâline bakar.
Bordronun ihtiyacı, gece, nöbet, bayram ve genel tatil saatleri dâhil fiilen ne kadar çalışıldığı; üstelik kendi sisteminin okuyabildiği biçimde. Bu dışa aktarımı değerlendirmenin en başında görmek isteyin.
Yazılım seçerken sorulacaklar
- Demoda en zor servisimizin çizelgesini bizim gerçek personel listemiz ve geçen ayın izinleriyle kurar mısınız?
- Kuralları ve ceza ağırlıklarını nasıl girip değiştiriyoruz, hastanede bunu kim yapabiliyor?
- Geçerli bir çizelge çıkmadığında ne oluyor? Yazılım hangi kuralın esnetilmesi gerektiğini söylüyor mu?
- Elle yapılan düzeltmeler ve nöbet değişimleri, üretilen çizelgeyle aynı kurallara göre kontrol ediliyor mu?
- Personel, sözleşme ve izin türleri İK'dan nasıl geliyor, bordroya ne gidiyor?
- Gece, hafta sonu ve bayram sayaçları bir dönemden ötekine nasıl taşınıyor?
- Veri nerede barındırılıyor, yazılıma herhangi bir sağlık verisi ulaşıyor mu?
3 ve 5 numaralı sorulara net cevap alamıyorsanız, ürünü aldıktan sonra da birinin kenarda Excel tutmaya devam edeceğini varsayın.
Oplist'te ne yaptık
Oplist'in kod tabanını Kasım 2023'te devraldık. Elimizde Flutter Web ile yazılmış erken bir arayüz, Flask ile yazılmış bir backend ve MILP çözücüsü vardı. Ürünü React arayüzüne ve PostgreSQL üzerinde çalışan, Swagger ile dokümante edilmiş bir Node.js/Express API'sine taşıdık; Python çözücü servisinde de Oplist ekibiyle birlikte çalışıyoruz. Platform AWS üzerinde (ECS Fargate, Lambda ve CloudWatch) çalışıyor. Oplist bugün 5 ila 10 farklı noktada kullanılıyor ve 2.000'den fazla kişi için çizelge üretti; 2026'da da web uygulamasının ve çözücünün yeni sürümlerini onlarla birlikte çıkarmaya devam ediyoruz.
İşe yarayan iki şey var: çözücünün Node.js API'sinden ayrı bir Python servisi olarak çalışması ve hastanelerden gelen veriyi güvenilmeyen girdi olarak ele almamız. Personel tekilleştirme ve izin önceliği bizim kodumuzda duruyor, çünkü kaynak sistemler bu işi bizim yerimize yapmıyor. Benzer bir geçiş planlıyorsanız genel yaklaşımı legacy sistem modernizasyonu yazımızda bulabilirsiniz.
Kendi yazılımınızı mı yazmalısınız?
Hastane işletiyorsanız hazır ürün alın. Vardiya planlama olgunlaşmış bir ürün kategorisi; kendi motorunuzu yazmanın asıl maliyeti ilk sürümden sonraki yılların bakımıdır. Kendiniz geliştirmek, vardiya planlama sizin ürününüzse (Oplist için olduğu gibi) ya da kurallarınız hiçbir ürünün modelleyemeyeceği kadar sıra dışıysa mantıklı olur. Bu kararı genel hatlarıyla özel yazılım geliştirme yazımızda ele aldık.
Kendi vardiya ya da iş gücü yazılımınızı geliştiriyor ve bu işi daha önce yapmış bir ekiple çalışmak istiyorsanız bize buradan ulaşabilirsiniz.
Sık sorulan sorular
Nöbet çizelgesini yapay zekâ mı hazırlıyor?
Bazı ürünler yaptıklarının bir kısmını yapay zekâ olarak tanıtıyor. Çizelgenin kendisi ise çoğunlukla bir optimizasyon çözücüsüyle kuruluyor; bu, bugünkü yapay zekâ dalgasından çok daha eski bir yöneylem araştırması tekniği. Oplist de optimizasyon modelleri ve bir MILP çözücüsü kullanıyor, makine öğrenmesi kullanmıyor. Bir üründe "yapay zekâ" ibaresini gördüğünüzde arkasında ne olduğunu sorun. Optimizasyon modeliyse neyi optimize ettiğini ve bunu nasıl değiştirebileceğinizi, öğrenen bir modelse zorunlu kurallara uyulduğunu nasıl garanti ettiğini öğrenin.
12 saatlik gece vardiyası yasal mı?
Özel hastanede İş Kanunu'na tabi çalışan için gece çalışması 7,5 saati geçemez; sağlık hizmetlerinde bu süre işçinin yazılı onayıyla aşılabilir. Onayı olmayan birine 7,5 saati aşan gece postası yazılmamalı. 7,5 saatten uzun postalarda bir saat ara dinlenme de verilmeli ve bu süre çalışma süresinden sayılmaz (madde 68). Memur statüsündeki kamu personeli için farklı kurallar geçerli.
Küçük bir birim için Excel yeter mi?
Çoğu zaman yeter. Birkaç kişilik, sabit düzende çalışan bir birimde paylaşılan bir tablo ve açık bir nöbet değişim kuralı daha ucuz ve daha basit bir çözümdür. Çizelgeyi hazırlamak sorumluya her ay günlerini kaybettirmeye başladığında ya da geceleri kimin tuttuğu tartışma konusu olduğunda yazılıma geçin.
İlgili Makaleler
MLOps Rehberi: Makine Öğrenmesi Modellerini Production'a Taşıma
Giriş: MLOps Nedir ve Neden Önemlidir? Makine öğrenmesi modelleri geliştirmek günümüzde nispeten kolaydır. Açık kaynak kütüphaneleri kullanarak son derece başarılı modeller oluşturabiliriz. Ancak bu modelleri production ortamına taşıyarak, ölçeklendirebilir, güvenilir ve sürdürülebilir şekilde çalıştırmak tamamen farklı bir hikayedir. Araştırmalara göre, veri bilimcileri tarafından geliştirilen makine öğrenmesi modellerinin %87'si hiçbir zaman production ortamına ulaşmaz. Bu başarısızlı
Devamını Oku: MLOps Rehberi: Makine Öğrenmesi Modellerini Production'a TaşımaBilgisayarlı Görü Uygulamaları: Nesne Tespiti, OCR ve Endüstriyel AI
Bilgisayarlı Görü Uygulamaları: Endüstriyel ve Medikal AI'nin Temel Teknolojisi Bilgisayarlı görü, makine öğrenmesinin en etkili alanlarından biridir. Türkiye'de yaşanan dijital dönüşüm sürecinde, özellikle üretim, sağlık ve lojistik sektörlerinde görü tabanlı otomasyon kritik hale gelmiştir. Smart Maple olarak Ankara'da geliştirdiğimiz çözümler, son beş yılda 150+ kuruluşunun üretim verimliliğini ortalama %35 oranında artırmıştır. Bu rehberde, bilgisayarlı görü teknolojisinin iş değeri
Devamını Oku: Bilgisayarlı Görü Uygulamaları: Nesne Tespiti, OCR ve Endüstriyel AIAI Agent ve Otonom Ajan Geliştirme Rehberi [2026]
Giriş: AI Agent Neden 2026'nın En Kritik Yapay Zeka Trendi Yapay zeka alanında büyük dil modelleri (LLM) tek başına metin üretmenin ötesine geçerek otonom karar alma ve eylem gerçekleştirme kapasitesine ulaştı. AI agent kavramı, bir LLM'in sadece sorulara yanıt vermek yerine karmaşık görevleri planlayan, araçlar kullanan ve kendi kendini düzelten bir sisteme dönüşmesini ifade eder. Gartner'in 2025 raporuna göre, kurumsal yapay zeka projelerinin yüzde 35'i 2026 yılı sonuna kadar agent ta
Devamını Oku: AI Agent ve Otonom Ajan Geliştirme Rehberi [2026]
