Produit .NET qui sauve des vies

Dans certaines situations de la vie, vous devez agir très rapidement. Parfois, cette condition est impossible: par exemple, il est tout simplement impossible sans grande chance en très peu de temps de trouver une personne avec un groupe sanguin rare, qui est également prête à le partager. Les gars ont créé un produit appelé DonorUA, qui aide vraiment à sauver des vies en utilisant le chat bot. Plus de détails sous la coupe.



Je donne la parole Ă  l'auteur.

Il y a quelques années lors d'un hackathon pour créer des services sociaux, j'ai essayé de développer un projet pour automatiser les réclamations concernant le fonctionnement du logement et des services communaux. Le développement a bien progressé, la version de démonstration était complexe et technologiquement avancée, de sorte que le jury n'a évalué ni l'effort ni l'idée elle-même. Mais lors de cet événement, j'ai rencontré une fille, à la tête d'un organisme public, qui avait été confronté à divers problèmes dans le domaine du don de sang en Ukraine depuis plusieurs années. Mot à mot - et vous êtes déjà cofondateur d'un nouveau projet.

À ce moment-là, je ne savais rien du don de sang. La seule connaissance était que les gens donnaient parfois du sang à d'autres personnes. Comment est-il organisé, avec quels problèmes cette sphère vit, combien cela coûte et où nous sommes - pour moi, c'était un mystère complet.

Ayant une grande expérience dans l'automatisation des processus et l'écriture de systèmes d'entreprise, j'ai décidé que la création d'une base de données et l'automatisation de certains processus ne prendraient pas beaucoup de temps.

Premièrement, il s'est avéré que le pays n'avait pas de registre unifié des donneurs de sang. Ensuite, j'ai découvert que, sans exception, toutes les organisations nationales de donneurs utilisent au mieux un fichier Excel avec une liste de donneurs, leurs téléphones et leur groupe sanguin. Lorsque la demande de recherche de donateurs est arrivée, les employés de l'organisation se sont assis au téléphone et ont commencé à appeler tout le monde de suite dans l'espoir que quelqu'un répondrait. Comme vous le savez, l'efficacité de cette approche était presque nulle.



Dans tous les pays, la législation dans le domaine du don est très, très stricte. Par exemple, en Ukraine, vous ne pouvez pas donner de sang pendant toute une année si vous avez percé ou tatoué, ou pendant quelques mois si vous êtes allé dans un pays exotique ou si vous avez simplement changé de partenaire. La liste des contre-indications et des limites au don prend plus d'une page.

Dans les pays développés, où il n'y a pas de problèmes évidents avec le don de sang, le problème est résolu tout simplement - l'État finance généreusement ce domaine. Dans les pays moins développés et sous-développés, la carence en sang des donneurs peut atteindre 90%, ce qui fait du sang une denrée chère et crée un énorme marché parallèle. De plus, dans de nombreux pays post-soviétiques, l'État fait souvent abstraction de la recherche de donneurs, transférant la responsabilité aux parents de patients qui, en fait, ont besoin de sang de donneur. Et étant donné que la vie du patient dépend beaucoup de la réception ou non de la transfusion, la question d'une recherche rapide de donneurs devient, sans exagération, la question de «la vie et la mort».

Comme il s'est avéré plus tard, c'est loin de tous les problèmes, donc le projet de «deux semaines» est devenu quelque chose de bien plus.

Premiers pas


Un vrai début de projet est la participation à la conférence IDCEE 2014, dans le cadre de laquelle s'est tenu le hackathon sur l'innovation sociale. Ce jour-là, nous avons gagné, et il est devenu clair pour nous que le sujet était intéressant, important, donc avec beaucoup d'enthousiasme, nous avons commencé à mettre en œuvre le projet. Voila, et après 4 mois, au printemps 2015, nous avons lancé la première version contenant une base de données de destinataires et de donneurs à partir de tablettes Excel, ainsi qu'un mécanisme assez simple de sélection des donneurs et des destinataires. Pour l'avenir, je dirai que le système de recommandation a subi un grand nombre de changements et prend actuellement en compte de 10 à 15 paramètres différents.

Le premier tournant s'est produit un mois et demi après le lancement du projet, lorsque les coordinateurs ont pu trouver un donateur dans les 15 minutes suivant la publication de la candidature sur le site. Je vais être honnête - de nombreux membres de notre organisation ont réagi avec un grand scepticisme face à l'automatisation et au système en cours de développement. Mais une fois que le système a terminé la première tâche, nous avons acquis la certitude que nous allions dans la bonne direction.

Fin 2015, il y avait déjà environ 4 000 donneurs dans la base de données, ce qui a permis de clôturer au moins la moitié des demandes de recherche de donneurs. La seconde moitié a été fermée à l'ancienne - en utilisant le téléphone. Toute l'année 2015 s'est déroulée dans la lutte de l'ancienne et de la nouvelle. En fin de compte, la nouvelle approche a gagné. Nous avons interdit la recherche de donateurs par téléphone et en utilisant Excel, restreint l'accès au système à tous les coordinateurs sans exception et déconnecté toutes les lignes téléphoniques. Nous avons réalisé que nous avons besoin d'un coordinateur de plateforme unique qui aura une tâche - rechercher des donateurs en utilisant les moyens habituels du système DonorUA. C'était douloureux, j'ai dû resserrer quelque chose, mais en conséquence, le système a fonctionné pleinement et nous avons réalisé que nous pouvions fermer plus d'applications. Mais personne ne connaissait le projet (l'une des publications ukrainiennes les plus célèbres dans une seule publication sur les nouveaux projets sociaux en 2015 n'a même pas mentionné un mot de notre projet), respectivement, un petit nombre de personnes se sont tournées vers nous. Malgré le grand nombre de messages sur la recherche de donateurs sur Facebook / Twitter / Vkontakte. Et puis ...

Surveillance des réseaux sociaux


... J'ai fait une proposition à la société YouScan, qui est engagée dans la surveillance des réseaux sociaux en ru et ukrnet. Leur système est destiné aux grandes et moyennes entreprises et, franchement, ma proposition d'utiliser leur système pour trouver des messages de recherche de donateurs les a découragés. Le représentant de l'entreprise a fait une pause pour effectuer plusieurs tests et est revenu quelques jours plus tard avec des informations que notre hypothèse était correcte et que leur système faisait bien face à la tâche de trouver des messages. Ainsi, en un instant, nous avons eu l'opportunité en temps réel de suivre tous les messages sur le sujet et d'y répondre rapidement. Cette approche nous a permis de devenir un leader dans les réseaux sociaux - dans la majorité des publications sur la recherche de donateurs, il y a un lien vers notre projet dans les commentaires, et nous trouvons d'autres publications via YouScan. Après avoir trouvé des messages, nous contactons les auteurs des publications et proposons différentes options de coopération.

L'augmentation du nombre de demandes de recherche de donneurs de sang a dû être compensée par une augmentation de la base de donneurs. Et après quelques délibérations, l'idée est venue d'automatiser le recrutement de donneurs de sang via les réseaux sociaux. Nous avons décidé de combiner la surveillance des réseaux sociaux, des chatbots et des systèmes de traitement du langage naturel pour rechercher des donateurs potentiels. Avec cette idée, nous sommes venus à Stockholm pour le Startup Weekend: Social Innovations et ... avons encore gagné.



À gauche, un aperçu général du traitement du langage naturel et du processus de conversion du texte en objet structuré. À droite, un exemple de message et d'entités qui peuvent en être extraits.

À partir des messages, nous pouvons extraire automatiquement des données telles que le nom du destinataire, le nombre requis de donneurs, de toute urgence ou non, le groupe sanguin et le facteur Rh, la ville et les coordonnées. Pour la formation des modèles, nous avons utilisé WIT.AI et Microsoft LUIS. Pour la langue anglaise, nous avons obtenu de très bons résultats, mais, malheureusement, ces systèmes fonctionnent mal dans les langues cyrilliques - russe et ukrainien. Et étant donné que le système est orienté vers ces langues, le développement de cette direction a été reporté à des temps meilleurs.

En fait, l'idée était beaucoup plus large: développer un chatbot, avec lequel vous pouvez recruter automatiquement des donneurs de sang via les systèmes sociaux et les messageries instantanées.



Un exemple de ce Ă  quoi pourraient ressembler les dialogues entre le chatbot et les donneurs de sang potentiels

Hélas, cette idée est difficile à mettre en œuvre - tout d'abord, en raison du scandale de Facebook et de Cambridge Analytica, ainsi qu'après l'adoption de la loi GPRD en Europe, qui ne permet pas la collecte, l'analyse et la gestion des données personnelles à l'aise.

Assistant personnel donateur - Don UA.Bot


Mais après la victoire à Stockholm, nous avons apprécié le potentiel des chatbots et avons été très contrariés par le manque d'outils NLP / NER pour la langue ukrainienne. Le projet parallèle est donc né - Donor UA.Bot.

En créant DonorUA.Bot, nous avons voulu résoudre plusieurs problèmes:

  • traiter avec succès le sujet des chatbots;
  • crĂ©er une reconnaissance d'entitĂ© nommĂ©e pour la langue ukrainienne - partiellement rĂ©ussie;
  • recueillir une base de connaissances sur les contre-indications au don, ainsi que la lĂ©gislation, les restrictions et les avantages pour les donateurs - avec succès, la base de donnĂ©es est constamment mise Ă  jour;
  • crĂ©er d'abord un outil pour vous-mĂŞme - pour un service de support, car 80% des questions - les mĂŞmes - sont rĂ©ussies.

De plus, avec notre chat bot, nous avons pu refuser un grand nombre de newsletters par e-mail, qui ont été remplacées par des messages personnalisés et automatiques dans Viber et Telegram. Le courrier électronique est toujours disponible dans la liste des options, mais un nombre croissant de personnes préfèrent les messagers.



Bot Skype et Messenger

Mais avec les envois SMS, nous n'avons pas grandi ensemble. Tous les opérateurs nationaux ont refusé le projet de fournir une passerelle SMS. Par conséquent, l'utilisation de chatbots et de messageries instantanées est une étape évidente, et même très, très bon marché.

Et maintenant


Aujourd'hui, DonorUA est une plateforme CRM / CMS à part entière pour le recrutement et la gestion des donateurs, qui comprend:

  1. Bureaux de l'administrateur, donneur de sang, centre de transfusion sanguine, médecin.
  2. Un système de recommandations qui permet aux donneurs de voir la liste actuelle des receveurs qui ont besoin de leur groupe sanguin et les administrateurs système de trouver des donneurs appropriés pour un receveur particulier.
  3. Un système de notification qui envoie automatiquement des notifications à Viber / Telegram / Email lorsqu'une correspondance donneur-destinataire est trouvée.
  4. Bloodshed est un ensemble d'informations utiles pour les donneurs au format wiki.
  5. Programme de bonus pour les donateurs.
  6. Données officielles ouvertes (et traitées) du ministère de la Santé d'Ukraine et statistiques ouvertes.
  7. Surveillance des réseaux sociaux.
  8. Donateur UA. Bot et AI.
  9. Applications mobiles pour Android, iOS, Windows.
  10. Applications mobiles pour les partenaires du programme de bonus pour iOS / Android.
  11. Carte des centres de transfusion sanguine et revues des centres de transfusion sanguine.
  12. Service de soutien aux donateurs.
  13. Une API ouverte basée sur laquelle plusieurs intégrations avec d'autres services sont implémentées.
  14. Don d'entreprise.
  15. Programmes spéciaux et réductions pour les donateurs des partenaires.

Ici, par exemple, ressemble Ă  un stand d'information dans l'un des centres de transfusion sanguine:



Et voici à quoi cela ressemble dans notre système:



La couleur rouge signifie qu'il y a peu de sang critique, le jaune signifie le sang s'épuise, le vert signifie assez

Ou voici un autre exemple d'automatisation. Avant chaque don, le donateur doit remplir un questionnaire, qui comprend environ 30 questions, ce qui prend 1 à 3 minutes. Si vous imaginez qu'un centre de transfusion sanguine moyen peut recevoir 40 à 50 personnes par jour, alors les économies seront de 1 à 1,5 heure sur 4 à 5 travailleurs par jour (!). Dans notre système, un donneur peut remplir une demande en ligne une fois et la mettre à jour au fur et à mesure que l'information change (ce qui arrive très rarement), et le centre de transfusion peut télécharger la demande remplie dans son bureau. Et il y a beaucoup d'exemples de ce genre où nous avons pu optimiser certains processus.

La traduction de tous les processus en chiffres a un autre effet positif: nous pouvons évaluer la situation à tout moment - à la fois au niveau d'un centre de transfusion sanguine séparé et au niveau d'une ville ou de tout le pays dans son ensemble.

Pile d'architecture et de technologie


Le projet est réalisé sur ASP.NET MVC + API Web + Entity Framework sur la plateforme Microsoft Azure. Nous utilisons Azure SQL Database, le stockage Azure Blob, les travaux Azure, Azure CDN, Cognitive Services + Microsoft Bot Framework. Applications mobiles développées sur Xamarin. Pour le travail d'équipe, Office 365, Slack, Asana et Visual Studio Team Systems sont utilisés. Dans l'ensemble, la pile standard .NET / Azure, rien de spécial.

Nous avons écrit notre propre NER (assez simple) pour la langue ukrainienne en plus de Microsoft Bot Framework + et ajouté l'intégration avec Viber, ce qui nous a permis de créer rapidement des chatbots QnA (questions et réponses) en langue ukrainienne (similaire à QnA Maker de Microsoft, qui fait partie d'Azure Cognitive Services) et déployez-les rapidement sur toutes les plates-formes populaires - Messenger, Viber, Telegram, Skype, Skype for Business, Slack, Microsoft Teams, e-mail, chat Web et utilisez l'API Direct Line pour intégrer le chatbot dans les applications mobiles.



Architecture de chat bot standard sur Azure + Microsoft Bot Framework

Microsoft a aimablement fourni des ressources à notre projet Azure via le programme Microsoft Bizspark. Récemment, Microsoft Bizspark a été remplacé par Microsoft pour les startups, et l'obtention de ressources est devenue beaucoup plus difficile, mais nous avons réussi à appliquer à un autre programme - Microsoft pour les organisations à but non lucratif, dans lequel vous pouvez obtenir Office 365 pour 300 utilisateurs et les ressources Microsoft Azure pour 5000 $ par an complètement gratis. Ainsi, malgré le fait que le projet soit en fait social, tous les processus sont construits comme dans un vrai projet d'entreprise.

En parlant d'affaires.

Modèle d'affaires et positionnement


La question du financement nous est très souvent posée, ainsi que sur la manière dont nous positionnons notre projet.

Dès le début, nous avons positionné DonorUA comme un projet social non rentable. Mais non rentable ne signifie pas que les gens n'ont pas besoin de payer les salaires et les factures. Pourtant, dans l'esprit de nombreuses personnes, la non-rentabilité est tout aussi gratuite. Nous ne voulions pas nous engager dans des subventions, et, franchement, presque tous les fonds nous ont donné le coup d'envoi à un stade précoce des négociations - disent-ils, pas un format. Mais nous ne voulions pas remplir des documents d'appel d'offres sans fin et, en vérité, nous ne savons pas comment. Par conséquent, presque tout le financement du projet est constitué de ses propres fonds et partiellement de l'aide financière d'une personne qui n'est pas associée au projet.

Nous n'avons pas envisagé l'option de monétiser le projet sur les destinataires - la majorité des destinataires qui se tournent vers nous et ont déjà des problèmes à la fois psychologiques et matériels. Et ceux qui peuvent acheter nos services, en règle générale, ne nous contactent pas, mais résolvent les problèmes via «leurs canaux».

Lorsque le positionnement avec le projet social «n’a pas marché», nous avons commencé à positionner le projet comme une startup e-santé, ce qui, en fait, n’est pas très loin de la vérité, mais avec quelques nuances. Un tel positionnement a porté ses fruits - nous avons régulièrement commencé à entrer dans les médias, avons pu gagner plusieurs concours de startups, et nous avons commencé à être invités en tant qu'experts en technologies civiques et innovations sociales. Malheureusement, cela ne nous a pas apporté de subventions, de partenaires ou d'investissements.

Une situation amusante s'est produite lors de l'un des concours de démarrage dans lequel le gagnant était censé obtenir environ 75 000 $ pour le développement. Mais après avoir remporté ce concours, on nous a présenté ... un livre. Oui, les compétitions de startup ukrainiennes sont insensées et impitoyables :-) Ensuite, il y a eu quelques autres finales, victoires et participation, mais à un moment donné, nous avons réalisé que c'était une perte de temps.

À l'heure actuelle, nous proposons aux entreprises socialement responsables d'organiser des journées de donateurs d'entreprises et de participer au développement du mouvement des donateurs. Nous recherchons activement de telles entreprises pour la coopération, offrant un tout nouveau niveau de consolidation d'équipe, ainsi que la responsabilité sociale des entreprises.

Nous avons donc commencé à gagner un peu d'argent. Le mot clé est un peu :-) Et nous avons encore beaucoup de projets!

Apprentissage automatique et intelligence artificielle


Surveillance des réseaux sociaux, chat bots, NLP / NER - en fait, nous utilisons déjà des éléments d'IA séparés pour résoudre certains problèmes. Mais les possibilités d'utilisation de MO et AI sont plus larges.

En ce moment, nous sommes engagés dans la résolution de plusieurs problèmes.

Prédiction de la demande de don de sang sur la base de données historiques


La tâche est assez standard, mais le problème est qu'il y a très peu de données historiques, elles sont, au mieux, agrégées, donc vous ne pouvez pas les utiliser. Mais nos données ne suffisent pas. Néanmoins, j'espère qu'à l'avenir, une intégration plus étroite avec les centres de transfusion nous permettra d'obtenir des données historiques dépersonnalisées et cela nous permettra d'utiliser toute la puissance des algorithmes d'IA pour prédire la demande.

Prédire l'événement selon lequel le donneur donnera du sang dans les X prochains jours avec une probabilité de N


Pour développer des modèles, nous avons utilisé un ensemble de données ouvert - Blood Transfusion Service Center Data Set , qui, en fait, contient des données réelles provenant de l'un des centres de transfusion sanguine. Après avoir suivi une formation sur les données accessibles au public, nous avons commencé à analyser les données que nous avons collectées à l'aide de Donor UA. Vous pouvez en savoir plus à ce sujet ici.

Diminution du nombre de correspondances du donneur receveur


L'algorithme de correspondance pour les donneurs et les receveurs fonctionne assez bien, mais il présente un inconvénient important: lorsque vous augmentez la base de données et choisissez des groupes sanguins populaires, nous obtenons des milliers de correspondances. Plus n'est pas toujours mieux. Nous ne voulons vraiment pas que les messages de notre part soient perçus par les donateurs comme du spam. Ainsi, il est nécessaire de résoudre le problème de la réduction du nombre de correspondances du donneur-receveur sans perte de qualité. De plus, nous devons convaincre les donateurs peu actifs de faire des dons réguliers.

Pour résoudre les problèmes, nous utilisons un grand nombre d'outils - à partir de Microsoft Azure Machine Learning, se terminant par diverses bibliothèques python et un nouvel outil de Microsoft - bibliothèque ML.NET.

Au lieu d'une conclusion


Les technologies modernes ouvrent un grand nombre de nouvelles opportunités, notamment pour résoudre les problèmes aigus de l'humanité.

Par notre exemple, nous voulons montrer que la synergie des personnes actives et de la technologie moderne peut faire des merveilles. Pendant trois ans, dans le cadre de DonorUA, nous avons directement aidé 2,5 mille destinataires, et 20 000 dons de sang sont potentiellement 60 000 vies sauvées.

Les technologies cloud, l'intelligence artificielle et les algorithmes d'apprentissage automatique ouvrent de nouvelles opportunités pour les développeurs et les entreprises, dont vous ne pourriez rêver que pendant dix ans.

Les entreprises ont d'énormes ressources. Nous avons un grand désir et une vaste expérience dans la résolution de problèmes dans le domaine du don de sang.

Résolvons ces problèmes ensemble.

Ă€ propos de l'auteur


Alexander Krakovetsky - PDG de DevRain Solutions, CTO Donor UA, Ph.D., Microsoft Artificial Intelligence Most Valuable Professional, Microsoft Regional Director.

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


All Articles