Produk .NET yang menyelamatkan nyawa

Dalam beberapa situasi kehidupan, Anda harus bertindak sangat cepat. Kadang-kadang kondisi ini tidak mungkin: misalnya, tidak mungkin tanpa keberuntungan dalam waktu yang sangat singkat untuk menemukan seseorang dengan golongan darah langka, yang juga siap untuk membagikannya. Orang-orang menciptakan produk yang disebut DonorUA, yang benar-benar membantu menyelamatkan nyawa menggunakan bot obrolan. Lebih detail di bawah potongan.



Saya memberikan lantai kepada penulis.

Beberapa tahun yang lalu di sebuah hackathon untuk menciptakan layanan sosial, saya mencoba mengembangkan sebuah proyek untuk mengotomatiskan keluhan tentang pengoperasian perumahan dan layanan komunal. Perkembangan berkembang dengan ketat, versi demo itu rumit dan maju secara teknologi, sehingga juri tidak mengevaluasi upaya atau gagasan itu sendiri. Tetapi pada acara ini, saya bertemu dengan seorang gadis, kepala organisasi publik, yang telah berurusan dengan berbagai masalah di bidang donor darah di Ukraina selama beberapa tahun. Kata demi kata - dan Anda sudah menjadi salah satu pendiri proyek baru.

Pada saat itu, saya tidak tahu apa-apa tentang donor darah. Satu-satunya pengetahuan adalah bahwa orang kadang-kadang menyumbangkan darah kepada orang lain. Bagaimana ini diorganisasikan, masalah apa yang dihadapi oleh lingkungan ini, berapa biayanya dan di mana kita berada - bagi saya adalah misteri yang lengkap.

Memiliki pengalaman luas dalam mengotomatisasi proses dan menulis sistem perusahaan, saya memutuskan bahwa membuat database dan mengotomatisasi proses tertentu tidak akan memakan banyak waktu.

Pertama, ternyata negara itu tidak memiliki daftar donor darah yang bersatu. Kemudian saya mengetahui bahwa, tanpa kecuali, semua organisasi donor domestik, paling banter, menggunakan file Excel dengan daftar donor, telepon dan golongan darah mereka. Ketika aplikasi untuk mencari donor tiba, karyawan organisasi duduk di telepon dan mulai memanggil semua orang secara berurutan dengan harapan seseorang akan merespons. Seperti yang Anda ketahui, efektivitas pendekatan ini hampir nol.



Di semua negara, undang-undang di bidang donasi sangat, sangat ketat. Misalnya, di Ukraina Anda tidak dapat menyumbangkan darah selama satu tahun penuh jika Anda telah menusuk atau tato, atau beberapa bulan jika Anda pergi ke negara yang eksotis atau hanya mengubah pasangan Anda. Daftar kontraindikasi dan batasan sumbangan membutuhkan lebih dari satu halaman.

Di negara maju, di mana tidak ada masalah nyata dengan donor darah, masalah ini diselesaikan dengan cukup sederhana - negara dengan murah hati membiayai bidang ini. Di negara-negara yang kurang berkembang dan terbelakang, kekurangan darah donor bisa mencapai 90%, yang menjadikan darah komoditas yang mahal dan menciptakan pasar bayangan yang besar. Juga, di banyak negara pasca-Soviet, negara sering kali abstrak dari pencarian donor, mengalihkan tanggung jawab kepada kerabat pasien yang, pada kenyataannya, membutuhkan darah donor. Dan mengingat bahwa kehidupan pasien sangat tergantung pada apakah mereka menerima transfusi tepat waktu atau tidak, pertanyaan tentang pencarian cepat untuk donor menjadi, tanpa berlebihan, pertanyaan "hidup dan mati".

Ternyata kemudian, ini jauh dari semua masalah, jadi proyek untuk "dua minggu" telah berkembang menjadi sesuatu yang lebih.

Langkah pertama


Sebuah awal yang nyata untuk proyek ini adalah partisipasi dalam konferensi IDCEE 2014, dalam kerangka yang diadakan hackathon tentang inovasi sosial. Hari itu kami menang, dan menjadi jelas bagi kami bahwa topik itu menarik, penting, jadi dengan antusiasme yang besar kami mulai mengimplementasikan proyek. Voila, dan setelah 4 bulan, pada musim semi 2015, kami meluncurkan versi pertama yang berisi basis data penerima dan donor dari tablet Excel, serta mekanisme yang cukup sederhana untuk memilih donor dan penerima. Ke depan, saya akan mengatakan bahwa sistem rekomendasi telah mengalami banyak perubahan dan saat ini memperhitungkan 10 hingga 15 parameter yang berbeda.

Titik balik pertama terjadi satu setengah bulan setelah peluncuran proyek, ketika koordinator pertama kali dapat menemukan donor dalam waktu 15 menit setelah aplikasi diposting di situs. Saya akan jujur ​​- banyak di organisasi kami bereaksi dengan sangat skeptis terhadap otomatisasi dan sistem yang sedang dikembangkan. Tetapi setelah sistem menyelesaikan tugas pertama, kami memperoleh kepercayaan bahwa kami bergerak ke arah yang benar.

Pada akhir 2015, sudah ada sekitar 4.000 donor dalam database, yang memungkinkan untuk menutup setidaknya setengah dari permintaan pencarian donor. Babak kedua ditutup dengan cara lama - menggunakan telepon. Semua 2015 berlalu dalam perjuangan pendekatan lama dan baru. Pada akhirnya, pendekatan baru menang. Kami melarang pencarian donor melalui telepon dan menggunakan Excel, membatasi akses ke sistem untuk semua koordinator tanpa kecuali, dan memutus semua saluran telepon. Kami menyadari bahwa kami membutuhkan koordinator platform tunggal yang akan memiliki satu tugas - untuk mencari donor menggunakan sarana reguler sistem DonorUA. Itu menyakitkan, saya harus mengencangkan sesuatu, tetapi sebagai hasilnya, sistem bekerja sepenuhnya, dan kami menyadari bahwa kami dapat menutup lebih banyak aplikasi. Tetapi tidak ada yang tahu tentang proyek tersebut (salah satu publikasi Ukraina paling terkenal dalam satu publikasi tentang proyek sosial baru pada tahun 2015 bahkan tidak menyebutkan sepatah kata pun tentang proyek kami), masing-masing, sejumlah kecil orang berpaling kepada kami. Meskipun begitu banyak posting tentang pencarian donor di Facebook / Twitter / Vkontakte. Dan kemudian ...

Pemantauan Jaringan Sosial


... Saya membuat proposal ke perusahaan YouScan, yang bergerak dalam pemantauan jejaring sosial di ru dan ukrnet. Sistem mereka diarahkan pada bisnis besar dan menengah, dan, sejujurnya, proposal saya untuk menggunakan sistem mereka untuk menemukan pesan pencarian donor telah membuat mereka kecewa. Perwakilan perusahaan mengambil jeda untuk melakukan beberapa tes dan kembali beberapa hari kemudian dengan informasi bahwa hipotesis kami benar dan bahwa sistem mereka mengatasi tugas mencari pesan dengan baik. Dengan demikian, dalam sekejap, kami mendapat kesempatan secara real time untuk memantau semua pesan tentang topik tersebut dan dengan cepat meresponsnya. Pendekatan ini memungkinkan kami untuk menjadi pemimpin di jejaring sosial - di sebagian besar publikasi tentang pencarian donor ada tautan ke proyek kami di komentar, dan kami menemukan publikasi lain melalui YouScan. Setelah menemukan pesan apa pun, kami menghubungi penulis publikasi dan menawarkan berbagai opsi untuk kerja sama.

Peningkatan jumlah aplikasi untuk mencari donor darah harus diimbangi dengan peningkatan basis donor. Dan setelah beberapa musyawarah, muncul ide untuk mengotomatiskan rekrutmen donor darah melalui jejaring sosial. Kami memutuskan untuk menggabungkan pemantauan jejaring sosial, chatbots, dan sistem Pemrosesan Bahasa Alami untuk mencari donor potensial. Dengan ide ini, kami datang ke Stockholm untuk Startup Weekend: Inovasi Sosial dan ... menang lagi.



Di sebelah kiri adalah garis besar Pemrosesan Bahasa Alam dan proses mengubah teks menjadi objek terstruktur. Di sebelah kanan adalah contoh pesan dan entitas yang dapat diekstraksi darinya.

Dari pesan, kami dapat secara otomatis mengekstraksi data seperti nama penerima, jumlah donor yang diperlukan, segera atau tidak, golongan darah dan faktor Rh, kota dan rincian kontak. Untuk pelatihan model, kami menggunakan WIT.AI dan Microsoft LUIS. Untuk bahasa Inggris, kami mendapat hasil yang sangat baik, tetapi, sayangnya, sistem seperti itu bekerja buruk dalam bahasa Cyrillic - Rusia dan Ukraina. Dan mengingat fakta bahwa sistem diarahkan pada bahasa-bahasa ini, pengembangan arah ini telah ditunda hingga masa yang lebih baik.

Bahkan, idenya jauh lebih luas: untuk mengembangkan chatbot, yang dengannya Anda dapat secara otomatis merekrut donor darah melalui sistem sosial dan kurir instan.



Contoh dialog antara obrolan dan donor darah potensial

Sayangnya, ide ini sulit untuk diterapkan - pertama-tama, karena skandal Facebook dan Cambridge Analytica, serta setelah undang-undang GPRD diadopsi di Eropa, yang tidak memungkinkan pengumpulan, analisis, dan pengelolaan data pribadi.

Donor Asisten Pribadi - Donor UA.Bot


Tetapi setelah kemenangan di Stockholm, kami menghargai potensi chatbots dan sangat kecewa dengan kurangnya alat NLP / NER untuk bahasa Ukraina. Jadi proyek sampingan lahir - Donor UA.Bot.

Menciptakan DonorUA.Bot, kami ingin menyelesaikan beberapa masalah:

  • berurusan dengan topik chatbots - berhasil;
  • buat Pengakuan Entitas Bernama untuk bahasa Ukraina - sebagian berhasil;
  • untuk mengumpulkan basis pengetahuan tentang kontraindikasi sumbangan, serta undang-undang, batasan, dan manfaat bagi donor - berhasil, basis data terus diperbarui;
  • pertama-tama buat alat untuk diri sendiri - untuk layanan dukungan, karena 80% pertanyaan - yang sama - berhasil.

Selain itu, dengan bot obrolan kami, kami dapat menolak sejumlah besar buletin email, yang digantikan oleh pesan yang dipersonalisasi dan otomatis di Viber dan Telegram. Email masih tersedia dalam daftar opsi, tetapi semakin banyak orang memilih pengirim pesan.



Bot Skype dan Messenger

Tetapi dengan pengiriman SMS kami belum tumbuh bersama. Semua operator nasional menolak proyek untuk menyediakan gateway SMS. Oleh karena itu, penggunaan chatbot dan pesan instan adalah langkah yang jelas, dan bahkan sangat, sangat murah.

Apa sekarang?


Hari ini, DonorUA adalah platform CRM / CMS lengkap untuk rekrutmen dan manajemen donor, yang meliputi:

  1. Kantor administrator, donor darah, pusat darah, dokter.
  2. Sistem rekomendasi yang memungkinkan donor untuk melihat daftar penerima saat ini yang membutuhkan golongan darah mereka, dan administrator sistem untuk menemukan donor yang cocok untuk penerima tertentu.
  3. Sistem notifikasi yang secara otomatis mengirim notifikasi ke Viber / Telegram / Email ketika ditemukan kecocokan donor-penerima.
  4. Pertumpahan darah adalah serangkaian informasi yang berguna bagi para donor dalam format wiki.
  5. Program bonus untuk donor.
  6. Data resmi terbuka (dan diproses) dari Kementerian Kesehatan Ukraina dan statistik terbuka.
  7. Pemantauan jejaring sosial.
  8. Donor UA. Bot dan AI.
  9. Aplikasi seluler untuk Android, iOS, Windows.
  10. Aplikasi seluler untuk mitra program bonus untuk iOS / Android.
  11. Peta pusat darah dan ulasan pusat darah.
  12. Layanan Dukungan Donor.
  13. API terbuka berdasarkan penerapan beberapa integrasi dengan layanan lain.
  14. Donasi perusahaan.
  15. Program dan diskon khusus untuk donor dari mitra.

Di sini, misalnya, terlihat seperti tempat informasi di salah satu pusat darah:



Dan ini adalah tampilannya di sistem kami:



Warna merah berarti ada sedikit darah kritis, kuning berarti darah habis, hijau berarti cukup

Atau di sini adalah contoh lain dari otomatisasi. Sebelum setiap donasi, donor harus mengisi kuesioner, yang terdiri dari sekitar 30 pertanyaan, yang membutuhkan waktu 1 hingga 3 menit. Jika Anda membayangkan bahwa rata-rata pusat darah dapat menerima 40-50 orang per hari, maka penghematan akan menjadi 1-1,5 jam dari 4-5 pekerja per hari (!). Dalam sistem kami, seorang donor dapat mengisi aplikasi online sekali dan memperbaruinya ketika informasi berubah (yang jarang terjadi), dan pusat darah dapat mengunduh aplikasi yang sudah selesai di kantornya. Dan ada banyak contoh di mana kami dapat mengoptimalkan proses tertentu.

Menerjemahkan semua proses menjadi angka memiliki efek positif lain: kita dapat menilai situasi kapan saja - baik di tingkat pusat darah yang terpisah, dan di tingkat kota atau seluruh negara secara keseluruhan.

Stack Arsitektur dan Teknologi


Proyek ini dibuat di ASP.NET MVC + Web API + Entity Framework pada platform Microsoft Azure. Kami menggunakan Azure SQL Database, penyimpanan Azure Blob, Azure Jobs, Azure CDN, Layanan Kognitif + Kerangka Kerja Microsoft Bot. Aplikasi seluler dikembangkan di Xamarin. Untuk kerja tim, Office 365, Slack, Asana, dan Visual Studio Team Systems digunakan. Secara keseluruhan, tumpukan standar .NET / Azure, tidak ada yang istimewa.

Kami menulis NER kami sendiri (cukup sederhana) untuk bahasa Ukraina di atas Microsoft Bot Framework + dan menambahkan integrasi dengan Viber, yang memungkinkan kami untuk dengan cepat membuat chatbot QnA (pertanyaan dan jawaban) dalam bahasa Ukraina (mirip dengan QnA Maker dari Microsoft, yang merupakan bagian dari Azure Cognitive Layanan) dan dengan cepat menyebarkannya di semua platform populer - Messenger, Viber, Telegram, Skype, Skype untuk Bisnis, Slack, Tim Microsoft, email, obrolan web dan gunakan API Jalur Langsung untuk mengintegrasikan chatbot ke dalam aplikasi seluler.



Arsitektur obrolan bot standar di Azure + Microsoft Bot Framework

Microsoft dengan ramah menyediakan sumber daya untuk proyek Azure kami melalui program Microsoft Bizspark. Baru-baru ini, Microsoft Bizspark digantikan oleh Microsoft untuk Startup, dan mendapatkan sumber daya menjadi jauh lebih sulit, tetapi kami telah berhasil diterapkan ke program lain - Microsoft untuk Nirlaba, di mana Anda bisa mendapatkan Office 365 untuk 300 pengguna dan sumber daya Microsoft Azure untuk $ 5000 per tahun sepenuhnya gratis. Jadi, terlepas dari kenyataan bahwa proyek itu, pada kenyataannya, adalah sosial, semua proses dibangun seperti dalam proyek bisnis nyata.

Berbicara tentang bisnis.

Model dan posisi bisnis


Pertanyaan tentang pembiayaan sangat sering ditanyakan kepada kami, dan juga tentang bagaimana kami memposisikan proyek kami.

Sejak awal, kami menempatkan DonorUA sebagai proyek sosial yang tidak menguntungkan. Tetapi tidak menguntungkan tidak berarti bahwa orang tidak perlu membayar gaji dan membayar tagihan. Namun di benak banyak orang, tidak untung sama-sama gratis. Kami tidak ingin terlibat dalam pemberian makan, dan, jujur ​​saja, hampir semua dana memulai kami pada tahap awal negosiasi - kata mereka, bukan format. Tetapi kami tidak ingin mengisi kertas tender tanpa akhir, dan, sebenarnya, kami tidak tahu caranya. Oleh karena itu, hampir semua pembiayaan proyek adalah dana sendiri dan sebagian bantuan keuangan dari satu orang yang tidak terkait dengan proyek.

Kami tidak mempertimbangkan opsi untuk memonetisasi proyek pada penerima - mayoritas penerima yang berpaling kepada kami dan sudah memiliki masalah baik psikologis maupun materi. Dan mereka yang dapat membeli layanan kami, sebagai aturan, tidak menghubungi kami, tetapi menyelesaikan masalah melalui "saluran mereka".

Ketika penentuan posisi dengan proyek sosial “tidak berjalan,” kami mulai memposisikan proyek tersebut sebagai ehealth startup, yang, pada kenyataannya, tidak jauh dari kebenaran, tetapi dengan beberapa nuansa. Penempatan seperti itu terbayar - kami secara teratur mulai masuk ke media, mampu memenangkan beberapa kontes startup, dan kami mulai diundang sebagai pakar dalam inovasi teknologi dan sosial kemasyarakatan. Sayangnya, ini tidak memberi kami hibah, mitra, atau investasi.

Situasi lucu terjadi di salah satu kontes startup di mana pemenang seharusnya mendapatkan sekitar $ 75 ribu untuk pengembangan. Tetapi setelah kami memenangkan kontes ini, kami diberi ... sebuah buku. Ya, kompetisi startup Ukraina tidak masuk akal dan tanpa ampun :-) Lalu ada beberapa final lagi, kemenangan dan partisipasi, tetapi pada titik tertentu kami menyadari bahwa itu adalah buang-buang waktu.

Saat ini, kami menawarkan bisnis yang bertanggung jawab secara sosial untuk mengadakan hari donor perusahaan dan menjadi bagian dari pengembangan gerakan donor. Kami secara aktif mencari perusahaan semacam itu untuk kerja sama, menawarkan tingkat pembangunan tim yang sama sekali baru, serta tanggung jawab sosial perusahaan.

Jadi kami mulai menghasilkan sedikit uang. Kata kuncinya adalah sedikit :-) Dan kami masih memiliki banyak rencana!

Pembelajaran Mesin dan Kecerdasan Buatan


Memantau jejaring sosial, bot obrolan, NLP / NER - pada kenyataannya, kami sudah menggunakan elemen AI terpisah untuk menyelesaikan masalah tertentu. Tetapi kemungkinan menggunakan MO dan AI lebih luas.

Saat ini kami terlibat dalam memecahkan beberapa masalah.

Prediksi permintaan untuk darah yang disumbangkan berdasarkan data historis


Tugasnya cukup standar, tetapi masalahnya adalah hanya ada sedikit data historis, paling tidak, agregat, sehingga Anda tidak dapat menggunakannya. Tetapi data kami tidak cukup. Namun demikian, saya berharap bahwa di masa depan, integrasi yang lebih dekat dengan pusat-pusat darah akan memungkinkan kita untuk mendapatkan data historis yang direpersonalisasikan dan ini akan memungkinkan kita untuk menggunakan kekuatan penuh dari algoritma AI untuk memprediksi permintaan.

Memprediksi peristiwa bahwa donor akan mendonorkan darah dalam X hari berikutnya dengan probabilitas N


Untuk mengembangkan model, kami menggunakan dataset terbuka - Kumpulan Data Pusat Layanan Transfusi Darah , yang, pada kenyataannya, berisi data nyata dari salah satu pusat darah. Setelah dilatih tentang data yang tersedia untuk umum, kami mulai menganalisis data yang kami kumpulkan menggunakan Donor UA. Anda dapat membaca lebih lanjut tentang ini di sini.

Kurangi jumlah kecocokan donor penerima


Algoritma pencocokan untuk donor dan penerima berfungsi dengan baik, tetapi memiliki satu kelemahan signifikan: ketika Anda meningkatkan basis data dan memilih golongan darah populer, kami mendapatkan ribuan kecocokan. Lebih banyak tidak selalu lebih baik. Kami benar-benar tidak ingin pesan dari kami dianggap oleh para donor sebagai spam. Dengan demikian, perlu untuk menyelesaikan masalah mengurangi jumlah kecocokan penerima-donor tanpa kehilangan kualitas. Selain itu, kita harus membujuk donor yang tidak terlalu aktif untuk memberikan donasi reguler.

Untuk mengatasi masalah, kami menggunakan sejumlah besar alat - mulai dari Microsoft Azure Machine Learning, diakhiri dengan berbagai pustaka python dan alat baru dari Microsoft - ML.NET library.

Alih-alih sebuah kesimpulan


Teknologi modern membuka sejumlah besar peluang baru, termasuk untuk memecahkan masalah akut umat manusia.

Dengan contoh kami, kami ingin menunjukkan bahwa sinergi antara orang-orang yang aktif dan teknologi modern dapat bekerja dengan sangat baik. Selama tiga tahun, dalam kerangka kerja DonorUA, kami secara langsung membantu 2,5 ribu penerima, dan 20 ribu donor darah berpotensi menyelamatkan 60 ribu nyawa.

Teknologi cloud, kecerdasan buatan, dan algoritma pembelajaran mesin membuka peluang baru bagi pengembang dan bisnis, yang hanya dapat Anda impikan untuk sepuluh tahun ke depan.

. .

.

Tentang penulis


— CEO DevRain Solutions, CTO UA, ..., Microsoft Artificial Intelligence Most Valuable Professional, Microsoft Regional Director.

Source: https://habr.com/ru/post/id415017/


All Articles