has('em_atendimento') && request()->em_atendimento == true) { $orientacoes = $this->getOrientacoesNaoSalvas($atendimentoId); AtendimentoService::saveLogImpressao(request()->atendimento_id, AtendimentoImpressaoTipo::ORIENTACAO); } else { $orientacoes = $this->getOrientacoes($atendimentoId); } return Pdf1::generate(self::TITLE, self::TEMPLATE, compact('orientacoes')); } private function getOrientacoesNaoSalvas($pacienteId) { $paciente = Paciente::findOrFail($pacienteId); $orientacoes = [ [ 'paciente' => [ 'nome' => $paciente->cidadao->nome, 'nome_social' => $paciente->cidadao->nome_social ?? '-', 'data_nascimento' => $paciente->cidadao->data_nascimento ? $paciente->cidadao->data_nascimento->format('d/m/Y') : '-', 'idade' => $paciente->cidadao->idade['anos'] ?? '-', 'nome_mae' => $paciente->cidadao->nome_mae ?? '-', 'prontuario' => $paciente->prontuario ?? '-', 'cpf' => $paciente->cidadao->cpf ? MaskUtil::getCpfMasked($paciente->cidadao->cpf) : '-', 'cns' => $paciente->cidadao->cns ? MaskUtil::getCnsMasked($paciente->cidadao->cns) : '-', 'telefone_numero' => $paciente->cidadao->telefone_principal ? MaskUtil::getPhoneMasked($paciente->cidadao->telefone_principal->numero) : '-', 'municipio' => $paciente->cidadao->domicilio->endereco->logradouro->municipio->nome ?? '-', 'uf' => $paciente->cidadao->domicilio->endereco->logradouro->municipio->estado->uf ?? '-', 'unidade_referencia' => $paciente->unidade->nome_fantasia ?? '-', ], 'descricao' => request()->descricao, ] ]; $data = [ 'orientacoes' => $orientacoes, ]; return $data; } private function getOrientacoes($atendimentoId) { $atendimento = Atendimento::findOrFail($atendimentoId); $paciente = $atendimento->paciente; $orientacoes = []; $paraAssinaturaEletronica = request()->para_assinatura_eletronica === true || (DataUtil::isStringBoolean(request()->para_assinatura_eletronica) && DataUtil::isStringTrue(request()->para_assinatura_eletronica)); $atendimento->soaps() ->where('is_rascunho', false) ->get() ->each(function($soap) use (&$orientacoes, $paciente) { $soap->orientacoes()->get()->each(function($orientacao) use (&$orientacoes, $paciente) { $orientacoes[] = [ 'paciente' => [ 'nome' => $paciente->cidadao->nome, 'nome_social' => $paciente->cidadao->nome_social ?? '-', 'data_nascimento' => $paciente->cidadao->data_nascimento ? $paciente->cidadao->data_nascimento->format('d/m/Y') : '-', 'idade' => $paciente->cidadao->idade['anos'] ?? '-', 'nome_mae' => $paciente->cidadao->nome_mae ?? '-', 'prontuario' => $paciente->prontuario ?? '-', 'cpf' => $paciente->cidadao->cpf ? MaskUtil::getCpfMasked($paciente->cidadao->cpf) : '-', 'cns' => $paciente->cidadao->cns ? MaskUtil::getCnsMasked($paciente->cidadao->cns) : '-', 'telefone_numero' => $paciente->cidadao->telefone_principal ? MaskUtil::getPhoneMasked($paciente->cidadao->telefone_principal->numero) : '-', 'municipio' => $paciente->cidadao->domicilio->endereco->logradouro->municipio->nome ?? '-', 'uf' => $paciente->cidadao->domicilio->endereco->logradouro->municipio->estado->uf ?? '-', 'unidade_referencia' => $paciente->unidade->nome_fantasia ?? '-', ], 'descricao' => $orientacao->descricao, ]; }); }); $data = [ 'orientacoes' => $orientacoes, 'paraAssinar' => $paraAssinaturaEletronica, ]; return $data; } }