The FDA MyStudies Study builder
is a web application that provides a no-code user interface for researchers, clinicians and other study administrators to create and launch studies. As study administrators make changes to their studies using the Study builder
, those changes are propagated to the participant mobile applications without need for code changes or app updates. The Study builder
configures the content of your organization’s studies - it does not process participant data. The Study builder
is a Java application built on the Spring framework. The backend database is a MySQL database, which is shared with the Study datastore
. The Study datastore
serves the study content and configuration to the study’s mobile applications, which study participants use to interact with the study. The Study builder
application uses built-in authentication and authorization.
The Study builder
provides the following functionality:
- Study administrator registration, login and logout
- Creation and configuration of new studies (including eligibility, eConsent, activities and schedule)
- Assignment of studies to mobile applications
- Editing content and configuration of existing studies
- Starting, pausing and ending studies
- Sending notifications to study participants
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 ishydra/
→auth-server/
→participant-datastore/
→participant-manager-datastore/
→participant-manager/
→study-datastore/
→response-datastore/
→study-builder/
→Android/
→iOS/
.
To deploy the Study builder
manually:
- Create a Compute Engine VM instance with a static IP and read/write access scopes for Cloud Storage (make sure your VM’s GCE service account has the
Storage Object Admin
role for the bucket you created duringStudy datastore
deployment) - Verify that your VM instance has the
Stackdriver Logging API
write access scope (on by default) and that your VM’s service account has theLogs Writer
role (off by default) - Check out the latest code from the FDA MyStudies repository
- Optional. Customize branding by updating text and images
- Update user-facing text as desired, for example in
termsAndCondition.jsp
,copyright.jsp
andprivacypolicy.jsp
- Replace landing page image
logo_landing_welcome.png
(do not change filename) - Replace subpage image
logo_innerScreens.png
(do not change filename) - Replace favicon image
FAV_Icon.png
(do not change filename)
- Update user-facing text as desired, for example in
- Deploy the
Study builder
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 -f fdahpStudyDesigner/pom.xml -Dimage=study-builder-image
(you may need to install Docker and Maven, for examplesudo apt install maven
) - Update the Docker environment file
variables.env
with values to configure theapplication.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-builder study-builder-image
- If your
Auth server
instance is a using self-signed certificate, add that certificate to your container’s keystore, for example withsudo docker exec -it study-builder bash -c "openssl s_client -connect <your_auth_server_instance:port> | sed -ne '/-BEGIN CERTIFICATE/,/END CERTIFICATE/p' > auth-server.crt; keytool -import -trustcacerts -alias auth-server -file auth-server.crt -keystore /usr/local/openjdk-11/lib/security/cacerts -storepass changeit"
, then restart the container withsudo docker restart study-builder
- Create the Docker image using
- Visit
http://<CLOUD_VM_INSTANCE_IP>/studybuilder
in your browser to test if the application is running - you should be redirected to the login page if deployed successfully- If access to your VM is restricted to IPs within its VPC network, you can make a remote desktop connection to a machine within your VPC (alternatively use
curl -i http://0.0.0.0/studybuilder
to confirm a302
redirect response)
- If access to your VM is restricted to IPs within its VPC network, you can make a remote desktop connection to a machine within your VPC (alternatively use
- Login as the super admin user with the username and password that you created with the
create_superadmin.sh
script - Use the
Study builder
user interface to create additional administrator accounts as needed - You can review application logs in the logging directories you specified, or with
sudo docker logs study-builder
; audit logs are available in Cloud Logging
NOTE: You will need to publish at least one study with an
App ID
to enable the mobile applications to create participant accounts. If you published a study before completing deployment of the other platform services, you may need to pause and then resume that study for its settings to propagate across the platform.
Copyright 2020 Google LLC