コード例 #1
0
        public void CalcularReceitaBrutaOrcamentoHospitalarCOmUmSetorComDuasContasEContaDeQuantidadeEUmaDePorcentagemEvalorDaContaEmJaneiroIgualAUmEporcentagemIgualACinquentaEUnitarioIgualACemEValorComplexidadeIgualA10PorCentoValorReceitaLiuidaDeveSerIgualACentoEDez()
        {
            Departamento departamento = new Hospital("Barra Dor");
            var Uti = new SetorHospitalar("UTI");
            var SubUtiAdulto = new SubSetorHospital("UTIAdulto");
            ContaHospital leito = new ContaHospital("Leito", TipoValorContaEnum.Quantidade);
            ContaHospital ocupacao = new ContaHospital("Ocupação", TipoValorContaEnum.Porcentagem);
            leito.MultiPlicaPorMes = true;

            Uti.AdicionarSetor(SubUtiAdulto);
            Uti.AdicionarConta(leito);
            Uti.AdicionarConta(ocupacao);

            departamento.AdicionarSetor(Uti);

            OrcamentoHospitalar orcamento = new OrcamentoHospitalar(departamento, 2014);

            var leitoProducao = orcamento.Servicos.FirstOrDefault().Valores.Where(v => v.Mes == MesEnum.Janeiro).FirstOrDefault();

            var ocupacaoProducao = orcamento.Servicos[1].Valores.Where(v => v.Mes == MesEnum.Janeiro).FirstOrDefault();

            leitoProducao.Valor = 1;
            ocupacaoProducao.Valor = 50;

            var incremento = orcamento.FatoresReceita.FirstOrDefault().Incrementos.Where(i => i.Mes == MesEnum.Janeiro).FirstOrDefault();
            incremento.Ticket = 100;

            orcamento.CalcularReceitaBruta(Tickets(100, orcamento));

            Assert.IsTrue(incremento.ReceitaBruta == 1550);
        }
コード例 #2
0
        public void CalcularReceitaBrutaOrcamentoHospitalarCOmUmSetorComUmaContaEContaDeQuantidadeEvalorDaContaEmJaneiroIgualADoisEUnitarioIgualAQuinhentosValorReceitaBrutaDeveSerIgualAMil()
        {
            Departamento departamento = new Hospital("Barra Dor");
            var CentroCirurgico = new SetorHospitalar("Cirurgia");
            var SubCentroCirurgico = new SubSetorHospital("Centro Cirúrgico");
            ContaHospital Cirurgia = new ContaHospital("Cirurgia", TipoValorContaEnum.Quantidade);

            CentroCirurgico.AdicionarSetor(SubCentroCirurgico);
            CentroCirurgico.AdicionarConta(Cirurgia);

            departamento.AdicionarSetor(CentroCirurgico);

            OrcamentoHospitalar orcamento = new OrcamentoHospitalar(departamento, 2014);

            var producaoHospitalar = orcamento.Servicos.FirstOrDefault().Valores.Where(v => v.Mes == MesEnum.Janeiro).FirstOrDefault();

            producaoHospitalar.Valor = 2;

            var incremento = orcamento.FatoresReceita.FirstOrDefault().Incrementos.Where(i => i.Mes == MesEnum.Janeiro).FirstOrDefault();
            incremento.Ticket = 500;

            orcamento.CalcularReceitaBruta(Tickets(500, orcamento));

            Assert.IsTrue(incremento.ReceitaBruta == 1000);
        }
コード例 #3
0
        public CustoUnitarioTotal(SubSetorHospital subSetor, SetorHospitalar setor, List<ValorContaDTO> servicos, List<ProducaoHospitalar> custosUnitarios, TicketDeReceita tickets)
        {
            InformarSubSetor(subSetor);
            InformarSetor(setor);
            Valores = new List<CustoHospitalar>();

            CriarCustosProducao(servicos, custosUnitarios, tickets);
        }
コード例 #4
0
        public void CriarOrcamentoHospitalarComUmSetorComUmaContaDeveTerIncrementosIgualADoze()
        {
            Departamento departamento = new Hospital("Barra Dor");
            var CentroCirurgico = new SetorHospitalar("Cirurgia");
            var SubCentroCirurgico = new SubSetorHospital("Centro Cirúrgico");
            ContaHospital Cirurgia = new ContaHospital("Cirurgia", TipoValorContaEnum.Quantidade);

            CentroCirurgico.AdicionarSetor(SubCentroCirurgico);
            CentroCirurgico.AdicionarConta(Cirurgia);

            departamento.AdicionarSetor(CentroCirurgico);

            OrcamentoHospitalar orcamento = new OrcamentoHospitalar(departamento, 2014);

            Assert.IsTrue(orcamento.FatoresReceita.FirstOrDefault().Incrementos.Count == 12);
        }
コード例 #5
0
        public void CalcularReceitaLiquidaOrcamentoHospitalarEmFevereiroComUmSetorComDuasContasEContaDeQuantidadeEUmaDePorcentagemEvalorDaContaEmJaneiroIgualAUmEporcentagemIgualANoventaEUnitarioIgualACemEValorComplexidadeIgualA10PorCentoNegativaValorReceitaLiuidaDeveSerIgualDoisMilSeticentosEnoventa()
        {
            Departamento departamento = new Hospital("Barra Dor");
            var Uti = new SetorHospitalar("UTI");
            var SubUtiAdulto = new SubSetorHospital("UTIAdulto");
            ContaHospital leito = new ContaHospital("Leito", TipoValorContaEnum.Quantidade);
            ContaHospital ocupacao = new ContaHospital("Ocupação", TipoValorContaEnum.Porcentagem);
            leito.MultiPlicaPorMes = true;

            Uti.AdicionarSetor(SubUtiAdulto);
            Uti.AdicionarConta(leito);
            Uti.AdicionarConta(ocupacao);

            departamento.AdicionarSetor(Uti);

            OrcamentoHospitalar orcamento = new OrcamentoHospitalar(departamento, 2014);

            var leitoProducao = orcamento.Servicos.FirstOrDefault().Valores.Where(v => v.Mes == MesEnum.Fevereiro).FirstOrDefault();

            var ocupacaoProducao = orcamento.Servicos[1].Valores.Where(v => v.Mes == MesEnum.Fevereiro).FirstOrDefault();

            leitoProducao.Valor = 1;
            ocupacaoProducao.Valor = 100;

            var incremento = orcamento.FatoresReceita.FirstOrDefault().Incrementos.Where(i => i.Mes == MesEnum.Janeiro).FirstOrDefault();
            incremento.Complexidade = 10;
            incremento.Negativo = true;

            var fevereiro = orcamento.FatoresReceita.FirstOrDefault().Incrementos.Where(i => i.Mes == MesEnum.Fevereiro).FirstOrDefault();
            orcamento.CalcularReceitaLiquida(Tickets1(100, orcamento),null);

            Assert.IsTrue(fevereiro.ReceitaLiquida == 2520);
        }
コード例 #6
0
        public void CalcularReceitaLiquidaOrcamentoHospitalarCOmUmSetorComUmaContaEContaDeQuantidadeEvalorDaContaEmJaneiroIgualAUmEUnitarioIgualACemEValorComplexidadeIgualA10PorCentoValorReceitaLiquidaDeveSerIgualACentoEDez()
        {
            Departamento departamento = new Hospital("Barra Dor");
            var CentroCirurgico = new SetorHospitalar("Cirurgia");
            var SubCentroCirurgico = new SubSetorHospital("Centro Cirúrgico");
            ContaHospital Cirurgia = new ContaHospital("Cirurgia", TipoValorContaEnum.Quantidade);

            CentroCirurgico.AdicionarSetor(SubCentroCirurgico);
            CentroCirurgico.AdicionarConta(Cirurgia);

            departamento.AdicionarSetor(CentroCirurgico);

            OrcamentoHospitalar orcamento = new OrcamentoHospitalar(departamento, 2014);

            var producaoHospitalar = orcamento.Servicos.FirstOrDefault().Valores.Where(v => v.Mes == MesEnum.Janeiro).FirstOrDefault();

            producaoHospitalar.Valor = 1;

            var incremento = orcamento.FatoresReceita.FirstOrDefault().Incrementos.Where(i => i.Mes == MesEnum.Janeiro).FirstOrDefault();
            incremento.Ticket = 100;
            incremento.Complexidade = 10;

            orcamento.CalcularReceitaLiquida(Tickets(100, orcamento),null);

            Assert.IsTrue(incremento.ReceitaLiquida == 110);
        }
コード例 #7
0
        public void CalcularReceitaBrutaOrcamentoHospitalarReceitaBrutaDeveSerIgualATrintaEUmMil()
        {
            Departamento departamento = new Hospital("Barra Dor");
            var Uti = new SetorHospitalar("UTI");
            var SubUtiAdulto = new SubSetorHospital("UTIAdulto");
            ContaHospital leito = new ContaHospital("Leito", TipoValorContaEnum.Quantidade);
            ContaHospital ocupacao = new ContaHospital("Ocupação", TipoValorContaEnum.Porcentagem);
            leito.MultiPlicaPorMes = true;

            Uti.AdicionarSetor(SubUtiAdulto);
            Uti.AdicionarConta(leito);
            Uti.AdicionarConta(ocupacao);

            departamento.AdicionarSetor(Uti);

            OrcamentoHospitalar orcamento = new OrcamentoHospitalar(departamento, 2014);

            var leitoProducao = orcamento.Servicos.FirstOrDefault().Valores.Where(v => v.Mes == MesEnum.Janeiro).FirstOrDefault();

            var ocupacaoProducao = orcamento.Servicos[1].Valores.Where(v => v.Mes == MesEnum.Janeiro).FirstOrDefault();

            leitoProducao.Valor = 10;
            ocupacaoProducao.Valor = 100;

            var incremento = orcamento.FatoresReceita.FirstOrDefault().Incrementos.Where(i => i.Mes == MesEnum.Janeiro).FirstOrDefault();
            incremento.Ticket = 100;

            orcamento.CalcularReceitaBruta(Tickets(100, orcamento));

            Assert.IsTrue(incremento.ReceitaBruta == 31000);
        }
コード例 #8
0
        public void InserirSetoresESubSetores(Departamento departamento)
        {
            Orcamentos orcamentos = new Orcamentos();

            var setorHemodinamica = new SetorHospitalar("Hemodinâmica");
            var subSetorHemodinamica = new SubSetorHospital("Hemodinâmica");
            setorHemodinamica.AdicionarSetor(subSetorHemodinamica);

            var setorOncologia = new SetorHospitalar("Oncologia");
            var subSetorOncologia = new SubSetorHospital("Oncologia");
            setorOncologia.AdicionarSetor(subSetorOncologia);

            var procedimento = new ContaHospital("Procedimendo", TipoValorContaEnum.Quantidade);

            setorHemodinamica.AdicionarConta(procedimento);
            setorOncologia.AdicionarConta(procedimento);

            var centroCirurgico = new SetorHospitalar("Centro Cirúrgico");
            var centroCirurgicoSubSetor = new SubSetorHospital("Centro Cirúrgico");
            var centroCirurgicoObstetrico = new SubSetorHospital("Centro Obstétrico");
            centroCirurgico.AdicionarSetor(centroCirurgicoSubSetor);
            centroCirurgico.AdicionarSetor(centroCirurgicoObstetrico);

            //Contas ta cirurgia
            var cirurgia = new ContaHospital("Cirurgias", TipoValorContaEnum.Quantidade);
            var salas = new ContaHospital("Salas", TipoValorContaEnum.Quantidade, false, true);
            var cirurgiaPorSala = new ContaHospital("Cirurgias por Sala", TipoValorContaEnum.Quantidade, true, false);

            centroCirurgico.AdicionarConta(cirurgia);
            centroCirurgico.AdicionarConta(salas);
            centroCirurgico.AdicionarConta(cirurgiaPorSala);

            cirurgiaPorSala.AnexarConta(cirurgia);
            cirurgiaPorSala.AnexarConta(salas);

            //UTI
            var uti = new SetorHospitalar("UTI");
            var utiSemiMaternidade = new SubSetorHospital("UTI Semi Maternidade");
            var utiAdulto = new SubSetorHospital("UTI Adulto");
            var utiPediatrica = new SubSetorHospital("Uti Pediátrica");
            var utiNeoNatal = new SubSetorHospital("Uti Neo-Natal");
            var utiCoronariana = new SubSetorHospital("Uti Coronariana");
            var semiIntensiva = new SubSetorHospital("Uti Semi-Intensiva");

            //Contas da UTI
            var leito = new ContaHospital("Leito", TipoValorContaEnum.Quantidade);
            var ocupacao = new ContaHospital("Taxa de Ocupação", TipoValorContaEnum.Porcentagem);
            leito.MultiPlicaPorMes = true;
            uti.AdicionarConta(leito);
            uti.AdicionarConta(ocupacao);

            //SubSetores da UTI
            uti.AdicionarSetor(utiSemiMaternidade);
            uti.AdicionarSetor(utiAdulto);
            uti.AdicionarSetor(utiPediatrica);
            uti.AdicionarSetor(utiNeoNatal);
            uti.AdicionarSetor(utiCoronariana);
            uti.AdicionarSetor(semiIntensiva);

            //UNI
            var uni = new SetorHospitalar("UNI");
            var uniAdulto = new SubSetorHospital("Uni Adulto");
            var uniPediatrica = new SubSetorHospital("Uni Pediátrica");
            var uniMaternidade = new SubSetorHospital("Maternidade");

            uni.AdicionarSetor(uniAdulto);
            uni.AdicionarSetor(uniPediatrica);
            uni.AdicionarSetor(uniMaternidade);

            //Contas UNI
            uni.AdicionarConta(leito);
            uni.AdicionarConta(ocupacao);

            //Conta Atendimento
            var atendimento = new ContaHospital("Atendimento", TipoValorContaEnum.Quantidade);

            //Emergencia
            var emergencia = new SetorHospitalar("Emergência");
            var subEmergenciaMaternidade = new SubSetorHospital("Emergência Maternidade");
            var subEmergenciaAdulto = new SubSetorHospital("Emergência Adulto");
            var subEmergenciaPediatrica = new SubSetorHospital("Emergência Pediátrica");
            emergencia.AdicionarSetor(subEmergenciaMaternidade);
            emergencia.AdicionarSetor(subEmergenciaAdulto);
            emergencia.AdicionarSetor(subEmergenciaPediatrica);
            emergencia.AdicionarConta(atendimento);

            //Ambulatorio
            var ambulatorio = new SetorHospitalar("Ambulatório");
            var subAmbulatorio = new SubSetorHospital("Ambulatório");
            ambulatorio.AdicionarSetor(subAmbulatorio);
            ambulatorio.AdicionarConta(atendimento);

            //SADT
            var sadt = new SetorHospitalar("SADT");
            var cardiologico = new SubSetorHospital("Cardiológico");
            var resonanciaMagnetica = new SubSetorHospital("Resonância Mag");
            var ultrassonografica = new SubSetorHospital("Ultrassonografia");
            var tomografiaCompleta = new SubSetorHospital("Tomografia Comp");
            var radiologia = new SubSetorHospital("Radiologia");
            var patologiaClinica = new SubSetorHospital("Patologia Clínica");
            var outros = new SubSetorHospital("Outros");
            var exames = new ContaHospital("Exames", TipoValorContaEnum.Quantidade);

            sadt.AdicionarSetor(cardiologico);
            sadt.AdicionarSetor(resonanciaMagnetica);
            sadt.AdicionarSetor(ultrassonografica);
            sadt.AdicionarSetor(tomografiaCompleta);
            sadt.AdicionarSetor(radiologia);
            sadt.AdicionarSetor(patologiaClinica);
            sadt.AdicionarSetor(outros);
            sadt.AdicionarConta(exames);

            var bercario = new SetorHospitalar("Berçário");
            var bercarioAltoRisco = new SubSetorHospital("Berçário Alto Risco");
            var bercarioSemiIntensiva = new SubSetorHospital("Berçário Semi-intensiva");

            bercario.AdicionarSetor(bercarioAltoRisco);
            bercario.AdicionarSetor(bercarioSemiIntensiva);

            bercario.AdicionarConta(ocupacao);
            bercario.AdicionarConta(leito);

            departamento.AdicionarSetor(sadt);
            departamento.AdicionarSetor(centroCirurgico);
            departamento.AdicionarSetor(uti);
            departamento.AdicionarSetor(uni);
            departamento.AdicionarSetor(emergencia);
            departamento.AdicionarSetor(ambulatorio);
            departamento.AdicionarSetor(setorHemodinamica);
            departamento.AdicionarSetor(setorOncologia);
            departamento.AdicionarSetor(bercario);

            Departamentos repositorio = new Departamentos();

            repositorio.Salvar(sadt);
            repositorio.Salvar(centroCirurgico);
            repositorio.Salvar(uti);
            repositorio.Salvar(uni);
            repositorio.Salvar(emergencia);
            repositorio.Salvar(ambulatorio);
            repositorio.Salvar(setorHemodinamica);
            repositorio.Salvar(setorOncologia);
            repositorio.Salvar(bercario);
            repositorio.Salvar(departamento);
        }
コード例 #9
0
 private void CriarCustoTotal( SubSetorHospital subSetor, SetorHospitalar setor,TicketDeReceita ticket,List<CustoUnitario> custosUnitarios,List<ContaHospitalarDTO> contasUnitarias)
 {
     this.CustosUnitariosTotal.Add(new CustoUnitarioTotal(subSetor, setor, contasUnitarias.Where(s=> s.Subsetor == subSetor.NomeSetor && s.Setor == setor.NomeSetor).FirstOrDefault().Valores,
         custosUnitarios.Where(s =>  s.SubSetor.Id == subSetor.Id && s.Setor.Id == setor.Id).FirstOrDefault().Valores.ToList(), ticket));
 }
コード例 #10
0
 public virtual void CriarServico(ContaHospital conta, SubSetorHospital subSetor, SetorHospitalar setor)
 {
     this.Servicos.Add(new ServicoHospitalar(conta, subSetor, setor));
 }
コード例 #11
0
 public virtual void CriarFatorReceita(SubSetorHospital subSetor, SetorHospitalar setor)
 {
     this.FatoresReceita.Add(new FatorReceita(setor, subSetor));
 }
コード例 #12
0
 public virtual void Salvar(SetorHospitalar setor)
 {
     base.Salvar(setor);
 }
コード例 #13
0
        public void insetir_setor_Suporte()
        {
            ContasHospitalares contas = new ContasHospitalares();

            var outrasReceitas = new ContaHospital("OutrasReceitas", TipoValorContaEnum.Quantidade);

            var departamentos = new Departamentos();
            var todos = departamentos.Todos<Hospital>();

            var suporte = new SetorHospitalar("Maternidade");
            var subSuporte = new SubSetorHospital("Maternidade");

            suporte.AdicionarSetor(subSuporte);
            suporte.AdicionarConta(outrasReceitas);

            var setores = new SetoresHospitalares();
            setores.Salvar(suporte);

            Insumos insumos = new Insumos();

            foreach (var departamento in todos)
            {
                departamento.AdicionarSetor(suporte);
                departamentos.Salvar(departamento);

                var insumo = insumos.ObterInsumo(departamento);
                insumo.CriarCustoUnitarioHospitalarPor(suporte);
                insumos.Salvar(insumo);

                foreach (var subsetor in suporte.SubSetores)
                {
                    var ticket = new TicketDeProducao(suporte, subsetor, departamento);

                    insumos.Salvar(ticket);
                }
            }
        }
コード例 #14
0
        public void insetir_setor_Semi()
        {
            ContasHospitalares contas = new ContasHospitalares();

            var leito = new ContaHospital("Capacidade Operacional", TipoValorContaEnum.Quantidade);
            var ocupacao = new ContaHospital("Taxa de Ocupação", TipoValorContaEnum.Porcentagem);
            var capacidadeFisica = new ContaHospital("Capacidade Fisica", TipoValorContaEnum.Quantidade, false, false);
            leito.MultiPlicaPorMes = true;

            var departamentos = new Departamentos();
            var todos = departamentos.Todos<Hospital>();

            var semi = new SetorHospitalar("Semi");
            var subSemiIntensiva = new SubSetorHospital("Uti Semi-Intensiva");

            semi.AdicionarSetor(subSemiIntensiva);
            semi.AdicionarConta(leito);
            semi.AdicionarConta(ocupacao);
            semi.AdicionarConta(capacidadeFisica);

            var setores = new SetoresHospitalares();
            setores.Salvar(semi);

            Insumos insumos = new Insumos();

            foreach (var departamento in todos)
            {
                departamento.AdicionarSetor(semi);
                departamentos.Salvar(departamento);

                var insumo = insumos.ObterInsumo(departamento);
                insumo.CriarCustoUnitarioHospitalarPor(semi);
                insumos.Salvar(insumo);

                foreach (var subsetor in semi.SubSetores)
                {
                    var ticket = new TicketDeProducao(semi, subsetor, departamento);

                    insumos.Salvar(ticket);
                }
            }
        }
コード例 #15
0
        public void CriarOrcamentoHospitalarComUmSetorComUmaContaDeveTeServicosHospitalaresIgualAUm()
        {
            Departamento departamento = new Hospital("Barra Dor");
            var CentroCirurgico = new SetorHospitalar("Cirurgia");
            var SubCentroCirurgico = new SubSetorHospital("Centro Cirúrgico");
            ContaHospital Cirurgia = new ContaHospital("Cirurgia", TipoValorContaEnum.Quantidade);

            CentroCirurgico.AdicionarSetor(SubCentroCirurgico);
            CentroCirurgico.AdicionarConta(Cirurgia);

            departamento.AdicionarSetor(CentroCirurgico);

            OrcamentoHospitalar orcamento = new OrcamentoHospitalar(departamento, 2014);
            Assert.IsTrue(orcamento.Servicos.Count == 1);
        }
コード例 #16
0
 private void InformarSetor(SetorHospitalar setor)
 {
     Contract.Requires(setor != null, "Setor setor deve ser diferente de nulo.");
     this.Setor = setor;
 }
コード例 #17
0
        public void r_insetir_setor_bercario()
        {
            ContasHospitalares contas = new ContasHospitalares();
            var leito = contas.ObterContaPor("Leito");
            var taxa = contas.ObterContaPor("Taxa de Ocupação");

            var departamentos = new Departamentos();
            var todos = departamentos.Todos<Hospital>();

            var bercario = new SetorHospitalar("Berçário");
            var bercarioAltoRisco = new SubSetorHospital("Berçário Alto Risco");
            var bercarioSemiIntensiva = new SubSetorHospital("Berçário Semi-intensiva");

            bercario.AdicionarSetor(bercarioAltoRisco);
            bercario.AdicionarSetor(bercarioSemiIntensiva);
            bercario.AdicionarConta(leito);
            bercario.AdicionarConta(taxa);

            Insumos insumos = new Insumos();

            foreach (var departamento in todos)
            {
                departamento.AdicionarSetor(bercario);
                departamentos.Salvar(departamento);

                var insumo = insumos.ObterInsumo(departamento);
                insumo.CriarCustoUnitarioHospitalarPor(bercario);
                insumos.Salvar(insumo);

                foreach (var subsetor in bercario.SubSetores)
                {
                    var ticket = new TicketDeProducao(bercario, subsetor, departamento);

                    insumos.Salvar(ticket);
                }
            }
        }