AWS HealthLake: A FHIR Healthcare Cloud Solution Walkthrough + Pros and Cons

Written by:

What do you get when the worlds largest ✨Cloud Company✨ builds a healthcare product?

You get AWS HealthLake.

HealthLake is Amazon Web Service’s response to a growing need for healthcare technology services and a growing need to funnel more companies into their cloud data products. It is a full service healthcare cloud application that is HIPAA compliant, easy to setup and handles all storage and transactions of FHIR resources in a simple clean box.

Setting up a HealthLake server is dead simple. Unlike many AWS products that have a setup form longer than a novel there are only two sections.

The first section is to name your application and optionally preload sample data from Synthea. The sample data option is a nice touch and if you want to know more about what Synthea is, you can check out my previous article. Currently, the only format that is available is the FHIR R4 format. This means that this server will only be able to transact and communicate with other FHIR R4 servers. This is something to keep in mind when thinking about using HealthLake as not all applications are able to transact using this FHIR version.

The HealthLake server creation screen is simple and to the point.

The second section is to choose how you want to encrypt the data that is stored inside HealthLake using AWS KMS service.

After your have clicked “Create Data Store” it will take you to a page that lists all of the data stores you have created.

Your list of data stores in AWS.

When testing this it took about 30 minutes for the data store status to go from “Creating” to “Active”. When the status turns to Active, its time to check out our brand new FHIR server!

The main page of a data store shows basic info like its endpoint, format and whether there is preloaded data.

There are three main things you can do from the AWS console once you’ve created your server. Run a CRUD query against the FHIR resources in the data store, import data and export data.

Run a Query

The “Run Query” page lets you look at the information you have in your datastore. Obviously, you have to preload your datastore with the Synthea option to be able to run queries here. On this page you can choose the data store you want to query, type of CRUD query and the type of FHIR resource you want to search. There is also an option to add a search parameter. For instance, if you want to search by a patient name you can add that as well.

After you hit “Run Query” you will see the results below in the “Response Body” section as JSON.

Import Data

Importing data into HealthLake involves a very particular format.

Each import can support up to 10,000 new delimited (NDJSON) files, each file can be no larger than 5GB, with an overall import size limit of 500GB. Each file should contain only one FHIR R4 resource per line.

So, in order to import data you will need to get a NDJSON file that contains one FHIR resource per line that is less than 5GB per file an lives inside an AWS S3 bucket. You will also need to select an AWS S3 location to store the logs of the import operation in the “Import output files” section. The last section is the IAM role that will give HealthLake access to the S3 bucket locations that are needed for the import data. You can either use an existing role or have AWS create a new role that gives HealthLake access to those locations.

Importing data into HealthLake involves storing data in S3 and giving permission to HealthLake to access it.

Export

Exporting data from HealthLake is very simple but quite limited. All you need to do is select an S3 bucket as the export location an AWS KMS key to encrypt the data and an IAM role to allow HealthLake to write data to S3. Like the Import page AWS can create an IAM role for you or you can specify one.

Should you use AWS HealthLake?

Pros

  1. Very easy to setup. Like a couple of clicks easy.
  2. Ability to preload Synthea data into your datastore to kickstart testing or development.
  3. HL7 R4 FHIR format is a good choice and widely used format.
  4. Easy to use UI to see what is inside your FHIR data store.
  5. Easy-ish integration into other AWS resources for data analysis.
  6. AWS marketplace add-ons.

Cons

  1. No ability to select another type of FHIR version other than R4. If you are communicating with another system using a different version like R5 you may run into issues.
  2. You have to export the entire data store if you want to export anything at all. You cannot just export select things using the console. You will have to programmatically export using the CRUD operations.
  3. How HealthLake works under the hood is quite opaque. For technical people this might be off putting. For some non-technical people this may actually be a plus. This means there is no ability to add business logic as well like you could with some open source implementations like HAPI FHIR.
  4. Vendor lock in. When you use HealthLake you must also use S3 for storage if you want to import or export any data.

Pricing

Based on the writing of this article HealthLake charges hourly for the server at $0.27 / hour which comes to about $195 per month before any other costs. There are 3,500 queries included in the price and then you are charged $0.048 / 10,000 queries. For full pricing details see here.

Leave a Reply

Discover more from Chino Technologies

Subscribe now to keep reading and get access to the full archive.

Continue reading