This commit is contained in:
@@ -0,0 +1,644 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Integracao\Esus\GerenciamentoEnvio\Ficha;
|
||||
|
||||
use App\Enums\AtencaoBasica\CadastroIndividual\SaidaCidadao as CadastroIndividualSaidaCidadao;
|
||||
use App\Enums\Cadastro\SujeitoAtencao\Sexo;
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\AcompanhamentoInfantil;
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\AlimentacaoDiaria;
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\ComunidadeTradicional;
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\Curso;
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\DoencaCardiaca;
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\DoencaRespiratoria;
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\HigienePessoal;
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\OrientacaoSexual;
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\OrigemAlimentacao;
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\Parentesco;
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\Peso;
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\ProblemasRins;
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\SaidaCidadao;
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\SituacaoMercadoTrabalho;
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\SituacaoRua;
|
||||
use App\Models\Cadastro\SujeitoAtencao\DeficienciaBase;
|
||||
use App\Models\Cadastro\SujeitoAtencao\EtniaIndigena;
|
||||
use App\Models\Cadastro\SujeitoAtencao\IdentidadeGenero;
|
||||
use App\Models\Cadastro\SujeitoAtencao\Nacionalidade;
|
||||
use App\Models\Cadastro\SujeitoAtencao\RacaCor;
|
||||
use App\Models\Intranet\Pais;
|
||||
use App\Models\Sigtap\Ocupacao;
|
||||
use App\Utils\DataUtil;
|
||||
use App\Utils\MaskUtil;
|
||||
|
||||
class FichaCadastroIndividual extends Ficha
|
||||
{
|
||||
public function __construct($xmlEnvio, $inconsistenciaModel)
|
||||
{
|
||||
parent::__construct($xmlEnvio, $inconsistenciaModel);
|
||||
|
||||
$this->domx->registerNamespace('ns4', 'http://esus.ufsc.br/cadastroindividual');
|
||||
}
|
||||
|
||||
public function __invoke()
|
||||
{
|
||||
$path = '//ns4:cadastroIndividualTransport';
|
||||
|
||||
$this->setProfissional($path);
|
||||
$this->setPaciente($path);
|
||||
$this->setInformacaoSociodemografica($path);
|
||||
$this->setInformacaoSocioeconomica($path);
|
||||
$this->setRecusaCadastro($path);
|
||||
$this->setCondicaoSaudeGeral($path);
|
||||
$this->setSituacaoRua($path);
|
||||
|
||||
return $this->ficha;
|
||||
}
|
||||
|
||||
private function setProfissional($cadastroIndividualTransportPath)
|
||||
{
|
||||
$headerTransportPath = "{$cadastroIndividualTransportPath}/headerTransport";
|
||||
|
||||
$ocupacao = $this->getFirstNodeValue("{$headerTransportPath}/cboCodigo_2002")
|
||||
? Ocupacao::where('codigo', $this->getFirstNodeValue("{$headerTransportPath}/cboCodigo_2002"))->first()
|
||||
: null;
|
||||
|
||||
$campos = (object) [
|
||||
'dataAtendimento' => $this->getDateString($this->getFirstNodeValue("{$headerTransportPath}/dataAtendimento")),
|
||||
'codigoIbgeMunicipio' => $this->getFirstNodeValue("{$headerTransportPath}/codigoIbgeMunicipio"),
|
||||
'profissionalNome' => $this->inconsistenciaModel->cadastroIndividual->usuario->cidadao->nome,
|
||||
'profissionalCNS' => MaskUtil::getCnsMasked($this->getFirstNodeValue("{$headerTransportPath}/profissionalCNS")),
|
||||
'cboCodigo_2002' => $ocupacao ? "{$ocupacao->codigo} - {$ocupacao->nome}" : null,
|
||||
'cnes' => $this->getFirstNodeValue("{$headerTransportPath}/cnes"),
|
||||
'ine' => $this->getFirstNodeValue("{$headerTransportPath}/ine"),
|
||||
];
|
||||
|
||||
$inconsistencias = $this->getInconsistencias([
|
||||
['Data', fn () => $this->inconsistencias->headerTransport->dataAtendimento],
|
||||
['IBGE', fn () => $this->inconsistencias->headerTransport->codigoIbgeMunicipio],
|
||||
['CNS', fn () => $this->inconsistencias->headerTransport->profissionalCNS],
|
||||
['CBO', fn () => $this->inconsistencias->headerTransport->cboCodigo_2002],
|
||||
['CNES', fn () => $this->inconsistencias->headerTransport->cnes],
|
||||
['INE', fn () => $this->inconsistencias->headerTransport->ine],
|
||||
]);
|
||||
|
||||
$this->ficha->profissional = (object) compact('campos', 'inconsistencias');
|
||||
}
|
||||
|
||||
private function setPaciente($cadastroIndividualTransportPath)
|
||||
{
|
||||
$path = "{$cadastroIndividualTransportPath}/identificacaoUsuarioCidadao";
|
||||
|
||||
$campos = (object) [
|
||||
'nomeSocial' => $this->getFirstNodeValue("{$path}/nomeSocial"),
|
||||
'codigoIbgeMunicipioNascimento' => $this->getFirstNodeValue("{$path}/codigoIbgeMunicipioNascimento"),
|
||||
'dataNascimentoCidadao' => $this->getDateString($this->getFirstNodeValue("{$path}/dataNascimentoCidadao")),
|
||||
'desconheceNomeMae' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/desconheceNomeMae"))),
|
||||
'emailCidadao' => $this->getFirstNodeValue("{$path}/emailCidadao"),
|
||||
'nacionalidadeCidadao' => $this->getFirstNodeValue("{$path}/nacionalidadeCidadao")
|
||||
? Nacionalidade::where('codigo_esus', $this->getFirstNodeValue("{$path}/nacionalidadeCidadao"))
|
||||
->first()->descricao
|
||||
: null,
|
||||
'nomeCidadao' => $this->getFirstNodeValue("{$path}/nomeCidadao"),
|
||||
'nomeMaeCidadao' => $this->getFirstNodeValue("{$path}/nomeMaeCidadao"),
|
||||
'cnsCidadao' => MaskUtil::getCnsMasked($this->getFirstNodeValue("{$path}/cnsCidadao")),
|
||||
'cpfCidadao' => MaskUtil::getCpfMasked($this->getFirstNodeValue("{$path}/cpfCidadao")),
|
||||
'telefoneCelular' => MaskUtil::getPhoneMasked($this->getFirstNodeValue("{$path}/telefoneCelular")),
|
||||
'numeroNisPisPasep' => $this->getFirstNodeValue("{$path}/numeroNisPisPasep"),
|
||||
'paisNascimento' => $this->getFirstNodeValue("{$path}/paisNascimento")
|
||||
? Pais::where('codigo_esus', $this->getFirstNodeValue("{$path}/paisNascimento"))->first()->nome
|
||||
: null,
|
||||
'racaCorCidadao' => $this->getFirstNodeValue("{$path}/racaCorCidadao")
|
||||
? RacaCor::where('codigo_esus', $this->getFirstNodeValue("{$path}/racaCorCidadao"))->first()->descricao
|
||||
: null,
|
||||
'sexoCidadao' => $this->getSexo($this->getFirstNodeValue("{$path}/sexoCidadao")),
|
||||
'statusEhResponsavel' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusEhResponsavel"))),
|
||||
'etnia' => $this->getFirstNodeValue("{$path}/etnia")
|
||||
? EtniaIndigena::where('codigo_cadsus', $this->getFirstNodeValue("{$path}/etnia"))->first()->descricao
|
||||
: null,
|
||||
'nomePaiCidadao' => $this->getFirstNodeValue("{$path}/nomePaiCidadao"),
|
||||
'desconheceNomePai' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/desconheceNomePai"))),
|
||||
'dtNaturalizacao' => $this->getDateString($this->getFirstNodeValue("{$path}/dtNaturalizacao")),
|
||||
'portariaNaturalizacao' => $this->getFirstNodeValue("{$path}/portariaNaturalizacao"),
|
||||
'dtEntradaBrasil' => $this->getDateString($this->getFirstNodeValue("{$path}/dtEntradaBrasil")),
|
||||
'microArea' => $this->getFirstNodeValue("{$path}/microArea"),
|
||||
'stForaArea' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/stForaArea"))),
|
||||
];
|
||||
|
||||
$inconsistencias = $this->getInconsistencias([
|
||||
['Nome social', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->nomeSocial],
|
||||
['IBGE (Nascimento)', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->codigoIbgeMunicipioNascimento],
|
||||
['Data de nascimento', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->dataNascimentoCidadao],
|
||||
['Desconhece mãe', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->desconheceNomeMae],
|
||||
['E-mail', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->emailCidadao],
|
||||
['Nacionalidade', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->nacionalidadeCidadao],
|
||||
['Nome', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->nomeCidadao],
|
||||
['Nome da mãe', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->nomeMaeCidadao],
|
||||
['CNS', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->cnsCidadao],
|
||||
['CPF', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->cpfCidadao],
|
||||
['Telefone', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->telefoneCelular],
|
||||
['PIS / PASEP | NIS', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->numeroNisPisPasep],
|
||||
['País de nascimento', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->paisNascimento],
|
||||
['Raça/cor', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->racaCorCidadao],
|
||||
['Sexo', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->sexoCidadao],
|
||||
['É responsável', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->statusEhResponsavel],
|
||||
['Etnia', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->etnia],
|
||||
['Nome do pai', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->nomePaiCidadao],
|
||||
['Desconhece pai', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->desconheceNomePai],
|
||||
['Data de naturalização', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->dtNaturalizacao],
|
||||
['Portaria de naturalização', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->portariaNaturalizacao],
|
||||
['Data de entrada no Brasil', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->dtEntradaBrasil],
|
||||
['Microárea', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->microArea],
|
||||
['Fora de área', fn () => $this->inconsistencias->identificacaoUsuarioCidadao->stForaArea],
|
||||
]);
|
||||
|
||||
$this->ficha->paciente = (object) compact('campos', 'inconsistencias');
|
||||
}
|
||||
|
||||
private function setInformacaoSociodemografica($cadastroIndividualTransportPath)
|
||||
{
|
||||
$path = "{$cadastroIndividualTransportPath}/informacoesSocioDemograficas";
|
||||
|
||||
$ocupacao = $this->getFirstNodeValue("{$path}/ocupacaoCodigoCbo2002")
|
||||
? Ocupacao::where('codigo', $this->getFirstNodeValue("{$path}/ocupacaoCodigoCbo2002"))->first()
|
||||
: null;
|
||||
|
||||
$campos = (object) [
|
||||
'grauInstrucaoCidadao' => $this->getFirstNodeValue("{$path}/grauInstrucaoCidadao")
|
||||
? Curso::where('codigo_esus', $this->getFirstNodeValue("{$path}/grauInstrucaoCidadao"))->first()->descricao
|
||||
: null,
|
||||
'ocupacaoCodigoCbo2002' => $ocupacao ? "{$ocupacao->codigo} - {$ocupacao->nome}" : null,
|
||||
'orientacaoSexualCidadao' => $this->getFirstNodeValue("{$path}/orientacaoSexualCidadao")
|
||||
? OrientacaoSexual::where('codigo_esus', $this->getFirstNodeValue("{$path}/orientacaoSexualCidadao"))
|
||||
->first()->descricao
|
||||
: null,
|
||||
'relacaoParentescoCidadao' => $this->getFirstNodeValue("{$path}/relacaoParentescoCidadao")
|
||||
? Parentesco::where('codigo_esus', $this->getFirstNodeValue("{$path}/relacaoParentescoCidadao"))->first()->descricao
|
||||
: null,
|
||||
'situacaoMercadoTrabalhoCidadao' => $this->getFirstNodeValue("{$path}/situacaoMercadoTrabalhoCidadao")
|
||||
? SituacaoMercadoTrabalho::where('codigo_esus', $this->getFirstNodeValue("{$path}/situacaoMercadoTrabalhoCidadao"))
|
||||
->first()->descricao
|
||||
: null,
|
||||
'statusDesejaInformarOrientacaoSexual' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusDesejaInformarOrientacaoSexual"))),
|
||||
'statusFrequentaBenzedeira' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusFrequentaBenzedeira"))),
|
||||
'statusFrequentaEscola' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusFrequentaEscola"))),
|
||||
'statusMembroPovoComunidadeTradicional' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusMembroPovoComunidadeTradicional"))),
|
||||
'statusParticipaGrupoComunitario' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusParticipaGrupoComunitario"))),
|
||||
'statusPossuiPlanoSaudePrivado' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusPossuiPlanoSaudePrivado"))),
|
||||
'statusTemAlgumaDeficiencia' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusTemAlgumaDeficiencia"))),
|
||||
'identidadeGeneroCidadao' => $this->getFirstNodeValue("{$path}/identidadeGeneroCidadao")
|
||||
? IdentidadeGenero::where('codigo_esus', $this->getFirstNodeValue("{$path}/identidadeGeneroCidadao"))
|
||||
->first()->descricao
|
||||
: null,
|
||||
'statusDesejaInformarIdentidadeGenero' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusDesejaInformarIdentidadeGenero"))),
|
||||
'coPovoComunidadeTradicional' => $this->getFirstNodeValue("{$path}/coPovoComunidadeTradicional")
|
||||
? ComunidadeTradicional::where('codigo_esus', $this->getFirstNodeValue("{$path}/coPovoComunidadeTradicional"))
|
||||
->first()->descricao
|
||||
: null,
|
||||
];
|
||||
|
||||
$deficienciasCidadao = [];
|
||||
$responsaveisPorCrianca = [];
|
||||
|
||||
foreach ($this->domx->query("{$path}/deficienciasCidadao") as $context) {
|
||||
|
||||
$deficienciasCidadao[] = DeficienciaBase::where('codigo_esus', $context->nodeValue)->first()->descricao;
|
||||
}
|
||||
|
||||
foreach ($this->domx->query("{$path}/responsavelPorCrianca") as $context) {
|
||||
|
||||
$responsaveisPorCrianca[] = AcompanhamentoInfantil::where('codigo_esus', $context->nodeValue)->first()->descricao;
|
||||
}
|
||||
|
||||
$campos->deficienciasCidadao = collect($deficienciasCidadao)->join(', ');
|
||||
$campos->responsaveisPorCrianca = collect($responsaveisPorCrianca)->join(', ');
|
||||
|
||||
$inconsistencias = $this->getInconsistencias([
|
||||
[
|
||||
'Deficiências',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->deficienciasCidadao
|
||||
],
|
||||
[
|
||||
'Qual é o curso mais elevado que frequenta ou frequentou?',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->grauInstrucaoCidadao
|
||||
],
|
||||
[
|
||||
'Ocupação',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->ocupacaoCodigoCbo2002
|
||||
],
|
||||
[
|
||||
'Orientação sexual',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->orientacaoSexualCidadao
|
||||
],
|
||||
[
|
||||
'Relação de parentesco com o responsável familiar',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->relacaoParentescoCidadao
|
||||
],
|
||||
[
|
||||
'Situação no mercado de trabalho',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->situacaoMercadoTrabalhoCidadao
|
||||
],
|
||||
[
|
||||
'Deseja informar orientação sexual?',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->statusDesejaInformarOrientacaoSexual
|
||||
],
|
||||
[
|
||||
'Frequenta cuidador tradicional?',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->statusFrequentaBenzedeira
|
||||
],
|
||||
[
|
||||
'Frequenta escola ou creche?',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->statusFrequentaEscola
|
||||
],
|
||||
[
|
||||
'É membro de povo ou comunidade tradicional?',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->statusMembroPovoComunidadeTradicional
|
||||
],
|
||||
[
|
||||
'Participa de grupo comunitário?',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->statusParticipaGrupoComunitario
|
||||
],
|
||||
[
|
||||
'Possui plano de saúde privado?',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->statusPossuiPlanoSaudePrivado
|
||||
],
|
||||
[
|
||||
'Tem alguma deficiência?',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->statusTemAlgumaDeficiencia
|
||||
],
|
||||
[
|
||||
'Identidade de gênero',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->identidadeGeneroCidadao
|
||||
],
|
||||
[
|
||||
'Deseja informar identidade de gênero?',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->statusDesejaInformarIdentidadeGenero
|
||||
],
|
||||
[
|
||||
'Crianças de 0 a 9 anos, com quem fica?',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->responsavelPorCrianca
|
||||
],
|
||||
[
|
||||
'Povo ou comunidade tradicional',
|
||||
fn () => $this->inconsistencias->informacoesSocioDemograficas->coPovoComunidadeTradicional
|
||||
],
|
||||
]);
|
||||
|
||||
$this->ficha->informacao_sociodemografica = (object) compact('campos', 'inconsistencias');
|
||||
|
||||
$this->setSaidaCidadaoCadastro($cadastroIndividualTransportPath);
|
||||
}
|
||||
|
||||
private function setSaidaCidadaoCadastro($cadastroIndividualTransportPath)
|
||||
{
|
||||
$path = "{$cadastroIndividualTransportPath}/saidaCidadaoCadastro";
|
||||
|
||||
$motivo = $this->getFirstNodeValue("{$path}/motivoSaidaCidadao")
|
||||
? SaidaCidadao::where('codigo_esus', $this->getFirstNodeValue("{$path}/motivoSaidaCidadao"))->first()
|
||||
: null;
|
||||
|
||||
$campos = (object) [
|
||||
'is_motivo_saida_obito' => ($motivo->id ?? null) === CadastroIndividualSaidaCidadao::OBITO,
|
||||
'motivoSaidaCidadao' => $motivo->descricao ?? null,
|
||||
'dataObito' => $this->getDateString($this->getFirstNodeValue("{$path}/dataObito")),
|
||||
'numeroDO' => $this->getFirstNodeValue("{$path}/numeroDO"),
|
||||
];
|
||||
|
||||
$inconsistencias = $this->getInconsistencias([
|
||||
['Motivo', fn () => $this->inconsistencias->saidaCidadaoCadastro->motivoSaidaCidadao],
|
||||
['Data de óbito', fn () => $this->inconsistencias->saidaCidadaoCadastro->dataObito],
|
||||
['Número da declaração de óbito', fn () => $this->inconsistencias->saidaCidadaoCadastro->numeroDO],
|
||||
]);
|
||||
|
||||
$this->ficha->informacao_sociodemografica->campos->saida_cidadao_cadastro = (object) compact('campos', 'inconsistencias');
|
||||
}
|
||||
|
||||
private function setInformacaoSocioeconomica($cadastroIndividualTransportPath)
|
||||
{
|
||||
$path = "{$cadastroIndividualTransportPath}/informacoesSocioEconomicas";
|
||||
|
||||
$campos = (object) [
|
||||
'alimentosAcabaramAntesTerDinheiroComprarMais' => $this->getSimNaoNaoInformado(
|
||||
$this->getFirstNodeValue("{$path}/alimentosAcabaramAntesTerDinheiroComprarMais")),
|
||||
'comeuAlgunsAlimentosQueTinhaDinheiroAcabou' => $this->getSimNaoNaoInformado(
|
||||
$this->getFirstNodeValue("{$path}/comeuAlgunsAlimentosQueTinhaDinheiroAcabou")),
|
||||
];
|
||||
|
||||
$inconsistencias = $this->getInconsistencias([
|
||||
[
|
||||
'Nos últimos três meses, os alimentos acabaram antes que você tivesse dinheiro para comprar mais comida?',
|
||||
fn () => $this->inconsistencias->informacoesSocioEconomicas->alimentosAcabaramAntesTerDinheiroComprarMais
|
||||
],
|
||||
[
|
||||
'Nos últimos três meses, você comeu apenas alguns alimentos que ainda tinha, porque o dinheiro acabou?',
|
||||
fn () => $this->inconsistencias->informacoesSocioEconomicas->comeuAlgunsAlimentosQueTinhaDinheiroAcabou
|
||||
],
|
||||
]);
|
||||
|
||||
$this->ficha->informacao_socioeconomica = (object) compact('campos', 'inconsistencias');
|
||||
}
|
||||
|
||||
private function setRecusaCadastro($cadastroIndividualTransportPath)
|
||||
{
|
||||
$path = $cadastroIndividualTransportPath;
|
||||
|
||||
$campos = (object) [
|
||||
'statusTermoRecusaCadastroIndividualAtencaoBasica' => DataUtil::getSimOuNao(
|
||||
DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusTermoRecusaCadastroIndividualAtencaoBasica")
|
||||
)
|
||||
)
|
||||
];
|
||||
|
||||
$inconsistencias = $this->getInconsistencias([
|
||||
[
|
||||
'Usuário recusou o cadastro por meio do termo de Recusa do Cadastro',
|
||||
fn () => $this->inconsistencias->statusTermoRecusaCadastroIndividualAtencaoBasica
|
||||
],
|
||||
]);
|
||||
|
||||
$this->ficha->recusa_cadastro = (object) compact('campos', 'inconsistencias');
|
||||
}
|
||||
|
||||
private function setCondicaoSaudeGeral($cadastroIndividualTransportPath)
|
||||
{
|
||||
$path = "{$cadastroIndividualTransportPath}/condicoesDeSaude";
|
||||
|
||||
$campos = (object) [
|
||||
'descricaoCausaInternacaoEm12Meses' => $this->getFirstNodeValue("{$path}/descricaoCausaInternacaoEm12Meses"),
|
||||
'descricaoOutraCondicao1' => $this->getFirstNodeValue("{$path}/descricaoOutraCondicao1"),
|
||||
'descricaoOutraCondicao2' => $this->getFirstNodeValue("{$path}/descricaoOutraCondicao2"),
|
||||
'descricaoOutraCondicao3' => $this->getFirstNodeValue("{$path}/descricaoOutraCondicao3"),
|
||||
'descricaoPlantasMedicinaisUsadas' => $this->getFirstNodeValue("{$path}/descricaoPlantasMedicinaisUsadas"),
|
||||
'maternidadeDeReferencia' => $this->getFirstNodeValue("{$path}/maternidadeDeReferencia"),
|
||||
'situacaoPeso' => $this->getFirstNodeValue("{$path}/situacaoPeso")
|
||||
? Peso::where('codigo_esus', $this->getFirstNodeValue("{$path}/situacaoPeso"))->first()->descricao
|
||||
: null,
|
||||
'statusEhDependenteAlcool' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusEhDependenteAlcool"))),
|
||||
'statusEhDependenteOutrasDrogas' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusEhDependenteOutrasDrogas"))),
|
||||
'statusEhFumante' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusEhFumante"))),
|
||||
'statusEhGestante' => $this->inconsistenciaModel->cadastroIndividual->paciente->cidadao->sexo_id === Sexo::FEMININO
|
||||
? DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusEhGestante")))
|
||||
: 'Não se aplica',
|
||||
'statusEstaAcamado' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusEstaAcamado"))),
|
||||
'statusEstaDomiciliado' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusEstaDomiciliado"))),
|
||||
'statusTemDiabetes' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusTemDiabetes"))),
|
||||
'statusTemDoencaRespiratoria' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusTemDoencaRespiratoria"))),
|
||||
'statusTemHanseniase' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusTemHanseniase"))),
|
||||
'statusTemHipertensaoArterial' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusTemHipertensaoArterial"))),
|
||||
'statusTemTeveCancer' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusTemTeveCancer"))),
|
||||
'statusTemTeveDoencasRins' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusTemTeveDoencasRins"))),
|
||||
'statusTemTuberculose' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusTemTuberculose"))),
|
||||
'statusTeveAvcDerrame' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusTeveAvcDerrame"))),
|
||||
'statusTeveDoencaCardiaca' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusTeveDoencaCardiaca"))),
|
||||
'statusTeveInfarto' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusTeveInfarto"))),
|
||||
'statusTeveInternadoEm12Meses' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusTeveInternadoEm12Meses"))),
|
||||
'statusUsaOutrasPraticasIntegrativasOuComplementares' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusUsaOutrasPraticasIntegrativasOuComplementares"))),
|
||||
'statusUsaPlantaMedicinais' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusUsaPlantaMedicinais"))),
|
||||
'statusDiagnosticoMental' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusDiagnosticoMental"))),
|
||||
];
|
||||
|
||||
$doencasCardiacas = [];
|
||||
$doencasRespiratorias = [];
|
||||
$doencasRins = [];
|
||||
|
||||
foreach ($this->domx->query("{$path}/doencaCardiaca") as $context) {
|
||||
|
||||
$doencasCardiacas[] = DoencaCardiaca::where('codigo_esus', $context->nodeValue)->first()->descricao;
|
||||
}
|
||||
|
||||
foreach ($this->domx->query("{$path}/doencaRespiratoria") as $context) {
|
||||
|
||||
$doencasRespiratorias[] = DoencaRespiratoria::where('codigo_esus', $context->nodeValue)->first()->descricao;
|
||||
}
|
||||
|
||||
foreach ($this->domx->query("{$path}/doencaRins") as $context) {
|
||||
|
||||
$doencasRins[] = ProblemasRins::where('codigo_esus', $context->nodeValue)->first()->descricao;
|
||||
}
|
||||
|
||||
$campos->doencasCardiacas = collect($doencasCardiacas)->join(', ');
|
||||
$campos->doencasRespiratorias = collect($doencasRespiratorias)->join(', ');
|
||||
$campos->doencasRins = collect($doencasRins)->join(', ');
|
||||
|
||||
$inconsistencias = $this->getInconsistencias([
|
||||
[
|
||||
'Motivo internação nos últimos 12 meses',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->descricaoCausaInternacaoEm12Meses
|
||||
],
|
||||
[
|
||||
'Outra condição de saúde 1',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->descricaoOutraCondicao1
|
||||
],
|
||||
[
|
||||
'Outra condição de saúde 2',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->descricaoOutraCondicao2
|
||||
],
|
||||
[
|
||||
'Outra condição de saúde 3',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->descricaoOutraCondicao3
|
||||
],
|
||||
[
|
||||
'Quais plantas medicinais?',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->descricaoPlantasMedicinaisUsadas
|
||||
],
|
||||
[
|
||||
'Quais doenças cardíacas?',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->doencaCardiaca
|
||||
],
|
||||
[
|
||||
'Quais doenças respiratórias?',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->doencaRespiratoria
|
||||
],
|
||||
[
|
||||
'Quais problemas nos rins?',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->doencaRins
|
||||
],
|
||||
[
|
||||
'Qual é a maternidade de referência?',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->maternidadeDeReferencia
|
||||
],
|
||||
[
|
||||
'Peso',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->situacaoPeso
|
||||
],
|
||||
[
|
||||
'Usa álcool',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusEhDependenteAlcool
|
||||
],
|
||||
[
|
||||
'Outras drogas',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusEhDependenteOutrasDrogas
|
||||
],
|
||||
[
|
||||
'Fumante',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusEhFumante
|
||||
],
|
||||
[
|
||||
'Gestante',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusEhGestante
|
||||
],
|
||||
[
|
||||
'Está acamado?',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusEstaAcamado
|
||||
],
|
||||
[
|
||||
'Está domiciliado?',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusEstaDomiciliado
|
||||
],
|
||||
[
|
||||
'Diabetes',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusTemDiabetes
|
||||
],
|
||||
[
|
||||
'Tem doença respiratória/no pulmão?',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusTemDoencaRespiratoria
|
||||
],
|
||||
[
|
||||
'Está com hanseníase',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusTemHanseniase
|
||||
],
|
||||
[
|
||||
'Hipertensão',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusTemHipertensaoArterial
|
||||
],
|
||||
[
|
||||
'Tem ou teve câncer',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusTemTeveCancer
|
||||
],
|
||||
[
|
||||
'Tem ou teve problemas nos rins?',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusTemTeveDoencasRins
|
||||
],
|
||||
[
|
||||
'Está com tuberculose',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusTemTuberculose
|
||||
],
|
||||
[
|
||||
'Teve AVC/Derrame',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusTeveAvcDerrame
|
||||
],
|
||||
[
|
||||
'Teve doença cardíaca/do coração?',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusTeveDoencaCardiaca
|
||||
],
|
||||
[
|
||||
'Teve infarto',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusTeveInfarto
|
||||
],
|
||||
[
|
||||
'Teve internação nos últimos 12 meses?',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusTeveInternadoEm12Meses
|
||||
],
|
||||
[
|
||||
'Usa práticas integrativas e complementares?',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusUsaOutrasPraticasIntegrativasOuComplementares
|
||||
],
|
||||
[
|
||||
'Usa plantas medicinais?',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusUsaPlantaMedicinais
|
||||
],
|
||||
[
|
||||
'Fez ou faz tratamento psiquiátrico ou teve internação por problema de saúde mental?',
|
||||
fn () => $this->inconsistencias->condicoesDeSaude->statusDiagnosticoMental
|
||||
],
|
||||
]);
|
||||
|
||||
$this->ficha->condicao_saude_geral = (object) compact('campos', 'inconsistencias');
|
||||
}
|
||||
|
||||
private function setSituacaoRua($cadastroIndividualTransportPath)
|
||||
{
|
||||
$path = "{$cadastroIndividualTransportPath}/emSituacaoDeRua";
|
||||
|
||||
$campos = (object) [
|
||||
'grauParentescoFamiliarFrequentado' => $this->getFirstNodeValue("{$path}/grauParentescoFamiliarFrequentado"),
|
||||
'outraInstituicaoQueAcompanha' => $this->getFirstNodeValue("{$path}/outraInstituicaoQueAcompanha"),
|
||||
'quantidadeAlimentacoesAoDiaSituacaoRua' => $this->getFirstNodeValue("{$path}/quantidadeAlimentacoesAoDiaSituacaoRua")
|
||||
? AlimentacaoDiaria::where(
|
||||
'codigo_esus',
|
||||
$this->getFirstNodeValue("{$path}/quantidadeAlimentacoesAoDiaSituacaoRua")
|
||||
)->first()->descricao
|
||||
: null,
|
||||
'statusAcompanhadoPorOutraInstituicao' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusAcompanhadoPorOutraInstituicao"))),
|
||||
'statusPossuiReferenciaFamiliar' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusPossuiReferenciaFamiliar"))),
|
||||
'statusRecebeBeneficio' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusRecebeBeneficio"))),
|
||||
'em_situacao_rua' => !is_null($this->getFirstNodeValue("{$path}/statusSituacaoRua")),
|
||||
'statusSituacaoRua' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusSituacaoRua"))),
|
||||
'statusTemAcessoHigienePessoalSituacaoRua' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusTemAcessoHigienePessoalSituacaoRua"))),
|
||||
'statusVisitaFamiliarFrequentemente' => DataUtil::getSimOuNao(DataUtil::getBooleanValueFromStringBoolean(
|
||||
$this->getFirstNodeValue("{$path}/statusVisitaFamiliarFrequentemente"))),
|
||||
'tempoSituacaoRua' => $this->getFirstNodeValue("{$path}/tempoSituacaoRua")
|
||||
? SituacaoRua::where('codigo_esus', $this->getFirstNodeValue("{$path}/tempoSituacaoRua"))->first()->descricao
|
||||
: null,
|
||||
];
|
||||
|
||||
$higienePessoal = [];
|
||||
$origemAlimentos = [];
|
||||
|
||||
foreach ($this->domx->query("{$path}/higienePessoalSituacaoRua") as $context) {
|
||||
|
||||
$higienePessoal[] = HigienePessoal::where('codigo_esus', $context->nodeValue)->first()->descricao;
|
||||
}
|
||||
|
||||
foreach ($this->domx->query("{$path}/origemAlimentoSituacaoRua") as $context) {
|
||||
|
||||
$origemAlimentos[] = OrigemAlimentacao::where('codigo_esus', $context->nodeValue)->first()->descricao;
|
||||
}
|
||||
|
||||
$campos->higienePessoal = collect($higienePessoal)->join(', ');
|
||||
$campos->origemAlimentos = collect($origemAlimentos)->join(', ');
|
||||
|
||||
$inconsistencias = $this->getInconsistencias([
|
||||
['Parentesco', fn () => $this->inconsistencias->emSituacaoDeRua->grauParentescoFamiliarFrequentado],
|
||||
['Higiene pessoal', fn () => $this->inconsistencias->emSituacaoDeRua->higienePessoalSituacaoRua],
|
||||
['Origem da alimentação', fn () => $this->inconsistencias->emSituacaoDeRua->origemAlimentoSituacaoRua],
|
||||
['Outra instituição', fn () => $this->inconsistencias->emSituacaoDeRua->outraInstituicaoQueAcompanha],
|
||||
['Alimentação diária', fn () => $this->inconsistencias->emSituacaoDeRua->quantidadeAlimentacoesAoDiaSituacaoRua],
|
||||
['Acompanhado por outra instituição?', fn () => $this->inconsistencias->emSituacaoDeRua->statusAcompanhadoPorOutraInstituicao],
|
||||
['Possui referência familiar?', fn () => $this->inconsistencias->emSituacaoDeRua->statusPossuiReferenciaFamiliar],
|
||||
['Recebe algum benefício?', fn () => $this->inconsistencias->emSituacaoDeRua->statusRecebeBeneficio],
|
||||
['Em situação de rua?', fn () => $this->inconsistencias->emSituacaoDeRua->statusSituacaoRua],
|
||||
['Acesso a higiene pessoal?', fn () => $this->inconsistencias->emSituacaoDeRua->statusTemAcessoHigienePessoalSituacaoRua],
|
||||
['Visita algum familiar com frequência?', fn () => $this->inconsistencias->emSituacaoDeRua->statusVisitaFamiliarFrequentemente],
|
||||
['Tempo em situação de rua', fn () => $this->inconsistencias->emSituacaoDeRua->tempoSituacaoRua],
|
||||
]);
|
||||
|
||||
$this->ficha->situacao_rua = (object) compact('campos', 'inconsistencias');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user