'boolean', 'ativo' => 'boolean', 'deficiente' => 'boolean', 'frequenta_escola_creche' => 'boolean', 'frequenta_cuidador_tradicional' => 'boolean', 'participa_grupo_comunitario' => 'boolean', 'plano_saude' => 'boolean', 'comunidade_tradicional' => 'boolean', 'orientacao_sexual' => 'boolean', 'identidade_genero' => 'boolean', 'recusa_cadastro' => 'boolean', 'gestante' => 'boolean', 'fumante' => 'boolean', 'usa_alcool' => 'boolean', 'outras_drogas' => 'boolean', 'hipertensao' => 'boolean', 'diabetes' => 'boolean', 'avc_derrame' => 'boolean', 'infarto' => 'boolean', 'hanseniase' => 'boolean', 'tuberculose' => 'boolean', 'cancer' => 'boolean', 'hanseniase' => 'boolean', 'fibromialgia' => 'boolean', 'transtorno_espectro_autista' => 'boolean', 'internacao' => 'boolean', 'doenca_cardiaca' => 'boolean', 'problemas_rins' => 'boolean', 'doenca_respiratoria' => 'boolean', 'tratamento_psiquiatrico' => 'boolean', 'acamado' => 'boolean', 'domiciliado' => 'boolean', 'plantas_medicinais' => 'boolean', 'praticas_integrativas' => 'boolean', 'outra_instituicao' => 'boolean', 'recebe_beneficio' => 'boolean', 'referencia_familiar' => 'boolean', 'visita_familiar' => 'boolean', 'higiene_pessoal' => 'boolean', 'tratamento_saude_mental' => 'boolean', 'alimentos_acabaram' => 'boolean', 'comeu_alguns_alimentos' => 'boolean', 'data_atualizacao_tria' => 'date', ]; protected $fillable = [ 'id', 'usuario_exportacao_id', 'data_hora_exportacao', 'paciente_id', 'usuario_id', 'equipe_id', 'usuario_ocupacao_id', 'data_usuario_responsavel', 'responsavel', 'ativo', 'responsavel_cidadao_id', 'profissao', 'renda_mensal', 'parentesco_responsavel_id', 'ocupacao_id', 'curso_id', 'frequenta_escola_creche', 'situacao_mercado_trabalho_id', 'frequenta_cuidador_tradicional', 'participa_grupo_comunitario', 'plano_saude', 'comunidade_tradicional', 'comunidade_tradicional_id', 'orientacao_sexual', 'orientacao_sexual_id', 'identidade_genero', 'deficiente', 'saida_cidadao_id', 'motivo_saida_data', 'recusa_cadastro', 'gestante', 'maternidade_referencia', 'peso_id', 'fumante', 'usa_alcool', 'outras_drogas', 'hipertensao', 'diabetes', 'avc_derrame', 'infarto', 'hanseniase', 'tuberculose', 'cancer', 'fibromialgia', 'transtorno_espectro_autista', 'internacao', 'internacao_motivo', 'doenca_cardiaca', 'problemas_rins', 'doenca_respiratoria', 'tratamento_saude_mental', 'acamado', 'domiciliado', 'plantas_medicinais', 'plantas_medicinais_quais', 'praticas_integrativas', 'outras_condicoes_primaria', 'outras_condicoes_secundaria', 'outras_condicoes_terciaria', 'situacao_rua_id', 'outra_instituicao', 'outra_instituicao_quais', 'recebe_beneficio', 'referencia_familiar', 'visita_familiar', 'parentesco', 'alimentacao_diaria_id', 'higiene_pessoal', 'alimentos_acabaram', 'comeu_alguns_alimentos', 'data_atualizacao_tria', ]; 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 usuario() { return $this->belongsTo(Usuario::class); } public function usuarioExportacao() { return $this->belongsTo(Usuario::class); } public function paciente() { return $this->belongsTo(Paciente::class); } public function equipe() { return $this->belongsTo(Equipe::class); } public function ocupacao() { return $this->belongsTo(Ocupacao::class); } public function usuarioOcupacao() { return $this->belongsTo(Ocupacao::class); } public function parentescoResponsavel() { return $this->belongsTo(Parentesco::class); } public function peso() { return $this->belongsTo(Peso::class); } public function situacaoRua() { return $this->belongsTo(SituacaoRua::class); } public function alimentacaoDiaria() { return $this->belongsTo(AlimentacaoDiaria::class); } public function curso() { return $this->belongsTo(Curso::class); } public function saidaCidadao() { return $this->belongsTo(SaidaCidadao::class); } public function responsavelCidadao() { return $this->belongsTo(Cidadao::class); } public function orientacaoSexual() { return $this->belongsTo(OrientacaoSexual::class); } public function situacaoMercadoTrabalho() { return $this->belongsTo(SituacaoMercadoTrabalho::class); } public function comunidadeTradicionalQual() { return $this->belongsTo(ComunidadeTradicional::class, 'comunidade_tradicional_id'); } public function acompanhamentoInfantil() { return $this->belongsToMany(AcompanhamentoInfantil::class, 'atencao_basica_cadastro_individual_acompanhamento_infantil') ->using(CadastroIndividualAcompanhamentoInfantil::class) ->as('CadastroIndividualAcompanhamentoInfantil') ->withPivot( 'created_lotacao_id', 'created_centro_custo_id', 'cadastro_individual_id', 'acompanhamento_infantil_id', ) ->select('atencao_basica_cadastro_acompanhamento_infantil.id') ->withTimestamps(); } public function deficiencia() { return $this->belongsToMany(DeficienciaBase::class, 'atencao_basica_cadastro_individual_deficiencia_base') ->using(CadastroIndividualDeficiente::class) ->as('CadastroIndividualDeficiente') ->withPivot( 'created_lotacao_id', 'created_centro_custo_id', 'cadastro_individual_id', 'deficiencia_base_id', ) ->select('cadastro_deficiencia_base.id') ->withTimestamps(); } public function doencaCardiaca() { return $this->belongsToMany(DoencaCardiaca::class, 'atencao_basica_cadastro_individual_doenca_cardiaca') ->using(CadastroIndividualDoencaCardiaca::class) ->as('CadastroIndividualDoencaCardiaca') ->withPivot( 'created_lotacao_id', 'created_centro_custo_id', 'cadastro_individual_id', 'doenca_cardiaca_id', ) ->select( 'atencao_basica_cadastro_doenca_cardiaca.id', 'atencao_basica_cadastro_doenca_cardiaca.descricao' ) ->withTimestamps(); } public function doencaRespiratoria() { return $this->belongsToMany(DoencaRespiratoria::class, 'atencao_basica_cadastro_individual_doenca_respiratoria') ->using(CadastroIndividualDoencaRespiratoria::class) ->as('CadastroIndividualDoencaRespiratoria') ->withPivot( 'created_lotacao_id', 'created_centro_custo_id', 'cadastro_individual_id', 'doenca_respiratoria_id', ) ->select( 'atencao_basica_cadastro_doenca_respiratoria.id', 'atencao_basica_cadastro_doenca_respiratoria.descricao' ) ->withTimestamps(); } public function problemasRins() { return $this->belongsToMany(ProblemasRins::class, 'atencao_basica_cadastro_individual_problemas_rins') ->using(CadastroIndividualProblemasRins::class) ->as('CadastroIndividualProblemasRins') ->withPivot( 'created_lotacao_id', 'created_centro_custo_id', 'cadastro_individual_id', 'problemas_rins_id', ) ->select( 'atencao_basica_cadastro_problemas_rins.id', 'atencao_basica_cadastro_problemas_rins.descricao' ) ->withTimestamps(); } public function origemAlimentacao() { return $this->belongsToMany(OrigemAlimentacao::class, 'atencao_basica_cadastro_individual_origem_alimentacao') ->using(CadastroIndividualOrigemAlimentacao::class) ->as('CadastroIndividualOrigemAlimentacao') ->withPivot( 'created_lotacao_id', 'created_centro_custo_id', 'cadastro_individual_id', 'origem_alimentacao_id', ) ->select('atencao_basica_cadastro_origem_alimentacao.id') ->withTimestamps(); } public function higienePessoal() { return $this->belongsToMany(HigienePessoal::class, 'atencao_basica_cadastro_individual_higiene_pessoal') ->using(CadastroIndividualHigienePessoal::class) ->as('CadastroIndividualHigienePessoal') ->withPivot( 'created_lotacao_id', 'created_centro_custo_id', 'cadastro_individual_id', 'higiene_pessoal_id', ) ->select('atencao_basica_cadastro_higiene_pessoal.id') ->withTimestamps(); } public function scopeValidaEsus($query) { return $query ->where('ativo', true) ->where(function ($query) { $query->where(function ($query){ $query->where('internacao', true) ->whereNotNull('internacao_motivo'); }) ->orWhere('internacao', false) ->orWhereNull('internacao'); }) ->where(function ($query) { $query->where(function ($query) { $query->where('doenca_cardiaca', true) ->whereHas('doencaCardiaca'); }) ->orWhere('doenca_cardiaca', false) ->orWhereNull('doenca_cardiaca'); }) ->where(function ($query) { $query->where(function ($query) { $query->where('doenca_respiratoria', true) ->whereHas('doencaRespiratoria'); }) ->orWhere('doenca_respiratoria', false) ->orWhereNull('doenca_respiratoria'); }) ->where(function ($query) { $query->where(function ($query) { $query->where('problemas_rins', true) ->whereHas('problemasRins'); }) ->orWhere('problemas_rins', false) ->orWhereNull('problemas_rins'); }) ->where(function ($query) { $query->where(function ($q) { $q->whereNotNull('situacao_rua_id') ->where(function ($qq) { $qq->where('visita_familiar', true) ->whereNotNull('parentesco'); }); }) ->orWhere(function ($q) { $q->where('situacao_rua_id', null) ->orWhere('visita_familiar', false); }); }) ->where(function ($query) { $query->where(function ($query) { $query->where('deficiente', true) ->whereHas('deficiencia'); }) ->orWhere('deficiente', false) ->orWhereNull('deficiente'); }) ->where(function ($query) { $query->where(function ($query) { $query->where(function ($query) { $query->where("{$this->table}.recusa_cadastro", false) ->orWhereNull("{$this->table}.recusa_cadastro"); })->whereHas('paciente.cidadao', function ($query) { $query->dadosSemRecusaCadastro(); }); })->orWhere("{$this->table}.recusa_cadastro", true); }); } }