80 lines
3.6 KiB
PHP
80 lines
3.6 KiB
PHP
<?php
|
|
|
|
namespace App\Exports\AtencaoBasica\Relatorios;
|
|
|
|
use App\Services\AtencaoBasica\RelatorioEstatisticoAtendimentoService;
|
|
use App\Utils\MesesAnoUtil;
|
|
use Illuminate\Contracts\View\View;
|
|
use Maatwebsite\Excel\Concerns\FromView;
|
|
|
|
class RelatorioEstatisticoAtendimento implements FromView
|
|
{
|
|
private const TITLE = 'RELATÓRIO ESTATISTICO DE ATENDIMENTO';
|
|
private const VIEW = 'exportacoes.atencao-basica.relatorios.relatorio-estatistico-atendimento';
|
|
|
|
|
|
public static function getTemplate()
|
|
{
|
|
$data = RelatorioEstatisticoAtendimentoService::search();
|
|
$data['filtros'] = request()->all();
|
|
$data['title'] = self::TITLE;
|
|
|
|
return $data;
|
|
}
|
|
|
|
public function view(): View
|
|
{
|
|
$data = self::getTemplate();
|
|
$filtros = $data['filtros'];
|
|
$registros = $data['registros'];
|
|
|
|
$mesCompetencia = MesesAnoUtil::getNomeMes($filtros['competencia']['mes']);
|
|
|
|
$competencia = $mesCompetencia . '/' . $filtros['competencia']['ano'];
|
|
$unidade = isset($filtros['unidade']) ? $registros[0]->unidade : 'Todas';
|
|
$profissional = isset($filtros['profissional']) ? $registros[0]->profissional : 'Todos';
|
|
$localAtendimento = isset($filtros['local_atendimento']) ? $registros[0]->local_atendimento : 'Todos';
|
|
$prontuario = isset($filtros['prontuario']) ? $registros[0]->prontuario : 'Todos';
|
|
$idadeMinima = (isset($filtros['idade_minima']) ? $filtros['idade_minima'] : 0) . ' anos';
|
|
$idadeMaxima = isset($filtros['idade_maxima']) ? $filtros['idade_maxima'] . ' anos' : 'Sem limite';
|
|
$idade = "$idadeMinima - $idadeMaxima";
|
|
$sexo = isset($filtros['sexo']) ? $registros[0]->sexo : 'Ambos';
|
|
$hipertenso = isset($filtros['hipertenso']) ? $registros[0]->hipertenso : 'Todos';
|
|
$condicaoAvaliada = isset($filtros['condicao_avaliada']) ? $filtros['condicao_avaliada']['descricao'] : 'Todos';
|
|
$doencaTransmissivel = isset($filtros['doenca_transmissivel']) ? $filtros['doenca_transmissivel']['descricao'] : 'Todos';
|
|
$rastreamento = isset($filtros['rastreamento']) ? $filtros['rastreamento']['descricao'] : 'Todos';
|
|
$ciap2 = isset($filtros['ciap2']) ? $filtros['ciap2']['descricao'] : 'Todos';
|
|
$cid = isset($filtros['cid']) ? $filtros['cid']['nome'] : 'Todos';
|
|
$gestante = isset($filtros['gestante']) ? $registros[0]->gestante : 'Todos';
|
|
$diabetico = isset($filtros['diabetico']) ? $registros[0]->diabetico : 'Todos';
|
|
$vacinaEmDia = isset($filtros['vacina']) ? $registros[0]->vacina : 'Todos';
|
|
$aleitamentoMaterno = isset($filtros['aleitamento_materno']) ? ($registros[0]->aleitamento_materno ?? '-') : 'Todos';
|
|
|
|
$colunas = collect(request()->selected_columns);
|
|
|
|
return view(self::VIEW, [
|
|
'title' => $data['title'],
|
|
'colunas' => $colunas,
|
|
'items' => $registros,
|
|
'competencia' => $competencia,
|
|
'unidade' => $unidade,
|
|
'profissional' => $profissional,
|
|
'localAtendimento' => $localAtendimento,
|
|
'prontuario' => $prontuario,
|
|
'idade' => $idade,
|
|
'sexo' => $sexo,
|
|
'hipertenso' => $hipertenso,
|
|
'condicaoAvaliada' => $condicaoAvaliada,
|
|
'doencaTransmissivel' => $doencaTransmissivel,
|
|
'rastreamento' => $rastreamento,
|
|
'ciap2' => $ciap2,
|
|
'cid' => $cid,
|
|
'gestante' => $gestante,
|
|
'diabetico' => $diabetico,
|
|
'vacinaEmDia' => $vacinaEmDia,
|
|
'aleitamentoMaterno' => $aleitamentoMaterno,
|
|
'totalizadores' => $data['totalizadores'],
|
|
]);
|
|
}
|
|
}
|