Giter VIP home page Giter VIP logo

cloudecg's Introduction

Projeto de ECG remoto

Aqui voce encontra o codigo fonte do servidor (back-end) do projeto ECG remoto. ECG remoto eh um projeto de pesquisa com apoio do IFSul

Este servidor esta preparado para receber dados de exames de Eletrocardiograma (ECG) enviados de dispositivos com capacidade de coneccao a internet. O hardware para realizacao do exame e envio dos dados coletados esta em desenvolvimento.

O servidor esta hospedado em https://ecgremote.herokuapp.com.

A visualizacao dos dados do servidor esta disponivel no nosso front-end O front-end esta em http://tsi.charqueadas.ifsul.edu.br/~ecgremoto/ - versao em desenvolvimento

Preliminares

Voce tem 2 formas de utilizar o servidor deste repositorio

  1. Full Local - Configurando todo o ambiente em sua maquina local. Nesta opcao voce vai precisar instalar todas as ferramentas e fazer o download deste repositorio.
  2. Docker Version - Montando o ambiente pronto e sem fazer download. Nesta opcao voce so precisa instalar o Docker e montar a imagem do ambiente pronto diretamente da nuvem, sem fazer download.

Requisitos

Full Local

Docker Version

Heroku CLI

Instalação

Full Local

  1. Faca download deste repositorio
git clone https://github.com/MarceloSkank/ECGRemote .
  1. Instale o pacote yarn do NodeJS
npm install --global yarn
cd EcgRemote/
yarn install
  1. Instale o BiosSPy e outras bibliotecas nescessarias por meio do pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
pip install biosspy
pip install certifi
pip install request
pip install pymongo[srv]
pip install python-dotenv
  1. Verifique a instalacao do BiosSPy
cd python_src
python test.py

Utilizacao

Apos o set-up do ambiente escolhido, voce precisa destes comandos para executar

Full Local

No diretorio ECGRemote execute:

yarn dev

Visualize o servidor rodando no navegador:

http://localhost:${SERVER_PORT}/

Docker Version

Utilize o comando abaixo para montar e rodar a API ECG Remoto e o Banco de Dados MongoDB.

sudo docker-compose up -d

O script do Docker Compose monta uma imagem para o MongoDB e uma imagem para a API ECG Remoto. A imagem do MongoDB vem diretamente do repositorio publico Docker Hub. Ja a imagem sera construida localmente seguindo as instrucoes do Dockerfile deste repo. Em seguida, dois containers sao instaciados a partir das imagens.

  1. Verifique se DB_ECG e CLOUD_ECG estao na lista de containers e se estao executando
sudo docker ps -a

Coluna STATUS da figura esta em Up quando o container esta executando. STATUS Exited indica o container parado.

  1. Caso DB_ECG ou CLOUD_ECG estejam parados, ou seja, na lista de containers com status Exited, voce pode inicializa-los:
sudo docker container start NOME_CONTAINER

Caso DB_ECG ou CLOUD_ECG estejam executando, ou seja, na lista de containers com status UP, voce pode inicializa-los:

sudo docker container stop NOME_CONTAINER
  1. Voce pode remover toda a instalacao com o comando:
docker-compose down

Utilização

  1. Com ambos os containeres executando (status Up), verifique se voce consegue acessar:
# API ECG remoto
curl http://localhost:${SERVER_PORT}/`
# Mongo DB
curl http://localhost:27017/ 
  1. Em caso de problemas, verifique os logs:
docker-compose logs -f

Rotas

Rota Metodo Descricao
/save_exam POST Salva os exames no formato {sampling_rate": 360,"resolution": 145,"labels": ["ECG"],"data": [968,870,1110,4567], "userId": "Fulano de tal", "title": "Ola",type": "1 NSR"}
/:user/exams/:id/remove DELETE Remove o Exame pelo ID
/:user/exams/update/:id GET Faz um Update do exame pelo ID (utilizado para acresentar mais dados de ecg) exemplo: http://ecgremoto.herokuapp.com/{nome}/exams/update/{id}?data=1234
/list_all GET Lista todos os exames
/:user/exams/:id GET Acessa o exame Pelo ID
/update_exam/:id POST Faz a mesma coisa que a rota /:user/exams/update/:id, porem é ustilizada com o metodo POST (utilizado para acresentar mais dados de ecg), exemplo: {"data":[1111, 952, 988]}.

Comunicação entre Servidor <-> Hardware

Heroku CLI

Para fazer Deploy do seu container no Heroku.

  1. Faça Login na sua conta heroku
heroku login
  1. Faça Login também no cnotainer Heroku.
heroku container:login
  1. Crie uma aplicação e escolha o nome name_app
heroku create name_app
  1. Contrua um conteinaer utilizando o docker no resgistro do heroku e de um push.
docker build -t registry.heroku.com/name_app/web 
docker push registry.heroku.com/name_app/web
  1. usando o herou e um release no seu app e depois abra.
heroku container:release web -a name_app
heroku open -a name_app

cloudecg's People

Contributors

franszkafkaa avatar andredelmestre avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.