package br.com.elotech.saude.service;

import br.com.elotech.saude.model.filters.*;
import br.com.elotech.saude.model.filters.agendamento.AgendamentoExternoMedicoFilter;
import br.com.elotech.saude.model.filters.agendamento.AgendamentoPorProfissionalFilter;
import br.com.elotech.saude.model.filters.agendamento.AgendamentoPorUnidadeFilter;
import br.com.elotech.saude.model.filters.agendamento.ConsultasAgendadasFilter;
import br.com.elotech.saude.model.filters.atendimento.AtendimentoClassificacaoFilter;
import br.com.elotech.saude.model.filters.bpa.BpaIdadeFilter;
import br.com.elotech.saude.model.filters.agendamento.*;
import br.com.elotech.saude.model.filters.bpa.ProcedimentosGeraisFilter;
import br.com.elotech.saude.model.filters.bpa.ProcedimentosUnidadeFilter;
import br.com.elotech.saude.model.filters.estratificacao.EstratificacaoFamiliarFilter;
import br.com.elotech.saude.model.filters.estratificacao.EstratificacaoHdiFilter;
import br.com.elotech.saude.model.filters.estratificacao.EstratificacaoGestantesPuerperasFilter;
import br.com.elotech.saude.model.filters.estratificacao.*;
import br.com.elotech.saude.model.filters.farmacia.ConsultaDadosHorusFilter;
import br.com.elotech.saude.model.filters.laboratorio.ExamesPorPrestadorFilter;
import br.com.elotech.saude.model.filters.materiais.ContagemEstoqueFilter;
import br.com.elotech.saude.model.filters.materiais.InventarioFilter;
import br.com.elotech.saude.model.filters.farmacia.DispensacaoTipoReceitaFilter;
import br.com.elotech.saude.model.filters.materiais.MovimentoSaidaFilter;
import br.com.elotech.saude.model.filters.materiais.SaidaTransferenciaMateriaisFilter;
import br.com.elotech.saude.model.filters.paciente.EtiquetaFilter;
import br.com.elotech.saude.model.filters.prontuario.ConcessaoFilter;
import br.com.elotech.saude.model.filters.prontuario.LaudoApacFilter;
import br.com.elotech.saude.model.filters.prontuario.ReceitaMedicaEspecialFilter;
import br.com.elotech.saude.model.filters.prontuario.ReceitaMedicaFilter;
import br.com.elotech.saude.model.filters.psf.BuscaAtivaFilter;
import br.com.elotech.saude.model.filters.psf.DomicilioVinculadoFilter;
import br.com.elotech.saude.model.filters.psf.PrescricaoMedicamentosFilter;
import br.com.elotech.saude.model.filters.psf.VisitaDomiciliarFilter;
import br.com.elotech.saude.model.filters.transporte.ViagemFilter;
import br.com.elotech.saude.model.filters.transporte.ViagensFilter;
import br.com.elotech.saude.model.filters.vacinacao.CarteirinhaVacinacaoFilter;
import br.com.elotech.saude.model.filters.vacinas.AtestadoVacinaFilter;
import br.com.elotech.saude.model.filters.vacinas.ControleVacinadosPorVacinaFilter;

public interface SaudeService {
    void agendamentoPorUnidade(AgendamentoPorUnidadeFilter filter) throws Exception;

    void filaDeEspera(FilaDeEsperaFilter filaFilter) throws Exception;

    void producaoFilaDeEspera(ProducaoFilaDeEsperaFilter filaFilter) throws Exception;

    void estratificacaoHdi(EstratificacaoHdiFilter hdiFilter) throws Exception;

  void prescricaoMedicamentos(PrescricaoMedicamentosFilter pmFilter) throws Exception;

    void estratificacaoGestantesPuerperas(EstratificacaoGestantesPuerperasFilter gestantesPuerperasFilter) throws Exception;

    void estratificacaoSaudeBucal(EstratificacaoSaudeBucalFilter saudeBucalFilter) throws Exception;

    void estratificacaoSaudeMental(EstratificacaoSaudeMentalFilter saudeMentalFilter) throws Exception;

    void estratificacaoFamiliar(EstratificacaoFamiliarFilter familiarFilter) throws Exception;

    void estatisticasAreaMicroArea(EstatisticasAreaMicroAreaFilter eamaFilter) throws Exception;

    void estratificacaoCrianca(EstratificacaoCriancaFilter criancaFilter) throws Exception;

    void agendamentoPorProfissional(AgendamentoPorProfissionalFilter ageProfissionalFilter) throws Exception;

    void saidaTransferenciaMateriais(SaidaTransferenciaMateriaisFilter saidaTransferenciaMateriaisFilter) throws Exception;

    void atestadoVacina(AtestadoVacinaFilter atestadoVacinaFilter) throws Exception;

    void controleVacinadosPorVacina(ControleVacinadosPorVacinaFilter controleFilter) throws Exception;

    void procedimentosGerais(ProcedimentosGeraisFilter procFilter) throws Exception;

    void procedimentosUnidade(ProcedimentosUnidadeFilter procFilter) throws Exception;

    void consultasAgendadas(ConsultasAgendadasFilter consultaFilter) throws Exception;

    void carteirinhaVacinacao(CarteirinhaVacinacaoFilter cvFilter) throws Exception;

    void guiaEncaminhamentoExterno(GuiaEncaminhamentoExternoFilter guiaFilter) throws Exception;

    void pacientesFaixaSexo(PacientesFaixaSexoFilter faixaSexoFilter) throws Exception;

    void movimentoSaida(MovimentoSaidaFilter movSaiFilter) throws Exception;

    void visitaDomiciliar(VisitaDomiciliarFilter visitaDomiciliarFilter) throws Exception;

    void agendamentoExternoMedico(AgendamentoExternoMedicoFilter externoMedicoFilter) throws Exception;

    void buscaAtiva(BuscaAtivaFilter buscaAtivaFilter) throws Exception;

    void agendamentoExternoUnidade(AgendamentoExternoUnidadeFilter externoUnidadeFilter) throws Exception;

    void bpaIdade(BpaIdadeFilter procFilter) throws Exception;

    void laudoApac(LaudoApacFilter laudoApacFilter) throws Exception;

    void inventario(InventarioFilter inventarioFilter) throws Exception;

    void dispensacaoTipoReceita(DispensacaoTipoReceitaFilter dispensacaoTipoReceitaFilter) throws Exception;

    void listaViagem(ViagemFilter viagemFilter) throws Exception;

    void examesPorPrestador(ExamesPorPrestadorFilter examesPorPrestadorFilter) throws Exception;

    void domicilioVinculado(DomicilioVinculadoFilter domicilioVinculadoFilter) throws Exception;

    void viagens(ViagensFilter viagensFilter) throws Exception;

    void receitaMedica(ReceitaMedicaFilter receitaMedicaFilter) throws Exception;

    void receitaMedicaEspecial(ReceitaMedicaEspecialFilter receitaMedicaEspecialFilter) throws Exception;

    void atendimentosClassificacao(AtendimentoClassificacaoFilter atendimentoClassificacaoFilter) throws Exception;

    void concessao(ConcessaoFilter concessaoFilter) throws Exception;

    void etiquetaPaciente(EtiquetaFilter etiquetaFilter) throws Exception;

    void contagemEstoque(ContagemEstoqueFilter contagemEstoqueFilter) throws Exception;

    void consultaDadosHorus(ConsultaDadosHorusFilter consultaDadosHorusFilter) throws Exception;
}
