AWS HealthImaging で医療画像データをインポートする手順を確認してみた

AWS HealthImaging で医療画像データをインポートする手順を確認してみた

Clock Icon2025.07.07

はじめに

AWS HealthImaging に医療画像データ(DICOM)を保存する手順を確認してみた結果を共有します。

事前準備

検証データについて

医療画像データの DICOM データは以下の記事で紹介した方法で取得しました。

https://dev.classmethod.jp/articles/aws-healthimaging-getting-started-medical-data/

2 つのS3バケット

HealthImging に DICOM データをインポート時に S3 バケットの指定が 2 回あります。便宜上分けて 2 つの S3 バケットを用意してください。

  1. DICOM データをアップロード先の S3 バケット
  2. HealthImging のインポートジョブ実行結果が出力先される S3 バケット

医療画像データをアップロードまでの手順

S3 バケットへデータ転送

事前に S3 バケットへ DICOM データをアップロードが必要です。データの保存先の注意事項は S3 バケット直下に保存すると、HealthImging へインポートジョブが失敗します。そのため、なにかしらのプレフィックス(今回は test-data/)の配下へ保存してください。

$ s5cmd cp . s3://healthimaging-input-images/test-data/

インポートエラーの例

pageTitle_startDicomImportJob___AWS_HealthImaging___us-west-2-2.png

データストア作成

ここからは HealthImging の操作になります。まず、データストアを作成します。DICOM データの管理する単位のことです。

pageTitle_dataStoresList___AWS_HealthImaging___us-west-2.png

名前を決めて作成するだけです。

pageTitle_createDataStore___AWS_HealthImaging___us-west-2.png

インポート

S3 バケットに保存した DICOM データを先程作成したデータストアに取り込みます。

pageTitle_dataStoreDetails___AWS_HealthImaging___us-west-2.png

アップロードした S3 バケット名とプレフィックスを指定します。実行結果の保存先として S3 バケットも指定します。サービスロールは今回はじめてのため新規作成としました。

pageTitle_startDicomImportJob___AWS_HealthImaging___us-west-2.png

インポートジョブを実行します。

pageTitle_importJobDetails___AWS_HealthImaging___us-west-2.png

ファイル数と容量に依りますが 5 分ほど待ちインポートジョブが成功しました。

pageTitle_importJobDetails___AWS_HealthImaging___us-west-2-2.png

結果確認

データセットに登録されたデータが確認できます。今回検証に使用した NCI Imaging Data Commons から取得した DICOM データなのですが、患者名など個人を特定できるデータはマスキングがされています。患者名はダミーとなっていますが、メタデータも確認できますね。

pageTitle_dataStoreDetails___AWS_HealthImaging___us-west-2-2.png

1 つのデータを開いてみると JSON 形式のメタデータを確認できました。ダウンロードボタンを押してみると同じ JSON ファイルがダウンロードされました。

pageTitle_imageSetDetails___AWS_HealthImaging___us-west-2.png

インポートジョブの実行結果

インポートジョブの実行結果は S3 バケットに以下の階層で出力されました。

$ s3-tree healthimaging-import-results
healthimaging-import-results
└── 773d6afe418c4667a23a24531186ddf9-DicomImport-07a7343eea780139687f98e8ed154ed8
    ├── FAILURE
    │   └── failure.ndjson
    ├── SUCCESS
    │   └── success.ndjson
    └── job-output-manifest.json

成功した結果のログを確認してみると、ファイル毎の情報が載っていました。

success.ndjson
{"inputFile":"test-data/02b75a22-2b25-4311-bc19-8ffcf2b65df5.dcm","importResponse":{"imageSetId":"9014a03fae2db79848ba32e64f599e21","imageSetVersion":1,"isPrimary":true}}
{"inputFile":"test-data/4da174ae-c274-4dd3-8188-a77ae73e3144.dcm","importResponse":{"imageSetId":"9014a03fae2db79848ba32e64f599e21","imageSetVersion":1,"isPrimary":true}}
{"inputFile":"test-data/e6008435-39c3-4144-b052-aa3eff45f08c.dcm","importResponse":{"imageSetId":"9014a03fae2db79848ba32e64f599e21","imageSetVersion":1,"isPrimary":true}}
{"inputFile":"test-data/a98060ae-8e73-45ac-8566-f80e96df4d38.dcm","importResponse":{"imageSetId":"9014a03fae2db79848ba32e64f599e21","imageSetVersion":1,"isPrimary":true}}
{"inputFile":"test-data/58b19a07-df0b-4ab2-9826-2a6ec72b9d06.dcm","importResponse":{"imageSetId":"9014a03fae2db79848ba32e64f599e21","imageSetVersion":1,"isPrimary":true}}

まとめ

S3 バケットに DICOM データをアップロードさえできれば、HealthImging へのインポートは非常に簡単です。

おわりに

s5cmd コマンドを利用して日本からオレゴンの S3 バケットへデータを転送しました。今回はじめて s5cmd コマンドでアップロードしてみたのですが、約 2000 ファイル、合計 1.1GB のファイルを数分で転送できました。海外への転送でも並列転送が効いてのか非常に早かったです。今度 AWS CLI との転送速度比較してみたいと思います。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.