Blockchain powered platform for consolidated, shared and trusted healthcare

Detalhes bibliográficos
Autor(a) principal: Leal, João Marques de Barros Mendes
Data de Publicação: 2019
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10451/39913
Resumo: Tese de mestrado, Engenharia Informática (Engenharia de Software) Universidade de Lisboa, Faculdade de Ciências, 2019
id RCAP_69e9241a63151c8879db5532fcb4fa5e
oai_identifier_str oai:repositorio.ul.pt:10451/39913
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Blockchain powered platform for consolidated, shared and trusted healthcareBlockchainSaúdeConfiabilidadeConsolidaçãoControlo de acesso à informaçãoTeses de mestrado - 2019Departamento de InformáticaTese de mestrado, Engenharia Informática (Engenharia de Software) Universidade de Lisboa, Faculdade de Ciências, 2019In recent years blockchain, has become a topic of much debate and interest. This is due to the increase in valuation of cryptocurrencies and has attracted the attention of the public, corporations and governments. Cryptocurrencies use blockchain as the underlying technology. Blockchain refers to a ledger that keeps a permanent and immutable record of transactions and is replicated amongst all nodes. It offers guarantees of trust, immutability and transparency of the data, decentralization and elimination of third parties of data storage. The healthcare industry is one of the biggest and most valuable industries in the world. It encompasses governments, public, private enterprises and citizens. However, there are some issues surrounding the current way the industry operates. Heavy decentralization, lack of communication between professionals and lack of trust in the information are just some of the issues that plague the industry. Considering these facts, the purpose of this dissertation is to create a platform to study the applicability of blockchain the solve the problems of the healthcare industry. This platform will store medical data of patients, allow them to manage access to it and give medical professionals the capability to review, add or update the information of the person they are treating and medical labs the ability to use it to deliver analyses reports. The platform represents only a small use case of blockchain in healthcare, but it will allow the study of the feasibility of a larger system and its ability to solve the problems mentioned above.Nos últimos anos as criptomoedas, tornaram-se tema de muito debate e interesse. Esta atenção foi causada pelo aumento de valor das criptomoedas. Muitas indústrias ficaram interessadas nas aplicações possíveis da tecnologia subjacente, blockchain. Blockchain refere-se a um livro-razão que mantém um registo permanente e imutável de transações que é replicado em todos os nós. A tecnologia blockchain oferece garantias de integridade dos dados, confiança na sua validade, transparência, descentralização e remove a necessidade de terceiras partes. O setor da saúde é uma das maiores e mais valiosas indústrias do mundo. Abrange governos, empresas públicas, privadas e cidadãos. No entanto, existem alguns problemas na maneira como a indústria opera atualmente. A grande descentralização, a falta de comunicação entre profissionais e a falta de confiança na informação são apenas alguns destes problemas. Considerando estes factos, o objetivo desta dissertação é criar uma plataforma para estudar a aplicabilidade da blockchain na solução dos problemas do setor de saúde. Essa plataforma armazenará dados médicos de pacientes, permitirá que eles controlem o acesso a esses dados, dará aos médicos a capacidade de aceder, adicionar e atualizar os dados da pessoa que estão a tratar e aos laboratórios médicos a possibilidade de entregar relatórios de análises. A plataforma representa apenas um pequeno caso de uso de blockchain na saúde, mas permitirá o estudo da viabilidade de um sistema maior e sua capacidade de resolver os problemas mencionados acima. O trabalho foi desenvolvido na Accenture, uma consultora multinacional com grande foco na área da tecnologia. Outros dois colegas da Faculdade de Ciências também estavam a desenvolver projetos de blockchain com o mesmo objetivo, mas para indústrias diferentes. O meu supervisor na Accenture foi o Tiago Minchin, contando também com o Álvaro Silva na equipa da Accenture envolvida no projeto. Inicialmente, na fase de identificação de casos de uso, trabalhei em conjunto com os meus colegas da faculdade, mas quando ficou definido qual o caso de uso a desenvolver o trabalho tornou-se individual. Para além da identificação do caso de uso, estudei várias possíveis implementações de blockchain de modo a escolher a mais correta para construir a plataforma. No final decidi utilizar o Hyperledger Fabric desenvolvido pela Fundação Linux. As razões para essa escolha foram o suporte de smart contracts, código que é usado para definir lógica de negócio na blockchain, e facto de o Fabric ser uma blockchain privada e poder ser permissionada, o que permite gerir as questões da privacidade dos dados. Os smart contracts podiam ser escritos nalgumas linguagens das quais eu escolhi o Node.js, pois era a melhor documentada e utilizada para o Hyperledger Fabric. Decidi também desenvolver a interface de utilizador utilizando Angular. Após identificado o caso de uso, a blockchain e a linguagem de programação, procedi para o desenvolvimento das user stories, levantamento de requisitos, partes interessadas e arquitetura. Com tudo isto, iniciei o desenvolvimento da plataforma, seguindo os exemplos e tutoriais fornecidos pelo Hyperledger. Em primeiro lugar criava os smart contracts e depois a interface de utilizador a funcionalidade. Em seguida fazia testes para tentar detetar erros, estes eram sempre funcionais. Quando estivesse tudo a trabalhar corretamente, repetia o processo para a funcionalidade seguinte. Quando terminei a implementação procedi à documentação de todo o código e à remoção de métodos, classes e módulos criados durante o desenvolvimento que já não eram necessários para a versão final. Existem três tipos de utilizadores na plataforma: pacientes, médicos e laboratórios médicos. Os pacientes podem consultar o seu historial médico, consultas, relatórios de análises e controlar o acesso a estes. Os únicos dados que estão sempre visíveis são as informações essenciais para poderem ser usadas em emergências. Os laboratórios usam a plataforma para adicionar relatórios de análises e podem consultar os relatórios que criaram. Os médicos, mediante autorização por parte do paciente, podem iniciar consultas, nas quais vão poder registar a consulta, adicionar ou atualizar dados médicos e consultar o historial médico, de consultas e relatórios de análises. A interface de utilizador é uma aplicação que corre num navegador. A comunicação com a blockchain é feita através de um servidor, também ele escrito em Node.js. A blockchain como referido anteriormente, é a Hyperledger Fabric versão 1.4.0. É sobre esta implementação que instanciei os smart contracts, ou chaincode como são chamados no Fabric. Como referido anteriormente estes foram escritos em Node.js. Existem cinco chaincodes, medical information, analyses reports, medical history, consultation history e users. Medical Information é onde está definida a informação médica essencial e a lógica de negócio associada a esta. Analyses Reports define os relatórios de análises, a sua lógica e implementa as regras de acesso e criação. Medical History define os três tipos de dados guardados: alergias, medicamentos e condições médicas, a lógica de negócio e implementa o acesso a estes. Na consultation history está definida a consulta, as funcionalidades associadas a esta e as regras sobre o acesso e criação da mesma. Users define os três tipos de utilizador, lógica de negócio e acesso. Os utilizadores do tipo paciente mantêm uma lista dos médicos e instituições médicas autorizadas com os respetivos níveis de acesso aos vários tipos de dados médicos. Esta lista é usada pelos outros chaincodes para o controlo de acesso aos dados. Toda a plataforma, aplicação de navegador, servidor e blockchain com os chaincodes, correm localmente em contentores Docker instalados numa máquina virtual Ubuntu. Este projeto foi a primeira vez que trabalhei com blockchain em geral e Hyperledger Fabric em particular, pelo que existem vários aspetos da minha implementação que faria de outra forma, agora que tenho mais experiência. O desenvolvimento do chaincode foi feito com base nos tutoriais disponibilizados para o Fabric, contudo pelos motivos mencionados anteriormente a organização do código não é a mais eficiente ou necessariamente a mais correta. Algo semelhante aconteceu na criação da interface de utilizador. Criação de interfaces gráficas de utilizador é algo que não foi o principal foco da minha instrução universitária pelo que esta foi também a primeira vez que utilizei Angular, o que levou a problemas de estruturação de código semelhantes ao que aconteceu com o chaincode. Durante todo o trabalho recebi input da equipa da Accenture sobre as funcionalidades que deveriam ser implementadas e sugestões sobre a interface do utilizador e como estas deveriam ser estruturas para serem mais intuitivas. Outra área onde houve bastante ajuda por parte da equipa da Accenture foi na identificação do caso de uso, providenciando conhecimento das áreas de negócios analisadas que ajudaram na seleção. Com a plataforma terminada e usando todo o conhecimento que acumulei durante o estágio na Accenture, consegui concluir que existe utilidade para um sistema semelhante a ser implementado em maior escala e com mais funcionalidades. Possíveis casos onde isto seria vantajoso de implementar seriam num sistema público de saúde, i.e., em todos hospitais públicos de um país ou num operador de saúde privado com múltiplos hospitais ou clínicas. Para ambos os casos, a implementação iria substituir os sistemas atuais e daria, entre outros benefícios, aos pacientes controlo sobre quais os médicos dentro dessa rede que teriam acesso aos seus dados. Numa maior escala este sistema poderia ligar sistemas públicos e privados, com cada operador, estado e diferentes empresas gestoras de hospitais teriam sub-redes que estavam ligadas entre si permitindo o acesso aos dados médicos dos pacientes, mediante autorização, a todos os envolvidos. Esta solução ideal iria resolver os problemas mencionados anteriormente.Veiga, Pedro, 1952-Repositório da Universidade de LisboaLeal, João Marques de Barros Mendes2019-10-22T15:01:39Z201920192019-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10451/39913TID:202387577enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-08T16:38:55Zoai:repositorio.ul.pt:10451/39913Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T21:53:41.421577Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Blockchain powered platform for consolidated, shared and trusted healthcare
title Blockchain powered platform for consolidated, shared and trusted healthcare
spellingShingle Blockchain powered platform for consolidated, shared and trusted healthcare
Leal, João Marques de Barros Mendes
Blockchain
Saúde
Confiabilidade
Consolidação
Controlo de acesso à informação
Teses de mestrado - 2019
Departamento de Informática
title_short Blockchain powered platform for consolidated, shared and trusted healthcare
title_full Blockchain powered platform for consolidated, shared and trusted healthcare
title_fullStr Blockchain powered platform for consolidated, shared and trusted healthcare
title_full_unstemmed Blockchain powered platform for consolidated, shared and trusted healthcare
title_sort Blockchain powered platform for consolidated, shared and trusted healthcare
author Leal, João Marques de Barros Mendes
author_facet Leal, João Marques de Barros Mendes
author_role author
dc.contributor.none.fl_str_mv Veiga, Pedro, 1952-
Repositório da Universidade de Lisboa
dc.contributor.author.fl_str_mv Leal, João Marques de Barros Mendes
dc.subject.por.fl_str_mv Blockchain
Saúde
Confiabilidade
Consolidação
Controlo de acesso à informação
Teses de mestrado - 2019
Departamento de Informática
topic Blockchain
Saúde
Confiabilidade
Consolidação
Controlo de acesso à informação
Teses de mestrado - 2019
Departamento de Informática
description Tese de mestrado, Engenharia Informática (Engenharia de Software) Universidade de Lisboa, Faculdade de Ciências, 2019
publishDate 2019
dc.date.none.fl_str_mv 2019-10-22T15:01:39Z
2019
2019
2019-01-01T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10451/39913
TID:202387577
url http://hdl.handle.net/10451/39913
identifier_str_mv TID:202387577
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799134475216486400