Method | URI | Auth | Body | Parameters | Return | Description | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Studies | |||||||||||||||||
GET | /studies | AdminBridge User | - | PaginatedResults<Study> | All studies (for creating links within any community) | ||||||||||||
GET | /studies/{id} | Bridge User | - | Study | |||||||||||||
GET | /studies/enrolled | Bridge User | - | PaginatedResults<Study> | All studies in which the user has one or more participants enrolled. Need this to set up correct forms, etc. in the UI | ||||||||||||
POST | /studies | Admin | Study | Study | study with id returned | ||||||||||||
GETPUT | /studies/{id} | Admin | - | Study | Study | PUT | |||||||||||
DELETE | /studies/{id} | Admin | - | Study- | Study | ||||||||||||
POST | /studies/{id}/consent | Bridge User | Dataset | Dataset | Submit consent form instance; become a participant in the study | ||||||||||||
DELETE | /studies/{id}/withdraw/{id} | AdminBridge User | - | - | Delete all datasets for the indicated participant, and delete the consent record; this participant has been withdrawn from the study | ||||||||||||
Forms / Dataset Definitions | (one per research instrument participants will use in a study)|||||||||||||||||
GET | /studies/{id}/formsResearcher w/ edit permission | Bridge User | - | PaginatedResults<Form> | Unlikely to be more than a page of these | ||||||||||||
POSTGET | /studies/{id}/forms | Researcher w/ edit permission | Form | /{id} | Bridge User | - | Form | form with id returned | GET | ||||||||
POST | /studies/{id}/forms/{id} | Researcher w/ edit permission | - | Form | Form | form with id returned | |||||||||||
PUT | /studies/{id}/forms/{id} | Researcher w/ edit permission | Form | Form | |||||||||||||
DELETE | /studies/{id}/forms/{id} | Researcher w/ edit permission | - | - | |||||||||||||
Consents (a special kind of form/dataset definition, one per study, used to create a consent record, stored encrypted) | |||||||||||||||||
GET | /studies/{id}/consentResearcher w/ edit permission | Bridge User | - | Form | get consent form | ||||||||||||
PUT | /studies/{id}/consent | Researcher w/ edit permission | Form | - | create or update consent form | ||||||||||||
DELETE | /studies/{id}/consent | Researcher w/ edit permission | - | - | delete consent form | ||||||||||||
Participants ( | 1User will create one or more participants for each research project | thisthe user is involved with; I would list all participations across all projects, since we proposed initially to show it in the profile or journal section of the app) | |||||||||||||||
GET | /participants | Bridge User | - | studyId | PaginatedResults<Form>PaginatedResults<Dataset> | All across all studies, unless filtered for a research project | |||||||||||
POST | /studies/{id}/participants | Bridge User | Form | Form | Agree to consent form and become a participant in the study | ||||||||||||
for this user | |||||||||||||||||
GET | /participants/{id} | Bridge User | - | Form | Dataset | view consent form | |||||||||||
PUT | /participants/{id} | Bridge User | FormDataset | - | |||||||||||||
DELETE | /participants/{id} | Bridge User | - | ||||||||||||||
DELETE | /participants/{id}/withdraw | Bridge User | - | - | Delete all datasets for this participant and delete the consent record; this participant has been withdrawn from the studyDataset | update consent form | |||||||||||
Datasets (have to be scoped to a participant; not sure how | wellto structure forms with a project or forms between projects) | ||||||||||||||||
GET | /datasetsBridge User/{id} | Anonymized Participant | - | PaginatedResults<DatasetHeader> | All datasets for all forms in all studies for all participantsone participant | ||||||||||||
GET | /form/{id}/datasets/{id} | Bridge User | -Anonymized Participant | PaginatedResults(DatasetHeader>PaginatedResults<DatasetHeader> | All datasets for one participant | ||||||||||||
DELETE | |||||||||||||||||
POST | |||||||||||||||||
GET | |||||||||||||||||
PUT | |||||||||||||||||
DELETE |
Researcher - can be pretty much any Synapse user
...
a specific form and participant | |
GET | /study/{id}/ |
...
datasets/{id} |
...
Anonymized Participant | All datasets for a specific study and participant (datasets may have been generated from different forms) | ||||
POST | /datasets/{id} | Anonymized Participant | DatasetRow | - | Append a row to the dataset (create if necessary) for a participant |
GET | /datasets/{id}/ |
...
{ |
...
row} | Anonymized Participant | - | DatasetRow | Get full record for row N for |
...
a participant | |
PUT | / |
...
datasets/{id}/ |
...
{ |
...
row} | Anonymized Participant | DatasetRow | DatasetRow | Edit row N for |
...
a participant | |
DELETE | / |
...
datasets/{id}/ |
...
{ |
...
row} | Anonymized Participant | - | - | Delete row N for a participant |
Participants - In order for a user to manipulate multiple participants, those records have to have some kind of identifying information that we can refer to (that is the same between consents to different research), like a name or something. Otherwise we really can't give the user an UI to manipulate Jane vs. Johnny in a given study.