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,104 @@
<?php
namespace App\Services\Geral;
use App\Enums\Geral\CiapCondicaoAvaliada;
use App\Enums\Geral\GrupoCiap;
use App\Models\Sigtap\Cid;
use App\Services\Service;
use App\Utils\DataUtil;
use Illuminate\Support\Facades\DB;
class CiapService extends Service
{
public static function autocomplete()
{
$notShowAll = is_null(request()->get('show_all')) || DataUtil::isStringFalse(request()->get('show_all'));
$excludedValues = [
CiapCondicaoAvaliada::ASMA,
CiapCondicaoAvaliada::DENGUE,
CiapCondicaoAvaliada::DESNUTRICAO,
CiapCondicaoAvaliada::DIABETES,
CiapCondicaoAvaliada::DPOC,
CiapCondicaoAvaliada::DST,
CiapCondicaoAvaliada::HANSENIASE,
CiapCondicaoAvaliada::HIPERTENSAO_ARTERIAL,
CiapCondicaoAvaliada::OBESIDADE,
CiapCondicaoAvaliada::PRE_NATAL,
CiapCondicaoAvaliada::PUERICULTURA,
CiapCondicaoAvaliada::PUERPERIO,
CiapCondicaoAvaliada::RASTREAMENTO_DE_RISCO_CARDIOVASCULAR,
CiapCondicaoAvaliada::REABILITACAO,
CiapCondicaoAvaliada::TABAGISMO,
CiapCondicaoAvaliada::TUBERCULOSE,
CiapCondicaoAvaliada::USUARIO_DE_ALCOOL,
CiapCondicaoAvaliada::USUARIO_DE_OUTRAS_DROGAS,
];
if (request()->ciap_id) {
$excludedValues[] = request()->ciap_id;
}
$ciap = DB::table('geral_ciap')
->select(
'geral_ciap.codigo',
'geral_ciap.id',
'geral_ciap.descricao',
'geral_ciap_cid.codigo_cid',
'geral_ciap.sexo_id',
'geral_ciap.grupo_id',
'sigtap.cid.id as cid_id',
'sigtap.cid.codigo as cid_codigo',
'sigtap.cid.nome as cid_nome',
)
->leftJoin('geral_ciap_cid', 'geral_ciap_cid.codigo_ciap', 'geral_ciap.codigo')
->leftJoin('sigtap.cid', 'sigtap.cid.codigo', 'geral_ciap_cid.codigo_cid')
->when($notShowAll, fn ($q) => $q
->whereNotIn('geral_ciap.id', $excludedValues)
->whereNotIn('geral_ciap.grupo_id', [GrupoCiap::PROCEDIMENTOS])
)
->when(request()->sexo_id, function ($query, $sexo_id) {
$query->where(function ($subquery) use ($sexo_id) {
$subquery->where('geral_ciap.sexo_id', $sexo_id)->orWhereNull('geral_ciap.sexo_id');
});
})
->when(is_array(request()->not_in), fn ($q) => $q->whereNotIn('geral_ciap.codigo', request()->not_in));
if (request()->query('cid_id')) {
$ciap->where(function ($query) {
$cidCodigo = Cid::findOrFail(request()->query('cid_id'))->codigo;
$query->whereExists(function($query) use ($cidCodigo) {
$query->select(DB::raw(1))
->from('geral_ciap_cid')
->whereColumn('geral_ciap_cid.codigo_ciap', 'geral_ciap.codigo')
->where('codigo_cid', $cidCodigo);
})
->orWhereNotExists(function($query) {
$query->select(DB::raw(1))
->from('geral_ciap_cid')
->whereColumn('geral_ciap_cid.codigo_ciap', 'geral_ciap.codigo');
});
});
}
return $ciap;
}
public static function index()
{
return DB::table('geral_ciap as ciap')
->when(request()->codigo, fn ($q, $codigo) => $q->where('ciap.codigo', $codigo))
->select(
'ciap.id',
'ciap.codigo',
'ciap.descricao',
'ciap.grupo_id',
'ciap.sexo_id'
)
->get();
}
}