---
# System prepended metadata

title: PIM 1

---

# PIM 1

## Coisas para fazer

### Programa em C

Telas: 
* LOGIN - Vai apenas faze autenficação
* Funcionarios - CRUD BASICO (CRIAR, DELETAR, PESQUISAR, ATUALIZAR) - Jorge
* PACIENTE - CRUD BASICO (CRIAR, DELETAR, PESQUISAR, ATUALIZAR) 
* CONSULTAS - CRUD BASICO (CRIAR, DELETAR, PESQUISAR, ATUALIZAR)
* EXAME - CRUD BASICO (CRIAR, DELETAR, PESQUISAR, ATUALIZAR)
* CONFIGURAÇÃO (Descutir ainda as configurações que vao poder ser feitas)
* MEDICOS - CRUD BASICO (CRIAR, DELETAR, PESQUISAR, ATUALIZAR) - Andrei
* AVALIAÇÃO - CRUD BASICO (CRIAR, DELETAR, PESQUISAR, ATUALIZAR)

PACIENTE, CONSULTAS, EXAMES, MEDICOS, AVALIAÇÃO - cada um deles
vao possuir  Um struct com as informações necessarias.

> obs: As funções que vão executar as terefas de buscar/criar/deletar/pesquisar
> iremos fazer juntos pq assim da pra todos aprender como é feito tal coisa : D

[Link do projeto em C](https://repl.it/join/qfwxyjjf-andreixhz)

#### funções de apoio
```c
// Cria uma opção 
void opcao(char n[20], int t){
    printf("%d | %s \n", t, n);
}
//Saida
// 1 | Opção

void crud(){

    opcao("Listar", 1);
    opcao("Buscar", 2);
    opcao("Cadastrar", 3);   
    opcao("Deletar", 4);

}
//Saida
// 1 | Listar
// 2 | Buscar
// 3 | Cadastrar

// Diminui tamanho de codigo para pegar um numero que foi escrito
int escolha_numero(){
    int i;
    printf("\nescolha uma opção: ");
    scanf("%d", &i);
    return i;
}
//Saida
//nescolha uma opção: 1? 2? 3?

void titulo(char titulo[20]){
    printf("-------------------------------\n");
    printf("%s\n", titulo);
    printf("-------------------------------\n");
}
//Sai um titulo bonitinho pra usar basta: titulo("Titulo");

```
> caso tenha alguma função que queira colocar aqui so comentar sobre ela :v 

#### Exemplo de tela com as funções acima
```c

void tela_administrar(){

    //titulo bonitinho que vai ser arrumado ainda :v
    titulo("Inicio");
    
    // Opções
    opcao("Funcionarios", 1);
    opcao("Medicos", 2);
    opcao("Operar", 3);
    opcao("Configuração", 4);
    
    // ai que entra o escolha numero pra pedir pra escrever um numero.
    switch(escolha_numero()){
        case 1: 
            currentMenu = 2;
            break;
        case 2:
            currentMenu = 3;
            break;
        case 3:
            currentMenu = 4;
            break;
    }
}

```
> saida:
![](https://i.imgur.com/t0nZOnw.png)
> [name=obs] System | admin : não consta no codigo acima.

## Programa

### Funcionarios

* Criar funcionarios
* Deletar por cpf
* buscar por cpf
* listar (maximo 15 por pagina)

### Medicos

* Criar medicos
* Deletar por cpf
* buscar por cpf
* listar (maximo 15 por pagina)

### paciente

* Criar paciente
* Deletar por cpf
* buscar por cpf
* listar (maximo 15 por pagina)


### consulta

* Criar consulta
* Deletar por cpf
* buscar por cpf
* listar (maximo 15 por pagina)

> obs: Pra cada consulta quer for criada, ela exige o cpf do funcionario que criou + o cpf do paciente + o cpf do medico que vai anteder, para poder ter u controle maior

-- cada um desses itens vão ter um fluxograma, uml e classe
-- cada função vai ter que ter uma tela usando o padrao acima.
-- Vai ser criado pra cada classe acima, alem das funções seus structs.
-- pra cada classe vai ter  que ser salva em um arquivo com seu nome

## Documento PIM
Fazer manual de uso.
Treinamento de usuario.
Parte de redes.
Fluxogramas do programa e UML's.
Gráfico relatando o antes e depois de procedimento de cadastro.

### Versão 1
Criação de pacientes, busca, edição;
Agendamento de Consultas, busca e criação;

### Versão 2
[versao 1]
Login
Criação de funcionarios
Criação de medicos
tipo de consulta
melhorias em tela

#### IMPORTANTE: ver se todos estão de acordo com os item lista, e revisar pra caso de melhoria ou adição de mais itens pra mais notas : D

