33 lines
998 B
PHP
33 lines
998 B
PHP
<?php
|
|
|
|
namespace App\Rules\AtencaoBasica\Exportacao;
|
|
|
|
use App\Enums\AtencaoBasica\AtendimentoIndividual\CondicaoAvaliada as EnumsCondicaoAvaliada;
|
|
use App\Enums\Cadastro\SujeitoAtencao\Sexo;
|
|
use App\Enums\Sigtap\Procedimento;
|
|
use Illuminate\Contracts\Validation\Rule;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class CondicaoAvaliacaoIsValidForFicha implements Rule
|
|
{
|
|
public function passes($attribute, $value)
|
|
{
|
|
return self::isValid($value);
|
|
}
|
|
|
|
public static function isValid($value)
|
|
{
|
|
$result = DB::table('atencao_basica_atendimento_individual_condicao_avaliada')
|
|
->where('atendimento_individual_id', $value->id)
|
|
->whereIn('condicao_avaliada_id', [EnumsCondicaoAvaliada::PRE_NATAL, EnumsCondicaoAvaliada::PUERPERIO_ATE_42_DIAS])
|
|
->count();
|
|
|
|
return $result == 0 || $result > 0 && $value->paciente_sexo_id === Sexo::FEMININO;
|
|
}
|
|
|
|
public function message()
|
|
{
|
|
return 'Condição avaliada inválida';
|
|
}
|
|
}
|