Produto .NET que salva vidas

Em algumas situações da vida, você precisa agir muito rapidamente. Às vezes, essa condição é impossível: por exemplo, é simplesmente impossível, sem muita sorte, em muito pouco tempo, encontrar uma pessoa com um tipo sanguíneo raro, que também esteja pronto para compartilhá-la. Os caras criaram um produto chamado DonorUA, que realmente ajuda a salvar vidas usando o bot de bate-papo. Mais detalhes sob o corte.



Dou a palavra ao autor.

Alguns anos atrás, em um hackathon para criar serviços sociais, tentei desenvolver um projeto para automatizar reclamações sobre a operação de serviços habitacionais e comunitários. O desenvolvimento progrediu fortemente, a versão demo era complexa e tecnologicamente avançada, portanto o júri não avaliou o esforço nem a própria ideia. Mas, nesse evento, conheci uma garota, chefe de uma organização pública, que vinha lidando com vários problemas no campo da doação de sangue na Ucrânia há vários anos. Palavra por palavra - e você já é co-fundador de um novo projeto.

Naquele momento, eu não sabia nada sobre doação de sangue. O único conhecimento era que as pessoas às vezes doam sangue para outras pessoas. Como está organizado, com que problemas esta esfera vive, quanto custa e onde estamos - para mim foi um completo mistério.

Tendo vasta experiência em automatizar processos e criar sistemas corporativos, decidi que criar um banco de dados e automatizar certos processos não levaria muito tempo.

Primeiro, verificou-se que o país carece de um registro unificado de doadores de sangue. Então descobri que, sem exceção, todas as organizações domésticas de doadores, na melhor das hipóteses, usam um arquivo do Excel com uma lista de doadores, seus telefones e tipo de sangue. Quando o pedido de busca de doadores chegou, os funcionários da organização sentaram-se ao telefone e começaram a ligar para todos em fila, na esperança de que alguém respondesse. Como você sabe, a eficácia dessa abordagem foi quase nula.



Em todos os países, a legislação no campo da doação é muito, muito rigorosa. Por exemplo, na Ucrânia, você não pode doar sangue por um ano inteiro se tiver perfurado ou tatuado, ou alguns meses se você foi a um país exótico ou apenas mudou de parceiro. A lista de contra-indicações e limitações à doação leva mais de uma página.

Nos países desenvolvidos, onde não há problemas óbvios com o sangue doado, a questão é resolvida com muita simplicidade - o estado financia generosamente essa área. Nos países menos desenvolvidos e subdesenvolvidos, a deficiência de sangue de doadores pode chegar a 90%, o que torna o sangue uma mercadoria cara e cria um enorme mercado-sombra. Além disso, em muitos países pós-soviéticos, o estado geralmente abstrai da busca por doadores, transferindo a responsabilidade para parentes de pacientes que, de fato, precisam de sangue de doadores. E dado que a vida do paciente depende muito de receber ou não a transfusão a tempo, a questão de uma busca rápida por doadores torna sem exagero a questão da "vida e morte".

Como se viu depois, isso está longe de todos os problemas, então o projeto por "duas semanas" se transformou em algo muito mais.

Primeiros passos


Um verdadeiro começo para o projeto é a participação na conferência do IDCEE 2014, no âmbito do qual foi realizada a hackathon sobre inovação social. Naquele dia vencemos, e ficou claro para nós que o tópico era interessante, importante e, com grande entusiasmo, começamos a implementar o projeto. Voila, e após 4 meses, na primavera de 2015, lançamos a primeira versão contendo um banco de dados de destinatários e doadores de tablets Excel, além de um mecanismo bastante simples para selecionar doadores e destinatários. No futuro, direi que o sistema de recomendações passou por um grande número de alterações e atualmente leva em consideração de 10 a 15 parâmetros diferentes.

O primeiro momento decisivo ocorreu um mês e meio após o lançamento do projeto, quando os coordenadores puderam encontrar um doador pela primeira vez em até 15 minutos após a publicação do pedido no site. Serei sincero - muitos em nossa organização reagiram com grande ceticismo à automação e ao sistema que está sendo desenvolvido. Mas depois que o sistema concluiu a primeira tarefa, ganhamos confiança de que estávamos seguindo na direção certa.

Até o final de 2015, já havia cerca de 4.000 doadores no banco de dados, o que possibilitou fechar pelo menos metade das solicitações de pesquisa de doadores. A segunda metade foi fechada da maneira antiga - usando o telefone. Todo o ano de 2015 passou na luta da velha abordagem e da nova. No final, a nova abordagem venceu. Banimos a pesquisa por doadores por telefone e usando o Excel, restringimos o acesso ao sistema a todos os coordenadores sem exceção e desconectamos todas as linhas telefônicas. Percebemos que precisamos de um coordenador de plataforma única que terá uma tarefa - procurar doadores usando os meios regulares do sistema DonorUA. Foi doloroso, tive que apertar alguma coisa, mas, como resultado, o sistema funcionou completamente e percebemos que poderíamos fechar mais aplicativos. Mas ninguém sabia sobre o projeto (uma das publicações ucranianas mais famosas em uma única publicação sobre novos projetos sociais em 2015 nem sequer mencionou uma palavra sobre o nosso projeto), respectivamente, um pequeno número de pessoas se voltou para nós. Apesar do grande número de posts sobre pesquisa de doadores no Facebook / Twitter / Vkontakte. E então ...

Monitoramento de redes sociais


... Fiz uma proposta para a empresa YouScan, que atua no monitoramento de redes sociais em ru- e ukrnet. O sistema deles é voltado para grandes e médias empresas e, francamente, minha proposta de usar o sistema para encontrar mensagens de pesquisa de doadores os desencorajou. O representante da empresa fez uma pausa para realizar vários testes e retornou alguns dias depois com informações de que nossa hipótese estava correta e que seu sistema lida bem com a tarefa de encontrar mensagens. Assim, em um instante, tivemos a oportunidade em tempo real de monitorar todas as mensagens sobre o tópico e responder rapidamente a elas. Essa abordagem nos permitiu ser líder em redes sociais - na maioria das publicações sobre pesquisa de doadores, há um link para o nosso projeto nos comentários, e encontramos outras publicações através do YouScan. Após encontrar qualquer mensagem, contatamos os autores das publicações e oferecemos diferentes opções de cooperação.

O aumento do número de pedidos de busca de doadores de sangue teve que ser compensado por um aumento na base de doadores. E, após alguma deliberação, surgiu uma idéia para automatizar o recrutamento de doadores de sangue por meio de redes sociais. Decidimos combinar o monitoramento de redes sociais, chatbots e sistemas de processamento de linguagem natural para procurar possíveis doadores. Com essa idéia, viemos a Estocolmo para o Startup Weekend: Social Innovations e ... vencemos novamente.



À esquerda, há um esboço geral do Processamento de linguagem natural e o processo de conversão de texto em um objeto estruturado. À direita, há um exemplo de uma mensagem e entidades que podem ser extraídas dela.

A partir das mensagens, podemos extrair automaticamente dados como o nome do destinatário, o número necessário de doadores, urgentemente ou não, tipo sanguíneo e fator Rh, cidade e detalhes de contato. Para o treinamento do modelo, usamos WIT.AI e Microsoft LUIS. Para o idioma inglês, obtivemos resultados muito bons, mas, infelizmente, esses sistemas funcionam mal em idiomas cirílicos - russo e ucraniano. E, como o sistema é voltado para essas linguagens, o desenvolvimento dessa direção foi adiado para tempos melhores.

De fato, a ideia era muito mais ampla: desenvolver um chatbot, com o qual você pode recrutar automaticamente doadores de sangue por meio de sistemas sociais e mensageiros instantâneos.



Um exemplo de como podem ser os diálogos entre o chatbot e os possíveis doadores de sangue

Infelizmente, essa idéia é difícil de implementar - em primeiro lugar, devido ao escândalo do Facebook e da Cambridge Analytica, bem como depois que a lei GPRD foi adotada na Europa, o que não permite a coleta, análise e gerenciamento de dados pessoais.

Assistente Pessoal de Doadores - Doador UA.Bot


Mas após a vitória em Estocolmo, apreciamos o potencial dos chatbots e ficamos muito chateados com a falta de ferramentas de PNL / NER para o idioma ucraniano. Assim nasceu o projeto paralelo - Doador UA.Bot.

Criando o DonorUA.Bot, queríamos resolver vários problemas:

  • lide com o tópico dos chatbots - com sucesso;
  • criar um reconhecimento de entidade nomeada para o idioma ucraniano - parcialmente bem-sucedido;
  • coletar uma base de conhecimento sobre contra-indicações à doação, bem como legislação, restrições e benefícios para os doadores - com sucesso, o banco de dados está sendo atualizado constantemente;
  • crie, antes de tudo, uma ferramenta para si mesmo - para um serviço de suporte, porque 80% das perguntas - as mesmas - são bem-sucedidas.

Além disso, com o nosso bot de bate-papo, fomos capazes de recusar um grande número de boletins por e-mail, que foram substituídos por mensagens automáticas e personalizadas no Viber e no Telegram. O e-mail ainda está disponível na lista de opções, mas um número crescente de pessoas prefere mensageiros.



Bot do Skype e Messenger

Mas com as correspondências por SMS, não crescemos juntos. Todos os operadores nacionais recusaram o projeto para fornecer um gateway SMS. Portanto, o uso de chatbots e mensageiros instantâneos é um passo óbvio e até muito, muito barato.

O que agora


Hoje, o DonorUA é uma plataforma completa de CRM / CMS para recrutamento e gerenciamento de doadores, que inclui:

  1. Consultórios do administrador, doador de sangue, hemocentro, médico.
  2. Um sistema de recomendação que permite que os doadores vejam a lista atual de destinatários que precisam do seu tipo sanguíneo e os administradores de sistemas para encontrar doadores adequados para um determinado destinatário.
  3. Um sistema de notificação que envia notificações automaticamente para o Viber / Telegram / Email quando uma correspondência doador-destinatário é encontrada.
  4. O derramamento de sangue é um conjunto de informações úteis para doadores em um formato wiki.
  5. Programa de bônus para doadores.
  6. Dados abertos (e processados) oficiais do Ministério da Saúde da Ucrânia e estatísticas abertas.
  7. Monitorando redes sociais.
  8. Doador UA Bot e IA.
  9. Aplicativos móveis para Android, iOS, Windows.
  10. Aplicativos móveis para parceiros do programa de bônus para iOS / Android.
  11. Mapa dos hemocentros e revisões dos hemocentros.
  12. Serviço de Apoio ao Doador.
  13. Uma API aberta com base na qual várias integrações com outros serviços são implementadas.
  14. Doação corporativa.
  15. Programas especiais e descontos para doadores de parceiros.

Aqui, por exemplo, parece um estande de informações em um dos hemocentros:



E é assim que fica em nosso sistema:



Cor vermelha significa que há pouco sangue crítico, amarelo significa sangue acaba, verde significa suficiente

Ou aqui está outro exemplo de automação. Antes de cada doação, o doador deve preencher um questionário, que consiste em aproximadamente 30 perguntas, que levam de 1 a 3 minutos. Se você imagina que um hemocentro médio pode receber de 40 a 50 pessoas por dia, a economia será de 1 a 1,5 horas em 4 a 5 trabalhadores por dia (!). Em nosso sistema, um doador pode preencher um requerimento on-line uma vez e atualizá-lo à medida que as informações mudam (o que acontece muito raramente), e o hemocentro pode fazer o download do requerimento preenchido em seu escritório. E existem muitos exemplos em que conseguimos otimizar certos processos.

Traduzir todos os processos em números tem outro efeito positivo: podemos avaliar a situação a qualquer momento - no nível de um hemocentro separado e no nível de uma cidade ou de todo o país como um todo.

Pilha de arquitetura e tecnologia


O projeto é feito no ASP.NET MVC + Web API + Entity Framework na plataforma Microsoft Azure. Usamos o Banco de Dados SQL do Azure, armazenamento de Blob do Azure, Trabalhos do Azure, CDN do Azure, Serviços Cognitivos + Microsoft Bot Framework. Aplicativos móveis desenvolvidos no Xamarin. Para o trabalho em equipe, os sistemas de equipe do Office 365, Slack, Asana e Visual Studio são usados. No geral, a pilha .NET / Azure padrão, nada de especial.

Escrevemos nosso próprio NER (bastante simples) para o idioma ucraniano sobre o Microsoft Bot Framework + e adicionamos integração ao Viber, o que nos permitiu criar rapidamente chatbots de QnA (perguntas e respostas) no idioma ucraniano (semelhante ao QnA Maker da Microsoft, que faz parte do Azure Cognitive Serviços) e implante-os rapidamente em todas as plataformas populares - Messenger, Viber, Telegram, Skype, Skype for Business, Slack, Microsoft Teams, e-mail, bate-papo na Web e use a Direct Line API para integrar o chatbot em aplicativos móveis.



Arquitetura padrão de bot de bate-papo no Azure + Microsoft Bot Framework

A Microsoft gentilmente forneceu recursos para nosso projeto do Azure por meio do programa Microsoft Bizspark. Recentemente, o Microsoft Bizspark foi substituído pelo Microsoft para Startups e a obtenção de recursos ficou muito mais difícil, mas aplicamos com êxito a outro programa - o Microsoft for Nonprofit, no qual você pode obter completamente o Office 365 para 300 usuários e os recursos do Microsoft Azure por US $ 5000 por ano. grátis. Assim, apesar de o projeto ser social, todos os processos são construídos como em um projeto comercial real.

Falando de negócios.

Modelo de negócios e posicionamento


A questão do financiamento nos é feita com muita frequência e, de fato, sobre como posicionamos nosso projeto.

Desde o início, posicionamos o DonorUA como um projeto social não rentável. Mas não rentável não significa que as pessoas não precisem pagar salários e pagar contas. No entanto, na mente de muitas pessoas, não lucrativo é igualmente gratuito. Não queríamos participar de doações e, francamente, quase todos os fundos nos abriram em um estágio inicial das negociações - eles dizem, não em um formato. Mas não queríamos preencher infinitos documentos de concurso e, na verdade, não sabemos como. Portanto, quase todo o financiamento do projeto é de seus próprios fundos e assistência parcialmente financeira de uma pessoa que não está associada ao projeto.

Não consideramos a opção de monetizar o projeto nos destinatários - a maioria dos destinatários que se voltam para nós e já têm problemas psicológicos e materiais. E quem pode comprar nossos serviços, via de regra, não entra em contato conosco, mas resolve problemas através de "seus canais".

Quando o posicionamento com o projeto social "não foi", começamos a posicionar o projeto como uma startup de e-health, que, de fato, não está muito longe da verdade, mas com algumas nuances. Esse posicionamento valeu a pena - começamos a entrar regularmente na mídia, conseguimos ganhar vários concursos de startups e começamos a ser convidados como especialistas em tecnologia cívica e inovações sociais. Infelizmente, isso não nos trouxe doações, parceiros ou investimentos.

Uma situação engraçada aconteceu em um dos concursos de startups em que o vencedor deveria receber cerca de US $ 75 mil para o desenvolvimento. Mas depois que vencemos este concurso, fomos presenteados com ... um livro. Sim, as competições de inicialização ucranianas são sem sentido e sem piedade :-) Depois, houve mais algumas finais, vitórias e participação, mas em algum momento percebemos que era uma perda de tempo.

No momento, oferecemos negócios socialmente responsáveis ​​para manter dias de doadores corporativos e fazer parte do desenvolvimento do movimento de doadores. Estamos buscando ativamente essas empresas em cooperação, oferecendo um nível completamente novo de formação de equipes, além de responsabilidade social corporativa.

Então começamos a ganhar um pouco de dinheiro. A palavra chave é um pouco :-) E ainda temos muitos planos!

Aprendizado de máquina e inteligência artificial


Monitorando redes sociais, chat bots, PNL / NER - na verdade, já usamos elementos de IA separados para resolver certos problemas. Mas as possibilidades de usar MO e AI são mais amplas.

No momento, estamos empenhados em resolver vários problemas.

Previsão da demanda por sangue doado com base em dados históricos


A tarefa é bastante padrão, mas o problema é que existem muito poucos dados históricos, eles são, na melhor das hipóteses, agregados, para que você não possa usá-los. Mas nossos dados não são suficientes. No entanto, espero que, no futuro, uma integração mais próxima com os hemocentros nos permita obter dados históricos despersonizados e isso nos permita usar todo o poder dos algoritmos de IA para prever a demanda.

Prevendo o evento em que o doador doará sangue nos próximos X dias com uma probabilidade de N


Para desenvolver modelos, usamos um conjunto de dados aberto - Blood Transfusion Service Center Data Set , que, de fato, contém dados reais de um dos hemocentros. Tendo treinado em dados publicamente disponíveis, começamos a analisar os dados que coletamos usando o Donor UA. Você pode ler mais sobre isso aqui.

Diminuição do número de correspondências do doador receptor


O algoritmo de correspondência para doadores e destinatários funciona muito bem, mas tem uma desvantagem significativa: quando você aumenta o banco de dados e escolhe grupos sanguíneos populares, obtemos milhares de correspondências. Mais nem sempre é melhor. Realmente não queremos que as nossas mensagens sejam percebidas pelos doadores como spam. Assim, é necessário resolver o problema de reduzir o número de correspondências do doador-receptor sem perda de qualidade. Além disso, devemos convencer doadores não tão ativos a doações regulares.

Para resolver problemas, usamos um grande número de ferramentas - começando no Microsoft Azure Machine Learning, terminando com várias bibliotecas python e uma nova ferramenta da biblioteca Microsoft - ML.NET.

Em vez de uma conclusão


As tecnologias modernas abrem um grande número de novas oportunidades, inclusive para resolver os problemas agudos da humanidade.

Pelo nosso exemplo, queremos mostrar que a sinergia entre pessoas ativas e a tecnologia moderna pode fazer maravilhas. Durante três anos, no âmbito do DonorUA, ajudamos diretamente 2,5 mil receptores e 20 mil doações de sangue são potencialmente 60 mil vidas salvas.

Tecnologias em nuvem, inteligência artificial e algoritmos de aprendizado de máquina abrem novas oportunidades para desenvolvedores e empresas, com as quais você só poderia sonhar por mais dez anos.

. .

.

Sobre o autor


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

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


All Articles