Alokasi Janji Temu Vaksin Covid-19 menggunakan Linear Programming

Program Imunisasi Nasional COVID-19 atau biasa dikenal dengan PICK adalah kampanye vaksinasi nasional yang saat ini sedang dilaksanakan oleh pemerintah Malaysia sebagai pendekatan untuk menekan penyebaran COVID-19 dan untuk mengakhiri pandemi COVID-19 di Malaysia dengan berhasil mencapai kekebalan kawanan di antara warganya dan non-warga negara yang tinggal di Malaysia.[1]

Rekomendasi Swab di Kantor

Saya telah ditugaskan di ProtectHealth Corporation Sdn Bhd (ProtectHealth) untuk membantu program PICK selama 3 bulan terakhir sebagai bagian dari program mobilisasi di Kementerian Kesehatan, Malaysia. ProtectHealth adalah entitas berbadan hukum yang ditunjuk oleh Kementerian Kesehatan untuk mengubah Praktisi Medis Swasta menjadi vaksinator dalam program vaksinasi COVID-19.

Di bawah ProtectHealth, saya bergabung dengan tim yang menangani dokter umum (GP) swasta dan rumah sakit swasta. Tugas kami adalah memfasilitasi program vaksinasi antara mereka dengan departemen kesehatan negara bagian dan tim My Sejahtera. Dalam artikel ini, saya akan mengambil contoh GP karena GP swasta saja menyumbang 5% dari total suntikan vaksin.

Setiap minggu, kami akan berkomunikasi dengan pihak-pihak yang terlibat untuk mengalokasikan janji vaksin sesuai dengan model dosis yang telah disepakati sebelumnya oleh GP.

Alokasi janji vaksin adalah jumlah dosis baru satu janji yang akan diberikan kepada dokter umum untuk tanggal yang akan datang, untuk dokter umum, target kami adalah mingguan. Tim MySejahtera kemudian akan mendorong vaksin yang terdaftar sesuai dengan peruntukannya.

Misalnya, GP A menyetujui model 300 dosis per minggu (Dosis Satu dan Dosis Dua), kita perlu mengisi slot vaksinasi Dosis-satu yang kosong dengan nomor baru untuk minggu mendatang. Lihat diagram di bawah ini untuk ilustrasi yang lebih baik:
Ilustrasi proses. Gambar oleh Penulis
Kesulitan dalam membuat janji vaksin.

Kedengarannya mudah ketika Anda hanya perlu mengalokasikan janji untuk satu GP atau area kecil, tetapi hal-hal akan menjadi berantakan ketika Anda menangani semua GP di negara yang sekitar 1.000–2.000 setiap minggu, dan waktu adalah satu-satunya Anda tidak punya.

Kami menghadapi situasi seperti:

Meluncurkan vaksin Pfizer yang diperlukan untuk membulatkan vaksin ke 6 terdekat untuk negara bagian atau wilayah tertentu,
Penghentian pemberian suntikan vaksin secara tiba-tiba di area tertentu karena berbagai alasan seperti EMCO atau masalah logistik
Penugasan rezim dosis baru
Berbagai jam/hari operasi GPs
dan banyak lagi situasi yang perlu ditentukan secara ad-hoc .

Ilustrasi masalah — berapa banyak janji temu (Dosis satu) yang harus diisi setiap minggu. Gambar oleh Penulis

Konsekuensi dari situasi ini, kami menentukan bahwa kami perlu memiliki sistem yang kuat yang dapat:

Regenerasi janji vaksin dalam satu klik, yaitu CEPAT
Mampu menambahkan aturan baru pengecualian atau penyertaan untuk negara bagian dan distrik
Mampu menambahkan rezim dosis baru
Optimalkan alokasi kami berdasarkan dosis dua janji yang ada untuk mengoptimalkan kapasitas GP
Mampu membulatkan ke enam terdekat untuk mencegah pemborosan vaksin
Tidak overdosis untuk lebih membebani GP

Pemrograman Linier untuk Penyelamatan

Pemrograman linier atau LP, teknik pemodelan matematika di mana fungsi linier dimaksimalkan atau diminimalkan ketika mengalami berbagai kendala. [2]

Dalam contoh di bawah ini, kita memiliki variabel X dan Y, di mana X + Y harus lebih kecil dari 5, dan X saja harus lebih kecil atau sama dengan 2. Berapa nilai X dan Y? Pemrograman linier akan mencari titik maksimal (optimal) (yaitu 2,3) dari daerah layak.
Ilustrasi sederhana dari titik optimal, Gambar oleh Penulis

Menerapkan LP dalam alokasi penunjukan vaksin:

Menggunakan konsep di atas, kami merumuskan kendala untuk rezim dosis total sebagai:

Sen + Sel + Rab + Kam + Jum + Sab + Min < Dosis Total

Jika kita ingin menghentikan hari tertentu dalam seminggu, kita dapat menambahkan aturan secara dinamis berdasarkan keadaan:

Jika menyatakan == “Johor”, maka misalkan Jum == 0

Jika kita ingin membulatkan dosis total menjadi enam

Jika obat == “Pfizer” maka round_down(Dosis harian M/Tu/W/Th/F/Sa/Su)

Model LP memberikan fleksibilitas dalam pembuatan janji vaksin kami karena kami dapat menambahkan beberapa kondisi berdasarkan permintaan beberapa negara bagian dan fasilitas dengan model ini. Paket python yang kami gunakan adalah PuLP, untuk informasi lebih lanjut tentang PuLP, Anda dapat mengunjungi di sini.
Hasil penerapan LP:

Setelah kami menerapkan LP dalam model alokasi kami, kami dapat membuat ulang janji mingguan kami dalam waktu kurang dari 5 menit setiap minggu. Setiap perubahan ad-hoc dapat segera dilakukan di database utama kami. Perubahan akan tercermin dalam janji mingguan yang dibuat ulang karena kami telah mengotomatiskan seluruh proses data ETL (Ekstrak, Transformasi, Muat).

Namun, untuk disebutkan bahwa, LP tidak menyelesaikan semua masalah kami, kami masih perlu menambahkan secara manual dalam beberapa kasus khusus atau kasus yang sangat Adhoc, tetapi ini menyelesaikan hampir 95% dari masalah kami dalam menghasilkan alokasi janji temu vaksin mingguan.

Rekomendasi Swab di Kantor