Introduction
In healthcare, the capability of effectively analyzing and managing medical images is essential for research, treatment, planning, and diagnosis. With the approach of digital imaging and communication in medicine (DICOM) standards, medical imaging has changed from traditional methods to digital formats.
Still, processing and managing large amounts of DICOM images poses many challenges for the healthcare industry. To solve these challenges, AWS provides an AWS HealthImaging service for managing, storing, and analyzing medical images in the cloud.
In this blog, we will explore how to build a scalable DICOM Ingestion pipeline using AWS HealthImaging.
What Are DICOM Images?
DICOM (Digital Imaging and Communication in Medicine) Image format is an international standard for storing, retrieving, transferring, processing, and displaying medical imaging information.
DICOM is generally used in healthcare for different medical imaging modalities, such as X-rays, CT scans, ultrasounds, MRIs, and more. The file is a global format that can be understood by different software and systems.
DICOM files contain image data and metadata that are encoded in a structured format. One can easily access important information on patient demographics and diagnose medical conditions by extracting data from a DICOM file.
The extension of DICOM file is .dcm.
Figure 1
What Is AWS HealthImaging?
AWS HealthImaging is a world-changing cloud-based, HIPAA (Health Insurance Portability and Accountability Act) eligible cloud-based service that allows the healthcare industry to analyze, store, and share medical images in the cloud.
Key Features
- Storage and Analysis – AWS HealthImaging allows users to analyze and store medical images such as X-rays, ultrasounds, CT scans, and MRIs on a petabyte scale.
- Accessibility and Performance – AWS HealthImaging allows users to access DICOM images effectively and quickly, which helps healthcare professionals view patient images on time and accurately diagnose them.
- High-speed Image Decoding – AWS HealthImaging helps decode DICOM images quickly and accurately, especially for large datasets. AWS HealthImaging can easily process DICOM images at scale.
Getting Started With Implementation
For building a DICOM ingestion pipeline using AWS HealthImaging you must set up your AWS environment.
Steps to set up your AWS Environment
- Sign up for an AWS account
- Install the AWS CLI (as in this implementation we are using AWS CLI commands)
- Create an administrative user
- Create S3 buckets
- Create an IAM user (with AWS HealthImaging full-access permissions)
- Create an IAM role for an import job in AWS HealthImaging
- Managing Datastore
- Importing Imaging data
- Accessing Image sets
Sign up for an AWS account
Note – As a security measure, assign administrative access to an administrative user and use only the root user to perform tasks that require root user access.
- Login into the AWS account.
- Go to the sign up page and follow online instructions to create an AWS account.
Install the AWS CLI
To install AWS CLI on your machine, write the following commands.
1. Open Terminal and paste the command.
Figure 2
2. After AWS CLI is installed, type the following command to list that version of the AWS CLI.
Figure 3
Now that AWS CLI is installed on your machine, you can easily run AWS commands.
Create an administrative user
After you sign up to your AWS account, create an administrative user.
Steps to create an administrative user
- Enable IAM Identity Center.
- Grant administrative access to an administrative user in the IAM identity center.
Create S3 Bucket
To import DICOM images into the AWS HealthImaging service, it is important to create two S3 buckets, one for storing input data and one for storing output data.
For this, we will specify the following s3 input and output buckets in the IAM role for import jobs.
Steps to create S3 Buckets
1. Open Terminal and paste the command to create a bucket.
Figure 4
It will create a s3 bucket with the name dicomimage.
Output
Figure 5
2. Now to create a folder in s3 bucket with name input and output write the following command.
Figure 6
Figure 7
It will create two folders in the dicomimage bucket with name input and output folder.
Output
Figure 8
Create an IAM (with AWS HealthImaging full-access permissions)
For accessing AWS HealthImaging service create an IAM user.
- Go to the AWS Management Console in your AWS account, choose the user, and assign the AWS HealthImaging full access managed policy to the IAM User.
Create an IAM role for an import job in AWS HealthImaging
To import DICOM data from the s3 bucket to the AWS HealthImaging service, creating an IAM role with an attached user policy will grant access to the s3 bucket for reading DICOM images for further import job processing results.
Steps to create an IAM role for import job
1. Use the IAM console and create a role name importjob.
2. Attach an IAM permission policy to the IAM role. This policy will grant access to both s3 input and output buckets. Attach the permission policy below to the IAM role importjob.
Figure 9
3. Also, attach below given trust relationship policy to the importjob IAM role.
Figure 10
Replace accountId , region, and datastoreId with your specific AWS account.
Managing Datastore
It is important to create a data store in AWS HealthImaging to store the results of your DICOM image file.
1. Creating a data store
Write the following command on AWS CLI
Figure 11
It will create a data store with the name DICOM on your AWS HealthImaging service.
2. Getting created datastore properties.
Write the following command on AWS CLI.
Figure 12
It will print all the information of the data store created on your AWS HealthImaging service.
3. Listing Data store
Write the following command on AWS CLI
Figure 13
It will print all the data stores created on your AWS HealthImaging service.
Importing Imaging data
After creating a data store, you will import your medical imaging data from your AWS s3 input bucket to your AWS HealthImaging service data store.
For this, you have to create an import job that will import data from S3 to the data store, list all the information of the DICOM image file in the form of an Imageset, and save the data into the S3 output bucket.
1. Starting an import jobs
Write the following command on AWS CLI.
Figure 14
Output
Figure 15
Figure 16
Like this, it will store data from DICOM images in the s3 output folder as imageset.
2. Getting import job properties
Write the following command in AWS CLI
Figure 17
It will print the information of the created import job.
3. Listing import jobs
Write the following command in AWS CLI
Figure 18
It will print all the import jobs created on AWS HealthImaging.
Accessing Image set
An image set is an AWS concept for grouping information extracted from a DICOM image file. It combines metadata and image frames(Pixel data).
1. Searching image sets
Write the following command to search the image set extracted from the DICOM image.
Figure 19
It will list the result of the image set extracted from the DICOM image imported into the AWS HealthImaging data store.
2. Getting image set properties
Write the following command on AWS CLI.
Figure 20
It will list the properties of the image set created.
3. Getting image set metadata
Write the following commands on AWS CLI
Figure 21
It will give the compressed file of imageset data, which will contain JSON with all metadata information of the DICOM image.
4. Getting image set pixel data
Write the following commands on AWS CLI.
Figure 22
It will provide the pixel data of the DICOM image from the image set and convert it into a .jph extension, which is basically HTJ2K decoding. To view it, you can use different HTJ2K libraries.
Output
Figure 23
Conclusion
In conclusion, DICOM Ingestion Pipeline for AWS HealthImaging provides an efficient solution for managing medical imaging data in the cloud.
By using it, the healthcare industry builds a pipeline that provides seamless storage, integration, and retrieval of medical images. It can also handle large volumes of data, support parallel processing, and integrate with existing systems.
FAQs
The benefits of using a DICOM Ingestion Pipeline on AWS HealthImaging is that it enables the sharing, storage and analysis of large medical imaging data. AWS HealthImaging also reduces costs up to 40% by using advanced techniques of compression and storing copies of images in the cloud.
We can ensure data security in a DICOM Ingestion Pipeline on AWS by using various methods, such as multi-factor authentication (MFA), setting up APIs, and using user activity logging with AWS services such as CloudTrail.
There are many challenges in implementing DICOM Ingestion on AWS. For example, DICOM files are very large and contain high-resolution images and metadata, so transferring these files across the network requires time and high bandwidth. Also, making the pipeline secure is a challenge because there is a high chance of malware and an increasing frequency of cyber attacks targeting the healthcare system.
Best Practices for Managing DICOM Ingestion on AWS include creating a scalable architecture that can easily handle the volumes of DICOM data. Take advantage of different AWS services, such as creating Amazon S3 for storage, Lambda for serverless processing, Cloudwatch to log the process, and many more.