diff --git a/app/Concerns/Enums/HasLabel.php b/app/Concerns/Enums/HasLabel.php index b8ac98f2..b96a3ef4 100644 --- a/app/Concerns/Enums/HasLabel.php +++ b/app/Concerns/Enums/HasLabel.php @@ -8,7 +8,7 @@ trait HasLabel { protected function labelKeyPrefix(): ?string { - return 'vulnerability.label'; + return null; } public function label(): string diff --git a/app/Imports/VulnerabilitiesImport.php b/app/Imports/VulnerabilitiesImport.php index 1df58409..44263a3e 100644 --- a/app/Imports/VulnerabilitiesImport.php +++ b/app/Imports/VulnerabilitiesImport.php @@ -14,7 +14,7 @@ class VulnerabilitiesImport implements ToCollection, WithHeadingRow { public function collection(Collection $rows): void { - if ($rows->first()->count() === 2) { + if ($rows->first()?->count() === 2) { VulnerabilityCategory::upsert($rows->toArray(), 'id'); } else { Vulnerability::upsert( diff --git a/app/Reports/Queries/Pregnant/P03.php b/app/Reports/Queries/Pregnant/P03.php index e4de2776..37d90e7b 100644 --- a/app/Reports/Queries/Pregnant/P03.php +++ b/app/Reports/Queries/Pregnant/P03.php @@ -13,7 +13,7 @@ class P03 extends ReportQuery { /** - * Sum beneficiari with Gravidă adultă (VGR_04) OR Minoră gravidă (VGR_01); Femeie însărcinată care a efectuat consultaţii prenatale (VGR_98). + * Sum beneficiari with Gravidă adultă (VGR_04) OR Minoră gravidă (VGR_01); Femeie însărcinată care a efectuat consultaţii prenatale (VGR_96). */ public static function query(): Builder { @@ -22,7 +22,7 @@ public static function query(): Builder $query->whereJsonOverlaps('properties', ['VGR_04', 'VGR_01']); }) ->whereHasCatagraphyRelation(Catagraphy::class, function (QueryBuilder $query) { - $query->whereJsonContains('properties->attributes->cat_preg', 'VGR_98'); + $query->whereJsonContains('properties->attributes->cat_preg', 'VGR_96'); }); } } diff --git a/database/data/241028-vulnerabilities.xlsx b/database/data/241028-vulnerabilities.xlsx new file mode 100644 index 00000000..c53d55ea Binary files /dev/null and b/database/data/241028-vulnerabilities.xlsx differ diff --git a/database/migrations/2024_10_28_132416_update_is_valid_column_in_vulnerabilities_table.php b/database/migrations/2024_10_28_132416_update_is_valid_column_in_vulnerabilities_table.php new file mode 100644 index 00000000..643f958b --- /dev/null +++ b/database/migrations/2024_10_28_132416_update_is_valid_column_in_vulnerabilities_table.php @@ -0,0 +1,27 @@ +boolean('is_valid') + ->virtualAs(<<<'SQL' + CASE + WHEN id LIKE '%\\_9_' THEN 0 + ELSE 1 + END + SQL) + ->change(); + }); + } +}; diff --git a/database/migrations/2024_10_28_132539_update_vulnerabilities.php b/database/migrations/2024_10_28_132539_update_vulnerabilities.php new file mode 100644 index 00000000..ad6af2d0 --- /dev/null +++ b/database/migrations/2024_10_28_132539_update_vulnerabilities.php @@ -0,0 +1,60 @@ + $preg === 'VGR_98' ? 'VGR_96' : $preg; + + // Catagraphy + // updated_at >= 2024-10-24 00:00:00 + // cat_preg VGR_98 => VGR_96 + Catagraphy::query() + ->whereDate('updated_at', '>=', $cutoffDate) + ->whereJsonContains('cat_preg', 'VGR_98') + ->get() + ->each(function (Catagraphy $catagraphy) use ($callback) { + $catagraphy->timestamps = false; + + $catagraphy->updateQuietly([ + 'cat_preg' => collect($catagraphy->cat_preg) + ->map($callback) + ->all(), + ]); + }); + + // Activity log `vulnerabilities` + // created_at >= 2024-10-24 00:00:00 + // VGR_98 => VGR_96 + Activity::query() + ->where('created_at', '>=', $cutoffDate) + ->where('log_name', 'vulnerabilities') + ->whereJsonContains('properties', 'VGR_98') + ->get() + ->each(function (Activity $activity) use ($callback) { + $activity->timestamps = false; + + $activity->updateQuietly([ + 'properties' => $activity->properties + ->map($callback) + ->all(), + ]); + }); + } +}; diff --git a/lang/ro/vulnerability.php b/lang/ro/vulnerability.php deleted file mode 100644 index 7fbfbb2f..00000000 --- a/lang/ro/vulnerability.php +++ /dev/null @@ -1,117 +0,0 @@ - [ - 'cat_age' => 'Categorie de vârstă', - 'cat_as' => 'Asigurare socială de sănătate', - 'cat_cr' => 'Comportamente la risc', - 'cat_diz' => 'Dizabilități', - 'cat_edu' => 'Situație educațională', - 'cat_fam' => 'Situație familială', - 'cat_id' => 'Act de identitate', - 'cat_inc' => 'Sursa de venit', - 'cat_liv' => 'Condiții de locuire', - 'cat_mf' => 'Medic de familie', - 'cat_ns' => 'Nevoi de sănătate', - 'cat_pov' => 'Grad de sărăcie', - 'cat_preg' => 'Gravidă', - 'cat_rep' => 'Reproducere', - 'cat_ss' => 'Stare de sănătate', - 'cat_ssa' => 'Riscuri de sănătate copii', - 'cat_vif' => 'Violența în familie', - ], - - 'label' => [ - 'VAI_01' => 'Copil sub 14 ani fără certificat de naștere', - 'VAI_02' => 'Adult sau copil peste 14 ani fără CI', - 'VAI_99' => 'Deține act de identitate', - 'VCR_01' => 'Comportament la risc privind un stil de viață sănătos (alimentație și sport)', - 'VCR_02' => 'Comportament la risc in ceea ce provește activitatea sexuală', - 'VCR_03' => 'Comportament la risc privind consumul de substanțe', - 'VCR_04' => 'Risc de comportament violent', - 'VCR_05' => 'Consumator de alcool', - 'VCR_06' => 'Fumător', - 'VCR_99' => 'Fără comportamente la risc observate', - 'VCV_01' => 'Copil 0-1 ani', - 'VCV_02' => 'Copil 1-5 ani', - 'VCV_03' => 'Copil 5-14 ani', - 'VCV_04' => 'Adolescent 14-18 ani', - 'VCV_05' => 'Adult 18-65 ani', - 'VCV_06' => 'Vârstnic peste 65 ani', - 'VDH_01' => 'Dizabilitate cu certificat', - 'VDH_02' => 'Dizabilitate fără certificat', - 'VDH_99' => 'Fără dizabilitate raportată', - 'VEA_01' => 'Adult analfabet', - 'VEC_01' => 'Copil de vârstă antepreșcolară (sub 3 ani) neînscris la creșă', - 'VEC_02' => 'Copil de vârstă preșcolară (3-6 ani) neînscris la grădiniță', - 'VEC_03' => 'Copil (6-10 ani) neînscris la școală', - 'VEC_04' => 'Copil (11-15 ani) neînscris la școală', - 'VEC_05' => 'Copil cu risc de abandon școlar', - 'VEC_06' => 'Copil cu risc de abandon școlar, care are cerințe educaționale speciale', - 'VEC_07' => 'Copil care a abandonat școala', - 'VECA_99' => 'Fără vulnerabilitate educațională observată', - 'VFA_01' => 'Adult sau vârstnic fără familie', - 'VFA_02' => 'Vârstnic care locuiește singur', - 'VFC_01' => 'Copil cu un singur părinte acasă', - 'VFC_02' => 'Copil din familiei cu părinți migranți', - 'VFC_03' => 'Copil fără ambii părinți acasă, dar cu îngrijitor adult în gospodărie', - 'VFC_04' => 'Copil care nu are un îngrijitor adult în gospodărie', - 'VFC_05' => 'Copil în plasament sau asistență maternală în condiții de risc', - 'VFC_06' => 'Copil cu risc de separare de familie', - 'VFCA_99' => 'Fără vulnerabilitate familială observată', - 'VFV_01' => 'Risc de violență sau abuz în familie', - 'VFV_02' => 'Copil în familie cu risc de neglijare a copiilor', - 'VFV_03' => 'Violență în familie', - 'VFV_04' => 'Abuz în familie', - 'VFV_99' => 'Fără risc de abuz sau violență observată', - 'VGR_01' => 'Minoră gravidă', - 'VGR_02' => 'Minoră lăuză', - 'VGR_03' => 'Mamă minoră', - 'VGR_04' => 'Gravidă adultă', - 'VGR_05' => 'Femeie însărcinată care nu este în evidența medicului de familie', - 'VGR_06' => 'Femeie însărcinată care nu a făcut controale prenatale', - 'VGR_07' => 'Sarcină nedorită', - 'VGR_08' => 'Lăuză adultă', - 'VGR_09' => 'Femeie post-avort', - 'VGR_10' => 'Femeie de vârstă fertilă', - 'VGR_97' => 'Fără riscuri de sarcină identificate', - 'VGR_98' => 'Nu se aplică', - 'VGR_99' => 'Fără riscuri reproductive identificate', - 'VGS_01' => 'Sărăcie', - 'VGS_02' => 'Sărăcie extremă', - 'VGS_99' => 'Fără sărăcie observată', - 'VLP_01' => 'Condiții nesănătoase', - 'VLP_02' => 'Supraaglomerare', - 'VLP_03' => 'Fără locuință', - 'VLP_99' => 'Fără locuire precară observată', - 'VNS_01' => 'Boli netratate corespunzător', - 'VNS_02' => 'Lipsă acces servicii medicale', - 'VNS_03' => 'Nevoi medicale speciale', - 'VNS_04' => 'Nevoie tratament paliativ', - 'VNS_05' => 'Nevoie recuperare și reabilitare medicală', - 'VNS_06' => 'Nevoie aparatură și echipamente speciale medicale', - 'VNS_07' => 'Dependență de personal medical', - 'VNS_99' => 'Fără nevoi speciale de sănătate', - 'VSA_01' => 'Neasigurat', - 'VSA_02' => 'Neînscris la medic de familie', - 'VSA_98' => 'Coasigurat', - 'VSA_99' => 'Asigurat', - 'VSA_99' => 'Înscris la medic de familie', - 'VSC_01' => 'Copil nevaccinat conform calendarului național', - 'VSC_02' => 'Copil cu greutate scăzută la naștere', - 'VSC_03' => 'Copil care nu primește vitamina D și Fier', - 'VSC_04' => 'Copil sub 6 luni care nu este alăptat exclusiv de la piept', - 'VSC_05' => 'Copil peste 6 luni care nu are alimentație diversificată', - 'VSC_06' => 'Copil care nu este în conformitate cu standardele de dezvoltare', - 'VSC_08' => 'Copil care locuiește într-o gospodărie în care există persoane cu boli mentale sau dizabilități', - 'VSC_98' => 'Nu se aplică', - 'VSC_99' => 'Copil fără riscuri de sănătate identificate', - 'VSV_01' => 'Fără venit, fără beneficii sociale', - 'VSV_02' => 'Beneficiază de VMG sau ASF (beneficii sociale)', - 'VSV_99' => 'Fără vulnerabilități financiare observate', - ], - -];