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,32 @@
<?php
namespace App\Http\Controllers\Mobile\ConectaSusAb\Cadastro;
use App\Http\Controllers\Controller;
use App\Models\Cadastro\SujeitoAtencao\Alergia;
use Illuminate\Http\Response;
class AlergiaController extends Controller
{
protected $modulo = 'cadastro';
protected $funcionalidade = 'alergia';
public function index()
{
$alergias = Alergia::with(['tipo'])
->orderBy('agente_substancia_especifica')
->get()
->map(function ($alergia) {
return [
'id' => $alergia->id,
'agente_substancia_especifica' => $alergia->agente_substancia_especifica,
'tipo_id' => $alergia->tipo->id,
'tipo_descricao' => $alergia->tipo->descricao,
];
});
return response()->json($alergias, Response::HTTP_OK);
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Http\Controllers\Mobile\ConectaSusAb\Cadastro;
use App\Http\Controllers\Controller;
use App\Models\Cadastro\Localizacao\Bairro;
use Illuminate\Http\Response;
class BairroController extends Controller
{
protected $modulo = 'cadastro';
protected $funcionalidade = 'bairro';
public function index()
{
$bairros = $this->get(Bairro::class)->orderBy('nome')->get();
return response()->json($bairros, Response::HTTP_OK);
}
}

View File

@@ -0,0 +1,414 @@
<?php
namespace App\Http\Controllers\Mobile\ConectaSusAb\Cadastro;
use App\Enums\AtencaoBasica\CadastroIndividual\SaidaCidadao as EnumSaidaCidadao;
use App\Http\Controllers\Controller;
use App\Services\Geral\AgeService;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
use DateTime;
class CidadaoController extends Controller
{
protected $modulo = 'cadastro';
protected $funcionalidade = 'cidadao';
public function index($idUnidade, $idEquipe, $exibirForaArea, $pagina = 0)
{
$condicaoForaArea = $exibirForaArea == 1 ? 'or atencao_basica_cadastro_individual.equipe_id is null' : '';
$listaCidadaos = DB::select(DB::raw("
select atencao_basica_cadastro_individual.equipe_id,
cadastro_cidadao.id as cidadao_id,
cadastro_cidadao.cns,
cadastro_cidadao.cpf,
cadastro_cidadao.nome,
cadastro_cidadao.nome_social,
cadastro_cidadao.data_nascimento,
cadastro_cidadao.conjuge,
cadastro_cidadao.nome_mae,
cadastro_cidadao.nome_pai,
cadastro_cidadao.frequenta_escola,
cadastro_cidadao.municipio_nascimento_id,
cadastro_cidadao.pais_nascimento_id,
cadastro_cidadao.estado_nascimento_id,
cadastro_cidadao.escolaridade_id,
cadastro_cidadao.local_nascimento_id,
cadastro_cidadao.estado_civil_id,
cadastro_cidadao.nacionalidade_id,
cadastro_cidadao.etnia_indigena_id,
cadastro_cidadao.raca_cor_id,
cadastro_cidadao.situacao_familiar_conjugal_id,
cadastro_cidadao.tipo_sanguineo_id,
cadastro_cidadao.domicilio_id,
cadastro_cidadao.data_entrada_domicilio,
cadastro_cidadao.motivo_duplicidade_cpf_id,
cadastro_cidadao.created_lotacao_id,
cadastro_cidadao.created_centro_custo_id,
cadastro_cidadao.updated_lotacao_id,
cadastro_cidadao.updated_centro_custo_id,
cadastro_cidadao.identidade_genero_id,
cadastro_cidadao.fator_risco_outro,
cadastro_cidadao.deficiencia_id,
cadastro_cidadao.deficiencia_outro,
cadastro_cidadao.mobilidade_reduzida_id,
cadastro_cidadao.preferencia_nome_id,
cadastro_cidadao_telefone.id as cidadao_telefone_principal_id,
cadastro_cidadao_telefone.numero as cidadao_telefone_principal_numero,
cadastro_cidadao_telefone.principal as cidadao_telefone_principal_principal,
cadastro_cidadao_telefone.observacao as cidadao_telefone_principal_observacao,
cadastro_cidadao_telefone.deleted_at as cadastro_cidadao_telefone_deleted_at,
cadastro_cidadao_fator_risco.fator_risco_id,
cadastro_unidade.id as unidade_id,
cadastro_paciente.id as paciente_id,
cadastro_paciente.prontuario,
cadastro_paciente.classificacao_id,
cadastro_paciente.subclassificacao_id,
cadastro_paciente.email,
cadastro_paciente.protocolo_cross,
cadastro_paciente.bloqueado,
cadastro_paciente.validade_inicio as cadastro_paciente_validade_inicio,
cadastro_paciente.validade_fim as cadastro_paciente_validade_fim,
cadastro_sexo.id as cidadao_sexo_id,
cadastro_sexo.descricao as cidadao_sexo_descricao,
cadastro_sexo.codigo_esus as cidadao_sexo_identificador,
cadastro_carteira_identidade.id as cidadao_carteira_identidade_id,
cadastro_carteira_identidade.estado_id as cidadao_carteira_identidade_estado_id,
cadastro_carteira_identidade.numero as cidadao_carteira_identidade_numero,
cadastro_carteira_identidade.orgao_emissor as cidadao_carteira_identidade_orgao_emissor,
cadastro_carteira_identidade.data_emissao as cidadao_carteira_identidade_data_emissao,
cadastro_carteira_identidade.deleted_at as cidadao_carteira_identidade_deleted_at,
cadastro_carteira_identidade.created_at as cidadao_carteira_identidade_created_at,
cadastro_carteira_identidade.updated_at as cidadao_carteira_identidade_updated_at,
cadastro_domicilio.id as cidadao_domicilio_id,
cadastro_endereco.id as cidadao_domicilio_endereco_id,
cadastro_endereco.numero as cidadao_domicilio_endereco_numero,
cadastro_endereco.complemento as cidadao_domicilio_endereco_complemento,
cadastro_endereco.latitude as cadastro_endereco_latitude,
cadastro_endereco.longitude as cadastro_endereco_longitude,
cadastro_endereco.referencia as cadastro_endereco_referencia,
cadastro_endereco.loteamento_id as cadastro_endereco_loteamento_id,
cadastro_zona.id as cidadao_domicilio_endereco_zona_id,
cadastro_zona.descricao as cidadao_domicilio_endereco_zona_descricao,
cadastro_logradouro.id as cidadao_domicilio_endereco_logradouro_id,
cadastro_logradouro.nome as cidadao_domicilio_endereco_logradouro_nome,
cadastro_logradouro.cep as cidadao_domicilio_endereco_logradouro_cep,
cadastro_logradouro_tipo.id as cidadao_domicilio_endereco_logradouro_tipo_id,
cadastro_logradouro_tipo.descricao as cidadao_domicilio_endereco_logradouro_tipo_nome,
cadastro_logradouro_tipo.codigo as cidadao_domicilio_endereco_logradouro_tipo_codigo,
cadastro_bairro.id as cidadao_domicilio_endereco_logradouro_bairro_id,
cadastro_bairro.nome as cidadao_domicilio_endereco_logradouro_bairro_nome,
intranet.cadastro_municipio.id as cidadao_domicilio_endereco_logradouro_municipio_id,
intranet.cadastro_municipio.nome as cidadao_domicilio_endereco_logradouro_municipio_nome,
intranet.cadastro_municipio.ibge as cidadao_domicilio_endereco_logradouro_municipio_ibge,
intranet.cadastro_estado.id as cidadao_domicilio_endereco_logradouro_municipio_estado_id,
intranet.cadastro_estado.codigo as cidadao_domicilio_endereco_logradouro_municipio_estado_codigo,
intranet.cadastro_estado.nome as cidadao_domicilio_endereco_logradouro_municipio_estado_nome,
intranet.cadastro_estado.uf as cidadao_domicilio_endereco_logradouro_municipio_estado_uf,
intranet.cadastro_pais.id as cidadao_domicilio_endereco_logradouro_municipio_estado_pais_id,
intranet.cadastro_pais.nome as cidadao_domicilio_endereco_logradouro_municipio_estado_pais_nome,
intranet.cadastro_pais.codigo as cidadao_domicilio_endereco_logradouro_municipio_estado_pais_codigo,
cadastro_titulo_eleitor.id as cadastro_titulo_eleitor_id,
cadastro_titulo_eleitor.numero as cadastro_titulo_eleitor_numero,
cadastro_titulo_eleitor.zona as cadastro_titulo_eleitor_zona,
cadastro_titulo_eleitor.secao as cadastro_titulo_eleitor_secao,
cadastro_certidao.id as cadastro_certidao_id,
cadastro_certidao.tipo_id as cadastro_certidao_tipo_id,
cadastro_certidao.modelo_id as cadastro_certidao_modelo_id,
cadastro_certidao.numero as cadastro_certidao_numero,
cadastro_certidao.cartorio_nome as cadastro_certidao_cartorio_nome,
cadastro_certidao.livro as cadastro_certidao_livro,
cadastro_certidao.folha as cadastro_certidao_folha,
cadastro_certidao.data_emissao as cadastro_certidao_data_emissao,
cadastro_certidao.municipio_id as cadastro_certidao_municipio_id,
cadastro_certidao.cartorio_codigo as cadastro_certidao_cartorio_codigo,
cadastro_carteira_trabalho.ID as cadastro_carteira_trabalho_id,
cadastro_carteira_trabalho.numero as cadastro_carteira_trabalho_numero,
cadastro_carteira_trabalho.serie as cadastro_carteira_trabalho_serie,
cadastro_carteira_trabalho.data_emissao as cadastro_carteira_trabalho_data_emissao,
cadastro_carteira_trabalho.estado_id as cadastro_carteira_trabalho_estado_id,
cadastro_carteira_trabalho.nis_pis_pasep as cadastro_carteira_trabalho_nis_pis_pasep,
cadastro_carteira_habilitacao.id as cadastro_carteira_habilitacao_id,
cadastro_carteira_habilitacao.numero as cadastro_carteira_habilitacao_numero,
cadastro_carteira_habilitacao.data_emissao as cadastro_carteira_habilitacao_data_emissao,
cadastro_carteira_habilitacao.data_validade as cadastro_carteira_habilitacao_data_validade,
cadastro_carteira_habilitacao.estado_id as cadastro_carteira_habilitacao_estado_id,
cadastro_carteira_habilitacao.categoria_id as cadastro_carteira_habilitacao_categoria_id,
cadastro_cidadao_alergia.alergia_id as cadastro_cidadao_alergia_alergia_id,
cadastro_cidadao_alergia.criticidade_id as cadastro_cidadao_alergia_criticidade_id,
cadastro_cidadao_alergia.cid_id as cadastro_cidadao_alergia_cid_id,
cadastro_cidadao_alergia.reacoes_observacoes as cadastro_cidadao_alergia_reacoes_observacoes,
cadastro_cidadao_medicamento_uso_continuo.medicamento_id,
cadastro_cidadao_convenio_medico.convenio_medico_id
from cadastro_cidadao
left join cadastro_sexo
on cadastro_sexo.id = cadastro_cidadao.sexo_id
left join cadastro_cidadao_telefone
on cadastro_cidadao_telefone.cidadao_id = cadastro_cidadao.id
left join cadastro_paciente
on cadastro_paciente.cidadao_id = cadastro_cidadao.id
left join cadastro_paciente_informacao_social
on cadastro_paciente_informacao_social.paciente_id = cadastro_paciente.id
left join cadastro_cidadao_fator_risco
on cadastro_cidadao_fator_risco.cidadao_id = cadastro_cidadao.id
left join cadastro_unidade
on cadastro_unidade.id = cadastro_paciente.unidade_id
left join atencao_basica_cadastro_individual
on atencao_basica_cadastro_individual.paciente_id = cadastro_paciente.id
left join cadastro_carteira_identidade
on cadastro_carteira_identidade.cidadao_id = cadastro_cidadao.id
left join cadastro_domicilio
on cadastro_domicilio.id = cadastro_cidadao.domicilio_id
left join cadastro_endereco
on cadastro_endereco.id = cadastro_domicilio.endereco_id
left join cadastro_zona
on cadastro_zona.id = cadastro_endereco.zona_id
left join cadastro_logradouro
on cadastro_logradouro.id = cadastro_endereco.logradouro_id
left join cadastro_logradouro_tipo
on cadastro_logradouro_tipo.id = cadastro_logradouro.tipo_id
left join cadastro_bairro
on cadastro_bairro.id = cadastro_logradouro.bairro_id
left join intranet.cadastro_municipio
on intranet.cadastro_municipio.id = cadastro_logradouro.municipio_id
left join intranet.cadastro_estado
on intranet.cadastro_estado.id = intranet.cadastro_municipio.estado_id
left join intranet.cadastro_pais
on intranet.cadastro_pais.id = intranet.cadastro_estado.pais_id
left join cadastro_titulo_eleitor
on cadastro_titulo_eleitor.cidadao_id = cadastro_cidadao.id
and cadastro_titulo_eleitor.deleted_at is null
left join cadastro_certidao
on cadastro_certidao.cidadao_id = cadastro_cidadao.id
left join cadastro_carteira_trabalho
on cadastro_carteira_trabalho.cidadao_id = cadastro_cidadao.id
left join cadastro_carteira_habilitacao
on cadastro_carteira_habilitacao.cidadao_id = cadastro_cidadao.id
left join cadastro_cidadao_alergia
on cadastro_cidadao_alergia.cidadao_id = cadastro_cidadao.id
left join cadastro_alergia
on cadastro_alergia.id = cadastro_cidadao_alergia.alergia_id
left join cadastro_cidadao_medicamento_uso_continuo
on cadastro_cidadao_medicamento_uso_continuo.cidadao_id = cadastro_cidadao.id
left join cadastro_cidadao_convenio_medico
on cadastro_cidadao_convenio_medico.cidadao_id = cadastro_cidadao.id
left join cadastro_obito
on cadastro_obito.cidadao_id = cadastro_cidadao.id
where cadastro_paciente.unidade_id = {$idUnidade}
and cadastro_cidadao_telefone.deleted_at is null
and cadastro_paciente.deleted_at is null
and cadastro_paciente_informacao_social.deleted_at is null
and cadastro_unidade.deleted_at is null
and cadastro_domicilio.deleted_at is null
and cadastro_endereco.deleted_at is null
and cadastro_logradouro.deleted_at is null
and cadastro_bairro.deleted_at is null
and cadastro_carteira_trabalho.deleted_at is null
and cadastro_carteira_habilitacao.deleted_at is null
and cadastro_cidadao.deleted_at is null
and cadastro_obito.obito_em is null
and
(
cadastro_paciente_informacao_social.saida_cidadao_id <> " . EnumSaidaCidadao::OBITO . "
or
cadastro_paciente_informacao_social.saida_cidadao_id is null
)
and
(
atencao_basica_cadastro_individual.saida_cidadao_id <> " . EnumSaidaCidadao::OBITO . "
or
atencao_basica_cadastro_individual.saida_cidadao_id is null
)
and
(
atencao_basica_cadastro_individual.equipe_id = {$idEquipe}
{$condicaoForaArea}
)
"));
$limitePorRequisicao = 300;
$skip = $pagina === 0 ? 0 : ($pagina * $limitePorRequisicao) + 1;
$limit = $skip + $limitePorRequisicao;
$contador = 0;
$cidadaos = [];
collect($listaCidadaos)->groupBy('cidadao_id')->each(function ($grupo) use (&$contador, $skip, $limit, &$cidadaos) {
$cidadao = $grupo->first();
$contador++;
if ($contador >= $skip && $contador < $limit) {
$contatos = [];
$alergias = [];
$medicamentos = [];
$fatoresRisco = [];
$conveniosMedicos = [];
$carteiraIdentidade = [];
$grupo->each(function ($dadosPaciente) use (&$contatos, &$alergias, &$medicamentos, &$fatoresRisco, &$conveniosMedicos, &$carteiraIdentidade) {
self::adicionaContato($contatos, $dadosPaciente);
self::adicionaAlergia($alergias, $dadosPaciente);
self::adicionaMedicamento($medicamentos, $dadosPaciente);
self::adicionaFatorRisco($fatoresRisco, $dadosPaciente);
self::adicionaConvenioMedico($conveniosMedicos, $dadosPaciente);
self::adicionaCarteiraIdentidade($carteiraIdentidade, $dadosPaciente);
});
$cidadao->contatos = $contatos;
$cidadao->alergias = $alergias;
$cidadao->medicamentos = $medicamentos;
$cidadao->fator_risco = $fatoresRisco;
$cidadao->convenios = $conveniosMedicos;
self::obterUltimaCarteiraIdentidade($carteiraIdentidade, $cidadao);
unset($contatos);
unset($alergias);
unset($medicamentos);
unset($fatoresRisco);
unset($conveniosMedicos);
unset($carteiraIdentidade);
$cidadao->cidadao_desconhece_nome_mae = is_null($cidadao->nome_mae) ? 1 : 0;
$cidadao->cidadao_desconhece_nome_pai = is_null($cidadao->nome_pai) ? 1 : 0;
$cidadao->cpf_nao_pertence_ao_cidadao = !is_null($cidadao->motivo_duplicidade_cpf_id) ? 1 : 0;
self::obterIdadeCidadao($cidadao);
self::removeChavesAgrupadas($cidadao);
array_push($cidadaos, $cidadao);
}
})->values();
return response()->json(['cidadaos' => $cidadaos, 'stop' => sizeof($cidadaos) < $limitePorRequisicao ? 1 : 0], Response::HTTP_OK);
}
private static function adicionaContato(&$contatos, $dadosPaciente)
{
if (is_null($dadosPaciente->cadastro_cidadao_telefone_deleted_at) && !in_array($dadosPaciente->cidadao_telefone_principal_id, array_column($contatos, 'cidadao_telefone_principal_id'))) {
array_push($contatos, [
'cidadao_telefone_principal_id' => $dadosPaciente->cidadao_telefone_principal_id,
'cidadao_telefone_principal_numero' => $dadosPaciente->cidadao_telefone_principal_numero,
'cidadao_telefone_principal_principal' => $dadosPaciente->cidadao_telefone_principal_principal,
'cidadao_telefone_principal_observacao' => $dadosPaciente->cidadao_telefone_principal_observacao,
]);
}
}
private static function adicionaAlergia(&$alergias, $dadosPaciente)
{
if (!is_null($dadosPaciente->cadastro_cidadao_alergia_alergia_id) && !in_array($dadosPaciente->cadastro_cidadao_alergia_alergia_id, array_column($alergias, 'cadastro_cidadao_alergia_alergia_id'))) {
array_push($alergias, [
'cadastro_cidadao_alergia_alergia_id' => $dadosPaciente->cadastro_cidadao_alergia_alergia_id,
'cadastro_cidadao_alergia_criticidade_id' => $dadosPaciente->cadastro_cidadao_alergia_criticidade_id,
'cadastro_cidadao_alergia_cid_id' => $dadosPaciente->cadastro_cidadao_alergia_cid_id,
'cadastro_cidadao_alergia_reacoes_observacoes' => $dadosPaciente->cadastro_cidadao_alergia_reacoes_observacoes,
]);
}
}
private static function adicionaMedicamento(&$medicamentos, $dadosPaciente)
{
if (!is_null($dadosPaciente->medicamento_id) && !in_array($dadosPaciente->medicamento_id, $medicamentos)) {
array_push($medicamentos, $dadosPaciente->medicamento_id);
}
}
private static function adicionaFatorRisco(&$fatoresRisco, $dadosPaciente)
{
if (!is_null($dadosPaciente->fator_risco_id) && !in_array($dadosPaciente->fator_risco_id, $fatoresRisco)) {
array_push($fatoresRisco, $dadosPaciente->fator_risco_id);
}
}
private static function adicionaConvenioMedico(&$conveniosMedicos, $dadosPaciente)
{
if (!is_null($dadosPaciente->convenio_medico_id) && !in_array($dadosPaciente->convenio_medico_id, $conveniosMedicos)) {
array_push($conveniosMedicos, $dadosPaciente->convenio_medico_id);
}
}
private static function adicionaCarteiraIdentidade(&$carteiraIdentidade, $dadosPaciente)
{
if (is_null($dadosPaciente->cidadao_carteira_identidade_deleted_at) && !is_null($dadosPaciente->cidadao_carteira_identidade_id)) {
array_push($carteiraIdentidade, [
'cidadao_carteira_identidade_id' => $dadosPaciente->cidadao_carteira_identidade_id,
'cidadao_carteira_identidade_estado_id' => $dadosPaciente->cidadao_carteira_identidade_estado_id,
'cidadao_carteira_identidade_numero' => $dadosPaciente->cidadao_carteira_identidade_numero,
'cidadao_carteira_identidade_orgao_emissor' => $dadosPaciente->cidadao_carteira_identidade_orgao_emissor,
'cidadao_carteira_identidade_data_emissao' => $dadosPaciente->cidadao_carteira_identidade_data_emissao,
'cidadao_carteira_identidade_created_at' => $dadosPaciente->cidadao_carteira_identidade_created_at,
'cidadao_carteira_identidade_updated_at' => $dadosPaciente->cidadao_carteira_identidade_updated_at,
]);
}
}
private static function obterUltimaCarteiraIdentidade($carteiraIdentidade, &$cidadao)
{
if (sizeof($carteiraIdentidade) > 0) {
array_multisort(array_column($carteiraIdentidade, 'cidadao_carteira_identidade_updated_at'), SORT_DESC, $carteiraIdentidade);
$carteiraIdentidade = collect($carteiraIdentidade)->first();
$cidadao->cidadao_carteira_identidade_id = $carteiraIdentidade['cidadao_carteira_identidade_id'] ?? null;
$cidadao->cidadao_carteira_identidade_estado_id = $carteiraIdentidade['cidadao_carteira_identidade_estado_id'] ?? null;
$cidadao->cidadao_carteira_identidade_numero = $carteiraIdentidade['cidadao_carteira_identidade_numero'] ?? null;
$cidadao->cidadao_carteira_identidade_orgao_emissor = $carteiraIdentidade['cidadao_carteira_identidade_orgao_emissor'] ?? null;
$cidadao->cidadao_carteira_identidade_data_emissao = $carteiraIdentidade['cidadao_carteira_identidade_data_emissao'] ?? null;
$cidadao->cidadao_carteira_identidade_created_at = $carteiraIdentidade['cidadao_carteira_identidade_created_at'] ?? null;
$cidadao->cidadao_carteira_identidade_updated_at = $carteiraIdentidade['cidadao_carteira_identidade_updated_at'] ?? null;
}
}
private static function obterIdadeCidadao(&$cidadao)
{
if (!is_null($cidadao->data_nascimento)) {
$dataNascimento = new DateTime($cidadao->data_nascimento);
$age = AgeService::getAge($dataNascimento);
}
$cidadao->cidadao_idade_anos = isset($age) ? $age->years : null;
$cidadao->cidadao_idade_meses = isset($age) ? $age->months : null;
$cidadao->cidadao_idade_dias = isset($age) ? $age->days : null;
}
private static function removeChavesAgrupadas(&$cidadao)
{
unset($cidadao->cidadao_telefone_principal_id);
unset($cidadao->cidadao_telefone_principal_numero);
unset($cidadao->cidadao_telefone_principal_principal);
unset($cidadao->cidadao_telefone_principal_observacao);
unset($cidadao->cadastro_cidadao_alergia_alergia_id);
unset($cidadao->cadastro_cidadao_alergia_criticidade_id);
unset($cidadao->cadastro_cidadao_alergia_cid_id);
unset($cidadao->cadastro_cidadao_alergia_reacoes_observacoes);
unset($cidadao->medicamento_id);
unset($cidadao->fator_risco_id);
unset($cidadao->convenio_medico_id);
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Http\Controllers\Mobile\ConectaSusAb\Cadastro;
use App\Http\Controllers\Controller;
use App\Models\Cadastro\SujeitoAtencao\ConvenioMedico;
use Illuminate\Http\Response;
class ConvenioMedicoController extends Controller
{
protected $modulo = 'cadastro';
protected $funcionalidade = 'convenio-medico';
public function index()
{
return response()->json(ConvenioMedico::all(['id', 'nome']), Response::HTTP_OK);
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Http\Controllers\Mobile\ConectaSusAb\Cadastro;
use App\Http\Controllers\Controller;
use Illuminate\Http\Response;
use App\Models\Cadastro\SujeitoAtencao\EtniaIndigena;
class EtniaIndigenaController extends Controller
{
public function index()
{
return response()->json($this->get(EtniaIndigena::class)->get(), Response::HTTP_OK);
}
}

View File

@@ -0,0 +1,58 @@
<?php
namespace App\Http\Controllers\Mobile\ConectaSusAb\Cadastro;
use App\Http\Controllers\Controller;
use App\Models\Cadastro\Localizacao\Logradouro;
use App\Models\Cadastro\Localizacao\LogradouroTipo;
use Illuminate\Http\Response;
class LogradouroController extends Controller
{
protected $modulo = 'cadastro';
protected $funcionalidade = 'logradouro';
public function index()
{
$logradouros = Logradouro::all()->map(function ($logradouro) {
return [
"id" => $logradouro->id,
"nome" => $logradouro->nome,
"cep" => $logradouro->cep,
"tipo_nome" => $logradouro->tipo_nome,
"tipo_id" => $logradouro->tipo->id,
"tipo_descricao" => $logradouro->tipo->descricao,
"tipo_codigo" => $logradouro->tipo->codigo,
"bairro_id" => $logradouro->bairro->id,
"bairro_nome" => $logradouro->bairro->nome,
"municipio_id" => $logradouro->municipio->id,
"municipio_nome" => $logradouro->municipio->nome,
"municipio_ibge" => $logradouro->municipio->ibge,
"municipio_estado_id" => $logradouro->municipio->estado->id,
"municipio_estado_codigo" => $logradouro->municipio->estado->codigo,
"municipio_estado_nome" => $logradouro->municipio->estado->nome,
"municipio_estado_uf" => $logradouro->municipio->estado->uf,
"municipio_estado_pais_id" => $logradouro->municipio->estado->pais->id,
"municipio_estado_pais_nome" => $logradouro->municipio->estado->pais->nome,
"municipio_estado_pais_codigo" => $logradouro->municipio->estado->pais->codigo,
"municipio_estado_pais_codigo_esus" => $logradouro->municipio->estado->pais->codigo_esus
];
});
return response()->json($logradouros, Response::HTTP_OK);
}
public function obterTipoLogradouro()
{
$camposTipoLogradouro = ['id', 'descricao'];
$tiposLogradouros = LogradouroTipo::orderBy('descricao')
->select($camposTipoLogradouro)
->get();
return response()->json($tiposLogradouros, Response::HTTP_OK);
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Http\Controllers\Mobile\ConectaSusAb\Cadastro;
use App\Http\Controllers\Controller;
use App\Models\Cadastro\Localizacao\Loteamento;
use Illuminate\Http\Response;
class LoteamentoController extends Controller
{
protected $modulo = 'cadastro';
protected $funcionalidade = 'loteamento';
public function index()
{
$loteamentos = $this->get(Loteamento::class)->orderBy('nome')->get();
return response()->json($loteamentos, Response::HTTP_OK);
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Http\Controllers\Mobile\ConectaSusAb\Cadastro;
use App\Http\Controllers\Controller;
use App\Models\Cadastro\Medicamento\Medicamento;
use Illuminate\Http\Response;
class MedicamentoController extends Controller
{
protected $modulo = 'cadastro';
protected $funcionalidade = 'medicamento';
public function index()
{
$medicamentos = $this->get(Medicamento::class)->orderBy('nome')->get();
return response()->json($medicamentos, Response::HTTP_OK);
}
}

View File

@@ -0,0 +1,40 @@
<?php
namespace App\Http\Controllers\Mobile\ConectaSusAb\Cadastro;
use App\Http\Controllers\Controller;
use App\Models\Cadastro\Estabelecimento\Unidade;
use Illuminate\Http\Response;
class UnidadeController extends Controller
{
protected $modulo = 'cadastro';
protected $funcionalidade = 'unidade';
public function index()
{
$where = $this->getWhereFromQueryString([
'cnpj',
'nome_fantasia',
'cnes',
'unidade_referencia',
['not_id', '<>']
]);
$unidades = $this->get(Unidade::class)->where($where)->orderBy('nome_fantasia')->get()->map(function ($unidade) {
return [
'id' => $unidade->id,
'nome_fantasia' => $unidade->nome_fantasia,
'razao_social' => $unidade->razao_social,
'cnpj' => $unidade->cnpj,
'email' => $unidade->email,
'tipo_id' => $unidade->tipo_id,
'cnes' => $unidade->cnes
];
});
return response()->json($unidades, Response::HTTP_OK);
}
}

View File

@@ -0,0 +1,39 @@
<?php
namespace App\Http\Controllers\Mobile\ConectaSusAb\Cadastro;
use App\Http\Controllers\Controller;
use App\Models\Cadastro\SujeitoAtencao\Usuario;
use Illuminate\Http\Response;
class UsuarioController extends Controller
{
protected $modulo = 'cadastro';
protected $funcionalidade = 'usuario';
public function index()
{
$usuarios = Usuario::with(['atencaoBasicaEquipes'])
->get()
->map(function($usuario) {
$usuario = $usuario->toArray();
return [
'id' => $usuario['id'],
'usuario' => $usuario['usuario'],
'email' => $usuario['email'],
'registro_numero' => $usuario['registro_numero'],
'registro_estado_id' => $usuario['registro_estado_id'],
'bloqueado' => $usuario['bloqueado'],
'usuario_cidadao_nome' => $usuario['cidadao']['nome'],
'usuario_cidadao_cpf' => $usuario['cidadao']['cpf'],
'usuario_cidadao_cns' => $usuario['cidadao']['cns'],
'atencao_basica_equipes' => $usuario['atencao_basica_equipes'],
];
});
return response()->json($usuarios, Response::HTTP_OK);
}
}