Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. The ACT has a way to manage requests for datasets under ACTAccessRequirement. We need to support the following:
    1. Ability to view Submitted requests for a particular dataset. Allowing the ACT to see all information and quickly decide if the request contains the required information.
    2. Ability to approve a request and grant access to all accessors.
    3. Ability to reject a request, provide the instructions on how to correct/provide the missing information, and send email to requestor.
  2. The ACT has a way to configure the ACTAccessRequirement to indicate the required information, if the data set requires annual renewal, and if the intended data use statement should be public
  3. A requestor has a way to create a request, save it, and submit it to ask for access to a dataset under ACTAccessRequirement. 
  4. A requestor will be able to correct the old request and submit it after the old submission was rejected. They would not need to type/ provide any correct information that they already provided in the old submission.
  5. A requestor will be able to remove an accessor from his/her approved request. This action takes away the accessor's access to the dataset.
  6. The ACT has the annual review reminder emails automatically sent to accessors.
  7. An accessor will be able to provide the required information for the annual review process to keep their access to the dataset.
  8. An accessor will be able to provide the final statement of use when they no longer need to access the controlled data.
  9. The ACT has a way to mark a request to have it's Project Lead, Institution, and IDU to be publicly available. 

Phases

We recognize the needs to support #1 , #2, #3, #4 - #7 in the first phase. After the first phase is built, #5, #6, #7 will become important. Based on discussions with the From the ACT, we haven't had users come back to us with a final statement of use, so #8 would have low priority. #9 could still be solved by an R script. 

Object Models

WorkingGroup
ACTAccessRequirement
(original fields)
String instruction
Boolean isCertifiedUserRequired
Boolean isValidatedProfileRequired
Boolean isDUCRequired
String ducFileHandleId
Boolean isIRBRequired
Boolean areAttachmentsRequired
Boolean isAnnualReviewRequired
Boolean isIDUPublic
ResearchProject
String id
String accessRequirementId
String institution
String projectLead
String intendedDataUseStatementList<String> members
String ownerId
String createdBy
Long createdOn
Long modifiedOn
Long gainAccessOn

Any user can create a WorkingGroupResearchProject. To create a WorkingGroupResearchProject, the following information are required: accessRequirementId, institution, projectLead, intendedDataUseStatement, members, ownerId, and createdBy. IdThe following fields: id, createdOn, and modifiedOn and gainAccessOn are set by the system. A user will not be able to change these values.

After a WorkingGroup is ResearchProject is created, only the owner can make changes to the WorkingGroupa ResearchProject. The owner can also change the ownership of a working group by ResearchProject by changing the ownerId value to another userId that is in the list of membershas been granted access to the dataset under the same ResearchProject.

DataAccessRequest
String id
String accessRequirementId
String createdBy
Long createdOn
String workingGroupIdresearchProjectId
List<String> accessors
String ducFileHandleId
String irbFileHandleId
List<String> attachments
Long modifiedOn

Any user can create a DataAccessRequest to a given AccessRequirement. To create a DataAccessRequest, the following fields are required: accessRequirementId, and createdBy. IdThe following fields: id, createdOn, and modifiedOn are set by the system. A user cannot change these values.

...

Once a request is submitted, a DataAccessSubmission object is created. While there is an DataAccessSubmission with status SUBMITTED, it's associated DataAccessRequest no longer available for update & submit. 

DataAccessRenewal extends DataAccessRequest
String publication
String summaryOfUse

Once a DataAccessSubmission is approved and requestor wants to add/ remove accessors, he/she needs to update the request with a DataAccessRenewal, given the publication and summaryOfUse in addition to editing the existing information from the original DataAccessRequest. 

Submitting a DataAccessRenewal will also result in a DataAccessSubmission being created with status SUBMITTED. 

DataAccessSubmission
String id
String dataAccessRequestId
String requestorId
Long submittedOn
String workingGroupIdResearchProject researchProjectSnapshot
List<String> accessors
String ducFileHandleId
String irbFileHandleId
List<String> attachments
String publication
String summaryOfUse
State state (SUBMITTED, APPROVED, REJECTED, CANCELED)
String reviewerId
Long reviewedOn
String rejectedReason
Boolean canPublicAccess

Once a DataAccessSubmission is created, it will have state SUBMITTED until a reviewer (ACT member) review and update its status. 

After a submission is Rejected and a reason is provided, the submission is closed for modification.

After a submission is Approved, the only update an ACT member can perform is changing the value of 'canPublicAccess.'

When an ACT member approves a submission, multiple AccessApproval are created for each member of the working group.When the owner of a working group remove a user, the associated AccessApproval for that user will be removeaccessor

When the owner of a working group add/remove a user, he/she will also need to update the request and create a new submission. An ACT member will review the new submission and make decision to grant/revoke access to the new memberaccessor

Services


ActionIntended UserURIMethodRequest ParamsRequest BodyResponse Body
1create a WorkingGroup ResearchProjectSynapseUser/workingGroupresearchProjectPOST
WorkingGroupResearchProjectWorkingGroupResearchProject
2retrieve a WorkingGroup ResearchProjectowner/accessRequirement/{id}/workingGroupresearchProjectGET

WorkingGroupResearchProject
3update a WorkingGroup ResearchProjectowner/workingGroupresearchProjectPUT
WorkingGroupResearchProjectWorkingGroupResearchProject
4transfer ownership of a WorkingGroup ResearchProjectowner/workingGroupresearchProject/{id}/updateOwnerPUT
WorkingGroupResearchProjectWorkingGroupResearchProject
5create a DataAccessRequestSynapse User/dataAccessRequestPOST
DataAccessRequestDataAccessRequest
6retrieve a DataAccessRequestcreator/accessRequirement/{id}/listRequestGET

DataAccessRequest
7update a DataAccessRequestcreator/dataAccessRequestPUT
DataAccessRequestDataAccessRequest
8submit a DataAccessRequestcreator/dataAccessSubmissionPOST
DataAccessRequestDataAccessSubmission
9retrieve a list DataAccessSubmissionrequestor/accessRequirement/{id}/listSubmissionGETnextPageToken
DataAccessSubmissionPage
10cancel a DataAccessSubmissionrequestor/dataAccessSubmission/{id}/cancelPUT

DataAccessSubmission
11update a DataAccessSubmissionACT/dataAccessSubmissionPUT
DataAccessSubmissionDataAccessSubmission
12retrieve a list of DataAccessSubmissionACT/accessRequirement/{id}/listSubmissionGETnextPageToken, filter (by status)
DataAccessSubmissionPage

...