Giter Club home page Giter Club logo

ohdsi-in-a-box's Introduction

OHDSI-in-a-Box

Quickly deploy a single instance implementation of OHDSI tools and sample data for personal learning and training enviroments. If you are looking to deploy a enterprise, scalable OHDSI architecture then check out the OHDSIonAWS project. A Linux and Windows version of this environment are offered. Both versions have the same set of OHDSI tools. The Windows version uses 'pgAdmin 4' to allow access to the Postgres database while the Linux version uses 'SQL Workbench'. The Linux version is ~40% less expensive to run, depending on the exact AWS instance type you choose. You can also easily add multiple users to a single instance of the Linux version if you like.

Deployment Walk Through Video

OHDSI-in-a-Box Deployment Walk Through

Linux Version

AWS Region Code Name Launch
cn-northwest-1 China (Ningxia) cloudformation-launch-stack
eu-west-1 EU (Ireland) cloudformation-launch-stack
ap-northeast-1 AP (Tokyo) cloudformation-launch-stack
us-east-1 US East (N. Virginia) cloudformation-launch-stack
OHDSI Component Version
OMOP Common Data Model v5.3.1
Atlas v2.7.6
WebAPI v2.7.6
Usagi v1.2.8
WhiteRabbit v0.9.0
RabbitInAHat v0.9.0
Achilles v1.6.3
PatientLevelPrediction v3.0.6
DatabaseConnector v2.4.1
DatabaseConnectorJars v1.0.0
SqlRender v1.6.2
OhdsiRTools v1.7.0
FeatureExtraction v2.2.2
Cyclops v2.0.2
OhdsiSharing v0.1.3
Sample Data Source Size
CMS DeSynPUF 100k persons
CMS DeSynPUF 1k persons
Synthea 1k persons

RDP username: ohdsi
RDP password: this is specified as a parameter during deployment
Postgres username: ohdsi
Postgres password: this is specified as a parameter during deployment

If you want to add users to the OHDSI-in-a-Box Linux version, you can do this by using the adduser command and then copying the ohdsi user home directory, as shown in the screenshot below:

alt-text

Windows Version

AWS Region Code Name Launch
cn-northwest-1 China (Ningxia) cloudformation-launch-stack
ap-northeast-1 AP (Tokyo) cloudformation-launch-stack
eu-west-1 EU (Ireland) cloudformation-launch-stack
us-east-1 US East (N. Virginia) cloudformation-launch-stack
OHDSI Component Version
OMOP Common Data Model v5.3.1
Atlas v2.7.0
WebAPI v2.7.0
Usagi v1.1.6
WhiteRabbit v0.7.8
RabbitInAHat v0.7.8
Achilles v1.6.5
PatientLevelPrediction v3.0.5
DatabaseConnector v2.3.0
DatabaseConnectorJars v1.0.0
SqlRender v1.6.0
OhdsiRTools v1.7.0
FeatureExtraction v2.2.2
Cyclops v2.0.2
OhdsiSharing v0.1.3
Sample Data Source Size
CMS DeSynPUF 100k persons
Synthea 1k persons

RDP username: ohdsi
RDP password: this is specified as a parameter during deployment
Postgres username: postgres
Postgres password: ohdsi

OHDSI-in-a-Box Architecture

OHDSI-in-a-Box is specifically created as a learning environment, and is used in most of the tutorials provided by the OHDSI community. It includes many OHDSI tools, sample data sets, RStudio and other supporting software in a single, low cost Windows virtual machine. A PostgreSQL database is used to store the CDM and also to store the intermediary results from ATLAS. The OMOP CDM data mapping and ETL tools are also included in OHDSI-in-a-Box. A high-level diagram showing how the different components of OHDSI map to AWS Services is shown below.
alt-text

OHDSI-in-a-Box deployment instructions

  1. Install an RDP client to access you OHDSI-in-a-Box instance
    Windows includes an RDP client by default. To verify, in the search box on the taskbar, type Remote Desktop Connection, and then select Remote Desktop Connection. If your computer doesn't show this application, see the Windows home page and search for the download for the Microsoft Remote Desktop app.
    Mac OS X Download the Microsoft Remote Desktop app from the Mac App Store.
    Linux Use rdesktop.

  2. Begin the deployment process by clicking the Launch Stack button at the top of this page the corresponds to the version (Windows or Linux) and the AWS Region you want to us. This will take you to the CloudFormation Manage Console. You will see the CloudFormation template URL is pre-populated. Click Next.

  3. The next screen will take in all of the parameters for your OHDSI environment. A description is provided for each parameter to help explain its function, but following is also a detailed description of how to use each parameter. At the top of this screen, be sure to provide a unique Stack Name.

Security

Parameter Name Description
Instance Password Required This password will be used to allow you to login to the OHDSI-in-a-Box instance. It can contain upper and lowercase letters, numbers, and/or these special characters !@#
Limit access to IP address range? Required This parameter allows you to limit the IP address range that can access your Atlas and RStudio servers. It uses CIDR notation. The default of 0.0.0.0/0 will allow access from any address.

Scaling

Parameter Name Description
Number of OHDSI-in-a-Box instances to deploy This determines the number of OHDSI-in-a-Box instances that will be deployed. This allows you to easily deploy more than 1 instance if you are using it for a virtual training environment.
Instance type to use for each OHDSI-in-a-Box instance This determines the processing power of your OHDSI-in-aBox instance. Typically, t3.medium offers a good balance between cost and performance For more information, see the list of available EC2 instnance types.
Disk space for each OHDSI-in-a-Box instance This defines the disk size of the OHDSI-in-a-Box instance in GBs. The minimum size is 100GB and the maximum size is 16,000GB (or 16TB). You can use this parameter to deploy additional disk space in order to upload your own data into your OHDSI-in-a-Box instance.

Networking

Parameter Name Description
Subnet This is the subnet within an AWS VPC into which all of your instances will be deployed. If you aren't familiar with this setting, you can choose a subnet from within your Default VPC. They typically have a name like subnet-111111a (172.31.0.0/20)
VPC This is the AWS VPC into which all of your instances will be deployed. It must be the VPC that contains the subnet you specified above. If you aren't familiar with this setting, you can choose your Default VPC. It will typically have a name like vpc-111111a (172.31.0.0/16)

When you've provided appropriate values for the Parameters, choose Next.

  1. On the next screen, you can provide some other optional information like tags at your discretion, or just choose Next.

  2. On the next screen, you can review what will be deployed. Be sure to check the box that says I acknowledge that AWS CloudFormation might create IAM resources. as shown in the image below. Then choose Create.

alt-text

  1. You can watch as CloudFormation builds out your OHDSI environment. A CloudFormation deployment is called a stack. The parent stack creates several child stacks depending on the parameters you provided. When all the stacks have reached the green CREATE_COMPLETE status, as shown in the screenshot following, then the OHDSI architecture has been deployed. Select the Outputs tab to find a link to your OHDSI-in-a-Box instances, as shown below.

alt-text

  1. You will now see a list of all of your OHDSI-in-a-Box instances and you can connect to them using your Remote Desktop client, the username ohdsi and the password you provided as a parameter. It will take about 5 minutes after this list appears for each OHDSI-in-a-Box instance to boot up and for the password to be set. If you connect to your instance and it says the password is incorrect, just wait a few more minutes for the password automation to complete.

  2. Once you are finished with your OHDSI-in-a-Box instances, just return to the AWS CloudFormation console and Delete the stack, as shown below. This will terminate all of the instances you launched.

alt-text

If you prefer to create your own customer OHDSI-in-a-Box image, take a look at the steps used to build this one. They are documented in a file called OHDSI-In-a-box-QuickStart-Installation-Guide-v1.02 in this repository.

Adding multiple users in Linux

If you'd like to add another user to your OHDSI-in-a-Box Linux instance, just login as the default 'ohdsi' user, open the Terminal icon on the desktop, and run the below commands replacing 'user2' with the username you'd like to use. You can use this command over and over again to add new users.

sudo adduser user2
sudo cp -a . ../user2
sudo chown -R user2:user2 ../user2/.

License

This library is licensed under the Apache 2.0 License.

ohdsi-in-a-box's People

Contributors

cgreich avatar delur407 avatar egaxhaj avatar jamesswiggins avatar siannuzzi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ohdsi-in-a-box's Issues

Permission policies

To save time for anyone wanting to apply an IAM role to the creation here's a json dump of the policy rules required:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:PassRole",
                "iam:DetachRolePolicy",
                "iam:DeleteRolePolicy",
                "iam:CreateRole",
                "iam:DeleteRole",
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy",
                "iam:GetRolePolicy"
            ],
            "Resource": "arn:aws:iam::123456789:role/*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "lambda:CreateFunction",
                "ec2:AuthorizeSecurityGroupIngress",
                "lambda:InvokeFunction",
                "ec2:DescribeVpcs",
                "ec2:CreateSecurityGroup",
                "ec2:CreateTags",
                "lambda:GetFunction",
                "ec2:DeleteSecurityGroup",
                "ec2:DescribeRegions",
                "lambda:DeleteFunction",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        }
    ]
}

You will need to update arn:aws:iam::123456789:role/* to match the ARN for the role.

These same policies can be added to a user directly if your account has restrictions.

ROLLBACK_COMPLETE

I get the error message ROLLBACK_COMPLETE when I tried to install OHDSI-in-a-boxaccording to the video.

I tried twice and both times I got ROLLBACK_COMPLETE instead of the message CREATE_COMPLETE.

What could be the problem ?

S3 template yaml not accessible

I am trying to setup the ODHSI-in-a-box stack following the video instructions. However at the initial cloudformations screen where it populates the template yaml, I get the following error:
S3 error: Access Denied For more information check http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html

Trying to directly access the file via a browser:

<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <RequestId>........</RequestId>
    <HostId>..........</HostId>
</Error>

When uploading ohdsi-in-a-box-linux.yaml myself from a git checkout this works fine.
So this looks to be a permissions issue on the S3 side.

Linux: initial instance usability

On starting the instance it is not very responsive on the recommended base instance type for ~30 minutes as it is running unattended-upgrades to apply updates. Rather than people incur unnecessary inflated costs any of the following would be sensible:

  1. Update to a current version of the underlying OS with updates (best)
  2. Refresh with relevant security updates
  3. Uninstall unattended-upgrades (worst)

Data Concern for `cmsdesynpuf100kpostgres` included in Ohdsi-in-a-box

I realize this is synthetic data, but I was still surprised by the number of records for which visit_concept_id=0 . Perhaps because his If a majority of data have non-standard values, maybe this has been documented somewhere?

set search_path to cmsdesynpuf100kpostgres, public;
select visit_concept_id,count(*) from visit_occurrence
group by 1
order by 1;

image

Error in RStudioGD() : Shadow graphics device error

Hi,
I am using RStudio version 1.2.1335 with R version 3.5.3 in OHDSI-in-a-Box instance running over x86_64-pc-linux-gnu (64-bit).

I get the following error every time I try to use ggplot() or ts.plot() functions.

Error in RStudioGD() : Shadow graphics device error: r error 4 (R code execution error)

Warning messages:
1: In grDevices:::png("/tmp/RtmpsXd9n8/6f8227ef665849fb83a03d96380b8980.png", ... :
unable to load shared object '/usr/lib/R/library/grDevices/libs//cairo.so':
libjpeg.so.62: cannot open shared object file: No such file or directory
2: In grDevices:::png("/tmp/RtmpsXd9n8/6f8227ef665849fb83a03d96380b8980.png", ... :
failed to load cairo DLL

The ggplot() function works fine in R when run in terminal.

I have installed Cairo package and I do see cairo.so in the folder '/usr/lib/R/library/grDevices/libs//

DOo I need to re-install the RStudio or is there something else I am missing here??

Thanks

Linux: DeSynPUF100k - foreign-keys constraints not applied

This caused some confusion as some of the OHSDI OMOP CMD training specifically asks for details around foreign keys, those are technical go to the database as a source of truth, especially for a listing.

This may apply to all the datasets in the image.

localhost:8080/atlas/#/home

HTTP Status 404 - Not Found
Hello
I need a hand with this, I'm trying to run atlas from the cloud but when the machine finally runs and is perfectly mounted, this inconvenience occurs when opening the browser from the remote desktop.
Any help?
OHDSI

Issue with OHDSI-In-a-box-PostgreSQL-Quick-Installation Guide

I originally used the OHDSI-in-a-box stack. I was able to access via remote desktop. I am trying to create ETL database. So I followed the instructions in the OHDSI-In-a-box-PostgreSQL-QuickStart-Installation-Guide-v1.05.pdf. I am not able to access S3 bucket to sync.
Please help.

I get the following error message:

C:\Users\Administrator.aws>aws s3 sync s3://ohdsi-installation-preperation/software/ C:\ohdsi\install\software
fatal error: An error occurred (SignatureDoesNotMatch) when calling the ListObjectsV2 operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.

I tried to access S3 bucket using the aboave s3://ohdsi-installation-preperation link. I got the following error message:

Capture

Thanks,
Priya

Error on WebAPI start on 'localhost:8080'

Dear,

I'm trying to follow your 'OHDSI In-a-box Quick Start โ€“ Installation Guide' for POSTGRESQL.

I've got an error on this step 'WebAPI Initialization -> 4) Click on the Start Button for the WebAPI service'

When I click the 'Start' button in 'WebAPI' section, I received the following message:

FAIL - Application at context path [/WebAPI] could not be started
FAIL - Encountered exception [org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WebAPI]]]

Ane, when I launched the atlas, I also received this error message:

application initialization failed
unable to connect to an instance of the webapi.
please contact your administrator to resolve this issue.

*I'm following your guide on VMware station 15.

CloudFormation on AWS fails

Hello,

The AWS create stack process for the OHDSI-in-a-box fails. The following message is displayed:

2020-01-13 14:30:00 UTC+0200 | EC2InstancesFunction | CREATE_FAILED | The runtime parameter of nodejs8.10 is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (nodejs12.x) while creating or updating functions. (Service: AWSLambdaInternal; Status Code: 400; Error Code: InvalidParameterValueException; Request ID: bf31d60c-90da-40e9-ad1b-cddf21e3c201)

Could you please suggest how to progress with OHDSI-in-a-box deployment? Thank you for help.

Can't find AMI image

I can't seem to find the AMI image. Is it region locked to a specific region? I am on the Ohio region. Thanks!

iqvia-issue

AWS Installation WebAPI error

Hello
I created an instance on AWS as instructed. However, when connecting to it I get the error:

application initialization failed
unable to connect to an instance of the web API.
please contact your administrator to resolve this issue.
I see the ATLAS menu on the left hand side but nothing can be selected or viewed because of the error.

What could be the issue. Thank you

Not able to connect to my instance

Hello,

I tried several times to follow the instructions mentionned on this Github. So, I successfully create the OHDSI stack with the associated instances, but, when I c/p the public IPv4 and try to connect with the remote desktop manager of Windows, nothing happens. The connection is simply refused as the server was down. Same for a ping, each paquet is lost.

I do not have any warning or error message, so I really have no idea of what's wrong...

Do you have any idea ?

Thanks in advance,

Nathalie

Question: Why VM over Docker Containers?

Is there a reason why something like Docker / Docker-Compose isn't used, or is it something that hasn't been explored yet?

I was reading through the Quickstart and it seems like most of the components involved installing dependencies which could be standardized using Dockerfiles, and organized as a network with a docker-compose.yml file, then deployed to AWS using ECR/ECS. This could be a viable alternative or successor methodology

AchillesWeb in OHDSI-in-a-Box

Dear,

I trying to run AchillesWeb. I have changed the datasourcepath, but it still does not work. What else do I need to change?

achilles

Thanks!

clone VM outside AWS

Hi,

We have problems with AWS in China, is there any possible to pack up all the stuff from the VM and clone them onto the other cloud base platforms?

Thanks

ATLAS does not come up on a new OHDSI-in-a-Box implementation

After creating the stack and connecting, I am able to see all the applications, connect to the database, etc. However, when I click on the Chrome application it gets stuck waiting for localhost.

I saw in a previous ticket that ATLAS is running on port 80, so to be sure I tried localhost:80 and I got the ATLAS splash screen. However, it still seems to get stuck there. How can I debug it? @JamesSWiggins

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.