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,94 @@
<?php
namespace App\Models\Farmacia\AltoCusto;
use App\Models\Cadastro\Estabelecimento\Unidade;
use App\Models\Cadastro\SujeitoAtencao\Paciente;
use App\Models\Cadastro\SujeitoAtencao\Usuario;
use App\Models\Cadastro\UnidadeMedida;
use App\Models\Model;
use App\Models\Sigtap\Cid;
class Processo extends Model
{
protected $table = 'farmacia_alto_custo_processo';
protected $casts = [
'solicitado_em' => 'datetime:d/m/Y',
];
protected $fillable = [
'paciente_id',
'peso',
'peso_unidade_medida_id',
'altura',
'altura_unidade_medida_id',
'tipo_id',
'subtipo_id',
'solicitado_em',
'unidade_solicitante_id',
'usuario_solicitante_id',
'cid_id',
'observacoes',
'observacoes_drs',
'processo_devolvido_em',
'motivo_processo_devolvido',
'medicamento_devolvido_em',
'motivo_medicamento_devolvido',
'numero_recebimento',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
public function paciente()
{
return $this->belongsTo(Paciente::class);
}
public function pesoUnidadeMedida()
{
return $this->belongsTo(UnidadeMedida::class);
}
public function alturaUnidadeMedida()
{
return $this->belongsTo(UnidadeMedida::class);
}
public function tipo()
{
return $this->belongsTo(ProcessoTipo::class);
}
public function subtipo()
{
return $this->belongsTo(ProcessoSubtipo::class);
}
public function unidadeSolicitante()
{
return $this->belongsTo(Unidade::class);
}
public function usuarioSolicitante()
{
return $this->belongsTo(Usuario::class);
}
public function cid()
{
return $this->belongsTo(Cid::class);
}
public function itens()
{
return $this->hasMany(ProcessoItem::class);
}
}

View File

@@ -0,0 +1,39 @@
<?php
namespace App\Models\Farmacia\AltoCusto;
use App\Models\Cadastro\Material\Material;
use App\Models\Model;
class ProcessoItem extends Model
{
protected $table = 'farmacia_alto_custo_processo_item';
protected $fillable = [
'material_id',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
public function processo()
{
return $this->belongsTo(Processo::class);
}
public function material()
{
return $this->belongsTo(Material::class);
}
public function meses()
{
return $this->hasMany(ProcessoItemMes::class, 'item_id');
}
}

View File

@@ -0,0 +1,52 @@
<?php
namespace App\Models\Farmacia\AltoCusto;
use App\Models\Cadastro\SujeitoAtencao\Usuario;
use App\Models\Model;
class ProcessoItemMes extends Model
{
protected $table = 'farmacia_alto_custo_processo_item_mes';
protected $casts = [
'enviado_drs_em' => 'datetime:d/m/Y',
'retirado_drs_em' => 'datetime:d/m/Y',
'retirado_paciente_em' => 'datetime:d/m/Y',
];
protected $fillable = [
'mes',
'quantidade_solicitada',
'enviado_drs_em',
'retirado_drs_em',
'quantidade_retirada',
'retirado_paciente_em',
'usuario_atendente_id',
'status_id',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
public function item()
{
return $this->belongsTo(ProcessoItem::class);
}
public function usuarioAtendente()
{
return $this->belongsTo(Usuario::class);
}
public function status()
{
return $this->belongsTo(ProcessoItemMesStatus::class);
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Models\Farmacia\AltoCusto;
use App\Models\Model;
class ProcessoItemMesStatus extends Model
{
protected $table = 'farmacia_alto_custo_processo_item_mes_status';
protected $fillable = [
'id',
'nome',
];
protected $hidden = [
'created_at',
'updated_at',
];
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Models\Farmacia\AltoCusto;
use App\Models\Cadastro\Estabelecimento\CentroCusto;
use App\Models\Model;
class ProcessoNumeroRecebimento extends Model
{
protected $table = 'farmacia_alto_custo_processo_numero_recebimento';
protected $fillable = [
'centro_custo_id',
'numero',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
public function centroCusto()
{
return $this->belongsTo(CentroCusto::class);
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Models\Farmacia\AltoCusto;
use App\Models\Model;
class ProcessoSubtipo extends Model
{
protected $table = 'farmacia_alto_custo_processo_subtipo';
protected $fillable = [
'id',
'tipo_id',
'nome',
];
protected $hidden = [
'created_at',
'updated_at',
];
public function tipo()
{
return $this->belongsTo(ProcessoTipo::class);
}
public function processos()
{
return $this->hasMany(Processo::class, 'subtipo_id');
}
}

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Models\Farmacia\AltoCusto;
use App\Models\Model;
class ProcessoTipo extends Model
{
protected $table = 'farmacia_alto_custo_processo_tipo';
protected $fillable = [
'id',
'nome',
];
protected $hidden = [
'created_at',
'updated_at',
];
public function processos()
{
return $this->hasMany(Processo::class, 'tipo_id');
}
}

View File

@@ -0,0 +1,35 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Cadastro\SujeitoAtencao\Paciente;
use Illuminate\Database\Eloquent\Model;
use App\Models\Farmacia\Receita;
use App\Models\Farmacia\ReceitaItem;
class AppCidadaoLog extends Model
{
protected $table = 'farmacia_app_cidadao_log';
protected $fillable = [
'paciente_id',
'receita_id',
'receita_item_id',
'tipo_acao',
];
public function paciente()
{
return $this->belongsTo(Paciente::class);
}
public function receita()
{
return $this->belongsTo(Receita::class);
}
public function receitaItem()
{
return $this->belongsTo(ReceitaItem::class);
}
}

View File

@@ -0,0 +1,81 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Cadastro\Material\LivroRegistro;
use App\Models\Cadastro\Material\LivroRegistroTipo;
use App\Models\Cadastro\SujeitoAtencao\Lotacao;
use App\Models\Cadastro\SujeitoAtencao\Usuario;
use App\Models\Model;
class Livro extends Model
{
protected $table = 'farmacia_livro';
protected $casts = [
'aberto_em' => 'datetime:d/m/Y',
'fechado_em' => 'datetime:d/m/Y H:i:s',
];
protected $fillable = [
'numero',
'aberto_em',
'status_id',
'livro_registro_id',
'livro_registro_tipo_id',
'registro',
'usuario_farmaceutico_id',
'inscricao_estadual',
'autoridade_sanitaria',
'fechado_em',
'lotacao_fechamento_id',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
protected $appends = [
'quantidade_paginas',
];
public function status()
{
return $this->belongsTo(LivroStatus::class);
}
public function livroRegistro()
{
return $this->belongsTo(LivroRegistro::class);
}
public function livroRegistroTipo()
{
return $this->belongsTo(LivroRegistroTipo::class);
}
public function usuarioFarmaceutico()
{
return $this->belongsTo(Usuario::class);
}
public function lotacaoFechamento()
{
return $this->belongsTo(Lotacao::class);
}
public function paginas()
{
return $this->hasMany(LivroPagina::class);
}
public function getQuantidadePaginasAttribute()
{
return $this->paginas()->count();
}
}

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Cadastro\Material\Material;
use App\Models\Model;
class LivroPagina extends Model
{
protected $table = 'farmacia_livro_pagina';
protected $fillable = [
'livro_id',
'numero',
'material_id',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
public function livro()
{
return $this->belongsTo(Livro::class);
}
public function material()
{
return $this->belongsTo(Material::class);
}
public function linhas()
{
return $this->hasMany(LivroPaginaLinha::class, 'pagina_id');
}
}

View File

@@ -0,0 +1,42 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Almoxarifado\EntradaItem;
use App\Models\Almoxarifado\SaidaItem;
use App\Models\Model;
class LivroPaginaLinha extends Model
{
protected $table = 'farmacia_livro_pagina_linha';
protected $fillable = [
'pagina_id',
'entrada_item_id',
'saida_item_id',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
public function pagina()
{
return $this->belongsTo(LivroPagina::class);
}
public function entradaItem()
{
return $this->belongsTo(EntradaItem::class);
}
public function saidaItem()
{
return $this->belongsTo(SaidaItem::class);
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Model;
class LivroStatus extends Model
{
protected $table = 'farmacia_livro_status';
protected $fillable = [
'id',
'nome',
];
protected $hidden = [
'created_at',
'updated_at',
];
}

View File

@@ -0,0 +1,42 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Cadastro\SujeitoAtencao\Paciente;
use App\Models\Cadastro\SujeitoAtencao\Usuario;
use App\Models\Model;
class MedicamentoNaoPadronizado extends Model
{
protected $table = 'farmacia_medicamento_nao_padronizado';
protected $fillable = [
'paciente_id',
'usuario_id',
'data_receita',
'medicamento_nao_padronizado_id',
'quantidade',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
'deleted_at',
'deleted_lotacao_id',
'deleted_centro_custo_id',
];
public function paciente()
{
return $this->belongsTo(Paciente::class);
}
public function usuario()
{
return $this->belongsTo(Usuario::class);
}
}

View File

@@ -0,0 +1,27 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Model;
class ParametrizacaoAppCidadao extends Model
{
protected $table = 'farmacia_parametrizacao_app_cidadao';
protected $casts = [
'permite_envio_receitas_medicas' => 'boolean',
];
protected $fillable = [
'permite_envio_receitas_medicas',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
}

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Model;
class ParametrizacaoDispensacao extends Model
{
protected $table = 'farmacia_parametrizacao_dispensacao';
protected $casts = [
'utiliza_solicitacao_medicamentos_ambulatorio' => 'boolean',
];
protected $fillable = [
'prazo_receita_dias',
'utiliza_solicitacao_medicamentos_ambulatorio',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
}

View File

@@ -0,0 +1,27 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Model;
class ParametrizacaoLimitePrescricaoMedicamento extends Model
{
protected $table = 'farmacia_parametrizacao_limite_prescricao_medicamento';
protected $casts = [
'limite_dias' => 'integer',
];
protected $fillable = [
'limite_dias',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
}

View File

@@ -0,0 +1,27 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Model;
class ParametrizacaoMedicamentoSupervisor extends Model
{
protected $table = 'farmacia_parametrizacao_medicamento_supervisor';
protected $casts = [
'dispensar' => 'boolean',
];
protected $fillable = [
'dispensar',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
}

View File

@@ -0,0 +1,27 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Model;
class ParametrizacaoPosologia extends Model
{
protected $table = 'farmacia_parametrizacao_posologia';
protected $casts = [
'is_obrigatorio' => 'boolean',
];
protected $fillable = [
'is_obrigatorio',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
}

View File

@@ -0,0 +1,68 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Ambulatorio\AtendimentoSoapPrescricaoMedicamento;
use App\Models\Cadastro\SujeitoAtencao\Paciente;
use App\Models\Sigtap\Cid;
use App\Models\Model;
use App\Models\Farmacia\ReceitaItem;
use App\Models\Cadastro\SujeitoAtencao\Usuario;
class Receita extends Model
{
protected $table = 'farmacia_receita';
protected $casts = [
'data_receita' => 'datetime:Y-m-d',
'validade_receita' => 'datetime:Y-m-d',
'is_receita_sus' => 'boolean',
'is_remedio_em_casa' => 'boolean',
];
protected $fillable = [
'ambulatorio_prescricao_medicamento_id',
'paciente_id',
'usuario_id',
'data_receita',
'numero_notificacao',
'cid_id',
'is_receita_sus',
'is_remedio_em_casa',
'observacao',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
public function ambulatorioPrescricaoMedicamento()
{
return $this->belongsTo(AtendimentoSoapPrescricaoMedicamento::class);
}
public function usuario()
{
return $this->belongsTo(Usuario::class);
}
public function paciente()
{
return $this->belongsTo(Paciente::class);
}
public function cid()
{
return $this->belongsTo(Cid::class);
}
public function itens()
{
return $this->hasMany(ReceitaItem::class);
}
}

View File

@@ -0,0 +1,95 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Cadastro\Material\Material;
use App\Models\Farmacia\Receita;
use App\Models\Farmacia\ReceitaItemEntrega;
use App\Models\Geral\MedidaTempo;
use App\Models\Model;
use Illuminate\Support\Str;
class ReceitaItem extends Model
{
protected $table = 'farmacia_receita_item';
protected $casts = [
'proxima_retirada' => 'datetime:Y-m-d',
];
protected $fillable = [
'receita_id',
'material_id',
'quantidade',
'intervalo_tempo',
'intervalo_medida_tempo_id',
'durante_tempo',
'prescrito',
'proxima_retirada',
'observacao',
'supervisor_id',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
public function getPosologiaAttribute()
{
$posologia = '';
if (!is_null($this->quantidade)) {
$quantidade = (float) $this->quantidade;
$posologia .= fmod($quantidade, 1) == 0 ? (int) $quantidade : number_format($quantidade, 2, ',', '.');
if (!is_null($this->material->apresentacaoUnidadeMedida)) {
$posologia .= ' ' . Str::lower($this->material->apresentacaoUnidadeMedida->nome);
}
}
if (!is_null($this->intervalo_tempo)) {
$posologia .= " a cada {$this->intervalo_tempo}";
if (!is_null($this->intervaloMedidaTempo)) {
$posologia .= ' ' . Str::lower($this->intervaloMedidaTempo->nome);
}
}
if (!is_null($this->durante_tempo)) {
$posologia .= " durante {$this->durante_tempo} dia(s)";
}
return empty($posologia) ? null : $posologia;
}
public function receita()
{
return $this->belongsTo(Receita::class);
}
public function material()
{
return $this->belongsTo(Material::class);
}
public function intervaloMedidaTempo()
{
return $this->belongsTo(MedidaTempo::class);
}
public function entregas()
{
return $this->hasMany(ReceitaItemEntrega::class);
}
}

View File

@@ -0,0 +1,53 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Almoxarifado\SaidaItem;
use App\Models\Model;
use App\Models\Farmacia\ReceitaItem;
class ReceitaItemEntrega extends Model
{
protected $table = 'farmacia_receita_item_entrega';
protected $casts = [
'pendente' => 'boolean',
'estornado' => 'boolean',
];
protected $fillable = [
'receita_item_id',
'quantidade',
'pendente',
'dispensado_em',
'saida_item_id',
'estornado',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
'deleted_at',
'deleted_lotacao_id',
'deleted_centro_custo_id',
];
public function receitaItem()
{
return $this->belongsTo(ReceitaItem::class);
}
public function saidaItem()
{
return $this->belongsTo(SaidaItem::class);
}
public function getIsAllowedToDeleteAttribute()
{
return true;
}
}

View File

@@ -0,0 +1,35 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Cadastro\SujeitoAtencao\Paciente;
use App\Models\Model;
class ReceitaMonitoramentoPosologia extends Model
{
protected $table = 'farmacia_receita_monitoramento_posologia';
public $timestamps = false;
protected $casts = [
'confirmado_em' => 'datetime',
];
protected $fillable = [
'receita_item_id',
'paciente_id',
'confirmado_em',
'dose_numero',
'observacao',
];
public function receitaItem()
{
return $this->belongsTo(ReceitaItem::class);
}
public function paciente()
{
return $this->belongsTo(Paciente::class);
}
}

View File

@@ -0,0 +1,37 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Cadastro\SujeitoAtencao\Paciente;
use App\Models\Model;
class ReceitaTratamentoInicio extends Model
{
protected $table = 'farmacia_receita_tratamento_inicio';
public $timestamps = false;
protected $casts = [
'inicio_em' => 'datetime',
'interrompido_em' => 'datetime',
'aderiu_tratamento' => 'boolean',
];
protected $fillable = [
'receita_item_id',
'paciente_id',
'inicio_em',
'interrompido_em',
'aderiu_tratamento',
];
public function receitaItem()
{
return $this->belongsTo(ReceitaItem::class);
}
public function paciente()
{
return $this->belongsTo(Paciente::class);
}
}

View File

@@ -0,0 +1,36 @@
<?php
namespace App\Models\Farmacia;
use App\Models\Cadastro\Estabelecimento\Infraestrutura;
use App\Models\Cadastro\SujeitoAtencao\Usuario;
use App\Models\Model;
class Supervisor extends Model
{
protected $table = 'farmacia_supervisor';
protected $fillable = [
'infraestrutura_id',
'usuario_id',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
public function infraestrutura()
{
return $this->belongsTo(Infraestrutura::class);
}
public function usuario()
{
return $this->belongsTo(Usuario::class);
}
}