Repository navigation
Reviews and ORCID
Review assignments come with the submission:
Dim s = Await ojs.Submissions.GetAsync(12)
For Each r In s.ReviewAssignments
Console.WriteLine($"#{r.Id} round {r.Round}: {r.ReviewerFullName} - {r.Status} (due {r.DateDue})")
Nextvar s = await ojs.Submissions.GetAsync(12);
foreach (var r in s.ReviewAssignments)
Console.WriteLine($"#{r.Id} round {r.Round}: {r.ReviewerFullName} - {r.Status} (due {r.DateDue})");let! s = ojs.Submissions.GetAsync 12
for r in s.ReviewAssignments do
printfn "#%d round %A: %s - %s" r.Id.Value r.Round r.ReviewerFullName r.StatusA review can be exported as a PDF, or as JATS XML. With authorFriendly:=True the export leaves out the reviewer's
identity and the comments meant only for the editor, so you can share it with the author.
Using pdf = Await ojs.Reviews.DownloadPdfAsync(12, 21, authorFriendly:=True)
Await pdf.SaveAsAsync("review-for-author.pdf")
End Using
Using xml = Await ojs.Reviews.DownloadXmlAsync(12, 21, authorFriendly:=False)
Await xml.SaveAsAsync("review.xml")
End Usingusing (var pdf = await ojs.Reviews.DownloadPdfAsync(12, 21, authorFriendly: true))
await pdf.SaveAsAsync("review-for-author.pdf");use! pdf = ojs.Reviews.DownloadPdfAsync(12, 21, authorFriendly = true)
do! pdf.SaveAsAsync "review-for-author.pdf"ExportPdfAsync and ExportXmlAsync return the file ID. Download it later with DownloadExportAsync(submissionId, fileId).
ConfirmAsync is the editor's accept or decline on behalf of the reviewer action. Only journal managers and site
administrators can call it. A reviewer's own token gets 401.
Await ojs.Reviews.ConfirmAsync(12, 21, accept:=True)
' OJS 3.5.0 returns the assignment as it was before the change, so read it again:
Dim updated = (Await ojs.Submissions.GetAsync(12)).ReviewAssignments.First(Function(r) r.Id.GetValueOrDefault() = 21)
Console.WriteLine(updated.Status) ' "This review has been accepted."GetHistoryAsync returns what a reviewer submitted in a round:
- the recommendation;
- the comments for the author and the private comments for the editor;
- the files.
OJS looks the review up by the current user, so call it with the reviewer's own token. Everyone else, including
administrators, gets 404.
Using asReviewer As New OjsClient(New OjsClientOptions With {
.BaseUrl = "https://journals.example.com", .JournalPath = "jpk", .ApiToken = "<reviewer token>"})
Dim history = Await asReviewer.Reviews.GetHistoryAsync(12, reviewRoundId:=5)
Console.WriteLine($"{history.PublicationTitle.GetValue("en")}: {history.Recommendation}")
For Each c In history.Comments
Console.WriteLine(c)
Next
End Usingusing var reviewer = new OjsClient(new OjsClientOptions { BaseUrl = "https://journals.example.com", JournalPath = "jpk", ApiToken = "<reviewer token>" });
var history = await reviewer.Reviews.GetHistoryAsync(12, reviewRoundId: 5);
Console.WriteLine($"{history.Recommendation}: {string.Join(" ", history.Comments)}");These need the journal's ORCID settings, found under Users & Roles > ORCID.
' Email the author a link to connect their ORCID iD to this contribution
Await ojs.Orcid.RequestAuthorVerificationAsync(authorId:=31)
' Remove the ORCID iD and its access tokens from a contribution
Await ojs.Orcid.DeleteForAuthorAsync(authorId:=31)
' Queue a completed review for deposit to the reviewer's ORCID record
Await ojs.Reviews.SendToOrcidAsync(12, 21)await ojs.Orcid.RequestAuthorVerificationAsync(authorId: 31);
await ojs.Orcid.DeleteForAuthorAsync(authorId: 31);
await ojs.Reviews.SendToOrcidAsync(12, 21);authorId is a contributor ID (Contributor.Id), not a user ID.
Writing reviews or works to ORCID records requires the Member API, and the reviewer must have connected their
ORCID iD. SendToOrcidAsync only queues a job, so a failure shows up in the OJS job log rather than as an exception.