示例#1
0
        //[ParameterTypeFilter("imprimir_cartao_vacina")]
        public async Task <byte[]> ReportCartaoVacina([FromHeader] string ibge, [FromBody] ParametersVacina report)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));

                string sql_estrutura = string.Empty;
                if (_cidadaoRepository.VerificaExisteEsusFamilia(ibge))
                {
                    sql_estrutura = $@"LEFT JOIN ESUS_FAMILIA FAM ON (PAC.ID_FAMILIA = FAM.ID)
                                       LEFT JOIN VS_ESTABELECIMENTOS D ON D.ID = FAM.ID_DOMICILIO";
                }
                else
                {
                    sql_estrutura = $@"LEFT JOIN ESUS_CADDOMICILIAR D ON PAC.ID_ESUS_CADDOMICILIAR = D.ID";
                }

                var info = _repository.GetCartaoVacinaByIndividuo(ibge, (int)report.id_cidadao, sql_estrutura);

                info.cabecalho = _segrepository.GetCabecalhoRetrato(ibge, (int)report.id_unidade);

                var model = GeraReportCartaoVacina(info);

                return(await model);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#2
0
        public ActionResult <bool> CheckVinculoMicroarea([FromHeader] string ibge, [FromRoute] int id)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                string sql_estrutura = string.Empty;
                if (_cidadaoRepository.VerificaExisteEsusFamilia(ibge))
                {
                    sql_estrutura = $@"JOIN ESUS_FAMILIA FAM ON (CP.ID_FAMILIA = FAM.ID)
                                       JOIN VS_ESTABELECIMENTOS EST ON (FAM.ID_DOMICILIO = EST.ID)";
                }
                else
                {
                    sql_estrutura = $@"JOIN ESUS_CADDOMICILIAR EST ON CP.ID_ESUS_CADDOMICILIAR = EST.ID";
                }

                bool possui_vinculo_microarea = _individuoRepository.CheckVinculoMicroarea(ibge, id, sql_estrutura);

                return(Ok(possui_vinculo_microarea));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#3
0
        public ActionResult GeraAprazamentoByIndividuo([FromHeader] string ibge, [FromBody] ParametersAprazamento model)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));

                _repository.GeraAprazamentoPopGeralByIndividuo(ibge, (int)model.id); //executa popgeral

                string sql_estrutura = string.Empty;
                if (_cidadaorepository.VerificaExisteEsusFamilia(ibge))
                {
                    sql_estrutura = $@"LEFT JOIN ESUS_FAMILIA D ON(D.ID = D.ID_FAMILIA)";
                }
                else
                {
                    sql_estrutura = $@"LEFT JOIN ESUS_CADDOMICILIAR D ON PAC.ID_ESUS_CADDOMICILIAR = D.ID";
                }

                //recupera informações de cidadão
                var cidadao = _cidadaorepository.GetCidadaoById(ibge, (int)model.id, sql_estrutura);

                if (cidadao.csi_sexpac == "Feminino")
                {
                    _repository.GeraAprazamentoFemininoByIndividuo(ibge, (int)model.id); //executa feminino

                    var gestacao = _gestacaorepository.IsGestante(ibge, (int)model.id);
                    if (gestacao != null)
                    {
                        _repository.GeraAprazamentoGestacaoByIndividuo(ibge, (int)model.id); // executa gestacao
                    }
                    else
                    {
                        var algumagestacao = _gestacaorepository.GetGestacaoByCidadao(ibge, (int)model.id);
                        if (algumagestacao != null)
                        {
                            _repository.GeraAprazamentoPuerperaByIndividuo(ibge, (int)model.id); //executa puerpera
                        }
                    }
                }
                else if (cidadao.csi_sexpac == "Masculino")
                {
                    _repository.GeraAprazamentoMasculinoByIndividuo(ibge, (int)model.id); //executa masculino
                }
                if (cidadao.verifica_deficiencia == 1)
                {
                    _repository.GeraAprazamentoDeficienciaByIndividuo(ibge, (int)model.id); //executa deficiencia
                }
                return(Ok());
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#4
0
        public ActionResult AtualizaResponsavelFamilia([FromHeader] string ibge, int?id_responsavel, int id_familia)
        {
            try
            {
                ibge = _config.GetConnectionString(Helpers.Connection.GetConnection(ibge));
                var individuo = _repository.GetIndividuoFamilia(ibge, (int)id_responsavel);
                if (id_familia != individuo)
                {
                    return(BadRequest(TrataErro.GetResponse("O indivíduo não pertence a família informada.", true)));
                }

                string sql_estrutura = string.Empty;
                if (_cidadaorepository.VerificaExisteEsusFamilia(ibge))
                {
                    sql_estrutura = $@"LEFT JOIN ESUS_FAMILIA D ON(D.ID = D.ID_FAMILIA)";
                }
                else
                {
                    sql_estrutura = $@"LEFT JOIN ESUS_CADDOMICILIAR D ON PAC.ID_ESUS_CADDOMICILIAR = D.ID";
                }

                var paciente = _cidadaorepository.GetCidadaoById(ibge, (int)id_responsavel, sql_estrutura);
                if (string.IsNullOrWhiteSpace(paciente.csi_ncartao) && string.IsNullOrWhiteSpace(paciente.csi_cpfpac))
                {
                    return(BadRequest(TrataErro.GetResponse("Para ser responsável pela Família, o indivíduo precisa ter CPF e/ou CNS preenchidos.", true)));
                }

                _repository.AtualizaResponsavelFamilia(ibge, id_familia, (int)id_responsavel);
                return(Ok());
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#5
0
        public ActionResult <List <Cidadao> > GetAllPagination([FromHeader] string ibge, int page,
                                                               int pagesize, string search, string fields, string datanasc, string situacoes)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                string filtro = string.Empty;

                if (situacoes != null && situacoes.Split(",").Length > 0 && situacoes.Split(",")[0] != null)
                {
                    foreach (var item in situacoes.Split(","))
                    {
                        if (!string.IsNullOrWhiteSpace(filtro))
                        {
                            filtro += " OR ";
                        }
                        else
                        {
                            filtro += " ( ";
                        }

                        filtro += $" C.CSI_SITUACAO LIKE '%{item}%'";
                    }
                }

                if (!string.IsNullOrWhiteSpace(filtro))
                {
                    filtro += " ) ";
                }

                if (!string.IsNullOrWhiteSpace(datanasc) && !string.IsNullOrWhiteSpace(filtro))
                {
                    filtro += $" AND C.CSI_DTNASC = '{Convert.ToDateTime(datanasc).ToString("dd/MM/yyyy")}'";
                }
                else if (!string.IsNullOrWhiteSpace(datanasc) && string.IsNullOrWhiteSpace(filtro))
                {
                    filtro += $" C.CSI_DTNASC = '{Convert.ToDateTime(datanasc).ToString("dd/MM/yyyy")}'";
                }

                if (!string.IsNullOrWhiteSpace(search))
                {
                    if (fields != null && fields.Split(",").Length > 0 && fields.Split(",")[0] != null)
                    {
                        if (string.IsNullOrWhiteSpace(filtro))
                        {
                            filtro += Helper.GetFiltroInicial(fields, search);
                        }
                        else
                        {
                            filtro += Helper.GetFiltro(fields, search);
                        }
                    }
                    else
                    {
                        var stringcod = string.Empty;
                        if (Helper.soContemNumeros(search))
                        {
                            stringcod = $" c.csi_codpac = {search} OR ";
                        }

                        if (!string.IsNullOrWhiteSpace(filtro))
                        {
                            filtro += $@" AND ( {stringcod}
                                            (SELECT UPPER(RETORNO) FROM TIRA_ACENTOS(C.CSI_NOMPAC)) LIKE '%{Helper.RemoveAcentos(search.ToUpper())}%' OR
                                            C.csi_sexpac LIKE '%{search}%' OR
                                            C.csi_ncartao LIKE '%{search}%' OR
                                            C.CSI_CPFPAC LIKE '%{search}%')";
                        }
                        else
                        {
                            filtro += $@"  ( {stringcod}
                                            (SELECT UPPER(RETORNO) FROM TIRA_ACENTOS(C.CSI_NOMPAC)) LIKE '%{Helper.RemoveAcentos(search.ToUpper())}%' OR
                                            C.csi_sexpac LIKE '%{search}%' OR
                                            C.csi_ncartao LIKE '%{search}%' OR
                                            C.CSI_CPFPAC LIKE '%{search}%')";
                        }
                    }
                }

                if (!string.IsNullOrWhiteSpace(filtro))
                {
                    filtro = " WHERE " + filtro;
                }

                string sql_estrutura = string.Empty;
                if (_cidadaoRepository.VerificaExisteEsusFamilia(ibge))
                {
                    sql_estrutura = $@"LEFT JOIN ESUS_FAMILIA FAM ON (C.ID_FAMILIA = FAM.ID)
                                       LEFT JOIN VS_ESTABELECIMENTOS D ON D.ID = FAM.ID_DOMICILIO";
                }
                else
                {
                    sql_estrutura = $@"LEFT JOIN ESUS_CADDOMICILIAR D ON C.ID_ESUS_CADDOMICILIAR = D.ID";
                }

                int count = _cidadaoRepository.GetCountAll(ibge, filtro);
                if (count == 1)
                {
                    page = 0;
                }
                else
                {
                    page = page * pagesize;
                }

                Response.Headers.Add("X-Total-Count", count.ToString());
                List <Cidadao> lista = _cidadaoRepository.GetAllPagination(ibge, filtro, page, pagesize, sql_estrutura);

                return(Ok(lista));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }