Skip to content

Latest commit

 

History

History

study-datastore

Overview

The FDA MyStudies Study datastore makes APIs available for client applications to obtain the content of studies configured with the Study builder web application. For example, the iOS and Android mobile applications interact with the Study datastore to obtain the study schedule and tasks. The Study datastore serves the content and configuration of your organization’s studies - it does not process participant data. The Study datastore is a Java application built on the Spring framework. The backend database is MySQL, which is shared with the Study builder web application. The Study datastore uses basic authentication bundle_id and app_token to authenticate calls from client applications.

The Study datastore client applications are:

  1. Android mobile application
  2. iOS mobile application
  3. Response datastore

The Study datastore provides the following functionality:

  1. Serve study settings to client applications
  2. Serve study eligibility and consent data to client applications
  3. Serve study schedule to client applications
  4. Serve study activities to client applications
  5. Serve study status to client applications

Deployment

NOTE: Holistic deployment of the FDA MyStudies platform with Terraform and infrastructure-as-code is the recommended approach to deploying this component. A step-by-step guide to semi-automated deployment can be found in the deployment/ directory. The following instructions are provided in case manual deployment in a VM is required. Google Cloud infrastructure is indicated, but equivalent alternative infrastructure can be used as well. It is important for the deploying organization to consider the identity and access control choices made when configuring the selected services. If pursuing a manual deployment, a convenient sequence is hydra/auth-server/participant-datastore/participant-manager-datastore/participant-manager/study-datastore/response-datastore/study-builder/Android/iOS/.

To deploy the Study datastore manually:

  1. Create a Compute Engine VM instance with your preferred machine type and OS (for example, e2-medium and Debian 10), then reserve a static IP
  2. Verify that your VM instance has the Stackdriver Logging API write access scope (on by default) and that your VM’s service account has the Logs Writer role (off by default)
  3. Check out the latest code from the FDA MyStudies repository
  4. Create a Cloud SQL instance with MySQL v5.7 (instructions)
  5. Configure the Study datastore database on the Cloud SQL instance
  6. Configure blob storage for public study resources by creating a Google Cloud Storage bucket and granting your VM’s GCE service account the Storage Object Admin role and setting public read access
  7. Deploy the Study datastore container to the VM
    • Create the Docker image using sudo mvn -B package -Pprod com.google.cloud.tools:jib-maven-plugin:2.5.2:dockerBuild -Dimage=study-datastore-image from the study-datastore/ directory (you may need to install Docker and Maven, for example sudo apt install maven)
    • Update the Docker environment file variables.env with values to configure the application.properties file for your deployment
    • Run the container on the VM using sudo docker run --detach --env-file variables.env -p 80:8080 --name study-datastore study-datastore-image
  8. Test if the application is running by running curl 0.0.0.0/study-datastore/healthCheck
  9. You can review application logs in the logging directories you specified, or with sudo docker logs study-datastore; audit logs are available in Cloud Logging

Copyright 2020 Google LLC