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/
- Python 3.x https://www.python.org/downloads/
- yarn https://yarnpkg.com/package/download
- Biblioteca Python biosppy
- Aplicação ECG Remoto (este repositório)
- Docker 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
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:3366/
Voce so precisa fazer o "puxar" as configuracoes do container diretamente do registro marcelojanke/ecg_remoto
que esta na nuvem e escolher um nome para SEU_CONTAINER.
docker pull marcelojanke/ecg_remoto
docker run -d -p 3333:3333 --name SEU_CONTAINER marcelojanke/ecg_remoto
Caso você precise Criar a imagem para o seu container:
docker build -t name/aplicacao .
docker run -d -p 3333:3333 --name SEU_CONTAINER name/aplicacao
- Verifique se SEU_CONTAINER esta na lista de containers e se esta executando
docker ps -a
Coluna STATUS da figura esta em Up quando o container esta executando. STATUS Exited indica o container parado.
- Caso SEU_CONTAINER esteja na lista e esta parado, voce pode inicializa-lo:
docker container start SEU_CONTAINER
- Com seu container executando, visualize o servidor rodando no navegador
http://localhost:3333/
- Caso SEU_CONTAINER esteja na lista e executando, voce pode para-lo:
docker container stop SEU_CONTAINER
- Voce pode remover SEU_CONTAINER da lista de containers:
docker container stop SEU_CONTAINER
docker container rm SEU_CONTAINER
Rota | Metodo | Descricao |
---|---|---|
/savelog |
POST | Salva as requisicoes no formato {data:SEU_DADO} |
/ |
GET | Rota para testar requisicoes GET. Retorna {"res":200} em caso de sucesso |
/see |
GET | Lista todas requisicoes POST na rota /savelog |
/seetxt |
GET | Lista todas requisicoes ja realizadas no servidor |
/rotaAlternativa |
GET | Alternativa para o POST em /savelog. Exemplo: http://ecgremoto.herokuapp.com/rotaAlternativa?data=SEU_DADO |
/remove |
DELETE | deleta todas os dados armazenados gerado pela rota /savelog |
/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