'boolean', 'encaminhamento' => 'boolean', 'is_regulado' => 'boolean', 'permite_agendamento_gestante' => 'boolean', 'permite_agendamento_mesmo_dia' => 'boolean', 'permite_agendamento_nao_municipe' => 'boolean', 'permite_fechamento_sem_procedimento' => 'boolean', 'precisa_informar_conclusao_tratamento' => 'boolean', 'exigir_peso_altura_circunferencia' => 'boolean', 'permite_integracao_conectasus_cidadao' => 'boolean', 'permite_integracao_aplicativo_feridas' => 'boolean', 'tratamento' => 'boolean', 'is_ppi' => 'boolean', ]; protected $fillable = [ 'ativo', 'encaminhamento', 'idade_maxima', 'idade_minima', 'is_regulado', 'limite_consulta', 'limite_consulta_mes', 'mensagem_protocolo_agendamento', 'nome', 'ocupacao_id', 'permite_agendamento_gestante', 'permite_agendamento_mesmo_dia', 'permite_agendamento_nao_municipe', 'permite_fechamento_sem_procedimento', 'precisa_informar_conclusao_tratamento', 'exigir_peso_altura_circunferencia', 'permite_integracao_conectasus_cidadao', 'permite_integracao_aplicativo_feridas', 'procedimento_grupo_codigo', 'regulacao_tipo_id', 'sexo_id', 'tratamento', 'atencao_basica_procedimento_padrao_codigo', 'atencao_basica_motivo_saida_permanencia_id', 'atencao_basica_classificacao_codigo', 'atencao_basica_numero_autorizacao', 'atencao_basica_problema_condicao_situacao_id', 'atencao_basica_problema_condicao_ciap_id', 'atencao_basica_problema_condicao_cid_id', 'atencao_basica_odontologico_consulta_tipo_id', 'atencao_basica_odontologico_vigilancia_id', 'atencao_basica_odontologico_conduta_id', 'is_ppi', 'valor_ppi', 'limite_ocorrencias_paciente', 'periodo_monitoramento', 'tempo_liberacao', 'tempo_medio_previsto_atendimento_dias', ]; protected $hidden = [ 'created_at', 'created_lotacao_id', 'created_centro_custo_id', 'updated_at', 'updated_lotacao_id', 'updated_centro_custo_id', ]; public function ocupacao() { return $this->belongsTo(Ocupacao::class); } public function atencaoBasicaMotivoSaidaPermanencia() { return $this->belongsTo(MotivoSaidaPermanencia::class); } public function atencaoBasicaProblemaCondicaoSituacao() { return $this->belongsTo(ProblemaCondicaoSituacao::class); } public function atencaoBasicaProblemaCondicaoCiap() { return $this->belongsTo(Ciap::class); } public function atencaoBasicaProblemaCondicaoCid() { return $this->belongsTo(Cid::class); } public function atencaoBasicaOdontologicoConsultaTipo() { return $this->belongsTo(TipoConsulta::class); } public function atencaoBasicaOdontologicoVigilancia() { return $this->belongsTo(SaudeBucalVigilancia::class); } public function atencaoBasicaOdontologicoConduta() { return $this->belongsTo(Conduta::class); } public function condutas() { return $this->belongsToMany( Conduta::class, 'cadastro_especialidade_conduta', 'especialidade_id', 'conduta_id' ) ->using(EspecialidadeConduta::class) ->as('especialidadeConduta') ->withTimestamps(); } public function condicoesAvaliadas() { return $this->belongsToMany( CondicaoAvaliada::class, 'cadastro_especialidade_condicao_avaliada', 'especialidade_id', 'condicao_avaliada_id' ) ->using(EspecialidadeCondicaoAvaliada::class) ->as('especialidadeCondicaoAvaliada') ->withTimestamps(); } public function dataDesejadaEspecialidades() { return $this->belongsToMany( Especialidade::class, 'regulacao_parametrizacao_data_desejada_especialidade', 'parametrizacao_id', 'especialidade_id' ) ->using(ParametrizacaoDataDesejadaEspecialidade::class) ->as('dataDesejadaEspecialidade') ->withTimestamps(); } public function ambulatorioParametrizacoesSms() { return $this->belongsToMany( ParametrizacaoInfraestruturaSms::class, 'ambulatorio_parametrizacao_infraestrutura_sms_especialidade', 'especialidade_id', 'parametrizacao_infraestrutura_sms_id' ) ->using(ParametrizacaoInfraestruturaSmsEspecialidade::class) ->as('parametrizacaoInfraestruturaSmsEspecialidade') ->withTimestamps(); } public function ambulatorioParametrizacoesInfraestruturaEspecialidade() { return $this->hasMany(ParametrizacaoInfraestruturaEspecialidade::class); } public function ambulatorioJornadas() { return $this->hasMany(Jornada::class); } public function getProcedimentoGrupoAttribute() { return is_null($this->procedimento_grupo_codigo) ? null : Procedimento::where('codigo', $this->procedimento_grupo_codigo) ->orderByDesc('competencia_id') ->first(); } public function getAtencaoBasicaProcedimentoPadraoAttribute() { return is_null($this->atencao_basica_procedimento_padrao_codigo) ? null : Procedimento::where('codigo', $this->atencao_basica_procedimento_padrao_codigo) ->orderByDesc('competencia_id') ->first(); } }