613 lines
18 KiB
PHP
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');
|
|
}
|
|
}
|