This commit is contained in:
@@ -0,0 +1,169 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Integracao\Esus\GerenciamentoEnvio\Ficha;
|
||||
|
||||
use App\Models\AtencaoBasica\CadastroIndividual\CadastroIndividual;
|
||||
use App\Models\AtencaoBasica\FichaComplementar\FichaComplementarFundoOlho;
|
||||
use App\Models\AtencaoBasica\FichaComplementar\FichaComplementarRessonanciaMagnetica;
|
||||
use App\Models\AtencaoBasica\FichaComplementar\FichaComplementarTesteOlho;
|
||||
use App\Models\AtencaoBasica\FichaComplementar\FichaComplementarTesteOrelha;
|
||||
use App\Models\AtencaoBasica\FichaComplementar\FichaComplementarTomografiaComputadorizada;
|
||||
use App\Models\AtencaoBasica\FichaComplementar\FichaComplementarUsTransfontanela;
|
||||
use App\Models\Geral\Turno;
|
||||
use App\Models\Sigtap\Ocupacao;
|
||||
use App\Utils\MaskUtil;
|
||||
|
||||
class FichaComplementar extends Ficha
|
||||
{
|
||||
public function __construct($xmlEnvio, $inconsistenciaModel)
|
||||
{
|
||||
parent::__construct($xmlEnvio, $inconsistenciaModel);
|
||||
|
||||
$this->domx->registerNamespace('ns4', 'http://esus.ufsc.br/fichacomplementarzikamicrocefalia');
|
||||
}
|
||||
|
||||
public function __invoke()
|
||||
{
|
||||
$path = '//ns4:fichaComplementarZikaMicrocefaliaTransport';
|
||||
|
||||
$this->setCadastro($path);
|
||||
$this->setPaciente($path);
|
||||
$this->setExames($path);
|
||||
|
||||
return $this->ficha;
|
||||
}
|
||||
|
||||
private function setCadastro($fichaComplementarZikaMicrocefaliaTransportPath)
|
||||
{
|
||||
$headerTransportPath = "{$fichaComplementarZikaMicrocefaliaTransportPath}/headerTransport";
|
||||
|
||||
$ocupacao = $this->getFirstNodeValue("{$headerTransportPath}/cboCodigo_2002")
|
||||
? Ocupacao::where('codigo', $this->getFirstNodeValue("{$headerTransportPath}/cboCodigo_2002"))->first()
|
||||
: null;
|
||||
|
||||
$campos = (object) [
|
||||
'turno' => $this->getFirstNodeValue("{$fichaComplementarZikaMicrocefaliaTransportPath}/turno")
|
||||
? Turno::find($this->getFirstNodeValue("{$fichaComplementarZikaMicrocefaliaTransportPath}/turno"))->nome
|
||||
: null,
|
||||
'profissionalNome' => $this->inconsistenciaModel->fichaComplementar->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"),
|
||||
'dataAtendimento' => $this->getDateString($this->getFirstNodeValue("{$headerTransportPath}/dataAtendimento")),
|
||||
'codigoIbgeMunicipio' => $this->getFirstNodeValue("{$headerTransportPath}/codigoIbgeMunicipio"),
|
||||
];
|
||||
|
||||
$inconsistencias = $this->getInconsistencias([
|
||||
['Turno', fn () => $this->inconsistencias->turno],
|
||||
['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],
|
||||
['Data', fn () => $this->inconsistencias->headerTransport->dataAtendimento],
|
||||
['IBGE', fn () => $this->inconsistencias->headerTransport->codigoIbgeMunicipio],
|
||||
]);
|
||||
|
||||
$this->ficha->cadastro = (object) compact('campos', 'inconsistencias');
|
||||
}
|
||||
|
||||
private function setPaciente($fichaComplementarZikaMicrocefaliaTransportPath)
|
||||
{
|
||||
$path = $fichaComplementarZikaMicrocefaliaTransportPath;
|
||||
|
||||
$campos = (object) [
|
||||
'nomeCidadao' => $this->inconsistenciaModel->fichaComplementar->paciente->cidadao->nome,
|
||||
'cnsCidadao' => MaskUtil::getCnsMasked($this->getFirstNodeValue("{$path}/cnsCidadao")),
|
||||
'cpfCidadao' => MaskUtil::getCpfMasked($this->getFirstNodeValue("{$path}/cpfCidadao")),
|
||||
'nomeResponsavelFamiliar' => CadastroIndividual::where(
|
||||
'paciente_id',
|
||||
$this->inconsistenciaModel->fichaComplementar->paciente_id
|
||||
)->first()->responsavelCidadao->nome ?? null,
|
||||
'cnsResponsavelFamiliar' => MaskUtil::getCnsMasked($this->getFirstNodeValue("{$path}/cnsResponsavelFamiliar")),
|
||||
'cpfResponsavelFamiliar' => MaskUtil::getCpfMasked($this->getFirstNodeValue("{$path}/cpfResponsavelFamiliar")),
|
||||
];
|
||||
|
||||
$inconsistencias = $this->getInconsistencias([
|
||||
['CNS', fn () => $this->inconsistencias->cnsCidadao],
|
||||
['CPF', fn () => $this->inconsistencias->cpfCidadao],
|
||||
['CNS (Responsável familiar)', fn () => $this->inconsistencias->cnsResponsavelFamiliar],
|
||||
['CPF (Responsável familiar)', fn () => $this->inconsistencias->cpfResponsavelFamiliar],
|
||||
]);
|
||||
|
||||
$this->ficha->paciente = (object) compact('campos', 'inconsistencias');
|
||||
}
|
||||
|
||||
private function setExames($fichaComplementarZikaMicrocefaliaTransportPath)
|
||||
{
|
||||
$path = $fichaComplementarZikaMicrocefaliaTransportPath;
|
||||
|
||||
$campos = (object) [
|
||||
'dataRealizacaoTesteOlhinho' => $this->getDateString(
|
||||
$this->getFirstNodeValue("{$path}/dataRealizacaoTesteOlhinho")),
|
||||
'coResultadoTesteOlhinho' => $this->getFirstNodeValue("{$path}/coResultadoTesteOlhinho")
|
||||
? FichaComplementarTesteOlho::where(
|
||||
'codigo',
|
||||
$this->getFirstNodeValue("{$path}/coResultadoTesteOlhinho")
|
||||
)->first()->descricao
|
||||
: null,
|
||||
'dataRealizacaoExameFundoOlho' => $this->getDateString(
|
||||
$this->getFirstNodeValue("{$path}/dataRealizacaoExameFundoOlho")),
|
||||
'coResultadoExameFundoOlho' => $this->getFirstNodeValue("{$path}/coResultadoExameFundoOlho")
|
||||
? FichaComplementarFundoOlho::where(
|
||||
'codigo',
|
||||
$this->getFirstNodeValue("{$path}/coResultadoExameFundoOlho")
|
||||
)->first()->descricao
|
||||
: null,
|
||||
'dataRealizacaoTesteOrelhinha' => $this->getDateString(
|
||||
$this->getFirstNodeValue("{$path}/dataRealizacaoTesteOrelhinha")),
|
||||
'coResultadoTesteOrelhinha' => $this->getFirstNodeValue("{$path}/coResultadoTesteOrelhinha")
|
||||
? FichaComplementarTesteOrelha::where(
|
||||
'codigo',
|
||||
$this->getFirstNodeValue("{$path}/coResultadoTesteOrelhinha")
|
||||
)->first()->descricao
|
||||
: null,
|
||||
'dataRealizacaoUSTransfontanela' => $this->getDateString(
|
||||
$this->getFirstNodeValue("{$path}/dataRealizacaoUSTransfontanela")),
|
||||
'coResultadoUsTransfontanela' => $this->getFirstNodeValue("{$path}/coResultadoUsTransfontanela")
|
||||
? FichaComplementarUsTransfontanela::where(
|
||||
'codigo',
|
||||
$this->getFirstNodeValue("{$path}/coResultadoUsTransfontanela")
|
||||
)->first()->descricao
|
||||
: null,
|
||||
'dataRealizacaoTomografiaComputadorizada' => $this->getDateString(
|
||||
$this->getFirstNodeValue("{$path}/dataRealizacaoTomografiaComputadorizada")),
|
||||
'coResultadoTomografiaComputadorizada' => $this->getFirstNodeValue("{$path}/coResultadoTomografiaComputadorizada")
|
||||
? FichaComplementarTomografiaComputadorizada::where(
|
||||
'codigo',
|
||||
$this->getFirstNodeValue("{$path}/coResultadoTomografiaComputadorizada")
|
||||
)->first()->descricao
|
||||
: null,
|
||||
'dataRealizacaoRessonanciaMagnetica' => $this->getDateString(
|
||||
$this->getFirstNodeValue("{$path}/dataRealizacaoRessonanciaMagnetica")),
|
||||
'coResultadoRessonanciaMagnetica' => $this->getFirstNodeValue("{$path}/coResultadoRessonanciaMagnetica")
|
||||
? FichaComplementarRessonanciaMagnetica::where(
|
||||
'codigo',
|
||||
$this->getFirstNodeValue("{$path}/coResultadoRessonanciaMagnetica")
|
||||
)->first()->descricao
|
||||
: null,
|
||||
];
|
||||
|
||||
$inconsistencias = $this->getInconsistencias([
|
||||
fn () => $this->inconsistencias->{"Resultados de exames"},
|
||||
['Teste do Olhinho', fn () => $this->inconsistencias->dataRealizacaoTesteOlhinho],
|
||||
['Resultado - Teste do Olhinho', fn () => $this->inconsistencias->coResultadoTesteOlhinho],
|
||||
['Fundo de olho', fn () => $this->inconsistencias->dataRealizacaoExameFundoOlho],
|
||||
['Resultado - Fundo de olho', fn () => $this->inconsistencias->coResultadoExameFundoOlho],
|
||||
['Teste da Orelhinha', fn () => $this->inconsistencias->dataRealizacaoTesteOrelhinha],
|
||||
['Resultado - Teste da Orelhinha', fn () => $this->inconsistencias->coResultadoTesteOrelhinha],
|
||||
['US Transfontanela', fn () => $this->inconsistencias->dataRealizacaoUSTransfontanela],
|
||||
['Resultado - US Transfontanela', fn () => $this->inconsistencias->coResultadoUsTransfontanela],
|
||||
['Tomografia Computadorizada', fn () => $this->inconsistencias->dataRealizacaoTomografiaComputadorizada],
|
||||
['Resultado - Tomografia Computadorizada', fn () => $this->inconsistencias->coResultadoTomografiaComputadorizada],
|
||||
['Ressonância Magnética', fn () => $this->inconsistencias->dataRealizacaoRessonanciaMagnetica],
|
||||
['Resultado - Ressonância Magnética', fn () => $this->inconsistencias->coResultadoRessonanciaMagnetica],
|
||||
]);
|
||||
|
||||
$this->ficha->exames = (object) compact('campos', 'inconsistencias');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user