Esse projeto é uma API Rest feita em flask. Seu principal objetivo é ser uma aplicação onde o usuário possa cadastrar seu histório médico de doenças, cirurgias, exames e consultas e fazer upload de arquivos. Ela pode ser utilizada na UrlBase: https://track-health-caps.herokuapp.com/
Eric Martins | Gustavo Oliveira | Vinicius Prohman | Guilhermino Lucas | Matheus Gomes | Jonatan Pinheiro
- Boto3
- Flask
- Flask Cors
- Flask JWT Extended
- Flask SQLAlchemy
- Gunicorn
- Pdfkit
- Psycopg binary
- Python dotenv
- Flask Migrate
Methods | Endpoint | Responsability |
---|---|---|
POST | /user/register | Cadastro de usuário. |
POST | /user/login | Realizar login. |
POST | /user/exam | Cadastrar um novo exame para o usuário. |
GET | /user/exam | Visualizar os exames cadastrados pelo usuário. |
PATCH | /user/exam/<exam_id> | Atualiza informações de exames do usuário. |
DELETE | /user/exam/<exam_id> | Deleta um exame do usuário. |
POST | /user/exam/file/<exam_id> | Adiciona um arquivo pdf/jpg a um exame. |
DELETE | /user/exam/file/<exam_id> | Deleta um arquivo de um exame. |
POST | /user/allergy | Cadastra uma nova alergia para o usuário. |
GET | /user/allergy | Visualiza alergias cadastradas pelo usuário. |
PATCH | /user/allergy/<allergy_id> | Atualiza informações de alergias do usuario. |
DELETE | /user/allergy/<allergy_id> | Deleta uma alergia do usuário. |
POST | /user/medication | Criar uma medicação do usuário. |
GET | /user/medication | Visualizar uma medicação do usuário. |
PATCH | /user/medication/<medication_id> | Alterar uma medicação do usuário. |
DELETE | /user/medication/<medication_id> | Deletar uma medicação do usuário. |
POST | /user/diseases | Criar uma doença do usuário. |
GET | /user/diseases | Visualizar uma doença do usuário. |
PATCH | /user/diseases/<disease_id> | Alterar uma doença do usuário. |
DELETE | /user/diseases/<disease_id> | Deletar uma doença do usuário. |
POST | /user/surgery | Criar uma cirurgia do usuário. |
GET | /user/surgery | Visualizar uma cirurgia do usuário. |
PATCH | /user/surgery/ | Alterar uma cirurgia do usuário. |
DELETE | /user/surgery/ | Deletar uma cirurgia do usuário. |
POST | /user/drug | Criar uma droga do usuário. |
GET | /user/drug | Visualizar uma droga do usuário. |
PATCH | /user/drug | Alterar uma droga do usuário. |
DELETE | /user/drug | Deletar uma droga do usuário. |
POST | /user/physical_activity | Criar uma atividade física do usuário. |
GET | /user/physical_activity | Visualizar uma atividade física do usuário. |
PATCH | /user/physical_activity | Alterar uma atividade física do usuário. |
DELETE | /user/physical_activity | Deletar uma atividade física do usuário. |
POST | /user/smoker | Cadastra informações do user fumante. |
GET | /user/smoker | Retorna as informações do user fumante. |
PATCH | /user/smoker | Atualiza informações cadastradas do user fumante. |
DELETE | /user/smoker | Deleta informações cadastradas do user fumante. |
POST | /user/alcoholic | Cadastra informações do user alcoólico. |
GET | /user/alcoholic | Retorna informações do user alcoólico. |
PATCH | /user/alcoholic | Atualiza informações do user alcoólico. |
DELETE | /user/alcoholic | Deleta informações do user alcoólico. |
POST | /user/anamnesis | Cria dados de anamnsesis. |
GET | /user/anamnesis | Retorna os dados cadastrados da anamnesis. |
PATCH | /user/anamnesis | Atualiza os dados cadastrados da anamnesis. |
POST | /user/image-profile | Cadastra e imagem de perfil. |
GET | /user/image-profile | Retorna o link da imagem de perfil. |
DELETE | /user/image-profile | Deleta a imagem de perfil. |
DELETE | /user | Deleta o usuário. |
GET | /user | Retorna as informações do usuário. |
PATCH | /user | Atualiza os dados do usuário. |
POST | /address | Criação de um endereço médico. |
DELETE | /address | Deletar um endereço médico. |
GET | /address | Pegar todos os endereços médicos |
PATCH | /address | Alterar um endereço médico. |
POST | /allergy | Criação de uma alergia. |
POST | /appointments | Criação de um agendamento. |
GET | /appointments | Vizualação dos agendamentos. |
PATCH | /appointments/<appointment_id> | Atualização de um agendamento. |
DELETE | /appointments/<appointment_id> | Deletar um agendamento. |
POST | /doctor | Criação de um médico relacionado ao usuário. |
GET | /doctor | Ver todos os médicos relacionao ao usuário. |
DELETE | /doctor/<doctor_id> | Deletar um médico relacionado ao usuário. |
PATCH | /doctor/<doctor_id> | Atualizar os dados de um médico. |
POST | /exams | Criar um exame. |
POST | /medication | Criar uma medicação. |
GET | Retorna um PDF com os dados do usuário. | |
POST | /surgery | Criação de uma cirurgia. |
Essa rota é para o cadastro de usuário. Os campos obrigatórios são: name, email, birth_date e password. Passar os campos gender e sex é opcional.
Exemplo de requisição:
{
"name": "malaquias brandão",
"email": "[email protected]",
"birth_date": "25/12/25",
"password": "1234"
}
Exemplo de resposta, caso esta tudo correto o status retornado será 201 - CREATED:
{
"id": "8a067378-ed52-4d67-85ca-0daa8cf000b4",
"name": "Malaquias Brandão",
"email": "[email protected]",
"birth_date": "Thu, 25 Dec 2025 00:00:00 GMT",
"gender": null,
"sex": null,
"allergy": [],
"medications": [],
"surgerys": [],
"alcohol": {},
"user_drug": {},
"smoker": {},
"physical_activity": {},
"anamnesis": [],
"diseases": [],
"exams": [],
"image_profile": null
}
Essa rota é para o login do usuário. Os campos obrigatórios são: email e password.
Exemplo de requisição:
{
"email": "[email protected]",
"password": "1234"
}
Exemplo de resposta, caso esteja tudo correto será retornado status 200 - OK:
{
"user_data": {
"id": "8a067378-ed52-4d67-85ca-0daa8cf000b4",
"name": "Malaquias Brandão",
"email": "[email protected]",
"birth_date": "Thu, 25 Dec 2025 00:00:00 GMT",
"gender": null,
"sex": null,
"allergy": [],
"medications": [],
"surgerys": [],
"alcohol": {},
"user_drug": {},
"smoker": {},
"physical_activity": {},
"anamnesis": [],
"diseases": [],
"exams": [],
"image_profile": null
},
"access_token": TOKEN
}
Para acessar essas rotas é necessário o envio do jwt por bearer token.
Essa rota é para obter os dados do usuário. Deverá ser passado somente o jwt por bearer token, não havendo necessidade de corpo de requisição.
Exemplo de resposta:
{
"id": "8a067378-ed52-4d67-85ca-0daa8cf000b4",
"name": "Malaquias Brandão",
"email": "[email protected]",
"birth_date": "Thu, 25 Dec 2025 00:00:00 GMT",
"gender": null,
"sex": null,
"allergy": [],
"medications": [],
"surgerys": [],
"alcohol": {},
"user_drug": {},
"smoker": {},
"physical_activity": {},
"anamnesis": [],
"diseases": [],
"exams": [],
"image_profile": null
}
Essa rota é para atualização de cadastro do usuário. Os unicos campos que serão alterados, caso sejam passados, são: name, email, birth_date, password, sex e gender. Poderá ser passado somente um ou todos de uma vez. Qualquer campo extra, será ignorado.
Exemplo de requisição:
{
"name": " matheus gomes",
"campo_extra": "extra"
}
Exemplo de resposta, retornando status 200 - OK se estiver tudo correto:
{
"id": "8a067378-ed52-4d67-85ca-0daa8cf000b4",
"name": "Matheus Gomes",
"email": "[email protected]",
"birth_date": "Thu, 25 Dec 2025 00:00:00 GMT",
"gender": null,
"sex": null,
"allergy": [],
"medications": [],
"surgerys": [],
"alcohol": {},
"user_drug": {},
"smoker": {},
"physical_activity": {},
"anamnesis": [],
"diseases": [],
"exams": [],
"image_profile": null
}
Essa rota é para deletar um usuário. Não necessita de corpo de requisição, somente o bearer token. Não é retornado corpo, somente status 204 caso tudo ocorra bem.
Esta rota é para a visualização dos exames cadastradas pelo usuário.
Exemplo de requisição:
Authorization: Bearer Token
Retorno esperado :
[
{
"id": "ed3ef1f1-e82b-48b5-ba03-18c6e4f79402",
"name": "Hemograma",
"description": "Controle de glicemia",
"date": "Fri, 25 Dec 2020 00:00:00 GMT",
"upload_img": null
},
{
"id": "ed3ef1f1-e82b-48b5-ba03-18c6e4f79402",
"name": "Galilei G4",
"description": "exame de vista",
"date": "Fri, 25 Dec 2020 00:00:00 GMT",
"upload_img": "www.google.com.br/exame.jpg"
}
]
Essa rota é para cadastrar somente um nome de exame. Será usada para cadastrar exames comuns. Deverá ser passado o campo name.
Exemplo de requisição:
{
"name": "Endoscopia"
}
Exemplo de retorno:
{
"id": "0b946d18-c894-4642-9b19-1b1700bb739c",
"name": "Endoscopia"
}
Esta rota é para o cadastro de exames relacionados ao usuário. Os campos obrigatórios são: “name”, “date”, caso o o nome do exame enviado já exista ele irá buscar na base de dados, caso não exista, irá cadastrar um novo exame.
Exemplo de requisição abaixo:
Authorization: Bearer Token
{
"name": "hemograma",
"date": "12/27/20"
}
Retorno esperado :
{
"id": "9",
"name": "Hemograma",
"date": "Sun, 27 Dec 2020 00:00:00 GMT",
"description": null,
"upload_img": null
}
Esta rota é para a atualização dos exames do usuário, podendo atualizar somente a “date”,”description” e a “upload_img” do exame
Exemplo de requisição:
Authorization: Bearer Token
{
"date": "22/02/2022",
"upload_img": "matheus_pic_profile.png",
"description": "Descrição maneira"
}
Esta rota é para apagar um exame do usuário. Para realizar a deleção é somente necessário passar o exam_id por query params.
Authorization: Bearer Token
Esta rota é para a visualização das doenças cadastradas pelo usuário.
Exemplo de requisição:
Authorization: Bearer Token
Retorno esperado :
[
{
"id": "ed3ef1f1-e82b-48b5-ba03-18c6e4f79402",
"name": "Diabete",
"description": "Diabete tipo 2",
"medication": "Insulina"
},
{
"id": "ed3ef1f1-e82b-48b5-ba03-18c6e4f79402",
"name": "Diabete",
"description": "Diabete tipo 2",
"medication": "Insulina"
}
]
Esta rota é para o cadastro de doenças relacionados ao usuário. Sendo obrigatório somente o campo “name”
Exemplo de requisição:
Authorization: Bearer Token
{
"name": "Gripe",
"description": "gripe forte",
"medication": "paracetamol"
}
Retorno esperado :
{
"id": "8437341d-fe35-4532-ad0e-5c9005e34555",
"name": "Gripe",
"medication": "Paracetamol",
"description": "Gripe forte"
}
Esta rota é para a atualização das doenças do usuário, podendo atualizar somente a “description” e ”medication”.
Authorization: Bearer Token
Exemplo de requisição:
{
"description": "gripe leve",
"medication": "Antialergico"
}
Retorno esperado :
{
"id": "8437341d-fe35-4532-ad0e-5c9005e34555",
"name": "Gripe",
"medication": "Paracetamol",
"description": "Gripe forte"
}
Esta rota é para apagar um doença do usuário. Para realizar a deleção é somente necessário passar o user_disease_id por query params.
Esta rota é para pegar os médicos do usuário. Não é necessário passar nenhum body.
Authorization: Bearer Token
Esta rota é para o cadastro de médicos relacionados ao usuário. Os campos obrigatórios são: “name”, “type”, "phone" e "address_id", ele cria um histórico dos médicos e ainda relacionando com o endereço deste.
Exemplo de requisição abaixo:
Authorization: Bearer Token
{
"name": "john doe",
"type": "endocrino",
"phone": "(21)12345-6789",
"address_id": "10cdd6a6-670b-4df9-9055-4ba711eadb3e"
}
Retorno esperado :
{
"id": "c1aaec1c-53b3-4f04-8e68-971141d283a5",
"name": "John Doe",
"type": "Endocrino",
"email": null,
"phone": "(21)12345-6789",
"address": {
"id": "10cdd6a6-670b-4df9-9055-4ba711eadb3e",
"street": "rua x",
"number": 50,
"district": "A",
"city": "X",
"complement": "abc"
}
}
Esta rota é para a atualização dos dados de um dos médicos do usuário, podendo atualizar “name”, “type”,"phone", "address_id" e "email".
Exemplo de requisição:
Authorization: Bearer Token
{
"name": "John",
"type": "cardiologista"
}
Retorno esperado :
{
"id": "c1aaec1c-53b3-4f04-8e68-971141d283a5",
"name": "John",
"type": "cardiologista",
"email": null,
"phone": "(21)12345-6789",
"address": {
"id": "10cdd6a6-670b-4df9-9055-4ba711eadb3e",
"street": "rua x",
"number": 50,
"district": "A",
"city": "X",
"complement": "abc"
}
}
Esta rota é para apagar um médico do usuário. Para realizar a deleção é somente necessário passar o doctor_id por query params.
Authorization: Bearer Token
Esta rota é para a criação de cirurgias, estas cirurgias não terão nenhuma relação com o usuário. Só é necessário passar o campo "name" na requisição como mostrado no exemplo abaixo.
{
"name": "Cirurgia na visicula"
}
Caso a requisição tenha sucesso irá retornar a seguinte resposta com o status code de 201.
{
"id": "ba1927e3-4d16-437c-8cc7-229d1bcf92e4",
"name": "Cirurgia na visicula"
}
Esta rota é para a criação de cirurgias relacionadas ao usuário. Para a realização desta requisição é necessário os campo "name" e "date", o campo "description" no exemplo abaixo é opcional.
Authorization: Bearer Token
{
"name": "Cirurgia do apendice",
"description": "Realizei essa cirurgia há 2 anos atrás e não tive nenhuma complicação",
"date": "03/02/2020"
}
Caso dê tudo certo irá retornar a seguinte resposta e código 201
{
"id": "bf212d16-2681-4f0d-a6e4-0db2318305f1",
"name": "Cirurgia do apendice",
"description": "Realizei essa cirurgia há 2 anos atrás e não tive nenhuma complicação",
"date": "03/02/2020"
}
Esta rota é para atualização de uma cirurgia, sendo possível atualizar apenas "date" e "description". Exemplo de requisição abaixo:
Authorization: Bearer Token
{
"description": "Atualizando a descrição",
"date": "03/03/2022"
}
Caso dê tudo certo a resposta será a seguinte
{
"id": "9525ab67-d12c-42e8-83de-e98127565743",
"name": "Cirurgia do apendice",
"date": "Thu, 03 Mar 2022 00:00:00 GMT",
"description": "Atualizando a descrição"
}
Esta rota é para deletar alguma cirurgia relacionada ao usuário, não é necessário nenhum corpo na requisição apenas a autenficação com token. Caso dê tudo certo irá retornar o código 204.
Authorization: Bearer Token
Não é necessário nenhum corpo apenas a o token. Caso tudo dê certo irá retornar um dicionário com todas as cirurgias do usuários e um status code 200.
Esta rota é para criação de medicamentos sem relação com o usuário. Para a criação de um medicamento é necessário apenas o campo "name" como mostrado na requisição abaixo.
{
"name": "Dramin"
}
Caso dê tudo certo irá retornar o código 201 e seguinte json
{
"id": "3f2a3954-b306-4573-8f80-de210f6aeda6",
"name": "Dramin"
}
Esta rota é para a criação de medicamentos relacionados ao usuário. Os campos obrigatórios são "name" e "description" como no exemplo abaixo:
Authorization: Bearer Token
{
"name": "Insulina",
"description": "Teste de descricação"
}
Caso dê tudo certo irá retornar 201
{
"id": "19ee0dda-da00-4018-90a1-6d72bbe35ec4",
"name": "Insulina",
"description": "Teste de descricação"
}
Esta rota é para atualização de uma medicação do usuário. O único campo que pode ser atualizado é "description" como mostrado abaixo.
Authorization: Bearer Token
{
"description": "Mudando a descrição"
}
Caso a requisição seja bem sucedida irá retornar o código 200 e o seguinte json
{
"id": "788f12e6-c0b9-453c-aaeb-183b8e2d49f7",
"name": "Insulina",
"description": "Mudando a descrição"
}
Esta rota é para deletar um medicamento sendo necessário apenas passar o medication_id via url. Caso dê tudo irá retornar 204.
Authorization: Bearer Token
Não é necessário nenhum corpo apenas a o token. Caso tudo dê certo irá retornar um dicionário com todos os medicamentos do usuários e um status code 200.
Essa rota é para o cadastro de informação referente ao uso de drogas. É necessário enviar unicamente os campos: frequency e description.
Exemplo de requisição:
{
"frequency": "uma vez por semana",
"description": "tabaco orgânico"
}
Exemplo de resposta, retornando status 201 - CREATED caso esteja tudo correto:
{
"id": "4807bb8c-2dd1-4236-8f96-eae16df96b0b",
"frequency": "uma vez por semana",
"description": "tabaco orgânico"
}
Essa rota é para alterar informações referente a uso de drogas. Será alterado somente os campos frequency e description, campos extras serão ignorados.
Exemplo de requisição:
{
"frequency": "uma vez ao dia"
}
Exemplo de resposta, retornando status 200 - OK caso tudo ocorra bem:
{
"id": "4807bb8c-2dd1-4236-8f96-eae16df96b0b",
"frequency": "Uma vez ao dia",
"description": "tabaco orgânico"
}
Essa rota é para obtenção das informações sobre dogras. Não é necessário enviar corpo de requisição, somente o token jwt.
Exemplo de resposta, com status 200 - OK caso esteja tudo correto:
{
"id": "4807bb8c-2dd1-4236-8f96-eae16df96b0b",
"frequency": "Uma vez ao dia",
"description": "tabaco orgânico"
}
Essa rota é para deletar as informações. Não é necessário enviar corpo de requisição, somente o token. Não será retornado corpo, somente status 204 se estiver tudo correto.
Essa rota é para que o fumante possa decrever seus hábitos com mais detalhes se quiser. Os campos requeridos são frequency e description, sendo description opcional.
Exemplo de requisição:
{
"frequency": "Duas vezes ao dias.",
"description": "Cigarro de palha com cravo."
}
Exemplo de resposta, , retornando status 201 - CREATED caso tudo seja passado corretamente:
{
"id": "51ff0f8d-e7ff-4f72-8cd2-0f67201c8292",
"frequency": "Duas vezes ao dias.",
"description": "Cigarro de palha com cravo."
}
Essa rota é para atualizar os dados referentes as informações do usuário fumante. Deverá ser passado unicamente os campos frequency e description, não necessáriamente os dois ao mesmo tempo.
Exemplo de requisição:
{
"frequency": "5 vezes ao dias"
}
Exemplo de resposta - status 200 - OK
{
"id": "096c21f2-4181-49c4-a279-9de9b3d88f66",
"frequency": "5 vezes ao dias",
"description": "Cigarro de palha com cravo."
}
Essa rota é para visualizar as informações sobre os detalhes cadastrado na tabela smoker. Não é necessario corpo de requisição. Somente o token.
Exemplo de resposta, status 200 - OK:
{
"id": "096c21f2-4181-49c4-a279-9de9b3d88f66",
"frequency": "5 vezes ao dias",
"description": "Cigarro de palha com cravo."
}
Essa rota é para deletar as informações cadastradas na tabela smoker. Não é necessário enviar corpo de requisição, somente o token. Não será retornado corpo, somente status 204 - CONTENT
Essa rota é para cadastro de informaçoes relacionadas a atividades fisicas. É necessário passar somente os campos frequency e description no corpo de requisição, sendo o campo description opcional.
Exemplo de requisição:
{
"frequency": "uma vez por semana",
"description": "caminhada na praia"
}
Exemplo de resposta status 201 - CREATED
{
"id": "d727da29-7937-4f53-9a7e-9bd7080234e3",
"frequency": "Uma vez por semana",
"description": "Caminhada na praia"
}
Essa rota atualiza os dados cadastrados sobre atividades físicas. Serão aceitos somente os campos frequency e description.
Exemplo de requisição:
{
"frequency": "3x na semana",
"description": " academia "
}
Exemplo de resposta, status 200 - OK:
{
"id": "d727da29-7937-4f53-9a7e-9bd7080234e3",
"frequency": "3x na semana",
"description": "Academia"
}
Essa rota é para obter as informações cadastradas sobre atividades físicas. Não é necessário enviar corpo de requisição.
Exemplo de resposta:
{
"id": "ed5ed43e-371b-48ce-864a-aedc941e736a",
"frequency": "3x na semana",
"description": "Academia"
}
Essa rota é para deletar as informações cadastradas sobre atividade física. Não é necessário enviar corpo de requisição, somente o token. Será caso tudo ocorra bem, será retornado status 204 - NO CONTENT
Esta rota é para o cadastro do consultório do médico. Os campos obrigatórios são: “street”, “number”, campos facultativos: "disctrict", "city", "complement"
Exemplo de requisição abaixo:
Authorization: Bearer Token
{
"street": "rua blah",
"number": 25,
"district": "madureira",
"city": "rio de janeiro",
"complement": "do lado do posto de gasolina"
}
Exemplo de resposta, com status 200 - OK caso esteja tudo correto:
{
"id": "71d9b03b-a27f-4f97-9145-8785b04bbb08",
"street": "Rua Blah",
"number": 25,
"district": "Madureira",
"city": "Rio De Janeiro",
"complement": "Do lado do posto de gasolina"
}
Essa rota é para verificação dos endereços cadastrados. É necessário enviar somente o token.
Exemplo de reposta be sucedida status 200 - OK:
[
{
"id": "23e1038d-f52b-4acc-bba1-3df7daa20351",
"street": "Rua Do Conhecimento",
"number": 20,
"district": "Sp",
"city": "Praia Grande",
"complement": "Dlçadçlaslçd"
},
{
"id": "7cecb2f5-abb3-40f8-b784-4a95f0672e87",
"street": "Rua Blah",
"number": 25,
"district": "Madureira",
"city": "Rio De Janeiro",
"complement": "Do lado do posto de gasolina"
}
]
Esta rota é para a atualização do consultório de um médico, podendo atualizar todos os dados
Exemplo de requisição:
Authorization: Bearer Token
{
"address_id": "71d9b03b-a27f-4f97-9145-8785b04bbb08",
"street": "Rua Bler",
"number": 50,
"district": "barra da tijuca",
"city": "rio de janeiro",
"complement": "De frente pra praia"
}
Exemplo de resposta, com status 200 - OK caso esteja tudo correto:
{
"id": "71d9b03b-a27f-4f97-9145-8785b04bbb08",
"street": "Rua Bler",
"number": 50,
"district": "barra da tijuca",
"city": "rio de janeiro",
"complement": "De frente pra praia"
}
Esta rota é para apagar consultório existente.
Exemplo de requisição:
Authorization: Bearer Token
{
"address_id": "71d9b03b-a27f-4f97-9145-8785b04bbb08"
}
Exemplo de resposta, com status 204 - OK caso esteja tudo correto.
Essa rota é para cadastro e upload da imagem de perfil do usuário. É necessário que o envio seja feito como multipart/form-data, sendo obrigatório o formulário ter o campo name preenchido e que uma imagem seja enviada.
Exemplo de resposta, retornando status 201-CREATED caso tudo ocorra de forma correta:
{
"id": "ir_pp-kL_730S2jwzk-n3hu_4VFIT_PAXjrpw5XZzMnHEuZPuUriNAMKTOtcNq6FGLiqHm8lTu_QAckAq6Y_mA",
"name": "Frutas",
"url": "https://my_bucket.s3.nu-rtrg9.amazonaws.com/ir_pp-kL_730S2jwzk-n3hu_4EuZPuUriNAMKTOtcNq6FGLiqHm8lTu_QAckAq6Y_mA"
}
Essa rota é para verificar os dados da imagem de perfil. Não há necessidade de corpo de requisição, somente o token precisa ser enviado.
Exemplo de resposta, retornando status 200 - OK caso tudo ocorra bem:
{
"id": "ir_pp-kL_730S2jwzk-n3hu_4VFIT_PAXjrpw5XZzMnHEuZPuUriNAMKTOtcNq6FGLiqHm8lTu_QAckAq6Y_mA",
"name": "Frutas",
"url": "https://my-bucket.s3.wyaffs.amazonaws.com/5XZzMnHEuZPuUriNAMKTOtcNq6FGLiqHm8lTu_QAckAq6Y_mA"
}
Essa rota é para deletar a imagem de perfil do usuário. Não é necessário corpo de requisição, somente o token.
Caso tudo ocorra bem, será retornado status 204 - NO CONTENT.
Essa rota é para upload e cadastro do documento de exame. É necessário passar o id do exame no final da rota. É aceito somente imagens(png, jpg e jpeg) e pdf. Deverá ser enviado por formulário multipart/form-data com o campo name preenchido.
Exemplo de resposta, retornando status 201 - CREATED caso tudo ocorra bem:
{
"success": "https://my-bucket.s3.wdsvvc.amazonaws.com/fE45VCFnI4sB8l4vsVh1ffXiVwAng9UkqwoiETodwCxJ0Drml9KMGS5FznSJ55aaHZ"
}
Essa rota é para deletar o documento. É necessário passar somente o id do exame que contém o documento no final da rota e o token. Será retornado status 204 - NO CONTENT caso tudo ocorra bem.
Esta rota é para adicionar uma alergia na tabela de alergias. Campo obrigatório é apenas o "name".
Authorization: Bearer Token
{
"name": "camarão"
}
Retorno esperado :
{
"id": "16770b6a-70c7-40ed-88d5-a237dcb5dfd0",
"name": "Camarão"
}
Esta rota é para pegar todas as alergias do usuário, não sendo necessário passar nenhum body.
Authorization: Bearer Token
Esta rota é para o cadastro das alergias de um usuário, caso a alergia não exista na tabela ela a cria. Os campos obrigatórios são: “name”, "description" sendo facultativo.
Exemplo de requisição abaixo:
Authorization: Bearer Token
{
"name": "frutos do mar",
"description": "alergia grave a frutos do mar"
}
Retorno esperado :
{
"id": "dffa762a-05cd-4bb1-a52c-0d4506d69d15",
"description": "Alergia grave a frutos do mar",
"name": "Frutos Do Mar"
}
Esta rota é para a atualização dos dados de uma das alergias do usuário, podendo atualizar “name” e “description". Para realizar a atualização é somente necessário passar o id da alergia do usuário por query params.
Exemplo de requisição:
Authorization: Bearer Token
{
"name": "camarão",
"description": "Alergia grave a camarão"
}
Retorno esperado :
{
"id": "f3498206-47cd-4eca-acf7-03617dd31670",
"description": "Alergia grave a pelo de cachorro",
"name": "Cachorro"
}
Esta rota é para deletar uma das alergias do usuário. Para realizar a deleção é somente necessário passar o id da alergia do usuário por query params.
Authorization: Bearer Token
Esta rota é para criação de anamnesis relacionada ao usuário. A seguir os campos obrigatórios: 'diseases', 'allergy','continous_medication', 'surgery', 'alcoholic','drug_user', 'smoker', 'physical_activity', 'diabetes', 'hipertension'
Authorization: Bearer Token
Segue abaixo o exemplo de requisição:
{
"diseases": true,
"allergy": true,
"continous_medication": true,
"surgery": false,
"alcoholic": true,
"drug_user": false,
"smoker": true,
"physical_activity": false,
"diabetes": false,
"hipertension": true
}
Caso tudo dê certo irá retornar o código 201 e uma resposta similar a esta abaixo:
{
"id": "117b8a38-4c59-4149-911f-e3f42fa5c7f3",
"diseases": true,
"allergy": true,
"continous_medication": true,
"surgery": false,
"alcoholic": true,
"drug_user": false,
"smoker": true,
"physical_activity": false,
"diabetes": false,
"hipertension": true
}
Esta rota é para atualização da anamnesis do usuário todos os campos podem ser atualizados, caso dê tudo certo irá retornar 204.
Authorization: Bearer Token
Esta rota é para pegar a anamnesis relacionada ao usuário, caso dê tudo certo irá retornar a anamnesis do usuário, como mostrado no exemplo abaixo:
Authorization: Bearer Token
{
"id": "117b8a38-4c59-4149-911f-e3f42fa5c7f3",
"diseases": true,
"allergy": true,
"continous_medication": true,
"surgery": false,
"alcoholic": true,
"drug_user": false,
"smoker": true,
"physical_activity": false,
"diabetes": false,
"hipertension": true
}
Esta rota é para criação de uma consulta do usuário. A seguir os campos obrigatórios: 'name', 'date' e 'doctor_id'.
Authorization: Bearer Token
Segue abaixo o exemplo de requisição:
{
"date": "02/05/2022",
"description": "dor da região atras do rosto",
"doctor_id": "0bc81f76-bb51-4b8e-b70d-804bfb2ed144"
}
Caso tudo dê certo irá retornar o código 201 e uma resposta similar a esta abaixo:
{
"id": "c39b75aa-84a2-4f4e-9261-18e4681561f3",
"date": "Mon, 02 May 2022 00:00:00 GMT",
"description": "dor da região atras do rosto",
"doctor": {
"id": "0bc81f76-bb51-4b8e-b70d-804bfb2ed144",
"name": "Glodoaldo",
"type": "Cardiologista",
"email": null,
"phone": "(21)12345-6789",
"address": {
"id": "98c7e919-9b12-4519-bdc9-a9ad80ffbec4",
"street": "Rua Blah",
"number": 25,
"district": "Madureira",
"city": "Rio De Janeiro",
"complement": "Do lado do posto de gasolina"
}
}
}
Esta rota é para atualização da anamnesis do usuário todos os campos podem ser atualizados, caso dê tudo certo irá retornar 204.
Authorization: Bearer Token
Esta rota é para pegar todas as consultas médicas relacionada ao usuário, caso dê tudo certo irá retornar as consultas do usuário, como mostrado no exemplo abaixo:
Authorization: Bearer Token
[
{
"id": "8a8155ec-2eab-4949-9e0d-0fe0a9c87df7",
"date": "Mon, 02 May 2022 00:00:00 GMT",
"description": "dor da região atras do rosto",
"doctor": {
"id": "0bc81f76-bb51-4b8e-b70d-804bfb2ed144",
"name": "Glodoaldo",
"type": "Cardiologista",
"email": null,
"phone": "(21)12345-6789",
"address": {
"id": "98c7e919-9b12-4519-bdc9-a9ad80ffbec4",
"street": "Rua Blah",
"number": 25,
"district": "Madureira",
"city": "Rio De Janeiro",
"complement": "Do lado do posto de gasolina"
}
}
}
]
Esta rota é para deletar uma consulta do usuário. Para deletar é necessário somente passar o id da consulta do usuário por query params.
Authorization: Bearer Token