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
Voce tem 2 formas de utilizar o servidor deste repositorio
- 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.
- 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.
- NodeJS https://nodejs.org/en/
- MongoDB https://www.mongodb.com/
- Python 3.x https://www.python.org/downloads/
- yarn https://yarnpkg.com/package/download
- Biblioteca Python biosppy https://biosppy.readthedocs.io/en/stable/
- Aplicação ECG Remoto (este repositório)
- Docker e Docker Compose https://docs.docker.com/
- Faca download deste repositorio
git clone https://github.com/MarceloSkank/ECGRemote .
- Instale o pacote yarn do NodeJS
npm install --global yarn
cd EcgRemote/
yarn install
- 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
- Verifique a instalacao do BiosSPy
cd python_src
python test.py
Apos o set-up do ambiente escolhido, voce precisa destes comandos para executar
No diretorio ECGRemote
execute:
yarn dev
Visualize o servidor rodando no navegador:
http://localhost:${SERVER_PORT}/
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.
- 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.
- 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
- Voce pode remover toda a instalacao com o comando:
docker-compose down
- 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/
- Em caso de problemas, verifique os logs:
docker-compose logs -f
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]}. |
Para fazer Deploy do seu container no Heroku.
- Faça Login na sua conta heroku
heroku login
- Faça Login também no cnotainer Heroku.
heroku container:login
- Crie uma aplicação e escolha o nome name_app
heroku create name_app
- 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
- usando o herou e um release no seu app e depois abra.
heroku container:release web -a name_app
heroku open -a name_app