Files
rkm-conectasus-ci-sandbox/api/app/Models/Ambulatorio/AtendimentoSoap.php
Antonio Lopes dos Santos afec302c3e
All checks were successful
build-api-image / build (push) Successful in 51s
init commit
2026-08-04 16:52:02 -03:00

613 lines
18 KiB
PHP

<?php
namespace App\Models\Ambulatorio;
use App\Models\Ambulatorio\AtendimentoSoapTriagemNeonatal;
use App\Models\Apac\MotivoSaidaPermanencia;
use App\Models\AtencaoBasica\AtendimentoDomiciliar\AtendimentoDomiciliarCondicaoAvaliada;
use App\Models\AtencaoBasica\AtendimentoDomiciliar\CondutaDesfecho;
use App\Models\AtencaoBasica\AtendimentoIndividual\AleitamentoMaterno;
use App\Models\AtencaoBasica\AtendimentoIndividual\CondicaoAvaliada;
use App\Models\AtencaoBasica\AtendimentoIndividual\Conduta;
use App\Models\AtencaoBasica\AtendimentoIndividual\DoencaTransmissivel;
use App\Models\AtencaoBasica\AtendimentoIndividual\ExameSolicitadoAvaliado;
use App\Models\AtencaoBasica\AtendimentoIndividual\ModalidadeAtencaoDomiciliar;
use App\Models\AtencaoBasica\AtendimentoIndividual\RacionalidadeSaude;
use App\Models\AtencaoBasica\AtendimentoIndividual\Rastreamento;
use App\Models\AtencaoBasica\AtendimentoIndividual\TipoAtendimento;
use App\Models\AtencaoBasica\AtendimentoIndividual\TriagemNeonatal;
use App\Models\AtencaoBasica\AtendimentoOdontologico\TipoConsulta;
use App\Models\AtencaoBasica\Avaliacao\Conclusao;
use App\Models\AtencaoBasica\Avaliacao\Cuidador;
use App\Models\AtencaoBasica\Avaliacao\JustificativaConclusao;
use App\Models\AtencaoBasica\Avaliacao\Procedencia;
use App\Models\AtencaoBasica\CadastroPerfilEpidemiologico;
use App\Models\AtencaoBasica\MarcadorConsumoAlimentar\LocalAtendimento;
use App\Models\AtencaoBasica\MarcadorConsumoAlimentar\MarcadorConsumoAlimentar;
use App\Models\AtencaoBasica\Parametrizacao\Equipe;
use App\Models\Cadastro\EtapaClinica;
use App\Models\Cadastro\Oci;
use App\Models\Cadastro\SujeitoAtencao\Usuario;
use App\Models\Geral\Turno;
use App\Models\Model;
class AtendimentoSoap extends Model
{
protected $table = 'ambulatorio_atendimento_soap';
protected $casts = [
'dum' => 'datetime:d/m/Y',
'pre_natal_desfecho_em' => 'datetime:d/m/Y',
'vacinacao_em_dia' => 'boolean',
'paciente_com_necessidade_especial' => 'boolean',
'paciente_liberado' => 'boolean',
'pos_consulta' => 'boolean',
'pre_natal_movimentacao_fetal' => 'boolean',
'pre_natal_gravidez_planejada' => 'boolean',
'is_rascunho' => 'boolean',
'is_atendimento_enfermagem' => 'boolean',
'is_atendimento_saude_bucal' => 'boolean',
'is_atendimento_pre_natal' => 'boolean',
'is_atendimento_puericultura' => 'boolean',
'is_atendimento_idoso' => 'boolean',
'is_tratamento_concluido' => 'boolean',
'saude_bucal_necessidade_protese_inferior_superior' => 'boolean',
'is_atendimento_soap_assinado' => 'boolean',
'orientacao_individual_em_saude' => 'boolean',
];
protected $fillable = [
'atendimento_id',
'is_rascunho',
'tempo_atendimento',
'is_atendimento_enfermagem',
'is_atendimento_saude_bucal',
'is_atendimento_pre_natal',
'is_atendimento_puericultura',
'is_atendimento_idoso',
'is_tratamento_concluido',
'equipe_id',
'atencao_basica_local_atendimento_id',
'turno_id',
'subjetivo_descricao',
'objetivo_descricao',
'dum',
'pre_natal_gravidez_tipo_id',
'pre_natal_altura_uterina',
'pre_natal_edema_id',
'pre_natal_movimentacao_fetal',
'pre_natal_gravidez_planejada',
'pre_natal_batimento_cardiaco_fetal',
'pre_natal_desfecho_em',
'puericultura_gravidez_tipo_id',
'puericultura_parto_tipo_id',
'puericultura_idade_gestacional_semanas',
'puericultura_idade_gestacional_dias',
'puericultura_apgar_primeiro_minuto',
'puericultura_apgar_quinto_minuto',
'puericultura_apgar_decimo_minuto',
'puericultura_peso',
'puericultura_comprimento',
'puericultura_perimetro_cefalico',
'puericultura_aleitamento_tipo_id',
'saude_bucal_necessidade_protese_inferior_superior',
'saude_bucal_consulta_tipo_id',
'vacinacao_em_dia',
'paciente_com_necessidade_especial',
'avaliacao_descricao',
'plano_descricao',
'atendimento_tipo_id',
'atendimento_compartilhado_usuario_id',
'racionalidade_saude_id',
'paciente_liberado',
'pos_consulta',
'emad_conduta_desfecho_id',
'emad_modalidade_id',
'emad_tipo_atendimento_id',
'emad_cid_primario_id',
'emad_cuidador_id',
'emad_cns_cuidador',
'emad_cpf_cuidador',
'emad_conclusao_id',
'emad_procedencia_id',
'is_atendimento_soap_assinado',
'oci_id',
'acompanhamento_oci_id',
'oci_desfecho_etapa_clinica_id',
'apac_motivo_saida_permanencia_id',
'orientacao_individual_em_saude',
'observacao_perfil_epidemiologico',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
public function atendimento()
{
return $this->belongsTo(Atendimento::class);
}
public function equipe()
{
return $this->belongsTo(Equipe::class);
}
public function atencaoBasicaLocalAtendimento()
{
return $this->belongsTo(LocalAtendimento::class);
}
public function turno()
{
return $this->belongsTo(Turno::class);
}
public function preNatalGravidezTipo()
{
return $this->belongsTo(GravidezTipo::class);
}
public function preNatalEdema()
{
return $this->belongsTo(GravidezEdema::class);
}
public function atendimentoTipo()
{
return $this->belongsTo(TipoAtendimento::class);
}
public function emadCondutaDesfecho()
{
return $this->belongsTo(CondutaDesfecho::class);
}
public function emadTipoAtendimento() {
return $this->belongsTo(TipoAtendimento::class);
}
public function emadModalidade() {
return $this->belongsTo(ModalidadeAtencaoDomiciliar::class);
}
public function emadCuidador() {
return $this->belongsTo(Cuidador::class);
}
public function emadConclusao() {
return $this->belongsTo(Conclusao::class);
}
public function emadProcedencia() {
return $this->belongsTo(Procedencia::class);
}
public function atendimentoCompartilhadoUsuario()
{
return $this->belongsTo(Usuario::class);
}
public function racionalidadeSaude()
{
return $this->belongsTo(RacionalidadeSaude::class);
}
public function saudeBucalConsultaTipo()
{
return $this->belongsTo(TipoConsulta::class);
}
public function oci()
{
return $this->belongsTo(Oci::class);
}
public function acompanhamentoOci()
{
return $this->belongsTo(AcompanhamentoOci::class);
}
public function ociDesfechoEtapaClinica()
{
return $this->belongsTo(EtapaClinica::class);
}
public function apacMotivoSaidaPermanencia()
{
return $this->belongsTo(MotivoSaidaPermanencia::class);
}
public function atendimentoSoapExameSolicitado()
{
return $this->hasOne(AtendimentoSoapExameSolicitado::class, 'soap_id');
}
public function atendimentoSoapTriagemNeonatalSolicitado()
{
return $this->hasOne(AtendimentoSoapTriagemNeonatalSolicitado::class, 'soap_id');
}
public function casosSuspeitos()
{
return $this->belongsToMany(
CasoSuspeito::class,
'ambulatorio_atendimento_soap_caso_suspeito',
'soap_id',
'caso_suspeito_id'
)
->using(AtendimentoSoapCasoSuspeito::class)
->as('soapCasoSuspeito')
->withTimestamps();
}
public function saudeBucalVigilancias()
{
return $this->belongsToMany(
SaudeBucalVigilancia::class,
'ambulatorio_atendimento_soap_saude_bucal_vigilancia',
'soap_id',
'vigilancia_id'
)
->using(AtendimentoSoapSaudeBucalVigilancia::class)
->as('soapSaudeBucalVigilancia')
->withTimestamps();
}
public function saudeBucalFornecimentos()
{
return $this->belongsToMany(
SaudeBucalFornecimento::class,
'ambulatorio_atendimento_soap_saude_bucal_fornecimento',
'soap_id',
'fornecimento_id'
)
->using(AtendimentoSoapSaudeBucalFornecimento::class)
->as('soapSaudeBucalFornecimento')
->withTimestamps();
}
public function testesRapidos()
{
return $this->belongsToMany(
TesteRapido::class,
'ambulatorio_atendimento_soap_teste_rapido',
'soap_id',
'teste_rapido_id'
)
->using(AtendimentoSoapTesteRapido::class)
->as('soapTesteRapido')
->withPivot(['resultado'])
->withTimestamps();
}
public function examesAvaliados()
{
return $this->belongsToMany(
ExameSolicitadoAvaliado::class,
'ambulatorio_atendimento_soap_exame_avaliado',
'soap_id',
'exame_solicitado_avaliado_id'
)
->using(AtendimentoSoapExameAvaliado::class)
->as('soapExameAvaliado')
->withPivot(['solicitado_em', 'realizado_em', 'resultado_em', 'resultado'])
->withTimestamps();
}
public function triagensNeonatal()
{
return $this->belongsToMany(
TriagemNeonatal::class,
'ambulatorio_atendimento_soap_triagem_neonatal',
'soap_id',
'triagem_neonatal_id'
)
->using(AtendimentoSoapTriagemNeonatal::class)
->as('soapTriagemNeonatal')
->withPivot(['solicitado_em', 'realizado_em', 'resultado_em', 'resultado'])
->withTimestamps();
}
public function condicoesAvaliadas()
{
return $this->belongsToMany(
CondicaoAvaliada::class,
'ambulatorio_atendimento_soap_condicao_avaliada',
'soap_id',
'condicao_avaliada_id'
)
->using(AtendimentoSoapCondicaoAvaliada::class)
->as('soapCondicaoAvaliada')
->withTimestamps();
}
public function condicoesEmad()
{
return $this->belongsToMany(
AtendimentoDomiciliarCondicaoAvaliada::class,
'ambulatorio_atendimento_soap_condicao_avaliada_emad',
'soap_id',
'condicao_id'
)
->using(AtendimentoSoapCondicaoEmad::class)
->as('soapCondicao')
->withTimestamps();
}
public function justificativaEmad()
{
return $this->belongsToMany(
JustificativaConclusao::class,
'ambulatorio_atendimento_soap_justificativa_emad',
'soap_id',
'justificativa_id'
)
->using(AtendimentoSoapJustificativaEmad::class)
->as('soapJustificativa')
->withTimestamps();
}
public function procedimentosEmad()
{
return $this->hasMany(AtendimentoSoapProcedimentoEmad::class, 'soap_id');
}
public function doencasTransmissiveis()
{
return $this->belongsToMany(
DoencaTransmissivel::class,
'ambulatorio_atendimento_soap_doenca_transmissivel',
'soap_id',
'doenca_transmissivel_id'
)
->using(AtendimentoSoapDoencaTransmissivel::class)
->as('soapDoencaTransmissivel')
->withTimestamps();
}
public function rastreamentos()
{
return $this->belongsToMany(
Rastreamento::class,
'ambulatorio_atendimento_soap_rastreamento',
'soap_id',
'rastreamento_id'
)
->using(AtendimentoSoapRastreamento::class)
->as('soapRastreamento')
->withTimestamps();
}
public function condutas()
{
return $this->belongsToMany(Conduta::class, 'ambulatorio_atendimento_soap_conduta', 'soap_id', 'conduta_id')
->using(AtendimentoSoapConduta::class)
->as('soapConduta')
->withTimestamps();
}
public function antecedente()
{
return $this->hasOne(AtendimentoSoapAntecedente::class, 'soap_id');
}
public function objetivoAntropometria()
{
return $this->hasOne(AtendimentoSoapObjetivoAntropometria::class, 'soap_id');
}
public function objetivoSinalVital()
{
return $this->hasOne(AtendimentoSoapObjetivoSinalVital::class, 'soap_id');
}
public function objetivoGlicemiaCapilar()
{
return $this->hasOne(AtendimentoSoapObjetivoGlicemiaCapilar::class, 'soap_id');
}
public function triaHistorio()
{
return $this->hasMany(AtendimentoSoapTriaHistorio::class, 'soap_id');
}
public function prescricoesMedicamentos()
{
return $this->hasMany(AtendimentoSoapPrescricaoMedicamento::class, 'soap_id');
}
public function marcadorConsumoAlimentarPerguntasRespostas()
{
return $this->hasMany(AtendimentoSoapMarcadorConsumoAlimentar::class, 'soap_id');
}
public function atencaoBasicaMarcadorConsumoAlimentar()
{
return $this->hasOne(MarcadorConsumoAlimentar::class, 'soap_id');
}
public function odontograma()
{
return $this->hasOne(AtendimentoSoapOdontograma::class, 'soap_id');
}
public function puericulturaGravidezTipo()
{
return $this->belongsTo(GravidezTipo::class);
}
public function puericulturaPartoTipo()
{
return $this->belongsTo(PartoTipo::class);
}
public function puericulturaAleitamentoTipo()
{
return $this->belongsTo(AleitamentoMaterno::class);
}
public function puericulturaAlteracoesFenotipicas()
{
return $this->hasMany(AtendimentoSoapPuericulturaAlteracaoFenotipica::class, 'soap_id');
}
public function puericulturaFatoresRisco()
{
return $this->hasMany(AtendimentoSoapPuericulturaFatorRisco::class, 'soap_id');
}
public function puericulturaMarcosDesenvolvimento()
{
return $this->hasMany(AtendimentoSoapPuericulturaMarcoDesenvolvimento::class, 'soap_id');
}
public function antropometrias()
{
return $this->hasMany(AtendimentoAntropometria::class, 'soap_id');
}
public function sinaisVitais()
{
return $this->hasMany(AtendimentoSinalVital::class, 'soap_id');
}
public function glicemiasCapilares()
{
return $this->hasMany(AtendimentoGlicemiaCapilar::class, 'soap_id');
}
public function motivos()
{
return $this->hasMany(AtendimentoSoapMotivo::class, 'soap_id');
}
public function resultadosExames()
{
return $this->hasMany(AtendimentoSoapResultadoExame::class, 'soap_id');
}
public function problemasCondicoes()
{
return $this->hasMany(AtendimentoSoapProblemaCondicao::class, 'soap_id');
}
public function intervencoes()
{
return $this->hasMany(AtendimentoSoapIntervencao::class, 'soap_id');
}
public function declaracoesComparecimento()
{
return $this->hasMany(AtendimentoDeclaracaoComparecimento::class, 'soap_id');
}
public function procedimentos()
{
return $this->hasMany(AtendimentoProcedimento::class, 'soap_id');
}
public function procedimentosClinicos()
{
return $this->hasMany(AtendimentoSoapProcedimentoClinico::class, 'soap_id');
}
public function procedimentosAdministrativos()
{
return $this->hasMany(AtendimentoSoapProcedimentoAdministrativo::class, 'soap_id');
}
public function solicitacoesExames()
{
return $this->hasMany(AtendimentoSoapSolicitacaoExame::class, 'soap_id');
}
public function solicitacoesProcedimentosCirurgicos()
{
return $this->hasMany(AtendimentoSoapSolicitacaoProcedimentoCirurgico::class, 'soap_id');
}
public function atestados()
{
return $this->hasMany(AtendimentoSoapAtestado::class, 'soap_id');
}
public function orientacoes()
{
return $this->hasMany(AtendimentoSoapOrientacao::class, 'soap_id');
}
public function cartasMedicas()
{
return $this->hasMany(AtendimentoSoapCartaMedica::class, 'soap_id');
}
public function encaminhamentos()
{
return $this->hasMany(AtendimentoSoapEncaminhamento::class, 'soap_id');
}
public function compartilhamentosCuidado()
{
return $this->hasMany(AtendimentoSoapCompartilhamentoCuidado::class, 'soap_id');
}
public function alergias()
{
return $this->hasMany(AtendimentoSoapAlergia::class, 'soap_id');
}
public function prescricaoMedicamentoTratamentosInterrompidos()
{
return $this->hasMany(AtendimentoSoapPrescricaoMedicamentoItem::class, 'tratamento_interrompido_soap_id');
}
public function feridas()
{
return $this->hasMany(AtendimentoSoapFerida::class, 'soap_id');
}
public function perfisEpidemiologicos()
{
return $this->belongsToMany(
CadastroPerfilEpidemiologico::class,
'ambulatorio_atendimento_soap_perfil_epidemiologico',
'soap_id',
'perfil_epidemiologico_id'
)
->using(AtendimentoSoapPerfilEpidemiologico::class)
->as('soapPerfilEpidemiologico')
->withTimestamps();
}
public function ociProcedimentosRealizados()
{
return $this->hasMany(AtendimentoSoapOciProcedimentoRealizado::class, 'soap_id');
}
public function puericulturaQuestionarioMChatR()
{
return $this->hasMany(AtendimentoSoapPuericulturaQuestionarioMChatR::class, 'soap_id');
}
public function ivcf()
{
return $this->hasOne(AtendimentoSoapIvcf::class, 'soap_id');
}
public function riscoCardiovascularFramingham()
{
return $this->hasOne(AtendimentoSoapRiscoCardiovascularFramingham::class, 'soap_id');
}
}