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 |
---|---|---|---|
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 |