Health Data Documentation

Scenario

Bridge exports participant health data to Synapse. In order to understand the data, we need to associate documentation with Synapse studies data types.

Milestone 1: Model Health Data Documentation, stored in S3, indexed in DynamoDB. Create APIs for create, read, update, and delete functionalities. Links to Jira issues: model, APIs.

Milestone 2: Automatically write documentation to the appropriate Synapse wiki(s)

Milestone 3: Study Manager: Health Data Documentation Page

Design

DynamoDB

We want to create a new class called DynamoHealthDataDocumentation with the following attributes:

  • title (String)

  • parentId (hash key, String)

    • Initially, this will be the same as appId. In the future, for study-scoped documentation, it would be “{appId}:study:{studyId}” and for Assessments it would be “{appId}:assessment:{assessmentId}”.

  • identifier (range key, String)

  • version (Long)

  • s3Key documentation (String)

    • this will be capped at 100 KB of data, as the maximum data size in DynamoDB is 400 KB.

  • createdBy (String)

  • createdOn (DateTime)

  • modifiedOn (DateTime)

  • modifiedBy (String)

API

Method

URL

Description

Permissions

Method

URL

Description

Permissions

POST

/v3/healthdataDocumentation

Create or update a health data documentation

researcher, developer

GET

/v3/healthdataDocumentation/{identifier}

Read a health data documentation with the given identifier

researcher, developer

GET

/v3/healthdataDocumentation

List all health data documentation associated with the given parentId

researcher, developer

DELETE

/v3/healthdataDocumentation/{identifier}

Delete a health data documentation with the given identifier

researcher, developer

DELETE

/v3/healthdataDocumentation

Delete all health data documentation associated with the given parentId

researcher, developer