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