Android

8 jul, 2016

Desenvolva uma solução de assistência médica IoT segura com o Bluemix – Parte 01

Publicidade

E se você tivesse um aplicativo que fornecesse notificações de seu médico sobre sua frequência cardíaca e outras estatísticas de saúde? Esta série de artigos descreve um centro médico fictício que requer compartilhamento de dados de milhares de dispositivos sensores de monitoramento cardíaco. Um dispositivo de monitoramento que pode ser vestido é conectado em um dispositivo Android que envia os dados do sensor aos sistemas no local. A parte do paciente de um aplicativo (Heart Echoer) envia dados para pulsação, eletrocardiograma (ECG) em forma de onda e taxa de respiração. A parte clínica do aplicativo recebe e exibe os dados para avaliação.

Nesta primeira parte do artigo, você vai aprender como usar o IBM Watson IoT Platform no Bluemix para transmitir dados com segurança de um dispositivo de monitoramento cardíaco para um sistema de assistência médica no local. Dados do paciente e notificações subsequentes de um médico receptor são transmitidos usando o protocolo de mensagem MQTT e o TLS V2.1. A solução usa o serviço Bluemix Secure Gateway para se conectar a um barramento de serviço corporativo (IBM Integration Bus Healthcare Pack V3.0). O IBM Integration Bus transforma mensagens no formato Health Level 7 (HL7) e as armazena em um repositório de dados corporativo. A segunda parte vai mostra como projetar e implementar a solução.

Desafios de segurança para soluções IoT

Dispositivos IoT produzem grandes quantidades de dados desprotegidos. Como resultado, a segurança talvez seja o maior desafio enfrentado por organizações de assistência médica que desejam implementar uma solução de IoT. Se os dados forem transmitidos a partir de smartphones, carros, dispositivos domésticos ou sensores industriais, qualquer solução de IoT de ponta a ponta deverá atender aos requisitos em privacidade de dados, segurança, governança e confiança.

Dispositivos sensores que são usados em assistência médica precisam ser protegidos usando autenticação, autorização, segurança no nível de transporte (comunicação criptografada) e Federal Information Processing Standards. Portanto, executivos de tecnologia devem focar nos requisitos a seguir quando trabalharem com fornecedores, provedores de terceirização, instituições relacionadas e pacientes:

  • Os dados do dispositivo sensor devem ser armazenados e transmitidos com segurança;
  • O sistema corporativo deve ser seguro e deve ser autorizado a acessar os dados do dispositivo;
  • As APIs usadas para conectar o software e os dispositivos devem ser seguras.

Serviço do IBM Watson IoT Platform para tratar dos desafios de segurança

O Watson IoT Platform no Bluemix fornece uma maneira segura de conectar dispositivos e aplicativos à nuvem. Quando dispositivos são registrados ou chaves de API são geradas, o Watson IoT Platform fornece os tokens de autenticação para a conectividade. O serviço permite que dispositivos se conectem com segurança usando:

  • Uma combinação exclusiva de ID do cliente e token de autenticação que somente você conhece;
  • Conectividade do dispositivo sobre TLS V1.2;
  • O MQTT V3.1.1, um padrão aberto que permite fácil interoperabilidade entre várias plataformas e linguagens.

IBM Integration Bus Healthcare Pack para transmissão e integração de dados com dispositivos médicos

O IBM Integration Bus Healthcare Pack é desenvolvido no IBM Integration Bus para suportar aplicativos em ambientes de assistência médica. Ele contém os recursos a seguir:

  • Modelos de mensagem que são usados para analisar, rotear e transformar mensagens HL7 em um fluxo de mensagens;
  • Nós de entrada e saída para integrar aplicativos clínicos HL7 com fluxos de mensagens;
  • Integração com dispositivos médicos para capturar dados;
  • Padrões específicos da assistência médica usados em soluções para conectar aplicativos médicos;
  • Transmissão de dados para aplicativos médicos;
  • Eventos de auditoria para suportar a confidencialidade das informações do paciente, a integridade dos dados e a prestação de contas do usuário;
  • Capacidade de extrair informações a partir de dados de assistência médica em fluxos de mensagens e enviar as informações aos data warehouses para análise.

O cenário de assistência médica de amostra

FictLifeCenter é um centro de assistência médica centralizado fictício nos EUA. FictLifeCenter deseja que dados de dispositivos sensores de monitoramento cardíaco sejam entregues por hora ao seu sistema de TI. O centro propõe implementar o Heart Echoer, um aplicativo Android que se conecta a um dispositivo de monitoramento para capturar e enviar dados. O Heart Echoer possui duas partes – uma para o médico e outra para o paciente.

A parte do paciente do aplicativo envia dados do sensor para pulsação, ECG em forma de onda e taxa de respiração. A parte clínica do aplicativo recebe e exibe os dados para avaliação. Ele também lista todos os perfis do paciente registrados e designados àquele médico. O paciente conecta o dispositivo de monitoramento ao seu peito e o aplicativo Heart Echoer captura os dados por hora. Os dados capturados são convertidos no formato HL7 padrão de mercado. Os dados são, então, integrados no sistema de assistência médica usando o serviço Watson IoT Platform e fluxos de mensagens no IBM Integration Bus Healthcare Pack.

Um médico registrado do FictLifeCenter obtém um relatório analítico para cada paciente para verificar o status do coração do paciente. Ele avalia os dados e envia uma notificação. O paciente recebe uma notificação que avisa se deve consultar um médico.

A figura a seguir mostra a sequência de fluxo de trabalho para a solução de assistência médica:

image001

A sequência de fluxo de trabalho é:

  • O paciente registra-se off-line por meio da central de atendimento do FictLifeCenter e recebe credenciais de login;
  • O paciente conecta o dispositivo sensor de monitoramento cardíaco ao seu peito e abre o aplicativo Heart Echoer em seu dispositivo móvel. As informações sobre o dispositivo são registradas na nuvem e as credenciais são armazenadas localmente no dispositivo móvel. O registro é uma atividade única quando um paciente abre o aplicativo pela primeira vez;
  • O paciente efetua login para acessar os serviços do Heart Echoer do FictLifecenter. Ele seleciona um ou mais serviços: taxa de batimento cardíaco, condição de ECG e taxa de respiração;
  • Dependendo da configuração (ativado ou desativado) para cada serviço, o sensor inicia a entrega por hora de dados de funcionamento do coração no formato HL7 para o FictLifeCenter;
  • O FictLifeCenter persiste os dados médicos do sensor em seu armazenamento de dados médicos;
  • O médico usa o aplicativo Heart Echoer para exibir uma lista de todos os pacientes registrados com este nome;
  • Quando o médico seleciona um nome de paciente e data, o aplicativo recupera e exibe um relatório analítico para o paciente a partir do armazenamento de dados médicos;
  • O médico avalia os dados do coração e, em seguida, usa o aplicativo para enviar uma notificação de volta a esse paciente. O comutador de serviço deve estar configurado como ON no aplicativo do paciente;
  • O paciente recebe uma notificação sobre sua condição cardíaca (OK ou NÃO OK – Visite o Médico).

A UI para o aplicativo Android Heart Echoer

A interface com o usuário para o aplicativo Android Heart Echoer consiste em uma página de entrada para o paciente e o médico, uma página de seleção do serviço para o paciente, uma página de envio de notificação e uma página de recebimento de notificação.

Página de entrada (aplicativo do paciente)

  • O paciente se registra off-line contatando a central de atendimento do FictLifeCenter;
  • Quando um paciente abre o aplicativo Heart Echoer pela primeira vez, o dispositivo é registrado no Watson IoT Platform conforme indicado por [1] na figura a seguir. O dispositivo sensor deve ser conectado fisicamente no dispositivo móvel;
  • A página de entrada exibe o comutador ON|OFF para o Plug-in Heart Echoer Device. Na figura a seguir, o comutador está configurado como ON [1];
  • O paciente efetua login no aplicativo conforme indicado por [2] na figura a seguir;

image002

Página de seleção de serviço (aplicativo do paciente)

  • Após o paciente efetuar login, ele visualiza a página de seleção de serviço. Ele conecta o dispositivo sensor ao dispositivo móvel;
  • O paciente altera a configuração do dispositivo para ON conforme indicado por [1] na figura a seguir. O paciente seleciona um ou mais serviços (Heart Beat, ECG, Breathing) para os quais ele deseja receber uma notificação, conforme indicado por [2] na figura;
  • Para cada serviço que o paciente seleciona, dados do sensor são enviados à central de assistência médica no formato de mensagem HL7 para avaliação por um médico;
  • Após o médico avaliar os dados, ele envia uma notificação. O paciente recebe a notificação e pode visualizar os resultados se o comutador da Notificação estiver ON, conforme indicado por [3] na figura;
  • Inicialmente, nenhuma informação é exibida na página de notificação de serviços, conforme indicado por [4] na figura.

image003 (1)

Página de seleção do paciente (aplicativo do médico)

Quando um médico abre o aplicativo Heart Echoer, uma página de seleção do paciente é aberta.

  • O médico visualiza a lista de pacientes registrados com seu nome;
  • Para visualizar dados de pulsação, ECG e respiração em uma janela PDF, ele toca em um botão de relatório do paciente, conforme indicado por [1] na figura a seguir;
  • O médico, em seguida, avalia o relatório;
  • O médico seleciona o nome do paciente (indicado por [2] na figura) para visualizar detalhes do paciente. Ele envia uma notificação (OK, Não OK) para esse paciente.

image004

Página de envio de notificação (aplicativo do médico)

Um médico seleciona um paciente para ver o relatório de dados cardíacos do paciente, avalia os dados e envia uma notificação com base no serviço selecionado pelo paciente.

  • Após o médico visualizar os detalhes do paciente, ele indica o resultado de sua avaliação para cada serviço;
  • Se ele tocar no x para um serviço, a notificação que é enviada é Não OK e o paciente precisa visitar um médico;
  • Se ele toca no visto (✔) para um serviço, a notificação que é enviada é OK;
  • Conforme indicado por [1] na figura a seguir, o paciente possui um problema no ECG. A Pulsação e a Taxa de Respiração estão boas, conforme indicado por [2] na figura;
  • O médico toca em Enviar Notificação para enviar uma notificação ao paciente, conforme indicado por [3] na figura.

image005 (2)

Página de recebimento de notificação (aplicativo do paciente)

Um paciente recebe uma notificação que indica se sua condição cardíaca está OK ou não, com base no serviço de monitoramento cardíaco que ele selecionou.

  • Após o médico enviar a notificação, o paciente pode visualizar os resultados. O comutador de Notificação deve ser configurado como ON, conforme indicado por [1] na figura a seguir;
  • Os resultados são OK ou Não OK – Visite o Médico, conforme indicado por [2] na figura.

image006

Solução técnica do FictLifeCenter

O núcleo da solução de assistência médica do FictLifeCenter é baseado na tecnologia integrada do IBM Bluemix Service. Ele usa o Watson IoT Platform, SSO, Node-RED e o serviço Secure Gateway conforme mostrado na figura a seguir. O aplicativo Android (para paciente e médico) e o IBM Integration Bus são os sistemas externos. Eles criam a interface com o núcleo usando os protocolos MQTT e HTTP subjacentes.

image007

Visão geral arquitetural

A figura a seguir mostra o modelo arquitetural para a solução de assistência médica:

image008 (1)

A sequência de atividades é:

  • O aplicativo Android Heart Echoer (versão do paciente e médico) é registrado com o Watson IoT Platform como um dispositivo. As informações de registro são armazenadas no armazenamento local do Android usando SQLLite;
  • Nesta solução, o paciente é autenticado usando o serviço Bluemix SSO e o Security Assertion Markup Language (SAML) Identity Provider (IdP). É possível usar seu mecanismo de login preferencial. O Bluemix SSO não suporta atualmente dispositivo móvel;
  • O aplicativo do paciente:
    • Conecta-se ao serviço do Watson IoT Platform com um ID do dispositivo e token de autenticação.
    • Assina um tópico específico para receber notificações de um médico.
    • Recebe mensagens do sensor cardíaco a partir do dispositivo sensor e as publica no formato HL7 no Watson IoT Platform.
  • Um aplicativo Bluemix Node-RED recebe dados do sensor usando um nó de entrada do Watson IoT Platform. O aplicativo publica dados no broker MQTT do FictLifeCenter usando um nó de saída MQTT;
  • Esta comunicação usa o Secure Gateway Service no Bluemix com um terminal de broker MQTT corporativo;
  • Um fluxo de mensagem do IBM Integration Bus recebe mensagens, transforma a mensagem com a ajuda do IBM Integration Bus Healthcare Pack e armazena as informações em um banco de dados;
  • Cognos® BI Report Studio é usado para analisar os dados transformados e preparar um relatório;
  • Um médico acessa um relatório para um paciente específico e avalia os dados;
  • O médico usa o aplicativo para publicar uma notificação no Bluemix Watson IoT Platform usando um tópico específico. O aplicativo do paciente recebe e exibe a notificação;
  • Todas as APIs REST são desenvolvidas e implementadas no servidor de aplicativos corporativos.

Modelo de colaboração do componente

A figura a seguir mostra os componentes da solução FictLifeCenter e seus relacionamentos uns com os outros:

image009

A tabela a seguir descreve cada componente da solução FictLifeCenter:

Descrições do componente para a Solução FictLifeCenter

Nome Descrição
Registrador do Dispositivo Registra o dispositivo sensor Health Echoer no Watson IoT Platform no Bluemix. Armazena as credenciais de registro no armazenamento de aplicativos do dispositivo móvel.
UI do Heart Echoer (Paciente/Médico) A UI para o aplicativo baseado em Android para paciente e médico.
Login Manipula a autenticação do paciente na central de assistência médica do FictLifeCenter.
Receptor de Dados do Sensor Coleta dados do sensor (pulsação, ECG e taxa de respiração) do Heart Echoer e os transforma em mensagens HL7 no aplicativo móvel.
Publicador de Dados do Sensor Converte dados do sensor no formato HL7, em seguida, publica os dados no Watson IoT Platform com um tópico específico.
Cliente MQTT do aplicativo móvel do paciente Faz conexões seguras com o serviço de nuvem do Watson IoT Platform com um ID do usuário e senha usando TLS.
Assinante de Dados do Sensor Um aplicativo Node-RED que aceita todas as mensagens do dispositivo sensor publicadas no serviço do Watson IoT Platform. Identifica a mensagem do sensor móvel do paciente.
Watson IoT Platform Cloud (componente do Bluemix) Componente de nuvem Watson IoT Platform.
Assinante de Notificação do Médico Assina um tópico específico na nuvem do Watson IoT Platform e recebe uma mensagem do médico, se houver. Transmite a mensagem ao Health Echoer para o componente da UI do paciente.
Publicador de Dados do Sensor para Broker Corporativo Publica dados do sensor (formato HL7) no broker MQTT corporativo por meio do conector Bluemix Secure Gateway a partir do Bluemix.
Cliente Docker do gateway seguro
(Componente Pronto)
Um componente integrado instalado em um servidor DMZ na rede corporativa. Usa funções do contêiner Docker para acessar terminais corporativos da nuvem pública do Bluemix por meio de seu serviço Secure Gateway.
Assinante da Mensagem do Sensor Um fluxo de mensagens do IBM Integration Bus que assina um tópico específico. Recebe mensagens do sensor (HL7) e grava as mensagens em uma fila do WebSphere® MQ.
Analisador Sintático de Mensagem do Sensor Um fluxo de mensagens do IBM Integration Bus que seleciona mensagens do sensor a partir de uma fila do WebSphere MQ. Analisa mensagens usando o IBM Integration Bus. Usa um padrão de transformação HL7 para Extended Structured Query Language (ESQL) e armazena mensagens em um banco de dados.
Armazenamento de Dados Médicos Área de persistência que faz parte do Analisador Sintático de Mensagem do Sensor. Usado para armazenar dados analisados nos esquemas de banco de dados necessários.
Armazenamento de Dados do Paciente Área de persistência que contém detalhes de parte e demográficas do paciente (por exemplo, nome do paciente, ID, endereço, ID do médico e ID do cartão de saúde).
Extrator dos Dados Paciente Recupera uma lista de todos os pacientes registrados para um ID do médico a partir do banco de dados e exibe a lista.
Gerador de Relatório de Dados Médicos do Paciente Recupera dados cardíacos para um paciente e gera e exibe um relatório analítico.
Publicador de Notificação do Médico A partir do aplicativo do médico, publica notificações na nuvem do Watson IoT Platform que, em seguida, envia a notificação ao aplicativo do paciente.
Cliente MQTT do Aplicativo Móvel do Médico A partir do aplicativo do médico, conecta-se à nuvem do Watson IoT Platform com segurança sobre o protocolo MQTT com um ID do usuário e um token de autenticação.

Conclusão

Nesta primeira parte do artigo, você aprendeu como os dados de dispositivos sensores médicos podem ser transmitidos com segurança aos sistemas corporativos usando o IBM Watson IoT Platform no Bluemix. Na solução de exemplo, um aplicativo Android que está conectado a um dispositivo de monitoramento cardíaco transmite dados do paciente para um centro médico fictício. A solução usa o serviço de gateway do Bluemix Secure e o IBM Integration Bus Healthcare Pack. Na Parte 2, você vai aprender como projetar e implementar cada componente da solução.

Agradecimentos

Os autores agradecem Jay Patro, IBM Certified IT Architect, e Radha Mohan Dey, IBM Certified IT Specialist, por suas enormes contribuições, revisões e sugestões importantes para este artigo.

bluemix

bluemix01

***

Artigo escrito em colaboração com:

Supal ChowdhurySupal Chowdhury

p-sganguly60Subhrashis Ganguly