Versions Compared

Key

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

...

After a ResearchProject is created, only the creator can make changes to a ResearchProject. The owner can also change the ownership of a ResearchProject by changing the ownerId value to another userId that has been granted access to the dataset under the same ResearchProject. After taking over the ResearchProject, a user would have the same permissions with the DataAccessRequest's creator.

DataAccessRequest Request implements DataAccessRequestInterfaceRequestInterface
String id
String accessRequirementId
String createdBy
Long createdOn
String researchProjectId
List<String> accessors
String ducFileHandleId
String irbFileHandleId
List<String> attachments
String modifiedBy
Long modifiedOn

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

Only creator of DataAccessRequest Request can update, and submit the request. To submit a request, it has to meet the requirements specified in the associated AccessRequirement.

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

DataAccessRenewal Renewal implements DataAccessRequestInterfaceRequestInterface extends DataAccessRequestRequest
String publication
String summaryOfUse

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

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

DataAccessSubmissionSubmission
String id
String dataAccessRequestId
String submittedBy
Long submittedOn
ResearchProject researchProjectSnapshot
List<String> accessors
Boolean isRenewalSubmission
String ducFileHandleId
String irbFileHandleId
List<String> attachments
String publication
String summaryOfUse
DataAccessSubmissionSubmissionState state (SUBMITTED, APPROVED, REJECTED, CANCELED)
String reviewerId
Long reviewedOn
String rejectedReason

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

...


ActionIntended UserURIMethodRequest ParamsRequest BodyResponse Body
1create a ResearchProjectSynapse User/researchProjectPOST
ResearchProjectResearchProject
2retrieve a ResearchProjectcreator/accessRequirement/{id}/researchProjectGET

ResearchProject
3update a ResearchProjectcreator/researchProject/{id}PUT
ResearchProjectResearchProject
4transfer ownership of a ResearchProjectcreator, ACT/researchProject/{id}/updateOwnerPUT
ChangeOwnershipRequestResearchProject

create or update Research ProjectSynapse User/researchProjectPOST
ResearchProjectResearchProject

get ResearchProject for updatecreator/accessRequirement/{id}/researchProjectForUpdateGET

ResearchProject
5create a DataAccessRequestSynapse User/dataAccessRequestPOST
DataAccessRequestDataAccessRequest
6retrieve the current DataAccessRequestcreator, ResearchProject's owner/accessRequirement/{id}/dataAccessRequestGET

DataAccessRequestInterface
7asking the server for a suitable request object to start withcreator/accessRequirement/{id}/dataAccessRequestForUpdateGET

DataAccessRequestInterfaceRequestInterface
8update a DataAccessRequestcreator, ResearchProject's owner/dataAccessRequest/{id}PUT
DataAccessRequestInterfaceDataAccessRequestInterface

create or update DataAccessRequestRequestSynapse User/dataAccessRequestPOST
DataAccessRequestInterfaceRequestInterfaceDataAccessRequestInterfaceRequestInterface
9submit a DataAccessRequestRequestcreator, ResearchProject's owner/dataAccessRequest/{id}/submissionPOSTetag

ACTAccessRequirementStatusSubmissionStatus

10retrieve the latest DataAccessSubmission's statusrequestor, ResearchProject's owner, accessors/accessRequirement/{id}/submissionStatusGET

DataAccessSubmissionStatus
11cancel a DataAccessSubmissionSubmissionrequestor, ResearchProject's owner/dataAccessSubmission/{id}/cancellationPUT

ACTAccessRequirementStatusSubmissionStatus

12update a DataAccessSubmissionSubmissionACT/dataAccessSubmission/{id}PUT
SubmissionStateChangeRequestDataAccessSubmissionSubmissionStatus
13retrieve a list of DataAccessSubmissionSubmissionACT/accessRequirement/{id}/submissionsGETnextPageToken, order (DataAccessSubmissionOrderSubmissionOrder), filter (DataAccessSubmissionStateSubmissionState),
asc 

DataAccessSubmissionPageSubmissionPage
14retrieve a list of Approval Status for a given list of AccessRequirementSynapseUser/accessApprovalStatusPOST
AccessApprovalStatusRequestAccessApprovalStatusResults
15retrieve restriction info for a given entitySynapse user/entity/{id}/restrictionInformationGET

RestrictionInfo
16retrieve access requirement statusSynapse user/accessRequirement/{id}/statusGET

AccessRequirementStatus
17retrieve info about open submissionsACT/dataAccessSubmission/openSubmissionsGETnextPageToken
OpenSubmissionPage
18retrieve approval info for usersACT/accessApproval/batchPOST
BatchAccessApprovalRequestBatchAccessApprovalResult

...

OpenSubmission
String accessRequirementId
Long numberOfOpenSubmissions


ACTAccessRequirementStatus implements AccessRequirementStatus
String accessRequirementId
Boolean isApproved
SubmissionStatus current submissionStatus


SubmissionStatus

String submittedBy
String submissionId
DataAccessSubmissionSubmissionState state
String rejectedReason
Long reviewedOn

...

SubmissionStateChangeRequest
String submissionId
DataAccessSubmissionSubmissionState newState (only APPROVED and REJECTED are valid)
String rejectedReason

...

TermsOfUseAccessRequirementStatus implements AccessRequirementStatus
String accessRequirementId
boolean isApproved

...

the created DataAccessRequest
GET /accessRequirement/{id}/dataAccessRequestGET /accessRequirement/{id}/dataAccessRequestForUpdate
user has not created a requestNotFoundExceptionempty DataAccessRequest
user has a request, zero APPROVED submissionthe created DataAccessRequestthe created DataAccessRequest
user has an APPROVED submission, requires renewalthe created DataAccessRequestre-filled DataAccessRenewal
user has an APPROVED submission, renewal not requiredthe created DataAccessRequest


Notification


ConditionTarget UserNotes
1After a new submission is createdACT memberIncludes link to a page that manages the dataset's access requests
2After a submission is approvedRequestorIncludes link to view request
3After a submission is rejectedRequestor

Includes reason

Includes link to create a new request from the rejected one


May Summary

By May 2017, we have completed #1-4, #7 & #8 under Solution. We have implemented all APIs listed under Services. The feature is under alpha in stack-180.

...