This commit is contained in:
124
api/app/Services/Parametrizacao/Exame/ExameComposicaoService.php
Normal file
124
api/app/Services/Parametrizacao/Exame/ExameComposicaoService.php
Normal file
@@ -0,0 +1,124 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Parametrizacao\Exame;
|
||||
|
||||
use App\Models\Intranet\Cliente;
|
||||
use App\Models\Parametrizacao\Exame\Exame;
|
||||
use App\Models\Parametrizacao\Exame\ExameComposicao;
|
||||
use App\Models\Parametrizacao\Exame\ExameComposicaoLista;
|
||||
use App\Models\Parametrizacao\Exame\ExameComposicaoVariavel;
|
||||
use App\Models\Parametrizacao\Exame\ExameTextoPronto;
|
||||
use App\Services\Service;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class ExameComposicaoService extends Service
|
||||
{
|
||||
public static function index($id)
|
||||
{
|
||||
$currentLotacao = self::getCurrentLotacao();
|
||||
$cliente = Cliente::where('link', app('config')->get('database.default'))->firstOrFail();
|
||||
|
||||
$exame = Exame::findOrFail($id);
|
||||
|
||||
return [
|
||||
'form' => [
|
||||
'data_atual' => Carbon::now()->format('d/m/Y'),
|
||||
'unidade' => $currentLotacao->infraestrutura->unidade->nome_fantasia,
|
||||
'unidade_id' => $currentLotacao->infraestrutura->unidade->id,
|
||||
'infraestrutura_id' => $currentLotacao->infraestrutura->id,
|
||||
'infraestrutura' => $currentLotacao->infraestrutura->nome,
|
||||
'sistema' => [
|
||||
'ramo_atividade' => [
|
||||
'nome' => $cliente->sistema->ramoAtividade->nome ?? null,
|
||||
],
|
||||
'nome' => $cliente->sistema->nome ?? null,
|
||||
'versao' => $cliente->sistema->versao ?? null,
|
||||
],
|
||||
'exame' => [
|
||||
'tipo_id' => $exame->tipo_id ?? null,
|
||||
'grupo_tipo_id' => $exame->grupo_tipo_id ?? null,
|
||||
'procedimento' => $exame->procedimento ?? null,
|
||||
'sigla_exame' => $exame->sigla_exame ?? null,
|
||||
'nome' => $exame->nome ?? null,
|
||||
'ativo' => $exame->ativo ?? true,
|
||||
'observacao' => $exame->observacao ?? null,
|
||||
'laboratorio' => [
|
||||
'prazo_entrega' => $exame->prazo_entrega ?? null,
|
||||
'validade' => $exame->validade ?? null,
|
||||
'valor' => $valor ?? null,
|
||||
'quantidade_maxima' => $exame->quantidade_maxima ?? null,
|
||||
'outro_municipio' => $exame->outro_municipio ?? false,
|
||||
'provisorio' => $exame->provisorio ?? false,
|
||||
'sigilo' => $exame->sigilo ?? false,
|
||||
'senha_supervisor' => $exame->senha_supervisor ?? false,
|
||||
'ultimo_resultado' => $exame->ultimo_resultado ?? null,
|
||||
'mapa_agrupado' => $exame->mapa_agrupado ?? false,
|
||||
'posicao_mapa' => $exame->posicao_mapa ?? null
|
||||
],
|
||||
'imagem' => [
|
||||
'prazo_entrega' => $exame->prazo_entrega ?? null,
|
||||
'validade' => $exame->validade ?? null,
|
||||
'valor' => $valor ?? null,
|
||||
'quantidade_maxima' => $exame->quantidade_maxima ?? null,
|
||||
'outro_municipio' => $exame->outro_municipio ?? false,
|
||||
'provisorio' => $exame->provisorio ?? false,
|
||||
'senha_supervisor' => $exame->senha_supervisor ?? false,
|
||||
'ultimo_resultado' => $exame->ultimo_resultado ?? null,
|
||||
'resultado' => $exame->resultado ?? null
|
||||
],
|
||||
'composicao' => ExameComposicao::where('exame_id', $id)
|
||||
->get()
|
||||
->map(fn ($query) => [
|
||||
'id' => $query->id,
|
||||
'exame_id' => $query->exame_id,
|
||||
'descricao' => $query->descricao,
|
||||
'limite_inferior' => number_format($query->limite_inferior, 2, ',', '.'),
|
||||
'limite_superior' => number_format($query->limite_superior, 2, ',', '.'),
|
||||
'unidade_id' => $query->unidade_id,
|
||||
'unidade' => $query->unidade->descricao ?? null,
|
||||
'referencia' => $query->referencia,
|
||||
'tipo_idade_id' => $query->tipo_idade_id,
|
||||
'tipo_idade' =>$query->tipo_idade_id ? $query->tipoIdade->descricao : '-',
|
||||
'idade_inicial' => $query->idade_inicial,
|
||||
'idade_final' => $query->idade_final,
|
||||
'sexo_id' => $query->sexo_id,
|
||||
'sexo' => $query->sexo->descricao ?? 'AMBOS',
|
||||
'tipo_resultado_id' => $query->tipo_resultado_id,
|
||||
'tipo_resultado' => $query->tipoResultado->descricao,
|
||||
'casa_decimal_id' => $query->casa_decimal_id,
|
||||
'formula_id' => $query->formula_id,
|
||||
'visivel' => $query->visivel,
|
||||
'valor_absoluto' => $query->valor_absoluto,
|
||||
'referencia_especial' => $query->referencia_especial,
|
||||
'lista' => ExameComposicaoLista::where('composicao_id', $query->id)
|
||||
->get()
|
||||
->map(fn ($composicao) => [
|
||||
'id' => $composicao->id,
|
||||
'descricao' => $composicao->descricao,
|
||||
'ordem' => $composicao->ordem,
|
||||
'situacao_id' => $composicao->situacao_id,
|
||||
'situacao' => $composicao->situacao->descricao,
|
||||
'padrao' => $composicao->padrao,
|
||||
]),
|
||||
'variavel' => ExameComposicaoVariavel::where('composicao_id', $query->id)
|
||||
->get()
|
||||
->map(fn ($variavel) => [
|
||||
'id' => $variavel->id,
|
||||
'ordem' => $variavel->ordem,
|
||||
'fator_id' => $variavel->fator_id ?? null,
|
||||
'fator' => $variavel->fator->fator ?? null,
|
||||
]),
|
||||
]),
|
||||
'texto_pronto' => ExameTextoPronto::where('exame_id', $id)
|
||||
->get()
|
||||
->map(fn ($query) => [
|
||||
'id' => $query->id,
|
||||
'exame_id' => $query->exame_id,
|
||||
'codigo' => $query->codigo,
|
||||
'descricao' => $query->descricao,
|
||||
]),
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user