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'); } }