Bridge Research Study REST API

Bridge Research Study REST API

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

 

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}/consent

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 (User 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}

Bridge User

-

Dataset

view consent form

PUT

/participants/{id}

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

/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

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.