83 lines
2.6 KiB
PHP
83 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace App\Services\ProntoAtendimento\Atendimento;
|
|
|
|
use App\Enums\ProntoAtendimento\Raat\CausaAcidente as CausaAcidenteEnum;
|
|
use App\Enums\ProntoAtendimento\Raat\Diagnostico as DiagnosticoEnum;
|
|
use App\Enums\ProntoAtendimento\Raat\ParteCorpoAtingida as ParteCorpoAtingidaEnum;
|
|
use App\Enums\ProntoAtendimento\Raat\RegimeTrabalho as RegimeTrabalhoEnum;
|
|
use App\Models\ProntoAtendimento\Atendimento\RaatParecerMedico;
|
|
use App\Models\ProntoAtendimento\Raat\Agente;
|
|
use App\Models\ProntoAtendimento\Raat\CausaAcidente;
|
|
use App\Models\ProntoAtendimento\Raat\ClassificacaoInicial;
|
|
use App\Models\ProntoAtendimento\Raat\Diagnostico;
|
|
use App\Models\ProntoAtendimento\Raat\ParteCorpoAtingida;
|
|
use App\Models\ProntoAtendimento\Raat\RegimeTrabalho;
|
|
use App\Models\ProntoAtendimento\Raat\TipoAcidente;
|
|
|
|
class RaatService
|
|
{
|
|
public static function get($atendimentoMedico)
|
|
{
|
|
return [
|
|
'identificacao' => self::getRaatIdentificacao($atendimentoMedico->atendimento->faa->raat),
|
|
'parecer_medico' => self::getParecerMedico($atendimentoMedico->raatParecerMedico),
|
|
];
|
|
}
|
|
|
|
public static function getOptionsParecerMedico()
|
|
{
|
|
return [
|
|
'agente' => Agente::all(),
|
|
'causa_acidente' => CausaAcidente::all(),
|
|
'classificacao_inicial' => ClassificacaoInicial::all(),
|
|
'diagnostico' => Diagnostico::all(),
|
|
'parte_corpo_atingida' => ParteCorpoAtingida::all(),
|
|
'regime_trabalho' => RegimeTrabalho::all(),
|
|
'tipo_acidente' => TipoAcidente::all(),
|
|
];
|
|
}
|
|
|
|
private static function getRaatIdentificacao($raat)
|
|
{
|
|
if (is_null($raat)) {
|
|
|
|
return null;
|
|
}
|
|
|
|
$hiddenFields = [];
|
|
|
|
if ($raat->regime_trabalho_id !== RegimeTrabalhoEnum::OUTRO) {
|
|
|
|
$hiddenFields[] ='regime_trabalho_outro';
|
|
}
|
|
|
|
return $raat->makeHidden($hiddenFields);
|
|
}
|
|
|
|
private static function getParecerMedico($parecerMedico)
|
|
{
|
|
if (is_null($parecerMedico)) {
|
|
|
|
return null;
|
|
}
|
|
|
|
$hiddenFields = [];
|
|
|
|
if (!$parecerMedico->partesCorpoAtingidas->contains('id', ParteCorpoAtingidaEnum::OUTROS)) {
|
|
|
|
$hiddenFields[] = 'parte_corpo_atingida_outras';
|
|
}
|
|
|
|
if (!$parecerMedico->diagnosticos->contains('id', DiagnosticoEnum::OUTROS)) {
|
|
|
|
$hiddenFields[] = 'diagnostico_outros';
|
|
}
|
|
|
|
return $parecerMedico
|
|
->with('causasAcidente', 'diagnosticos', 'partesCorpoAtingidas')
|
|
->get()
|
|
->makeHidden($hiddenFields);
|
|
}
|
|
}
|