package br.com.elotech.saude.dao;

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.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;
import br.com.elotech.saude.model.prontuario.Concessao;

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

  void filaDeEspera(FilaDeEsperaFilter filter) throws Exception;

  void producaoFilaDeEspera(ProducaoFilaDeEsperaFilter filter) throws Exception;

  void estratificacaoHdi(EstratificacaoHdiFilter filter) throws Exception;

  void prescricaoMedicamentos(PrescricaoMedicamentosFilter filter) 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 consultasAgendadas(ConsultasAgendadasFilter consultasFilter) throws Exception;

  void carteirinhaVacinacao(CarteirinhaVacinacaoFilter cvFilter) throws Exception;

  void procedimentosGerais(ProcedimentosGeraisFilter procFilter) throws Exception;

  void procedimentosUnidade(ProcedimentosUnidadeFilter procFilter) throws Exception;

  void guiaEncaminhamentoExterno(GuiaEncaminhamentoExternoFilter guiaFilter) throws Exception;

  void pacientesFaixaSexo(PacientesFaixaSexoFilter pacientesFaixaSexoFilter) throws Exception;

  void movimentoSaida(MovimentoSaidaFilter movSaiFilter) throws Exception;

  void visitaDomiciliar(VisitaDomiciliarFilter visitaDomiciliarFilter) throws Exception;

  void buscaAtiva(BuscaAtivaFilter buscaAtivaFilter) throws Exception;

  void bpaIdade(BpaIdadeFilter bpaIdadeFilter) throws Exception;

  void agendamentoExternoMedico(AgendamentoExternoMedicoFilter externoMedicoFilter) throws Exception;

  void agendamentoExternoUnidade(AgendamentoExternoUnidadeFilter externoUnidadeFilter) 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;
}
