An open API service indexing awesome lists of open source software.

https://github.com/higorsnt/sismed

👨‍⚕️ Sistema de Agendamento de Consultas 🩺
https://github.com/higorsnt/sismed

celebrate express jest jwt nodejs sqlite3

Last synced: 3 months ago
JSON representation

👨‍⚕️ Sistema de Agendamento de Consultas 🩺

Awesome Lists containing this project

README

          


👨‍⚕️ Sistema de Agendamento de Consultas 🩺


GitHub top language
GitHub
Repository size
Jest
Run in Insomnia

## :bookmark: Sobre

Este é uma API que visa auxiliar pacientes e médicos no agendamento de consultas e na criação de prontuários que são gerados a cada consulta, onde o médico ao longo da consulta pode informar os sintomas relatados pelo paciente e o que lhe foi receitado, facilitando o acompanhamento do mesmo.

## :boom: Utilização

1. Inicialmente é necessário realizar o clone do repositório:

```bash
git clone https://github.com/HigorSnt/sismed.git
```

2. Em seguida, entre na pasta gerada pelo passo anterior e execute os seguintes comandos:

```bash
# Antes de tudo é necessário baixar as dependências descritas no package.json
$ npm install
# Antes de iniciar a aplicação gere o banco de dados e as tabelas
$ npm run knex:migrate
# Para executar a aplicação:
$ npm run dev
# Para executar os testes:
$ npm run test
```

## 🛣 Rotas

As rotas presentes na aplicação serão descritas abaixo:

### 🚏 `/doctor`



  • POST: rota responsável por criar um médico no banco de dados.
    Exemplo de execução:


    {
    "crm": "1111",
    "name": "Vitor Martin Augusto Viana",
    "email": "vitormartinaugustoviana_@cressem.com.br",
    "password": "7q6eYdq8Fh"
    }



    Resultado


    {
    "crm": "1111"
    }





  • GET: esta rota retorna todos os médicos cadastrados.

    Resultado


    [
    {
    "name": "Vitor Martin Augusto Viana",
    "email": "vitormartinaugustoviana_@cressem.com.br",
    "crm": "1111"
    },
    {
    "name": "Luciano Pilla Pinto",
    "email": "luciano@gmail.com",
    "crm": "4785"
    }
    ]




### 🚏 `/patient`



  • POST: rota responsável por criar um paciente no banco de dados.
    Exemplo de execução:


    {
    "name": "Raissa Oliveira",
    "email": "raissacarvalhooliveira@rhyta.com",
    "password": "Rohng3ien"
    }



    Resultado


    {
    "email": "raissacarvalhooliveira@rhyta.com"
    }





  • GET: esta rota retorna todos os pacientes cadastrados.

    Resultado


    [
    {
    "name": "Higor",
    "email": "higor@gmail.com"
    },
    {
    "name": "Raissa Oliveira",
    "email": "raissacarvalhooliveira@rhyta.com"
    }
    ]




### 🚏 `/login`



  • POST: esta rota é a responsável por realizar o login. Porém, existe duas formas de login: o paciente realiza seu login utilizando o email e senha cadastrados, enquanto que o médico realiza o login pelo seu CRM e senha cadastrados.
    Exemplo de execução para um paciente:


    {
    "email": "raissacarvalhooliveira@rhyta.com",
    "password": "Rohng3ien"
    }


    Exemplo de execução para um médico:


    {
    "crm": "1111",
    "password": "7q6eYdq8Fh"
    }



    Resultado para ambas requisições


    {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTEiLCJjYXRlZ29yeSI6ImRvY3RvciIsImlhdCI6MTU5NTM1MTkwOH0.Bic4lw1qY3-qVWkWonQNrpXNoOP7H7GEMWRewvA37bQ"
    }




> ⚠️ Todas as próximas rotas fazem uso do token jwt originado da rota de login.
> Portanto, é necessário colocar o token no cabeçalho da requisição http.

### 🚏 `/appointment`



  • POST: rota que permite aos pacientes marcarem consultas. Apenas pacientes conseguem realizar essa operação!
    Exemplo de execução:


    {
    "doctor": {
    "crm": "1111",
    "name": "Vitor Martin Augusto Viana"
    },
    "date": "31-07-2020 07:00:00"
    }



    Resultado


    {
    "id": 2,
    "doctor_crm": "1111",
    "patient_id": "raissacarvalhooliveira@rhyta.com",
    "date": "31-07-2020 07:00:00"
    }




### 🚏 `/appointment/:id`



  • PATCH: rota que permite aos pacientes e médicos atualizarem as informações das consultas. Pacientes apenas podem marcar a consulta como concluída e alterar a data da mesma, enquanto que o médico além de concluir a consulta, também pode realizar uma descrição dos sintomas relatados durante a consulta médica e o que foi prescrito para o paciente.
    Para realizar a atualização da consulta deve-se passar apenas o que será atualizado.
    Exemplo de execução:


    {
    "symptoms": "febre e tosse",
    "prescription": "Xarope 3x ao dia"
    }



    Resultado


    {
    "id": 1,
    "doctor_crm": "1111",
    "patient_id": "higor@gmail.com",
    "date": "31-07-2020 07:00:00",
    "symptoms": "febre e tosse",
    "prescription": "Xarope 3x ao dia",
    "done": 0
    }





  • GET: rota que permite ao paciente e médico todas as informações relativas da consulta com o id passado na rota.

    Resultado


    {
    "id": 1,
    "doctor_crm": "1111",
    "patient_id": "higor@gmail.com",
    "date": "31-07-2020 07:00:00",
    "symptoms": "febre e tosse",
    "prescription": "Xarope 3x ao dia",
    "done": 0
    }





  • DELETE: rota que permite ao paciente excluir a consulta registrada com o id correspondente ao passado como parâmetro na rota.

    Como resultado é retornado apenas um código 200 caso sucesso.

## :memo: Licença

Esse projeto está sob a licença MIT. Veja o arquivo [LICENSE](LICENSE.md) para mais detalhes.