-
Notifications
You must be signed in to change notification settings - Fork 0
Level 1+ Reviews and Changes Requested
The Level 1 Reviews page explains how reviews with only one level work, which is a subset of how a review with more levels (per stage) should work.
The aim of this page is to outline the structure changes and flows:
- Reviewer (Level 1) - reviewing an application
- Reviewer (Level 1) - submitting
Conform
orNon Conform
advise higher level reviewer - Reviewer (Level 2) - reviewing the lower level review and
agree
with all advised decisions - Reviewer (Level 2) - submitting a review decision - if user has
is_last_level
will send back to Applicant whenLOQ (List of Questions)
or change outcome and stage when submittingNon Conform
orConform
. If consolidation notis_last_level
submission of review goes to upper level reviewer (e.g. Level 3) and the same process repeats for Level 2 and Level 3 reveiwers.
- Reviewer (Level 1) - reviewing an application
- Reviewer (Level 1) - submitting
Conform
orNon Conform
advise higher level reviewer - Reviewer (Level 2) - consolidatting lower level review(s) and
disagree
with some advised decisions - Reviewer (Level 2) - submitting
Changes Requested
back to reviewer (e.g. Level 1) - Reviewer (Level 1) - makes changes in response to
Changes Requested
and re-submit to upper level reviewer.
- There is just one specific progress-bar on consolidation which considers only (one or many) lower level reviews agreement/disagreements (
consolidationProgress
). - On the consolidation, each element
state
has:- the decision done in this current consolidation in
thisReviewLatestResponse
- the decision done in a previous consolidation (if any) in
thisReviewPreviousResponse
to track changes between this and a previous consolidation (of the same user)
- the decision done in this current consolidation in
- On the consolidation, each element
state
it can only have one lower level review:- the
lowerLevelReviewlatestResponse
is the latest decision submitted (or unchanged) from a lower level review - and
lowerLevelReviewPreviousResponse
to track changes between the latest submitted review and this one (after changes-requested to lower level reviewer)
- the
-
TODO: Not really sure exact the current use of
latestOriginalReviewResponse
andpreviousOriginalReviewResponse
so will wait for feedback to complete this one....
- The progress for a first-review (if no changes-requested) is done only with (
reviewProgress
) - If some changes requested:
- used both
reviewProgress
andchangeRequestsProgress
to track review progress - each element
state
hasisChangeRequest
andisChanged
(if one of the change-requested) to track if changes are done
- used both
- On the review, similarly to consolidation each element
state
has:- the decision done in this current review in
thisReviewLatestResponse
- the decision done in a previous review (if any) in
thisReviewPreviousResponse
to track changes between this and a previous review (of the same user)
- the decision done in this current review in
- To find the consolidator change-requested to this reviewer:
- if it is stored inside
thisReviewPreviousResponse
(when review is in DRAFT) orthisReviewLatestResponse
(if review in CHANGES_REQUESTED hasn't started)
- if it is stored inside
When an upper level reviewer disagrees with some decision on a lower level it needs to be changed by the lower level reviewer on a new review.
The consolidation needs to happen again and be in agreement so it can be sent to Applicant (with Reviewer Level 1 comments) in the form of LOQ (List of Questions)
.
Currently we don't allow submitting directly to Applicant when there is a disagreement.
- The following changes are done through work of Actions plugins.
- After
assignment
orself-assignment
happens (more details about this in Assignment Process) - On review level 1 start:
- creates new
review
with statusDRAFT
- create
review_response
with statusDRAFT
for eachreview_question_assignment
associated toapplication_response
- in the list of applications the action
CONTINUE_REVIEW
is available for this user now
- creates new
- On review level 1 submission:
- trim
review_responses
that have been created but not reviewed by user - update remaining
review_response
status toSUBMITTED
- update
review
status toSUBMITTED
- create new
review_assignment
for each user that can do reviewer level 2 - in the list of applications the action
VIEW_REVIEW
is available for this user now (review is not editable)
- trim
- On review level 2 self-assign:
- update
review_assignment
statusASSIGNED
- create
review_question_assignment
to eachreview_response
that have latest status asSUBMITTED
(to get only from submitted reviews) - in the list of applications the action
START_REVIEW
is available for this user
- update
- On review level 2 start:
- creates new
review
with status asDRAFT
- create
review_response
with statusDRAFT
for eachreview_question_assignment
associated toreview_response
- in the list of applications the action
CONTINUE_REVIEW
is available for this user now
- creates new
- On review level 2 submission:
- trim
review_response
that have been created but not reviewed by user - update other
review_response
status toSUBMITTED
- update
review
status toSUBMITTED
- update reviews with associated
review_response
(byreview_response_link_id
) that have decision ofdisagree
by level 2 reviewer with status toCHANGES_REQUESTED
- in the list of applications the action
VIEW_REVIEW
is available for this user now (review is not editable) - in the list of applications the action
UPDATE_REVIEW
is available for users owner of the Review with statusCHANGES_REQUESTED
- trim
- On review level 1 update:
- creates new
review
with status asDRAFT
- create
review_response
with statusDRAFT
duplicating lastestreview_response
with statusSUBMITTED
from this user - in the list of applications the action
CONTINUE_REVIEW
is available for this user now
- creates new
- On review level 1 submission:
- trim
review_responses
that are duplicated and not changed - update
review
status toSUBMITTED
- update other
review
of level 2 withreview_question_assignment
associated toreview_response
status toPENDING
- in the list of applications the action
VIEW_REVIEW
is available for this user now (review is not editable) - in the list of applications the action
RESTART_REVIEW
is available for users owner of the Review with statusPENDING
- trim
- Fetches actions and calculates progress of review (from application) or review with changes requested
- GraphQL mutation to create review responses - linked to another review or to application response
- GraphQL mutation to update
review_response
andreview_decison
- Validates submission of review and give options to submmit based on
is_last_level
and if review is level 1+ - GraphQL mutation to request submission of review
Similart to what was in previous Level 1 Reviews, but considering review of review.
First review validation in more details on Level 1 Review and LOQ.
When review is updated as a result of Changes Requested
by a Level 1+ reviewer, it can only be submitted if general validation passes AND all questions with change requests have been changed.
Logic to check validation of a changes-requested review is:
-
thisReviewLastestResponse
is different tothisReviewPreviousResponse
that has some associatedreviewResponse.reviewResponseLinkId
with decision ofdisagree
. This is more easily validated with fieldsisChangeRequest
andisChanged
in the 'state' of each element.
Logic to check validation is:
- On
disagreement
it will create a changes-requested decision and be submitted back to other reviewers - If all
agreement
and every decision isconform
then the decision can only beConform
, the application goes to the next stage - and Applicant would receive a message informing that (not implemented). - If all
agreement
and some decision isnon-conform
then the decision can be eitherLOQ
or and submitted back to Applicant for changes. Or decision isNon-conform
which should change the outcome and Applicant would receive a message informing that (not implemented).
Powered by mSupply