Statistics report of Review Report not providing currect data

We are using OJS-3.3.0.13 and if we are trying to download the review report from the statistic section. After shorting the downloaded excel sheet data with the selection of Date Assigned and deleting duplicate reviewers from the excel sheet, showed 29 reviewers out of 10000 reviewers.

@bozana can you take a look ?

Sorry for the delay – somehow I haven’t seen this message…
@shantanusingh, could you maybe explain it a little bit in more detail… I do not know what is the exact problem and how can I try to reproduce it…
Best,
Bozana

Thank you for your response.

If we are try to download the reviewer list from the statistics->Report->Review Report section and after that, if we try to shorting the reviewer list by Year and delete the duplicate name from the excel sheet then only a few data are left (29 reviewer name out of 10,000 reviewers)

Note: Few days ago we have deleted some reviewer roles from database that have not login since 2017. But we are trying to download 2021 and 2022 reviewer list.

Hi @shantanusingh,
The Review Report will give you the list of all reviews, not reviewer (users).
If you would like to export the list of reviewers (users) you could use Tools > Users XML Plugin > Export Users > Search > select “Reviewer” role > press the button “Search” > select each user/reviewer listed there > press the button “Export Users”.
Is this what you need?

Best,
Bozana

@bozana
I mean to say, I want to extract review report for the year 2021 and 2022.

Hmmm…
Would it be possible for you to do this query on your database and tell me the result:
SELECT COUNT(*) FROM review_assignments r LEFT JOIN submissions a ON r.submission_id = a.submission_id WHERE date_assigned LIKE '2022%' OR date_assigned LIKE '2021%'AND a.context_id = <your journal DB id>'
What does it exactly mean “delete the duplicate name” – could you give me an example?

Hi @bozana
As per your suggestion, I have tried above mentioned ‘SQL’ query and found some counts.
The screenshot is attached below.

Duplicates mean we have removed reviewers from the excel sheet whose names are repeated multiple times for the year.

Hi @shantanusingh,

Thanks a lot!
Yes, it seems like there were many reviews in the years 2022 and 2021…
The problem with double reviews still exists (it should be corrected with the release 3.4) but I am wondering i.e. I do not understand why there are then so few (29) reviews after you deleted the double reviews… :thinking:

Could you please do a few more checks for me?

  1. Could you please also test this SQL:
SELECT	COUNT(*)
FROM review_assignments r
LEFT JOIN submissions a ON r.submission_id = a.submission_id
LEFT JOIN publications p ON a.current_publication_id = p.publication_id
LEFT JOIN publication_settings asl ON (p.publication_id = asl.publication_id AND asl.locale = 'en_US' AND asl.setting_name = 'title')
LEFT JOIN publication_settings aspl ON (p.publication_id = aspl.publication_id AND aspl.locale = a.locale AND aspl.setting_name = 'title')
LEFT JOIN users u ON (u.user_id = r.reviewer_id)
LEFT JOIN user_settings uas ON (u.user_id = uas.user_id AND uas.setting_name = 'affiliation' AND uas.locale = a.locale)
LEFT JOIN user_settings uasl ON (u.user_id = uasl.user_id AND uasl.setting_name = 'affiliation' AND uasl.locale = '<the primary locale of installation, e.g. en_US>')
LEFT JOIN user_settings us ON (u.user_id = us.user_id AND us.setting_name = 'orcid')
WHERE a.context_id = 1 AND (r.date_assigned LIKE '2022%' OR r.date_assigned LIKE '2021%')

Exchange there <the primary locale of installation, e.g. en_US> with the right primary locale of your installation.
(This is the number you should have when you filter your report entries by date assigned in 2022 and 2021.)

  1. When you export the review report and when you only keep the data that have date assigned in 2022 and 2021, how many entries are there?

  2. Then also:

SELECT COUNT(*)
FROM review_assignments r
LEFT JOIN submissions a ON r.submission_id = a.submission_id
LEFT JOIN publications p ON a.current_publication_id = p.publication_id
LEFT JOIN publication_settings asl ON (p.publication_id = asl.publication_id AND asl.locale = 'en_US' AND asl.setting_name = 'title')
LEFT JOIN publication_settings aspl ON (p.publication_id = aspl.publication_id AND aspl.locale = a.locale AND aspl.setting_name = 'title')
LEFT JOIN users u ON (u.user_id = r.reviewer_id)
WHERE a.context_id = 1 AND (r.date_assigned LIKE '2022%' OR r.date_assigned LIKE '2021%')

(I think this is the right number you should have at the end.)

  1. When you then remove the double reviews from your report (after #2 above), are there still 29 left?

Strange… :thinking:

Thanks!

Sorry for the delayed response.

1. First SQL query result.

2. If we export the review report for 2022 and 2021 then the 1627 count is displayed.

3.

4. Yes still the same number is displayed.

I have tried to download the excel sheet and checked the error log after the download is completed, found some errors. Might be helpful.

PHP Fatal error:  Maximum execution time of 600 seconds exceeded in /EPUB/ojs/lib/pkp/lib/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php on line 78
[20-Dec-2022 17:15:53 Asia/Kolkata] PHP Stack trace:
[20-Dec-2022 17:15:53 Asia/Kolkata] PHP   1. {main}() /EPUB/ojs/index.php:0
[20-Dec-2022 17:15:53 Asia/Kolkata] PHP   2. PKPApplication->execute() /EPUB/ojs/index.php:68
[20-Dec-2022 17:15:53 Asia/Kolkata] PHP   3. Dispatcher->dispatch($request = class Request { public $_router = class PageRouter { public $_installationPages = [...]; public $_page = 'stats'; public $_op = 'reports'; public $_indexUrl = 'https://epubs.icar.org.in/index.php'; public $_cacheFilename = NULL; public $_application = class Application { ... }; public $_dispatcher = class Dispatcher { ... }; public $_contextDepth = 1; public $_contextList = [...]; public $_flippedContextList = [...]; public $_contextPaths = [...]; public $_contexts = [...]; public $_handler = class StatsHandler { ... } }; public $_dispatcher = class Dispatcher { public $_application = class Application { ... }; public $_routerNames = [...]; public $_routerInstances = [...]; public $_router = class PageRouter { ... }; public $_requestCallbackHack = NULL }; public $_requestVars = ['pluginName' => 'ReviewReportPlugin']; public $_basePath = ''; public $_requestPath = NULL; public $_isRestfulUrlsEnabled = FALSE; public $_isPathInfoEnabled = TRUE; public $_serverHost = 'epubs.icar.org.in'; public $_protocol = 'https'; public $_isBot = NULL; public $_userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36' }) /EPUB/ojs/lib/pkp/classes/core/PKPApplication.inc.php:362
[20-Dec-2022 17:15:53 Asia/Kolkata] PHP   4. PKPPageRouter->route($request = class Request { public $_router = class PageRouter { public $_installationPages = [...]; public $_page = 'stats'; public $_op = 'reports'; public $_indexUrl = 'https://epubs.icar.org.in/index.php'; public $_cacheFilename = NULL; public $_application = class Application { ... }; public $_dispatcher = class Dispatcher { ... }; public $_contextDepth = 1; public $_contextList = [...]; public $_flippedContextList = [...]; public $_contextPaths = [...]; public $_contexts = [...]; public $_handler = class StatsHandler { ... } }; public $_dispatcher = class Dispatcher { public $_application = class Application { ... }; public $_routerNames = [...]; public $_routerInstances = [...]; public $_router = class PageRouter { ... }; public $_requestCallbackHack = NULL }; public $_requestVars = ['pluginName' => 'ReviewReportPlugin']; public $_basePath = ''; public $_requestPath = NULL; public $_isRestfulUrlsEnabled = FALSE; public $_isPathInfoEnabled = TRUE; public $_serverHost = 'epubs.icar.org.in'; public $_protocol = 'https'; public $_isBot = NULL; public $_userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36' }) /EPUB/ojs/lib/pkp/classes/core/Dispatcher.inc.php:144
[20-Dec-2022 17:15:53 Asia/Kolkata] PHP   5. PKPRouter->_authorizeInitializeAndCallRequest($serviceEndpoint = [0 => class StatsHandler { public $_isBackendPage = TRUE; protected $_apiToken = NULL; public $_id = 'stats'; public $_dispatcher = class Dispatcher { ... }; public $_checks = [...]; public $_roleAssignments = [...]; public $_authorizationDecisionManager = class AuthorizationDecisionManager { ... }; public $_enforceRestrictedSite = TRUE; public $_roleAssignmentsChecked = TRUE }, 1 => 'reports'], $request = class Request { public $_router = class PageRouter { public $_installationPages = [...]; public $_page = 'stats'; public $_op = 'reports'; public $_indexUrl = 'https://epubs.icar.org.in/index.php'; public $_cacheFilename = NULL; public $_application = class Application { ... }; public $_dispatcher = class Dispatcher { ... }; public $_contextDepth = 1; public $_contextList = [...]; public $_flippedContextList = [...]; public $_contextPaths = [...]; public $_contexts = [...]; public $_handler = class StatsHandler { ... } }; public $_dispatcher = class Dispatcher { public $_application = class Application { ... }; public $_routerNames = [...]; public $_routerInstances = [...]; public $_router = class PageRouter { ... }; public $_requestCallbackHack = NULL }; public $_requestVars = ['pluginName' => 'ReviewReportPlugin']; public $_basePath = ''; public $_requestPath = NULL; public $_isRestfulUrlsEnabled = FALSE; public $_isPathInfoEnabled = TRUE; public $_serverHost = 'epubs.icar.org.in'; public $_protocol = 'https'; public $_isBot = NULL; public $_userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36' }, $args = [0 => 'report'], $validate = FALSE) /EPUB/ojs/lib/pkp/classes/core/PKPPageRouter.inc.php:246
[20-Dec-2022 17:15:53 Asia/Kolkata] PHP   6. PKPStatsHandler->reports($args = [0 => 'report'], $request = class Request { public $_router = class PageRouter { public $_installationPages = [...]; public $_page = 'stats'; public $_op = 'reports'; public $_indexUrl = 'https://epubs.icar.org.in/index.php'; public $_cacheFilename = NULL; public $_application = class Application { ... }; public $_dispatcher = class Dispatcher { ... }; public $_contextDepth = 1; public $_contextList = [...]; public $_flippedContextList = [...]; public $_contextPaths = [...]; public $_contexts = [...]; public $_handler = class StatsHandler { ... } }; public $_dispatcher = class Dispatcher { public $_application = class Application { ... }; public $_routerNames = [...]; public $_routerInstances = [...]; public $_router = class PageRouter { ... }; public $_requestCallbackHack = NULL }; public $_requestVars = ['pluginName' => 'ReviewReportPlugin']; public $_basePath = ''; public $_requestPath = NULL; public $_isRestfulUrlsEnabled = FALSE; public $_isPathInfoEnabled = TRUE; public $_serverHost = 'epubs.icar.org.in'; public $_protocol = 'https'; public $_isBot = NULL; public $_userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36' }) /EPUB/ojs/lib/pkp/classes/core/PKPRouter.inc.php:395
[20-Dec-2022 17:15:53 Asia/Kolkata] PHP   7. PKPStatsHandler->report($args = [], $request = class Request { public $_router = class PageRouter { public $_installationPages = [...]; public $_page = 'stats'; public $_op = 'reports'; public $_indexUrl = 'https://epubs.icar.org.in/index.php'; public $_cacheFilename = NULL; public $_application = class Application { ... }; public $_dispatcher = class Dispatcher { ... }; public $_contextDepth = 1; public $_contextList = [...]; public $_flippedContextList = [...]; public $_contextPaths = [...]; public $_contexts = [...]; public $_handler = class StatsHandler { ... } }; public $_dispatcher = class Dispatcher { public $_application = class Application { ... }; public $_routerNames = [...]; public $_routerInstances = [...]; public $_router = class PageRouter { ... }; public $_requestCallbackHack = NULL }; public $_requestVars = ['pluginName' => 'ReviewReportPlugin']; public $_basePath = ''; public $_requestPath = NULL; public $_isRestfulUrlsEnabled = FALSE; public $_isPathInfoEnabled = TRUE; public $_serverHost = 'epubs.icar.org.in'; public $_protocol = 'https'; public $_isBot = NULL; public $_userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36' }) /EPUB/ojs/lib/pkp/pages/stats/PKPStatsHandler.inc.php:395
[20-Dec-2022 17:15:53 Asia/Kolkata] PHP   8. ReviewReportPlugin->display($args = [], $request = class Request { public $_router = class PageRouter { public $_installationPages = [...]; public $_page = 'stats'; public $_op = 'reports'; public $_indexUrl = 'https://epubs.icar.org.in/index.php'; public $_cacheFilename = NULL; public $_application = class Application { ... }; public $_dispatcher = class Dispatcher { ... }; public $_contextDepth = 1; public $_contextList = [...]; public $_flippedContextList = [...]; public $_contextPaths = [...]; public $_contexts = [...]; public $_handler = class StatsHandler { ... } }; public $_dispatcher = class Dispatcher { public $_application = class Application { ... }; public $_routerNames = [...]; public $_routerInstances = [...]; public $_router = class PageRouter { ... }; public $_requestCallbackHack = NULL }; public $_requestVars = ['pluginName' => 'ReviewReportPlugin']; public $_basePath = ''; public $_requestPath = NULL; public $_isRestfulUrlsEnabled = FALSE; public $_isPathInfoEnabled = TRUE; public $_serverHost = 'epubs.icar.org.in'; public $_protocol = 'https'; public $_isBot = NULL; public $_userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36' }) /EPUB/ojs/lib/pkp/pages/stats/PKPStatsHandler.inc.php:450
[20-Dec-2022 17:15:53 Asia/Kolkata] PHP   9. PKPString::stripUnsafeHtml($input = '<span style="font-size:11pt;"><strong>Specify Tables</strong></span>') /EPUB/ojs/plugins/reports/reviewReport/ReviewReportPlugin.inc.php:162
[20-Dec-2022 17:15:53 Asia/Kolkata] PHP  10. HTMLPurifier->purify($html = '<span style="font-size:11pt;"><strong>Specify Tables</strong></span>', $config = *uninitialized*) /EPUB/ojs/lib/pkp/classes/core/PKPString.inc.php:401
[20-Dec-2022 17:15:53 Asia/Kolkata] PHP  11. HTMLPurifier_Lexer_DOMLex->tokenizeHTML($html = '<span style="font-size:11pt;"><strong>Specify Tables</strong></span>', $config = class HTMLPurifier_Config { public $version = '4.13.0'; public $autoFinalize = TRUE; protected $serials = ['Core' => FALSE, 'HTML' => 'e1d7142565ba34c665601af5169cdc35a26f9c34', 'Cache' => FALSE]; protected $serial = NULL; protected $parser = NULL; public $def = class HTMLPurifier_ConfigSchema { public $defaults = [...]; public $defaultPlist = class HTMLPurifier_PropertyList { ... }; public $info = [...] }; protected $definitions = ['HTML' => class HTMLPurifier_HTMLDefinition { ... }]; protected $finalized = TRUE; protected $plist = class HTMLPurifier_PropertyList { protected $data = [...]; protected $parent = class HTMLPurifier_PropertyList { ... }; protected $cache = [...] }; private $aliasMode = NULL; public $chatty = TRUE; private $lock = NULL }, $context = class HTMLPurifier_Context { private $_storage = ['Generator' => class HTMLPurifier_Generator { ... }, 'IDAccumulator' => class HTMLPurifier_IDAccumulator { ... }] }) /EPUB/ojs/lib/pkp/lib/vendor/ezyang/htmlpurifier/library/HTMLPurifier.php:213

Hi @shantanusingh,

Oh, yes, that seems to be the reason why the counts are wrong – the PHP script that exports that report takes too long so that a timeout error occurs :frowning:
Would it be possible for you to increase the max execution time – the directive “max_execution_time” in the php.ini configuration file ?
In some of the next releases we will need to find another solution for reports – that they run in the background and once they are finished to provide them to the user for download…
I am wondering how come that the timeout happens with the Review Report – mostly only the PKP Usage Stats report had that problem – but… :woman_shrugging:

Best,
Bozana

Hi @bozana

Thank you for your response.

The database we have is from 2010. Due to which the review report would have become huge and due to this it would have taken a lot of time to download the data in the excel sheet.

I hope that we will find the solution in the next release for max_exicution_time.

Hi @bozana

I have a suggestion, may be it will be helpful to solve max_execution_time.

If we have option to download the review report in year wise or date range to solve the problem.