Method | URI | Auth | Body | Return | Description | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Studies | |||||||||||
GET | /studies | Bridge 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 | ||||||
PUT | /studies/{id} | Admin | Study | Study | |||||||
DELETE | /studies/{id} | Admin | - | - | |||||||
POST | /studies/{id}/consent | Bridge User | Dataset | Dataset | Submit consent form instance; become a participant in the study | ||||||
DELETE | /studies/{id}/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 | |||||||||||
GET | /studies/{id}/forms | Bridge User | - | PaginatedResults<Form> | Unlikely to be more than a page of these | ||||||
GET | /studies/{id}/forms/{id} | Bridge User | - | Form | GET | /forms/{id}/{participantId} | Bridge User | - | PaginatedResults<Form> | All forms for a participant associated to a user. We need this to show the correct forms to the user. | |
POST | /studies/{id}/forms | 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 (1 User will create one or more participants for each research project this 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<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 | - | FormDataset | 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 to structure forms with a project or forms between projects) | |||||||||||
GET | /datasets/{id} | 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 | DatasetDatasetRow | - | Append a row to the dataset (create if necessary) for a participant | ||||||
GET | /datasets/{id}/{row} | Anonymized Participant | - | DatasetDatasetRow | Get full record for row N for a participant | ||||||
PUT | /datasets/{id}/{row} | Anonymized Participant | DatasetDatasetRowDataset | 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.