Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema de Gestão de Pacientes e Atendimentos - Clínica DIO

Sistema em Python desenvolvido para simular o cadastro de pacientes e o registro de atendimentos em uma clínica médica, utilizando conceitos de Programação Orientada a Objetos.

O projeto funciona pelo terminal e permite cadastrar dois tipos de pacientes:

  • Paciente particular;
  • Paciente por convênio.

A aplicação foi organizada com uma classe base chamada Paciente e duas classes filhas: PacienteParticular e PacienteConvenio.


Preview do terminal

Preview do terminal


Sobre o projeto

O Sistema de Gestão de Pacientes e Atendimentos - Clínica DIO é uma simulação acadêmica de um sistema de atendimento clínico.

A proposta é registrar dados básicos de pacientes, diferenciar atendimentos particulares e atendimentos por convênio, calcular valores de consulta e registrar informações relacionadas à autorização de procedimentos.

O sistema foi pensado para ter uma experiência de uso clara no terminal, com menus numerados, mensagens organizadas, validação de opção inicial e separadores visuais.


Objetivo

O objetivo do projeto é praticar conceitos de Programação Orientada a Objetos em Python, aplicando classes, objetos, herança, encapsulamento e sobrescrita de métodos em um problema simples de gestão de pacientes.

O projeto também demonstra preocupação com organização do fluxo de uso no terminal, simulando uma interação mais próxima de um sistema real.


Funcionalidades

  • Cadastro de paciente particular;
  • Cadastro de paciente por convênio;
  • Registro de dados comuns do paciente;
  • Exibição de ficha simples ou ficha completa;
  • Registro de tipo de atendimento;
  • Menu para seleção de forma de pagamento;
  • Menu para seleção de tipo de atendimento;
  • Cálculo de valor final para paciente particular;
  • Aplicação de desconto de fidelidade;
  • Cálculo de taxa de urgência;
  • Registro de atendimento por convênio;
  • Registro de autorização ou não autorização do convênio;
  • Registro de valor de glosa;
  • Exibição organizada das informações no terminal.

Estrutura do projeto

poo_pacientes/
│
├── paciente.py
├── paciente_particular.py
├── paciente_convenio.py
├── main.py
├── README.md
├── .gitignore
│
└── assets/
    └── preview-terminal.png

Classes do sistema

Paciente

Classe base do sistema.

Armazena os dados comuns a todos os pacientes:

  • nome;
  • data de nascimento;
  • CPF;
  • telefone;
  • tipo sanguíneo;
  • número do prontuário.

Também possui métodos para:

  • registrar atendimento;
  • exibir informações do paciente.

PacienteParticular

Classe filha de Paciente.

Representa pacientes que pagam diretamente pelo atendimento.

Além dos dados comuns herdados da classe Paciente, possui:

  • forma de pagamento;
  • desconto de fidelidade.

Também possui um método para calcular o valor final do atendimento particular, considerando:

  • valor do atendimento;
  • taxa de urgência;
  • desconto de fidelidade.

Nesta versão corrigida, o desconto é aplicado sobre o valor total do atendimento, ou seja:

valor total antes do desconto = valor do atendimento + taxa de urgência
desconto = desconto de fidelidade * valor total antes do desconto
valor final = valor total antes do desconto - desconto

PacienteConvenio

Classe filha de Paciente.

Representa pacientes atendidos por plano de saúde ou convênio.

Além dos dados comuns herdados da classe Paciente, possui:

  • nome do convênio;
  • número da carteirinha.

Também possui um método para registrar a autorização do convênio, incluindo:

  • procedimento autorizado ou não autorizado;
  • valor da glosa.

Nesta versão corrigida, o método registrar_autorizacao() possui valor padrão para valor_glosa, permitindo que a glosa seja considerada 0 caso nenhum valor seja informado diretamente na chamada do método.


Conceitos utilizados

O projeto utiliza os seguintes conceitos de Programação Orientada a Objetos:

  • Classe: modelo usado para criar objetos;
  • Objeto: representação de um paciente cadastrado no sistema;
  • Atributos: dados armazenados dentro das classes;
  • Métodos: ações que as classes conseguem executar;
  • Herança: PacienteParticular e PacienteConvenio herdam dados e métodos de Paciente;
  • Encapsulamento: atributos sinalizados com _;
  • Sobrescrita: as classes filhas sobrescrevem o método exibir_informacoes();
  • Polimorfismo: o mesmo método apresenta comportamentos diferentes conforme o tipo de paciente.

Fluxo geral do sistema

Início
↓
Usuário escolhe o tipo de paciente
↓
Sistema valida a opção inicial
↓
Sistema coleta os dados comuns do paciente
↓
Se paciente particular:
    coleta dados de pagamento
    registra atendimento
    calcula taxa de urgência
    aplica desconto
    exibe valor final

Se paciente por convênio:
    coleta dados do convênio
    registra atendimento
    verifica autorização
    registra glosa
↓
Sistema exibe as informações no terminal

Manual de uso

Ao iniciar o sistema, o usuário deve escolher o tipo de paciente:

1 - Paciente Particular
2 - Paciente por Convênio

Depois, o sistema solicita os dados básicos do paciente:

  • nome completo;
  • data de nascimento;
  • CPF;
  • telefone;
  • tipo sanguíneo;
  • número do prontuário.

Em seguida, o fluxo muda de acordo com o tipo de paciente escolhido.


Fluxo do paciente particular

Se a opção escolhida for 1, o sistema solicita:

  • forma de pagamento;
  • desconto de fidelidade;
  • tipo de atendimento;
  • valor do atendimento;
  • informação sobre taxa de urgência;
  • valor da taxa de urgência, caso exista.

O valor final é calculado com a seguinte lógica:

valor total = valor do atendimento + taxa de urgência
desconto = desconto de fidelidade * valor total
valor final = valor total - desconto

Exemplo:

Valor do atendimento: R$ 200.00
Taxa de urgência: R$ 50.00
Desconto fidelidade: 0.10

Cálculo:

Valor total antes do desconto: R$ 250.00
Desconto aplicado: R$ 25.00
Valor final com desconto: R$ 225.00

Fluxo do paciente por convênio

Se a opção escolhida for 2, o sistema solicita:

  • nome do convênio;
  • número da carteirinha;
  • tipo de atendimento;
  • custo do atendimento;
  • informação sobre autorização do procedimento;
  • procedimento autorizado ou não autorizado;
  • valor da glosa.

No paciente por convênio, não há cálculo de desconto de fidelidade. O sistema registra o atendimento e a análise do convênio.

Se não houver glosa, o valor pode ser informado como 0.


Orientações de uso

  • Para perguntas de confirmação, digite sim ou nao;
  • Para valores em dinheiro, use ponto no lugar de vírgula;
  • Exemplo correto: 150.50;
  • Exemplo incorreto: 150,50;
  • Para desconto de fidelidade, use formato decimal:
    • 0.10 para 10%;
    • 0.20 para 20%;
    • 0.05 para 5%.

Exemplo de uso - Paciente Particular

Entrada:

Tipo de paciente: 1
Forma de pagamento: Pix
Desconto fidelidade: 0.10
Tipo de atendimento: Consulta
Valor do atendimento: 200.00
Taxa de urgência: sim
Valor da taxa de urgência: 50.00

Resultado esperado:

Valor da consulta: R$ 200.00
Taxa de urgência: R$ 50.00
Desconto aplicado: R$ 25.00
Valor final com desconto: R$ 225.00

Exemplo de uso - Paciente por Convênio

Entrada:

Tipo de paciente: 2
Convênio: Saúde Total
Tipo de atendimento: Exame
Custo do atendimento: 180.00
Procedimento autorizado: sim
Valor da glosa: 0

Resultado esperado:

Atendimento registrado com sucesso.
Autorização do convênio registrada.
Valor da glosa: R$ 0.00

Como executar o projeto

Para executar o sistema, é necessário ter o Python instalado.

1. Clone o repositório

git clone https://github.com/diobetta/poo_pacientes.git

2. Acesse a pasta do projeto

cd poo_pacientes

3. Execute o arquivo principal

python main.py

Caso esteja usando Windows e o comando acima não funcione, tente:

py main.py

Testes realizados

Foram testados os seguintes fluxos:

Opção inicial inválida
Cadastro de paciente particular
Cadastro de paciente por convênio
Exibição de ficha simples
Exibição de ficha completa
Seleção de forma de pagamento
Seleção de tipo de atendimento
Atendimento particular com taxa de urgência
Atendimento particular sem taxa de urgência
Cálculo de desconto sobre valor total com urgência
Exibição do desconto como porcentagem
Atendimento por convênio autorizado
Atendimento por convênio não autorizado
Registro de glosa com valor informado
Registro de glosa com valor zero

Fora do escopo

Este projeto é uma simulação acadêmica em terminal. Por isso, não possui:

  • interface web;
  • Flask;
  • HTML/CSS;
  • banco de dados;
  • cadastro de múltiplos pacientes em uma mesma execução;
  • edição de paciente;
  • exclusão de paciente;
  • validação avançada de CPF;
  • validação avançada de data de nascimento;
  • integração com sistema real de clínica;
  • integração com plano de saúde;
  • geração de relatório em arquivo;
  • geração de PDF;
  • login de recepcionista ou administrador.

Melhorias futuras

Possíveis melhorias para versões futuras:

  • permitir cadastrar mais de um paciente na mesma execução;
  • salvar pacientes em arquivo .txt ou .csv;
  • criar busca por número de prontuário;
  • permitir edição de dados do paciente;
  • permitir remoção de paciente;
  • validar CPF;
  • validar datas;
  • criar relatório final de atendimentos;
  • separar melhor os menus em funções;
  • criar uma versão web com Flask;
  • adicionar banco de dados em uma versão futura.

Autoria

Desenvolvido por Diovanna Oliveira Betta Costa, estudante de Análise e Desenvolvimento de Sistemas.

Projeto criado como parte dos estudos em Fundamentos da Programação, com foco em Programação Orientada a Objetos, herança, encapsulamento, sobrescrita de métodos, polimorfismo e organização de fluxo no terminal.

About

Sistema em Python terminal para simular cadastro de pacientes, atendimentos e convênios usando Programação Orientada a Objetos.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages