68 lines
3.6 KiB
PHP
68 lines
3.6 KiB
PHP
<?php
|
|
|
|
namespace App\Services\ProntoAtendimento;
|
|
|
|
use App\Models\ProntoAtendimento\Atendimento\Cat;
|
|
|
|
class AcidenteTrabalhoService
|
|
{
|
|
public static function getAcidenteTrabalho($faa)
|
|
{
|
|
$parecerMedico = [];
|
|
|
|
if(!$faa->raat) {
|
|
return null;
|
|
}
|
|
|
|
$parecerMedico = $faa->raat && $faa->raat->pareceresMedico ? $faa->raat->pareceresMedico()->orderByDesc('created_at')->first() : [];
|
|
|
|
$cat = null;
|
|
|
|
if($faa->raat->id){
|
|
$cat = Cat::where('raat_id', $faa->raat->id)->first();
|
|
}
|
|
|
|
return [
|
|
'id' => $faa->raat->id ?? null,
|
|
'tipo_formulario_acidente_trabalho' => $faa->raat->tipo_formulario_acidente_trabalho,
|
|
'empresa_nome' => $faa->raat->empresa_nome ?? null,
|
|
'empresa_ramo_atividade' => $faa->raat->empresa_ramo_atividade ?? null,
|
|
'empresa_endereco' => $faa->raat->empresa_endereco ?? null,
|
|
'empresa_telefone' => $faa->raat->empresa_telefone ?? null,
|
|
'empresa_ocupacao_paciente' => $cat ? $cat->empresa_ocupacao_paciente : null,
|
|
'acidente_data' => $faa->raat->acidente_data ?? null,
|
|
'acidente_hora' => $faa->raat->acidente_hora ?? null,
|
|
'acidente_tipo_id' => $faa->raat->acidente_tipo_id ?? null,
|
|
'acidente_local' => $faa->raat->acidente_local ?? null,
|
|
'acidente_descricao' => $faa->raat->acidente_descricao ?? null,
|
|
'regime_trabalho_id' => $faa->raat->regime_trabalho_id ?? null,
|
|
'regime_trabalho_outro' => $faa->raat->regime_trabalho_outro ?? null,
|
|
'parecer_medico' => [
|
|
'agenteId' => $parecerMedico ? $parecerMedico->agente_id : null,
|
|
'partes_corpo_atingidas' => $parecerMedico ? $parecerMedico->partesCorpoAtingidas->pluck('id') : [],
|
|
'parte_corpo_atingida_outras' => $parecerMedico ? $parecerMedico->parte_corpo_atingida_outras : null,
|
|
'causas_acidente' => $parecerMedico ? $parecerMedico->causasAcidente->pluck('id') : [],
|
|
'causa_acidente_outras' => $parecerMedico ? $parecerMedico->causa_acidente_outras : null,
|
|
'diagnosticos' => $parecerMedico ? $parecerMedico->diagnosticos->pluck('id') : [],
|
|
'diagnostico_outros' => $parecerMedico ? $parecerMedico->diagnostico_outros : null,
|
|
'observacao' => $parecerMedico ? $parecerMedico->observacao : null,
|
|
'classificacao_inicial_id' => $parecerMedico ? $parecerMedico->classificacao_inicial_id : null,
|
|
'afastado' => $parecerMedico ? $parecerMedico->afastado : null,
|
|
'lotacao' => [
|
|
'profissional' => [
|
|
'id' => $parecerMedico->createdLotacao->usuario->id ?? null,
|
|
],
|
|
],
|
|
'cid' => [
|
|
'codigo' => $parecerMedico->atendimentoMedico->cid->cid->codigo ?? null,
|
|
'nome' => $parecerMedico->atendimentoMedico->cid->cid->nome ?? null,
|
|
],
|
|
'paciente_sofreu_acidente_trabalho' => $cat ? $cat->paciente_sofreu_acidente_trabalho : '',
|
|
'paciente_portador_doenca_ocupacional' =>$cat ? $cat->paciente_portador_doenca_ocupacional : '',
|
|
'paciente_precisa_internacao' => $cat ? $cat->paciente_precisa_internacao : '',
|
|
'dias_afastamento' => $cat ? $cat->dias_afastamento : '',
|
|
],
|
|
];
|
|
}
|
|
}
|