Tornando os dados sobre diabetes mais acessíveis e significativos com o Tidepool e o MongoDB
Avalie esse Podcast
Os dados por trás do gerenciamento do diabetes podem ser esmagadores – entender tudo isso é fortalecedor. A Tidepool transforma os pontos de dados da diabete em insights acessíveis, acionados e significativos usando uma pilha de tecnologia open source que incorpora o MongoDB. A Tidepool é uma organização sem fins lucrativos fundada por pessoas com diabetes, cuidadores e profissionais de saúde líderes comprometidos em ajudar todas as pessoas com diabetes dependente a alcançar excelentes resultados com segurança por meio de dados de diabetes mais acessíveis, acionáveis e significativos.
Eles estão comprometidos em capacitar a próxima geração de Inovações no gerenciamento de diabete. Utilizamos o poder da tecnologia para fornecer produtos de software intuitivos que ajudam as pessoas com diabete.
Neste capítulo do Podcast do MongoDB, Michael e Nic se encontram com Tapani Otala, vice-presidente de engenharia da Tidepool, para contar sobre sua plataforma, como ela foi construída e como usa o MongoDB para fornecer flexibilidade e visibilidade incomparáveis dos dados críticos que os pacientes usam para gerenciar sua condição.
Tapani: [00:00:00] Oi, meu nome é Tapani Otala. Estou o VP de engenharia na Tidepool. Somos uma organização sem fins comerciais cuja tarefa é tornar os dados do diabete mais acessíveis, significativos e acionados.00 00 01 equipe de assistência para entender esses dados. E estamos usando o Mongo DB para alimentar tudo isso. Fique ligado para saber mais.
Chris: [00:00:47] Meu nome é Christopher Snyder. Tenho diabetes tipo 1 desde 2002. Também sou gerente de sucesso da comunidade e da clínica da Tidepool. Ter esses dados disponíveis para mim me dá a oportunidade de entender tudo o que está acontecendo. Antes de usar o Tidepool, se eu quisesse ver meus dados, teria que escrever tudo e acompanhar todas essas anotações. Ou usar um software proprietário para cada um dos meus dispositivos e, em seguida, imprimir as coisas e colocá-las sob a luz para alinhar eventos, pontos de dados e coisas do gênero. Como o Tidepool reúne tudo em um só lugar, sou parcial. Acho que ele é muito bonito. Isso torna muito mais fácil identificar tendências, fazer mudanças significativas em meus hábitos de controle do diabetes e, com sorte, levar uma vida mais saudável.
Mike: [00:01:28] Estamos falando hoje sobre o Tidepool e talvez você possa nos dar uma descrição rápida do que é o Tidepool e a quem ele pode recorrer **Tapani: [00:01:38] **Somos uma organização sem fins comerciais. E estamos desenvolvendo um software que ajuda as pessoas com diabete a gerenciar essa condição. Permitimos que as pessoas carreguem dados de seus dispositivos, diferentes tipos de dispositivos, como monitores de Glicose, medidores, máquinas de Insulina e assim por diante em um único local, onde você pode visualizar esses dados em um único local. E você pode compartilhá-lo com os membros da sua equipe de tratamento, como consultas, consultas,00, consultas,02, consultas,00. Eles também podem visualizar esses dados em tempo real.
Mike: [00:02:03] Há muitas empresas que estão fazendo esse tipo de coisa hoje em dia?
Tapani: [00:02:06] Existem algumas empresas, até onde eu saiba, que são a única sem fins comerciais neste espaço. Todo o resto é para fins comerciais. E há muitas empresas que a analisam a partir da diabete, de uma perspectiva diferente. Eles podem funcionar com diabete tipo dois ou tipo um. Atuamos com qualquer tipo. Não há diferença.
Nic: [00:02:24] Em relação ao Tidepool, você está construindo hardware e software? Ou você está apenas analisando os dados? Você pode lançar mais alguma luz sobre isso?
Tapani: [00:02:33] Certifique-se. Somos uma empresa de software 100 por cento. Não fabricamos nenhum outro hardware. Colaboramos com muitos fabricantes desses dispositivos no espaço e no espaço médico em geral, mas em particular para a diabete que produz esses dispositivos. E assim colaborar com eles.
Mike: [00:02:48] Em que estágio está o Tidepool hoje? Está ao vivo?
Tapani: [00:02:50] Sim, estamos ao vivo desde 2013 e crescemos desde então. E agora estamos em 33 ou mais pessoas, mas ainda assim, suponha que você possa considerar como um [00:03:00] inicialização, consistência. Então
Nic: [00:03:01] Na verdade, gostaria de me familiarizar com o software que a Tidepool produz. Então você disse que há muitos grandes fabricantes de hardware trabalhando nesse espaço. Como você está obtendo esses dados? Você é como um aplicativo móvel conectado ao hardware? Você é algum tipo de IoT ou eles estão enviando essas informações e você está trabalhando com elas nesse ponto?
Tapani: [00:03:22] Então, realmente depende do dispositivo e da integração que temos. Na maioria dos dispositivos, conversamos diretamente com o dispositivo. Portanto, esses são dispositivos que você usaria em sua casa e os conecta a um PC por meio de Facebook E temos um software que pode ler os dados diretamente do dispositivo e carregá-los em nosso serviço de backend que está usando o Mongo DB para armazenar esses dados.
Mike: [00:03:43] Existe um formato comum necessário para enviar dados ao Tidepool?
Tapani: [00:03:49] Desejamos. Isso tornaria a nossa vida muito mais simples. Não, na verdade, uma boa parte do trabalho envolvido aqui é escrever software que sabe como se comunicar com cada dispositivo individual. E há algumas [00:04:00] família de dispositivos que usam protocolos semelhantes e assim por diante, mas não, não há nenhum protocolo realmente universal que se comunique com os dispositivos ou para o formato dos dados que vem dos dispositivos nesse caso. Portanto, grande parte do trabalho é normalizar esses dados para que, quando forem armazenados em nosso backend, possam ser visualizados pelas pessoas.
Nic: [00:04:21] Então chegaremos a isso em um segundo. Soa como um caso perfeita para um tipo de banco de dados de documentos, mas no que diz respeito ao suporte a todos esses outros dispositivos, então Imago que qualquer dispositivo ao longo de sua vida útil possa experimentar diferentes tipos de saída de dados por meio das versões. Que tipo de compatibilidade o Tidepool tem nesses dispositivos? Você usa, diz suporte como a versão mais recente ou? Talvez você possa lançar alguma luz sobre quantos dispositivos em geral você está suportando. Tapani: [00:04:50] No momento, damos suporte a mais 50 dispositivos diferentes. E, por extensão, qualquer coisa que a Apple Health ofereça suporte. Então, se você tiver um dispositivo que armazena dados no Apple Health Kit [00:05:00], também podemos ler isso. Mas 50 dispositivos diretamente. Você pode realmente ir para digitar dispositivos de barra org shard e pode ver a lista completa lá. Você pode filtrá-lo por diferentes tipos de dispositivos, fabricantes e assim por diante. E que esses dispositivos são alguns deles estão realmente obsoletos neste ponto. Eles estão no fim da vida útil. Você não pode mais comprá-los. Por isso, damos suporte a dispositivos mesmo muito além do ponto em que foram vendidos. Tentamos acompanhar os dispositivos mais recentes, mas isso nem sempre é possível.
Mike: [00:05:26] É como um aplicativo de IoT orientado à saúde, correto?
Tapani: [00:05:30] Sim. De uma forma que isso com certeza é verdade. A única diferença aqui, talvez, seja que esses dispositivos geralmente não se conectam diretamente à rede. Então, eles precisam de um intermediário. Como no nosso caso, temos um aplicativo móvel. Temos um aplicativo de desktop que se comunica com o dispositivo que está em seu poder, mas você não pode acessar o dispositivo diretamente pela Internet.
Mike: E só para que possamos entender a escala, quantos dispositivos estão se reportando ao Tidepool hoje?
Tapani: Na verdade, não sabe exatamente quantos dispositivos existem. Esses são tipos diferentes de dispositivos discretos. [00:06:00] O que posso dizer é que nosso principal banco de dados de produção de banco de dados, estamos armazenando algo que está se aproxima de 6 bilhões de documentos neste ponto em termos de quantidade de dados em e centenas de milhares de usuários.
Nic: [00:06:11] Apenas para maior clareza, porque eu gostaria de chegar, porque o espaço do diabete não é algo que eu esteja pessoalmente muito familiarizado. E o hardware diferente existente. Digamos que eu seja usuário do hardware e ele esteja se reportando ao Tidepool. O Tidepool vai alertar você se houver algum tipo de nível baixo de nível de açúcar no corpo ou isso serve a um propósito diferente?
Tapani: [00:06:32] Ambos. E esta é realmente uma imagem que está mudando. Então, agora, o que temos por aí em termos de produtos, eles estão olhando para trás. Então, o que aconteceu no passado, mas você pode estar usando esses dispositivos e fazer upload de dados, algumas vezes por dia. Mas se você estiver usando alguns dos dispositivos mais novos, como monitores contínuos de glicose, eles registram dados a cada cinco minutos. Portanto, a frequência oposta pode ser muito maior, mas isso vai mudar [00:07:00] à medida que mais e mais pessoas começarem a usar esses monitores contínuos de glicose que estão realmente fazendo isso. Para os dispositivos mais antigos, essa é a impressão digital clássica do medidor de glicose ou você cutuca o dedo, ou você tira um pouco de sangue e mede e pode fazer isso de cinco a 10 vezes por dia. Em vez de 288 vezes, se você tiver um monitor de glicose, monitor contínuo de glicose que envia dados a cada cinco minutos. Portanto, varia de dispositivo para dispositivo.
Mike: [00:07:24] Esse é um espaço fascinante. Eu me testo regularmente como parte da minha dieta, não necessariamente para diabetes, mas para cetose, e esse é um conceito interessante para mim. Os dispositivos de monitoramento contínuo, porém, são algo que você conecta ao seu corpo, certo?
Tapani: [00:07:39] Sim. São pequenos dispositivos do tamanho de uma pilha de moedas que ficam em algum lugar da sua pele, em um braço ou perna ou em algum lugar do seu corpo. Há um pequeno filamento que entra em sua pele, que faz as medições reais, mas é basicamente um pequeno enchimento.
MicroDB: [00:07:54] Então, considerando o aplicativo em si e como você está aproveitando o MongoDB, gostaria de falar um pouco sobre como o [00:08:00] aplicativo vem junto e como é a aparência da pilha?
Tapani: [00:08:01] Sim. Portanto, estamos hospedados no Amazon Web Services, em primeiro lugar. Temos cerca de 20 microsserviços lá. E como parte desses microsserviços, todos eles se comunicam com todos os MongoDB Atlas. Isso é implementado com o tipo de melhores práticas de presumir segurança em mente, porque a segurança e a privacidade são extremamente importantes para nós. Então, estamos usando a mudança rápida de nossos microsserviços para o MongoDB Atlas. E estamos usando um conjunto de réplicas de três nós no MongoDB Atlas, para que não haja chance de perder nenhum desses dados.
Mike: [00:08:32] E em termos do aplicativo em si, ele é em grande parte uma API? Estou certo de que há uma interface de usuário ou seu conjunto de aplicativos, mas como é o backend ou a API em termos de tecnologia?
Tapani: [00:08:43] Então, o que as pessoas veem à sua frente como, seja um aplicativo de desktop ou móvel, essa é a expressão visível disso. Ambos se comunicam com nosso backend por meio de um conjunto de REST API para autorização de autenticação, upload de dados, recuperação de dados e assim por diante. Essas REST API então pegam esses dados e os armazenam em nosso MongoDB. Portanto, a API é muito fornece-me nosso perfil de usuário para carregar essa pilha de amostras de monitores contínuos de Monitoramento de Glicose.
Mike: [00:09:13] Em que a API está escrita? Quais tecnologias você está usando?
Tapani: [00:09:16] É uma mistura de Node JS e Golang. Eu direi 80% Golang e 20% Node JS.
Nic: [00:09:23] Estou interessado em saber por que Golang é para este tipo de aplicativo. Eu não teria pensado nisso como um caso de uso típico. Então você é capaz de lançar alguma luz sobre isso?
Tapani: [00:09:32] A decisão de mudar para Golang? E esse, na verdade, é o crescente conjunto de serviços. Isso aconteceu antes do meu tempo. Eu gostaria de dizer que é muito adequado para este aplicativo específico. Isso, o serviço de backend é fundamentalmente, é um conjunto de APIs que não têm nenhuma expressão visível do usuário real. Também temos um serviço web, um front-end web para tudo isso, e isso está escrito no React e assim por diante, mas foi demonstrado que o Golang é uma linguagem muito boa para desenvolver isso, serviços especificamente que respondem a solicitações de API porque realmente tudo o que eles fazem é receber um grupo de entradas de, no chamador e traduzir, aplicar a política de negócios e assim por diante e, em seguida, armazenar os dados no Mongo. Então é uma boa maneira de fazer isso.
Nic: [00:10:16] Incrível. Sabemos que você está usando Go e Node para suas APIs e sabemos que você está usando um MongaDB como sua camada de dados. Quais recursos em particular usando com MongoDB especificamente?
Tapani: [00:10:26] No momento, mencionei que estávamos executando um conjunto de réplicas de três nós. Ainda não usamos sharding, mas essa é, na verdade, a próxima grande coisa que abordaremos em um futuro próximo, porque o conjunto de dados que temos está crescendo bastante rápido e crescerá muito rápido, ainda mais rápido no futuro, com o lançamento de um novo produto. Mas o sharding será o próximo. Fazemos muitas consultas agregadas em várias coleções diferentes. Portanto, algumas consultas bastante complicadas. E, como mencionei, a maior coleção é bastante grande. Portanto, o desempenho torna-se fundamental. É fundamental ter os índices corretos e poder procurar todos os dados corretos.
Nic: [00:11:07] Você mencionou aggregations em diversas collection em alto nível. Você pode nos explicar o que exatamente está agregando para nos dar uma ideia de um caso de uso.
Tapani: [00:11:16] Sim. Certifique-se. Na verdade, a única coisa que eu deveria ter mencionado antes é que, além de sermos sem fins comerciais, também temos código aberto. Portanto, tudo o que criamos é visível no GitHub em nosso repositório de código aberto. Então, se alguém estiver interessado nos detalhes, pode dar uma olhada lá. Mas, em um sentido mais amplo, temos uma coleção de usuários onde todos os perfis de contas de usuário são armazenados. Temos uma collection de dados ou melhor, collection de dados de dispositivo. É para onde vão todos os dados dos dispositivos diabéticos. Há outras collections para coisas como mensagens que enviamos aos usuários, e-mails, principalmente convites para participar dessa conta ou assim por diante e confirmações dessas e de outras collections diferentes para diferentes casos de uso. De modo geral, há uma coleção para cada caso de uso, como perfis de usuário ou mensagens, notificações e dados do dispositivo.
Mike: [00:12:03] E estou pensando no esquema e nas agregações em várias coleções. Você pode compartilhar como é esse esquema? E talvez até apenas o número de coleções que você está armazenando.
Tapani: [00:12:12] Certifique-se. O número de collections é realmente relativamente pequeno. É apenas meia dezenas, mas o esquema é bem direto para a maioria deles. Eles curtem os perfis de usuário. Há um limite de coisas que você armazena em um perfil de usuário, mas essa coleta de dados do dispositivo talvez seja a mais complexa porque armazena dados de todos os dispositivos, independentemente do tipo. Portanto, os dados que saem de um monitor contínuo de Glicse são diferentes dos dados que vêm de uma máquina de Insulina. Por exemplo, por exemplo. Portanto, há campos diferentes. Existem unidades diferentes com as quais estamos lidando e assim por diante.
Mike: [00:12:44] Ok, então Tapani, quais outros recursos da plataforma Atlas você está aproveitando hoje? E você já viu a escalabilidade automatizada como uma solução para o futuro?
Tapani: [00:12:55] Portanto, nosso uso do MongoDB Atlas no momento é bem direto e intensivo. Muitos dados em diferentes coleções, índices e queries agregadas que são usadas para gerenciar esses dados e assim por diante. As coisas que estamos esperando no futuro são coisas como a fragmentação, devido à escala de dados que está crescendo. Outras coisas são um data lake, por exemplo, arquivando alguns dos dados. Atualmente, nosso banco de dados de produção armazena todos os dados a partir do 2013 . E, realmente, o valor desses dados além dos últimos meses a alguns anos não é tão importante. Então, queremos arquivá-lo. Não podemos perdê-los porque são dados importantes, mas não queremos arquivá-los e movê-los para outro lugar. Então, a bucketização dos dados das formas mais eficazes. E por isso é mais rápido o acesso por diferentes partes da empresa.
Mike: [00:13:43] Portanto, há alguns recursos realmente atraentes disponíveis atualmente para arquivamento on-line. Acho que podemos ajudar com certeza. E, no futuro, temos algumas coisas muito interessantes acontecendo no espaço da série temporal. Portanto, fique atento a isso. Falaremos mais sobre isso em nossa conferência .live em julho. Portanto, fique atento a isso.
Nic: [00:14:04] Ei, mique, que tal você fazer uma declaração sobre essa conferência agora?
Mike: [00:14:06] Sim, com certeza. É a nossa maior conferência de usuários do ano. E nos reunimos, milhares de desenvolvedores se juntam a nós e apresentamos todas as atualizações de recursos. Estamos falando do MongoDB 5.0, que é o último lançamento e alguns anúncios realmente superemocionantes lá. Há muitos intervalos e atividades de quebra o memória e uma ótima maneira de se conectar à MongoDB Community. Você pode obter mais informações em mongodb.com/live. Então, Tapani, muito obrigado por compartilhar os detalhes de como você está aproveitando o mongo. Como mencionamos anteriormente, este é um aplicativo que os usuários compartilharão detalhes muito confidenciais sobre sua saúde. Quer falar um pouco sobre a segurança?
Tapani: [00:14:49] Certifique-se. Sim, na verdade, é uma peça extremamente importante para nós. Então, primeiro de todos os APS de que mencionamos anteriormente, esses são todo o tráfego é criptografado em trânsito. Não há acesso não autorizado ou não autenticado a quaisquer outros dados ou API. No MongoDB Atlas, o que obviamente estamos aproveitando é que usamos a criptografia em repouso. Portanto, todos os dados armazenados pelo MongoDB são criptografados. Estamos usando o emparelhamento VPC entre nossos serviços e o MongoDB Atlas para garantir que o tráfego seja ainda mais seguro. E sim, privacidade e segurança dos dados é fundamental para nós, porque é tudo o que os serviços humanos e de saúde chamam de informações de saúde protegidas ou PHI. Esse é o tipo de informação privada de mais alto nível que você poderia ter.
Nic: [00:15:30] Então, em relação às informações que estão sendo enviadas, sabemos que as informações estão sendo criptografadas em repouso. Você está coletando dados que podem ser confidenciais, como números de segurança social e coisas do tipo, que podem precisar ser criptografados em um nível de campo para evitar olhos indiscretos de DBAs e semelhantes?
Tapani: [00:15:45] Não coletamos nenhuma informação de segurança social ou qualquer coisa do tipo. Esses são dados exclusivamente de saúde. Um, dados de dispositivos para diabete e assim por diante. Sem cartões de crédito. Sem SSNs.
Nic: [00:15:56] Peguei. Então, nada que possa técnicamente vincular as informações a um indivíduo ou ser usado de forma maliciosa?
Tapani: [00:16:02] Não dessa forma agora. Ou seja, parece correto dizer que essas são obviamente as informações de saúde das pessoas, de modo que são confidenciais, independentemente de poderem ser usadas de forma maliciosa ou não.
Mike: [00:16:13] Faz sentido. Ok. Então, gostaria de saber se você quer saber um pouco sobre o que vem a seguir para Tidepool. Você fez uma breve menção de outro aplicativo que estará lançando. Talvez fale um pouco sobre o roteiro.
Tapani: [00:16:25] Claro. Estamos trabalhando, além dos produtos existentes, estamos trabalhando em um novo produto chamado Tidepool Loop e que é um esforço para construir um sistema automático de dosagem de insulina. Isso assume um papel mais proativo no tratamento do diabetes. Os produtos existentes mostram dados que você já possui. Na verdade, isso está ajudando você a administrar insulina. E então é um aplicativo para smartphone que está atualmente sob revisão da FDA. Estamos trabalhando com alguns grandes parceiros e com o espaço de dispositivos médicos para lançar isso com eles, com seus produtos.
Mike: [00:16:55] Bem,adoro a natureza aberta do Tidepool. parece que tudo o que você está fazendo é meio que aberto. Do código aberto à declaração completa na pilha de arquitetura. Isso é algo que eu realmente aprecio como desenvolvedor. "Adoro a capacidade de me afundar um pouco mais e ver como as coisas funcionam. Há mais alguma coisa que você gostaria de abordar do ponto de vista organizacional? Tem mais detalhes que você queira compartilhar?
Tapani: [00:17:16] Certifique-se. Digo, você mencionou a transparente e aberta. Praticamos o que algumas pessoas podem chamar de transformação radical. Nosso software não é apenas open source. Está no Github. Qualquer pessoa pode dar uma olhada nele. Nossas diretorias do JIRA para bugs e assim por diante. Eles também estão abertos, visíveis para qualquer pessoa. Nossas interações com o LDAP, nossas atas de reunião, registros e assim por diante. Nós também os disponibilizamos. Nosso manual do funcionário está aberto. Na verdade, bifurcamos o manual do funcionário de outra empresa e também abrimos o nosso. E na esperana de que as pessoas possam se beneficiar disso. Em última análise, a razão de fazermos isso é esperar poder ajudar a melhorar a saúde pública fazendo tudo o que pudermos para torná-lo público. E no que diz respeito aos projetos de código aberto, temos várias pessoas por lá que estão fazendo contribuições de código aberto ou pull requests e assim por diante. Agora, como operamos no espaço de saúde, temos que revisar esses envios com muito cuidado antes de integrá-los ao produto. Mas sim, aceitamos solicitações completas de pessoas que obtivemos envios da comunidade, por exemplo, traduções para produtos em espanhol, alemão e francês. Mas temos que verificá-los antes de montá-los.
Mike: [00:18:25] Bem, esta foi uma ótima discussão. Há mais alguma coisa que você gostaria de compartilhar com o público antes de começarmos a encerrar?
Tapani: [00:18:29] Algumas coisas estão fechando. Então, eu estava, suponha que seria um é, antes de tudo, somos 100 por cento remotos e uma organização globalmente distribuída. No momento, temos pessoas em cinco países em 14 estados nos EUA. Estamos sempre contratando de uma forma ou de outra. Portanto, se alguém estiver interessado em, poderá dar uma espreitadela às nossas publicações de emprego Tidepool.org/jobs. A outra coisa é que, como organização não lucrativa, também aceitamos doações de forma inesperada. Então tem outro link lá que vai doar. E se alguém estiver interessado nos detalhes técnicos de como construímos tudo isso, há alguns links que posso disponibilizar. Um deles é tidepool.org/pubsecc, que será R, que é um white paper de segurança, basicamente muitas informações sobre a arquitetura e infraestrutura e segurança e assim por diante. Também publicamos uma série de postagens de risco de derramamento de amostras de nosso corpo, em tirapool.org/blog, onde a equipe de engenharia publicou algumas coisas sobre nossa infraestrutura. Passamos por algumas atualizações bastante significativas nos últimos dois anos e, finalmente, github.com/tidepool é onde estão todas as nossas fontes.
Nic: [00:19:30] Incrível. E você mencionou que é uma empresa remota e que estava procurando candidatos. Esses candidatos foram globais, estritamente para os EUA, isso importa?
Tapani: [00:19:39] Portanto, contratamos em qualquer lugar que as pessoas estejam e elas trabalham de onde estiverem. Não exigimos realocação. Não exigimos um visto no sentido de que você teria que vir para os EUA, por exemplo, para trabalhar. No momento, temos pessoas em cinco países: nós, Canadá, Reino Unido, búlgara e Itália.
Mike: [00:19:55] Bem, Tapani, quero agradecer muito por se juntar a nós hoje. Eu realmente gostei da conversa.
Tapani: [00:19:58] Obrigado também. Gostei muito.