*/ public static function map(?string $input): array { if (empty(self::$rules)) { self::$rules = Cache::remember('institute_names', now()->addMinutes(15), fn () => DB::table('dicom_routing_rules') ->orderByDesc('priority') ->get() ->toArray() ); self::$catchAll = DB::table('institutes') ->where('name', 'Catch-all') ->first('id') ->id; } if (! blank($input)) { $input = strtolower($input); foreach (self::$rules as $pattern) { if (ContentMatcher::match($input, $pattern->name, MatchMode::from($pattern->match_mode))) { return [$pattern->institute_id, $pattern->facility_id]; } } } return [self::$catchAll, null]; } }