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}/consent | Researcher 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 ( | 1+ for a user; these calls are scoped to the current userUser will create one or more participants for each research project the 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 | - | PaginatedResults<Dataset> | All across all studies, for this user | ||||||
GET | /participants/{id}/participants | Bridge User | - | Dataset | view consent form | ||||||
PUT | POST | /studiesparticipants/{id}/participants | Bridge User | Dataset | Dataset | update consent form | |||||
Datasets (have to be scoped to a participant; not sure how to structure forms with a project or forms between projects) | |||||||||||
GET | /studies/{id}/participantsdatasets/{id} | Anonymized Participant | - | PUT | /studiesPaginatedResults<DatasetHeader> | All datasets for one participant | |||||
GET | /form/{id}/participantsdatasets/{id} | Anonymized Participant | DELETE | /studiesPaginatedResults<DatasetHeader> | All datasets for a specific form and participant | ||||||
GET | /study/{id}/participantsdatasets/{id} | Anonymized Participant |
Researcher - can be pretty much any Synapse user
...
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.