init commit
All checks were successful
build-api-image / build (push) Successful in 51s

This commit is contained in:
Antonio Lopes dos Santos
2026-08-04 16:52:02 -03:00
commit afec302c3e
11594 changed files with 1636728 additions and 0 deletions

View 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,
]),
],
],
];
}
}