118 lines
4.5 KiB
PHP
118 lines
4.5 KiB
PHP
<?php
|
|
|
|
namespace App\Rules\AtencaoBasica\Exportacao;
|
|
|
|
use App\Enums\Geral\Ciap;
|
|
use App\Enums\Geral\GrupoCiap;
|
|
use App\Enums\Sigtap\Cid;
|
|
use Illuminate\Contracts\Validation\Rule;
|
|
|
|
class ProblemaCondicaoCiapIsValid implements Rule
|
|
{
|
|
public function passes($attribute, $value)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
public static function isValid($problemasCondicoes, $idade)
|
|
{
|
|
if ($problemasCondicoes->where('ciap_grupo_id', GrupoCiap::PROCEDIMENTOS)->isNotEmpty()) {
|
|
|
|
return false;
|
|
}
|
|
else if ($problemasCondicoes->whereIn('ciap_codigo', self::getCiapsPreNatal())
|
|
->whereIn('cid_codigo', self::getCidsDesfechoGestacao())
|
|
->isNotEmpty()
|
|
) {
|
|
|
|
return false;
|
|
}
|
|
else if (!is_null($idade)
|
|
&& $idade < 9
|
|
&& $problemasCondicoes->whereIn('ciap_codigo', self::getCiapsPreNatal())->isNotEmpty()
|
|
) {
|
|
|
|
return false;
|
|
}
|
|
else if ($problemasCondicoes
|
|
->where('ciap_codigo', Ciap::GRAVIDEZ)
|
|
->whereNotNull('cid_id')
|
|
->where('is_cid_familia_Z34', false)
|
|
->isNotEmpty()
|
|
) {
|
|
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public function message()
|
|
{
|
|
return 'CIAP2 do problema e condição é inválido.';
|
|
}
|
|
|
|
private static function getCiapsPreNatal()
|
|
{
|
|
return [
|
|
Ciap::INFECCOES_QUE_COMPLICAM_A_GRAVIDEZ,
|
|
Ciap::GRAVIDEZ,
|
|
Ciap::GRAVIDEZ_NAO_DESEJADA,
|
|
Ciap::GRAVIDEZ_ECTOPICA,
|
|
Ciap::TOXEMIA_GRAVIDICA_DHEG,
|
|
Ciap::GRAVIDEZ_DE_ALTO_RISCO,
|
|
Ciap::DIABETES_GESTACIONAL,
|
|
];
|
|
}
|
|
|
|
private static function getCidsDesfechoGestacao()
|
|
{
|
|
return [
|
|
Cid::OUTROS_PRODUTOS_ANORMAIS_DA_CONCEPCAO,
|
|
Cid::ABORTO_ESPONTANEO,
|
|
Cid::ABORTO_POR_RAZOES_MEDICAS_E_LEGAIS,
|
|
Cid::OUTROS_TIPOS_DE_ABORTO,
|
|
Cid::ABORTO_NAO_ESPECIFICADO,
|
|
Cid::RUPTURA_PREMATURA_DE_MEMBRANAS,
|
|
Cid::DESCOLAMENTO_PREMATURO_DA_PLACENTA_ABRUPTIO_PLACENTAE,
|
|
Cid::FALHA_NA_INDUCAO_DO_TRABALHO_DE_PARTO,
|
|
Cid::ANORMALIDADES_DA_CONTRACAO_UTERINA,
|
|
Cid::TRABALHO_DE_PARTO_PROLONGADO,
|
|
Cid::OBSTRUCAO_DO_TRABALHO_DE_PARTO_DEVIDA_A_MA_POSICAO_OU_MA_APRESENTACAO_DO_FETO,
|
|
Cid::OBSTRUCAO_DO_TRABALHO_DE_PARTO_DEVIDA_A_ANORMALIDADE_PELVICA_DA_MAE,
|
|
Cid::OUTRAS_FORMAS_DE_OBSTRUCAO_DO_TRABALHO_DE_PARTO,
|
|
Cid::TRABALHO_DE_PARTO_E_PARTO_COMPLICADOS_POR_HEMORRAGIA_INTRAPARTO_NAO_CLASSIFICADOS_EM_OUTRA_PARTE,
|
|
Cid::TRABALHO_DE_PARTO_E_PARTO_COMPLICADOS_POR_SOFRIMENTO_FETAL,
|
|
Cid::TRABALHO_DE_PARTO_E_PARTO_COMPLICADOS_POR_ANORMALIDADE_DO_CORDAO_UMBILICAL,
|
|
Cid::LACERACAO_DO_PERINEO_DURANTE_O_PARTO,
|
|
Cid::OUTROS_TRAUMATISMOS_OBSTETRICOS,
|
|
Cid::RETENCAO_DA_PLACENTA_E_DAS_MEMBRANAS_SEM_HEMORRAGIAS,
|
|
Cid::SOFRIMENTO_MATERNO_DURANTE_O_TRABALHO_DE_PARTO_E_O_PARTO,
|
|
Cid::CHOQUE_DURANTE_OU_SUBSEQUENTE_AO_TRABALHO_DE_PARTO_E_O_PARTO,
|
|
Cid::OUTRAS_COMPLICACOES_DE_PROCEDIMENTOS_OU_DE_CIRURGIA_OBSTETRICA,
|
|
Cid::DEMORA_DO_PARTO_APOS_RUPTURA_ARTIFICIAL_DAS_MEMBRANAS,
|
|
Cid::DEMORA_DO_PARTO_APOS_RUPTURA_ESPONTANEA_OU_NAO_ESPECIFICADA_DAS_MEMBRANAS,
|
|
Cid::PARTO_VAGINAL_SUBSEQUENTE_A_CESARIANA_ANTERIOR,
|
|
Cid::OUTRAS_COMPLICACOES_ESPECIFICADAS_DO_TRABALHO_DE_PARTO_E_DO_PARTO,
|
|
Cid::COMPLICACOES_DO_TRABALHO_DE_PARTO_E_DO_PARTO_NAO_ESPECIFICADAS,
|
|
Cid::PARTO_UNICO_ESPONTANEO,
|
|
Cid::PARTO_UNICO_POR_FORCEPS_OU_VACUO_EXTRATOR,
|
|
Cid::PARTO_UNICO_POR_CESARIANA,
|
|
Cid::OUTROS_TIPOS_DE_PARTO_UNICO_ASSISTIDO,
|
|
Cid::PARTO_MULTIPLO,
|
|
Cid::EXTRACAO_MENSTRUAL,
|
|
Cid::NASCIMENTO_UNICO_NATIVIVO_NADO_VIVO,
|
|
Cid::NASCIMENTO_UNICO_NATIMORTO_FETO_MORTO,
|
|
Cid::NASCIMENTO_GEMELAR_GEMEOS_AMBOS_NATIVIVOS_NADO_VIVOS,
|
|
Cid::NASCIMENTO_GEMELAR_UM_DOS_GEMEOS_NATIVIVO_NADO_VIVO_O_OUTRO_NATIMORTO_FETO_MORTO,
|
|
Cid::NASCIMENTO_GEMELAR_GEMEOS_NATIMORTOS_FETO_MORTOS,
|
|
Cid::OUTROS_NASCIMENTOS_MULTIPLOS_TODOS_NATIVIVOS_NADO_VIVOS,
|
|
Cid::OUTROS_NASCIMENTOS_MULTIPLOS_ALGUNS_NATIVIVOS_NADO_VIVOS,
|
|
Cid::OUTROS_NASCIMENTOS_MULTIPLOS_TODOS_NATIMORTOS_FETO_MORTOS,
|
|
Cid::NASCIMENTO_NAO_ESPECIFICADO,
|
|
Cid::NASCIDOS_VIVOS_SEGUNDO_O_LOCAL_DE_NASCIMENTO,
|
|
Cid::ASSISTENCIA_E_EXAME_POS_NATAL,
|
|
];
|
|
}
|
|
}
|