...
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}Admin/withdraw/{id} | Bridge 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 | make this alist | ofall 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 projectPOSTfor this user | |||||||||||||||||||||||
GET | /studiesparticipants/{id} | Bridge User | - | Dataset | view consent form | ||||||||||||||||||||||||
PUT | /participants/{id} | Bridge User | FormDataset | Dataset | Form | Agree to consent form and become a participant in the studyupdate consent form | |||||||||||||||||||||||
Datasets (have to be scoped to a participant; not sure how to structure forms with a project or forms between projects) | |||||||||||||||||||||||||||||
GET | /participantsdatasets/{id} | Bridge User | - | Form | |||||||||||||||||||||||||
PUT | /participants/{id} | Bridge User | Form | - | |||||||||||||||||||||||||
DELETE | /participants/{id} | Bridge User | - |
Researcher - can be pretty much any Synapse user
Anonymized Participant | - | PaginatedResults<DatasetHeader> | All datasets for one participant | ||
GET | /form/{id}/datasets/{id} | Anonymized Participant | PaginatedResults<DatasetHeader> | All datasets for 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.