Web Analytics

Lựa chọn khoảng thời gian giữa 2 mũi vắc-xin

Nói một cách ngắn gọn thì thời gian tối ưu giữa 2 mũi tiêm là 8 tuần cho mRNA (Pfizer, Moderna) và 12 tuần cho AstraZeneca. Với các loại vắc-xin khác, chúng tôi chưa tìm ra tài liệu. Trong bài viết “Một góc nhìn định lượng cho vắc-xin”, chúng tôi mới kịp nói qua về khoảng thời gian giữa hai mũi. Chúng tôi xem xét kỹ hơn vấn đề này do:

  • Một số nơi rút ngắn khoảng thời gian giữa 2 mũi;
  • Việc tiêm mũi thứ 3 là rõ ràng với các vắc-xin hiện có;
  • Cần nâng hiệu quả 2 mũi đầu tiên để kéo dài thời gian từ mũi 2 đến mũi 3, đặc biệt khi nguồn cung cho mũi thứ 2 trở đi còn hạn chế.

Để vừa dễ hiểu, vừa phù hợp với tình hình hiệu quả chống lây nhiễm của vắc-xin chưa hoàn thiện, ta chỉ tập trung vào vấn đề tử vong. Một người lành bị tử vong trực tiếp do Covid cần trải qua các giai đoạn:

  • Bước 1: tiếp xúc với nguồn bệnh,
  • Bước 2: bị nhiễm bệnh,
  • Bước 3: không qua khỏi.

Nếu bạn xét vai trò của vắc-xin trong việc giảm rủi ro tử vong do Covid, thì bạn cần xét cả quá trình 3 bước. Cụ thể là:

  • Hiệu quả chống tử vong của vắc-xin (bước 3),
  • Hiệu quả chống mắc bệnh của vắc-xin (bước 2),
  • Kích thước của đại dịch (nguyên nhân lớn nhất tác động đến bước 1) và hiệu quả chống truyền bệnh của vắc-xin.

So sánh 1-mũi và 2-mũi-cách-4-tuần trong khoảng thời gian 5-12 tuần: nếu 2 mũi vắc-xin tăng hiệu quả chống tử vong, nhưng lại làm giảm hiệu quả chống nhiễm bệnh so với 1 mũi, thì 2 mũi có thể chả giúp mấy cho việc giảm rủi ro tử vong.

So sánh 4 hay 12 tuần giữa 2 mũi: Nếu 4-tuần chỉ giúp giảm rủi ro tí xíu so với 1-mũi trong khoảng thời gian 5-12 tuần, và 12-tuần giúp giảm rủi ro cực lớn so với 4-tuần từ tuần thứ 13 trở đi, thì bạn có tí xíu lợi thế từ tuần thứ 5-12, nhưng lại gặp bất lợi lớn từ tuần thứ 13 trở đi cho tới khi bạn có cơ hội tiêm mũi thứ 3 (chưa có nghiên cứu về 4 hay 12 tuần giữa 2 mũi đầu sẽ ảnh hưởng đến mũi thứ 3 ra sao).

Kích thước đại dịch: Nếu 12-tuần giúp giảm quá trình lây nhiễm nhiều hơn so với 4-tuần khi tính từ tuần 13 trở đi, thì nó giúp ta kiểm soát kích thước đại dịch trong phần lớn khoảng thời gian (tuần thứ 13 trở đi thay vì chỉ từ tuần thứ 5-12). Khi kích thước nguồn bệnh nhỏ đi, thì rủi ro bạn bị tử vong giảm đi.

Canada (Google translate sang tiếng Việt) vẫn cho rằng kéo dài thời gian giữa 2 mũi tiêm lên 8 tuần cho vắc-xin mRNA (Pfizer, Moderna) là tốt nhất, và thời gian đó là 8 tuần trở lên cho AstraZeneca (do kết quả giữa British Columbia và Quebec khác nhau)1,2. Nghiên cứu từ Anh cho thấy 12 tuần là tối ưu cho AstraZeneca (chủng cũ)3. Nghiên cứu từ Canada trái với hướng dẫn của nhà sản xuất mRNA, tuy nhiên hướng dẫn của nhà sản xuất có thể có một số hạn chế nhất định. Ví dụ thử nghiệm lâm sàng sẽ dễ dàng hơn khi khoảng thời gian giữa hai mũi ngắn hơn. Ngoài ra các nhà sản xuất thường muốn bán nhiều hàng, nên dân tiêm càng nhiều thì càng tốt cho họ.

Úc rút ngắn thời gian tiêm thành 4 tuần cho AstraZeneca, nhưng chúng tôi không thấy họ nêu lý do rõ ràng. Họ đang thừa vắc-xin, người dân thường chọn mRNA và họ có nguy cơ vứt đi 7 triệu liều AstraZeneca (Google translate sang tiếng Việt). Để không mất trắng số đó hoặc phải đem cho, họ có lý do để rút ngắn thời gian giữa hai mũi tiêm cho AstraZeneca. Họ giàu có và thừa vắc-xin nên họ có thể tiêm mũi 3 hay 4 nhanh chóng khi cần.

Các phần dưới đây sẽ đi sâu hơn vào chi tiết.

1. Hiệu quả chống tử vong

1.1. Trường hợp 1: Tính tỉ lệ tử vong trong số những người đã mắc bệnh

Hiệu quả chống tử vong trong các nghiên cứu thường được tính bằng cách so sánh tỉ lệ tử vong giữa nhóm 1 và nhóm 2, trong đó nhóm 1 là những người “đã tiêm vắc-xin rồi bị nhiễm bệnh”, và nhóm 2 là những người “chưa tiêm vắc-xin và bị nhiễm bệnh”.

Vậy nói một cách chi tiết hơn thì đó là hiệu quả chống tử vong sau khi đã bị nhiễm bệnh.

Hiệu quả được tính bằng:

1 – (tỉ lệ tử vong trong nhóm 1) / (tỉ lệ tử vong trong nhóm 2).

1.2. Trường hợp 2: Tính tỉ lệ tử vong cho cả quá trình từ khi còn là người lành

Rõ ràng không nhiễm bệnh thì không bị chết vị bệnh đó, nên ta xét quá trình đầy đủ:

  • Bước 1: bị nhiễm bệnh,
  • Bước 2: tử vong.

Coi như hai bước đó chả liên quan gì nhau (độc lập), thì khả năng tử vong sẽ là tích của các khả năng tử vong ở mỗi bước.

Tiêm

Xác suất mắc bệnh

Xác suất tử vong sau khi mắc

Xác suất tử vong

Ghi chú

0 mũi

a

b

c = a*b

Chủng gốc/Alpha cho mắc, chủng Delta cho tử vong

1 mũi

a * 28% 3

b * 20 % 4

c * 5,6%

2 mũi (khoảng cách 4 tuần)

a * 45% 3

b * xx % (xx có thể giữa 5% và 20%, tạm gán 10%)

c * 4,5%

2 mũi (khoảng cách 12 tuần)

a * 19% 3

b * 5% 4

c * 0,95%

Ghi chú: Chủng gốc và chủng Alpha được dùng để tính xác suất mắc bệnh, chủng Delta được dùng để tính xác suất tử vong. Chúng tôi chưa có thời gian để tìm nghiên cứu đề cập xác xuất mắc bệnh đối với chủng Delta cho cả 3 trường hợp 1 mũi, 2 mũi cách 4 tuần, và 2 mũi cách 12 tuần. Nếu ta giả thiết rằng chủng Delta sẽ làm giảm các hiệu quả với tỉ lệ như nhau cho các trường hợp, thì bảng trên vẫn dùng được để so sánh 3 trường hợp.

Nếu bạn chọn tiêm 2 mũi cách 4 tuần thay vì 12 tuần, thì bạn có 1 chút ưu thế trong khoảng thời gian 5-12 tuần, nhưng lại bị bất lợi lớn sau 12 tuần (so với người chọn 12 tuần). Khi tính xác suất chung về tử vong cho cả 1 quá trình cho tới khi bạn có cơ hội tiêm mũi thứ 3, thì dường như lùi lại tiêm 12 tuần tốt hơn.

Phân tích có những hạn chế nhất định, ví dụ như theo ghi chú ở trên.

Phân tích đến đây là còn rất thiếu, vì nó mới đề cập đến rủi ro cho một cá nhân chứ chưa nhìn lên mức toàn xã hội.

2. Xác suất tử vong

Ở trên mới tính hiệu quả, nghĩa là so sánh 2 nhóm, chứ chả biết c là bao nhiêu. Để biết xác suất tử vong thì cần c. Kích thước của đại dịch và hiệu quả chống truyền bệnh là các yếu tố quan trọng nhất tác động tới c. Hiệu quả chống truyền bệnh của vắc-xin sẽ làm giảm nguy cơ nguồn bệnh truyền bệnh cho bạn.

Ví dụ xã hội chả có ai mắc bệnh (kích thước = 0), thì lây đâu ra nguồn bệnh để mà một người lành bị nhiễm (a = 0). Nên dù xác suất tử vong khi nhiễm bệnh là bao nhiêu (b = 100% đi nữa) thì cũng không ai quan tâm (do c = 0 * b = 0).

Trong phần trên, ta mới so sánh giữa người chưa tiêm vắc-xin và người có vắc-xin. Điều đó có nghĩa là khi nguy cơ của người chưa tiêm vắc-xin tăng (c tăng), thì nguy cơ của người có vắc-xin cũng tăng.

Khi nào nguy cơ của người chưa tiêm vắc-xin tăng? Khi kích thước đại dịch tăng. Lúc đó khả năng gặp người bệnh tăng, và khả năng bạn bị nhiễm bệnh tăng lên.

Đến đây ta thấy vắc-xin đóng một vai trò quan trọng trong việc làm giảm xác suất mắc bệnh, vì nó giúp kiểm soát bệnh dịch dễ hơn, từ đó giúp làm giảm kích thước đại dịch. Vậy thì việc rút ngắn thời gian giữa 2 mũi còn 4 tuần dường như càng bất lợi.

3. Phụ lục

Hiệu quả chống nhiễm bệnh có triệu chứng của 1 mũi vắc-xin 3.

 

Hiệu quả chống nhiễm bệnh có triệu chứng của 2 mũi vắc-xin 3.

 

Hiệu quả chống mắc bệnh và nhập viện theo khoảng thời gian giữa 2 mũi 1.

Tài liệu tham khảo

1.  Skowronski, D. M. et al. Two-dose SARS-CoV-2 vaccine effectiveness with mixed schedules and extended dosing intervals: test-negative design studies from British Columbia and Quebec, Canada. medRxiv 2021.10.26.21265397 (2021). doi:10.1101/2021.10.26.21265397

2.  Advisory Committee Statement (ACS) & National Advisory Committee on Immunization (NACI). Recommendations on the use of COVID-19 vaccines. (2021).

3.  Voysey, M. et al. Single-dose administration and the influence of the timing of the booster dose on immunogenicity and efficacy of ChAdOx1 nCoV-19 (AZD1222) vaccine: a pooled analysis of four randomised trials. Lancet (London, England) 397, 881–891 (2021).

4.  SAGE. COVID 19 Vaccine Effectiveness Table – 24 September 2021.

Bình luận:

Chưa có bình luận nào.

Thông tin bình luận:

Chưa nhập họ tên.
Chưa nhập email.

Whoops! There was an error.
Predis \ Response \ ServerException
MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error. Predis\Response\ServerException thrown with message "MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error." Stacktrace: #12 Predis\Response\ServerException in /var/www/html/onyx.vn/covid19/vendor/predis/predis/src/Client.php:370 #11 Predis\Client:onErrorResponse in /var/www/html/onyx.vn/covid19/vendor/predis/predis/src/Client.php:335 #10 Predis\Client:executeCommand in /var/www/html/onyx.vn/covid19/vendor/predis/predis/src/Client.php:314 #9 Predis\Client:__call in /var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php:96 #8 Illuminate\Redis\Connections\Connection:command in /var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php:108 #7 Illuminate\Redis\Connections\Connection:__call in /var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php:93 #6 Illuminate\Cache\RedisStore:put in /var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Cache/Repository.php:195 #5 Illuminate\Cache\Repository:put in /var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php:66 #4 Illuminate\Session\CacheBasedSessionHandler:write in /var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Session/Store.php:129 #3 Illuminate\Session\Store:save in /var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:87 #2 Illuminate\Session\Middleware\StartSession:terminate in /var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:218 #1 Illuminate\Foundation\Http\Kernel:terminateMiddleware in /var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:189 #0 Illuminate\Foundation\Http\Kernel:terminate in /var/www/html/onyx.vn/covid19/index.php:60
12
Predis\Response\ServerException
/vendor/predis/predis/src/Client.php370
11
Predis\Client onErrorResponse
/vendor/predis/predis/src/Client.php335
10
Predis\Client executeCommand
/vendor/predis/predis/src/Client.php314
9
Predis\Client __call
/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php96
8
Illuminate\Redis\Connections\Connection command
/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php108
7
Illuminate\Redis\Connections\Connection __call
/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php93
6
Illuminate\Cache\RedisStore put
/vendor/laravel/framework/src/Illuminate/Cache/Repository.php195
5
Illuminate\Cache\Repository put
/vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php66
4
Illuminate\Session\CacheBasedSessionHandler write
/vendor/laravel/framework/src/Illuminate/Session/Store.php129
3
Illuminate\Session\Store save
/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php87
2
Illuminate\Session\Middleware\StartSession terminate
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php218
1
Illuminate\Foundation\Http\Kernel terminateMiddleware
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php189
0
Illuminate\Foundation\Http\Kernel terminate
/index.php60
/var/www/html/onyx.vn/covid19/vendor/predis/predis/src/Client.php
     *
     * @return mixed
     */
    protected function onErrorResponse(CommandInterface $command, ErrorResponseInterface $response)
    {
        if ($command instanceof ScriptCommand && $response->getErrorType() === 'NOSCRIPT') {
            $eval = $this->createCommand('EVAL');
            $eval->setRawArguments($command->getEvalArguments());
 
            $response = $this->executeCommand($eval);
 
            if (!$response instanceof ResponseInterface) {
                $response = $command->parseResponse($response);
            }
 
            return $response;
        }
 
        if ($this->options->exceptions) {
            throw new ServerException($response->getMessage());
        }
 
        return $response;
    }
 
    /**
     * Executes the specified initializer method on `$this` by adjusting the
     * actual invokation depending on the arity (0, 1 or 2 arguments). This is
     * simply an utility method to create Redis contexts instances since they
     * follow a common initialization path.
     *
     * @param string $initializer Method name.
     * @param array  $argv        Arguments for the method.
     *
     * @return mixed
     */
    private function sharedContextFactory($initializer, $argv = null)
    {
        switch (count($argv)) {
            case 0:
Arguments
  1. "MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error."
    
/var/www/html/onyx.vn/covid19/vendor/predis/predis/src/Client.php
    }
 
    /**
     * {@inheritdoc}
     */
    public function createCommand($commandID, $arguments = array())
    {
        return $this->profile->createCommand($commandID, $arguments);
    }
 
    /**
     * {@inheritdoc}
     */
    public function executeCommand(CommandInterface $command)
    {
        $response = $this->connection->executeCommand($command);
 
        if ($response instanceof ResponseInterface) {
            if ($response instanceof ErrorResponseInterface) {
                $response = $this->onErrorResponse($command, $response);
            }
 
            return $response;
        }
 
        return $command->parseResponse($response);
    }
 
    /**
     * Handles -ERR responses returned by Redis.
     *
     * @param CommandInterface       $command  Redis command that generated the error.
     * @param ErrorResponseInterface $response Instance of the error response.
     *
     * @throws ServerException
     *
     * @return mixed
     */
    protected function onErrorResponse(CommandInterface $command, ErrorResponseInterface $response)
    {
Arguments
  1. Predis\Command\StringSetExpire {}
    
  2. Predis\Response\Error {}
    
/var/www/html/onyx.vn/covid19/vendor/predis/predis/src/Client.php
        );
 
        if ($response instanceof ResponseInterface) {
            if ($response instanceof ErrorResponseInterface) {
                $error = true;
            }
 
            return (string) $response;
        }
 
        return $response;
    }
 
    /**
     * {@inheritdoc}
     */
    public function __call($commandID, $arguments)
    {
        return $this->executeCommand(
            $this->createCommand($commandID, $arguments)
        );
    }
 
    /**
     * {@inheritdoc}
     */
    public function createCommand($commandID, $arguments = array())
    {
        return $this->profile->createCommand($commandID, $arguments);
    }
 
    /**
     * {@inheritdoc}
     */
    public function executeCommand(CommandInterface $command)
    {
        $response = $this->connection->executeCommand($command);
 
        if ($response instanceof ResponseInterface) {
            if ($response instanceof ErrorResponseInterface) {
Arguments
  1. Predis\Command\StringSetExpire {}
    
/var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php
     *
     * @param  array|string  $channels
     * @param  \Closure  $callback
     * @return void
     */
    public function psubscribe($channels, Closure $callback)
    {
        return $this->createSubscription($channels, $callback, __FUNCTION__);
    }
 
    /**
     * Run a command against the Redis database.
     *
     * @param  string  $method
     * @param  array   $parameters
     * @return mixed
     */
    public function command($method, array $parameters = [])
    {
        return $this->client->{$method}(...$parameters);
    }
 
    /**
     * Pass other method calls down to the underlying client.
     *
     * @param  string  $method
     * @param  array  $parameters
     * @return mixed
     */
    public function __call($method, $parameters)
    {
        return $this->command($method, $parameters);
    }
}
 
Arguments
  1. "setex"
    
  2. array:3 [
      0 => "laravel_cache:yc9AxInOMAXk9IgcC3PzNwdOmdnzr7zwYoq5mHW8"
      1 => 7200
      2 => "s:192:"a:3:{s:6:"_token";s:40:"fnOJapx65Whlm5pEq2X17FURI1CHGBriMIOqNqan";s:9:"_previous";a:1:{s:3:"url";s:34:"https://onyx.vn/covid19/baiviet/16";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}";"
    ]
    
/var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php
     *
     * @param  string  $method
     * @param  array   $parameters
     * @return mixed
     */
    public function command($method, array $parameters = [])
    {
        return $this->client->{$method}(...$parameters);
    }
 
    /**
     * Pass other method calls down to the underlying client.
     *
     * @param  string  $method
     * @param  array  $parameters
     * @return mixed
     */
    public function __call($method, $parameters)
    {
        return $this->command($method, $parameters);
    }
}
 
Arguments
  1. "setex"
    
  2. array:3 [
      0 => "laravel_cache:yc9AxInOMAXk9IgcC3PzNwdOmdnzr7zwYoq5mHW8"
      1 => 7200
      2 => "s:192:"a:3:{s:6:"_token";s:40:"fnOJapx65Whlm5pEq2X17FURI1CHGBriMIOqNqan";s:9:"_previous";a:1:{s:3:"url";s:34:"https://onyx.vn/covid19/baiviet/16";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}";"
    ]
    
/var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php
 
        foreach ($values as $index => $value) {
            $results[$keys[$index]] = ! is_null($value) ? $this->unserialize($value) : null;
        }
 
        return $results;
    }
 
    /**
     * Store an item in the cache for a given number of minutes.
     *
     * @param  string  $key
     * @param  mixed   $value
     * @param  float|int  $minutes
     * @return void
     */
    public function put($key, $value, $minutes)
    {
        $this->connection()->setex(
            $this->prefix.$key, (int) max(1, $minutes * 60), $this->serialize($value)
        );
    }
 
    /**
     * Store multiple items in the cache for a given number of minutes.
     *
     * @param  array  $values
     * @param  float|int  $minutes
     * @return void
     */
    public function putMany(array $values, $minutes)
    {
        $this->connection()->multi();
 
        foreach ($values as $key => $value) {
            $this->put($key, $value, $minutes);
        }
 
        $this->connection()->exec();
    }
Arguments
  1. "setex"
    
  2. array:3 [
      0 => "laravel_cache:yc9AxInOMAXk9IgcC3PzNwdOmdnzr7zwYoq5mHW8"
      1 => 7200
      2 => "s:192:"a:3:{s:6:"_token";s:40:"fnOJapx65Whlm5pEq2X17FURI1CHGBriMIOqNqan";s:9:"_previous";a:1:{s:3:"url";s:34:"https://onyx.vn/covid19/baiviet/16";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}";"
    ]
    
/var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Cache/Repository.php
            $this->forget($key);
        });
    }
 
    /**
     * Store an item in the cache.
     *
     * @param  string  $key
     * @param  mixed   $value
     * @param  \DateTimeInterface|\DateInterval|float|int|null  $minutes
     * @return void
     */
    public function put($key, $value, $minutes = null)
    {
        if (is_array($key)) {
            return $this->putMany($key, $value);
        }
 
        if (! is_null($minutes = $this->getMinutes($minutes))) {
            $this->store->put($this->itemKey($key), $value, $minutes);
 
            $this->event(new KeyWritten($key, $value, $minutes));
        }
    }
 
    /**
     * {@inheritdoc}
     */
    public function set($key, $value, $ttl = null)
    {
        $this->put($key, $value, $ttl);
    }
 
    /**
     * Store multiple items in the cache for a given number of minutes.
     *
     * @param  array  $values
     * @param  \DateTimeInterface|\DateInterval|float|int  $minutes
     * @return void
     */
Arguments
  1. "yc9AxInOMAXk9IgcC3PzNwdOmdnzr7zwYoq5mHW8"
    
  2. "a:3:{s:6:"_token";s:40:"fnOJapx65Whlm5pEq2X17FURI1CHGBriMIOqNqan";s:9:"_previous";a:1:{s:3:"url";s:34:"https://onyx.vn/covid19/baiviet/16";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
  3. "120"
    
/var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php
     */
    public function close()
    {
        return true;
    }
 
    /**
     * {@inheritdoc}
     */
    public function read($sessionId)
    {
        return $this->cache->get($sessionId, '');
    }
 
    /**
     * {@inheritdoc}
     */
    public function write($sessionId, $data)
    {
        return $this->cache->put($sessionId, $data, $this->minutes);
    }
 
    /**
     * {@inheritdoc}
     */
    public function destroy($sessionId)
    {
        return $this->cache->forget($sessionId);
    }
 
    /**
     * {@inheritdoc}
     */
    public function gc($lifetime)
    {
        return true;
    }
 
    /**
     * Get the underlying cache repository.
Arguments
  1. "yc9AxInOMAXk9IgcC3PzNwdOmdnzr7zwYoq5mHW8"
    
  2. "a:3:{s:6:"_token";s:40:"fnOJapx65Whlm5pEq2X17FURI1CHGBriMIOqNqan";s:9:"_previous";a:1:{s:3:"url";s:34:"https://onyx.vn/covid19/baiviet/16";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
  3. "120"
    
/var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Session/Store.php
     *
     * @param  string  $data
     * @return string
     */
    protected function prepareForUnserialize($data)
    {
        return $data;
    }
 
    /**
     * Save the session data to storage.
     *
     * @return bool
     */
    public function save()
    {
        $this->ageFlashData();
 
        $this->handler->write($this->getId(), $this->prepareForStorage(
            serialize($this->attributes)
        ));
 
        $this->started = false;
    }
 
    /**
     * Prepare the serialized session data for storage.
     *
     * @param  string  $data
     * @return string
     */
    protected function prepareForStorage($data)
    {
        return $data;
    }
 
    /**
     * Age the flash data for the session.
     *
     * @return void
Arguments
  1. "yc9AxInOMAXk9IgcC3PzNwdOmdnzr7zwYoq5mHW8"
    
  2. "a:3:{s:6:"_token";s:40:"fnOJapx65Whlm5pEq2X17FURI1CHGBriMIOqNqan";s:9:"_previous";a:1:{s:3:"url";s:34:"https://onyx.vn/covid19/baiviet/16";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
/var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php
        if ($this->sessionConfigured()) {
            $this->storeCurrentUrl($request, $session);
 
            $this->addCookieToResponse($response, $session);
        }
 
        return $response;
    }
 
    /**
     * Perform any final actions for the request lifecycle.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Symfony\Component\HttpFoundation\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        if ($this->sessionHandled && $this->sessionConfigured() && ! $this->usingCookieSessions()) {
            $this->manager->driver()->save();
        }
    }
 
    /**
     * Start the session for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Contracts\Session\Session
     */
    protected function startSession(Request $request)
    {
        return tap($this->getSession($request), function ($session) use ($request) {
            $session->setRequestOnHandler($request);
 
            $session->start();
        });
    }
 
    /**
     * Get the session implementation from the manager.
/var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
     * @return void
     */
    protected function terminateMiddleware($request, $response)
    {
        $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
            $this->gatherRouteMiddleware($request),
            $this->middleware
        );
 
        foreach ($middlewares as $middleware) {
            if (! is_string($middleware)) {
                continue;
            }
 
            [$name] = $this->parseMiddleware($middleware);
 
            $instance = $this->app->make($name);
 
            if (method_exists($instance, 'terminate')) {
                $instance->terminate($request, $response);
            }
        }
    }
 
    /**
     * Gather the route middleware for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    protected function gatherRouteMiddleware($request)
    {
        if ($route = $request->route()) {
            return $this->router->gatherRouteMiddleware($route);
        }
 
        return [];
    }
 
    /**
Arguments
  1. Illuminate\Http\Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure($guard = null) { …4}
      #routeResolver: Closure() { …4}
      +attributes: Symfony\Component\HttpFoundation\ParameterBag {}
      +request: Symfony\Component\HttpFoundation\ParameterBag {#1}
      +query: Symfony\Component\HttpFoundation\ParameterBag {#1}
      +server: Symfony\Component\HttpFoundation\ServerBag {}
      +files: Symfony\Component\HttpFoundation\FileBag {}
      +cookies: Symfony\Component\HttpFoundation\ParameterBag {}
      +headers: Symfony\Component\HttpFoundation\HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/baiviet/16"
      #requestUri: "/covid19/baiviet/16"
      #baseUrl: "/covid19"
      #basePath: null
      #method: "GET"
      #format: null
      #session: Illuminate\Session\Store {}
      #locale: null
      #defaultLocale: "en"
      -preferredFormat: null
      -isHostValid: true
      -isForwardedValid: true
      basePath: "/covid19"
      format: "html"
    }
    
  2. Illuminate\Http\Response {}
    
/var/www/html/onyx.vn/covid19/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
     */
    protected function dispatchToRouter()
    {
        return function ($request) {
            $this->app->instance('request', $request);
 
            return $this->router->dispatch($request);
        };
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        $this->terminateMiddleware($request, $response);
 
        $this->app->terminate();
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    protected function terminateMiddleware($request, $response)
    {
        $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
            $this->gatherRouteMiddleware($request),
            $this->middleware
        );
 
        foreach ($middlewares as $middleware) {
            if (! is_string($middleware)) {
Arguments
  1. Illuminate\Http\Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure($guard = null) { …4}
      #routeResolver: Closure() { …4}
      +attributes: Symfony\Component\HttpFoundation\ParameterBag {}
      +request: Symfony\Component\HttpFoundation\ParameterBag {#1}
      +query: Symfony\Component\HttpFoundation\ParameterBag {#1}
      +server: Symfony\Component\HttpFoundation\ServerBag {}
      +files: Symfony\Component\HttpFoundation\FileBag {}
      +cookies: Symfony\Component\HttpFoundation\ParameterBag {}
      +headers: Symfony\Component\HttpFoundation\HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/baiviet/16"
      #requestUri: "/covid19/baiviet/16"
      #baseUrl: "/covid19"
      #basePath: null
      #method: "GET"
      #format: null
      #session: Illuminate\Session\Store {}
      #locale: null
      #defaultLocale: "en"
      -preferredFormat: null
      -isHostValid: true
      -isForwardedValid: true
      basePath: "/covid19"
      format: "html"
    }
    
  2. Illuminate\Http\Response {}
    
/var/www/html/onyx.vn/covid19/index.php
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/
 
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
 
$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);
 
$response->send();
 
$kernel->terminate($request, $response);
 
Arguments
  1. Illuminate\Http\Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure($guard = null) { …4}
      #routeResolver: Closure() { …4}
      +attributes: Symfony\Component\HttpFoundation\ParameterBag {}
      +request: Symfony\Component\HttpFoundation\ParameterBag {#1}
      +query: Symfony\Component\HttpFoundation\ParameterBag {#1}
      +server: Symfony\Component\HttpFoundation\ServerBag {}
      +files: Symfony\Component\HttpFoundation\FileBag {}
      +cookies: Symfony\Component\HttpFoundation\ParameterBag {}
      +headers: Symfony\Component\HttpFoundation\HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/baiviet/16"
      #requestUri: "/covid19/baiviet/16"
      #baseUrl: "/covid19"
      #basePath: null
      #method: "GET"
      #format: null
      #session: Illuminate\Session\Store {}
      #locale: null
      #defaultLocale: "en"
      -preferredFormat: null
      -isHostValid: true
      -isForwardedValid: true
      basePath: "/covid19"
      format: "html"
    }
    
  2. Illuminate\Http\Response {}
    

Environment & details:

empty
empty
empty
empty
empty
Key Value
REDIRECT_UNIQUE_ID
"aWY7zoW1i0k8@vhGOR6zMAAAAA4"
REDIRECT_HTTPS
"on"
REDIRECT_SSL_TLS_SNI
"onyx.vn"
REDIRECT_STATUS
"200"
UNIQUE_ID
"aWY7zoW1i0k8@vhGOR6zMAAAAA4"
HTTPS
"on"
SSL_TLS_SNI
"onyx.vn"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_LANGUAGE
"en-US,en;q=0.5"
HTTP_ACCEPT_ENCODING
"br,gzip"
HTTP_HOST
"onyx.vn"
HTTP_CONNECTION
"Keep-Alive"
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.1.33"
SERVER_NAME
"onyx.vn"
SERVER_ADDR
"103.63.109.98"
SERVER_PORT
"443"
REMOTE_ADDR
"18.97.9.173"
DOCUMENT_ROOT
"/var/www/html/onyx.vn"
REQUEST_SCHEME
"https"
CONTEXT_PREFIX
""
CONTEXT_DOCUMENT_ROOT
"/var/www/html/onyx.vn"
SERVER_ADMIN
"root@localhost"
SCRIPT_FILENAME
"/var/www/html/onyx.vn/covid19/index.php"
REMOTE_PORT
"41004"
REDIRECT_URL
"/covid19/baiviet/16"
GATEWAY_INTERFACE
"CGI/1.1"
SERVER_PROTOCOL
"HTTP/1.1"
REQUEST_METHOD
"GET"
QUERY_STRING
""
REQUEST_URI
"/covid19/baiviet/16"
SCRIPT_NAME
"/covid19/index.php"
PHP_SELF
"/covid19/index.php"
REQUEST_TIME_FLOAT
1768307662.644
REQUEST_TIME
1768307662
empty
0. Whoops\Handler\PrettyPageHandler