7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Databricksで医療画像データDICOMを活用する方法(1/2)

Last updated at Posted at 2023-02-15

株式会社NTTデータ Data & Intelligence事業部nttd-saitouyun です。
本記事は長文になってしまったため、2回に分けてお伝えします。

はじめに

私はDatabricksのエバンジェリストとして活動しております。
その活動の中でお客様のデータ活用の課題や要望をお伺いすることが多いのですが、「DICOMデータを活用したい」とご要望をいただいた際に、私の不勉強でお役立てできなかったため、今回は勉強も兼ねて、「DICOM」と「DICOMをDatabricksで活用する方法」 について調べた結果をご紹介します。

本記事では、「DICOM」と DICOMデータをPythonで扱うライブラリである「PyDicom」の基本操作と大規模環境における課題を説明します。後編では、「DICOMをDatabricksで活用する方法」をご説明します。

DICOMとは

Wikipediaで調べると次のように書かれています。

名称は Digital Imaging and COmmunications in Medicine(医療におけるディジタル画像と通信) の略である。米国放射線学会(英語版)とアメリカ電機工業会が制定した規格で、異なる製造業者の医用画像機器間で画像転送を可能とすることを目的としている。

要するに、医療用の画像データのようです。拡張子は「dcm」。
ダブルクリックして開けるようなものではなく、「DICOMビューア」というツールを使って画像を表示する必要があるようです。
下記画像は、口述するPyDicomに含まれるサンプルデータ(CT_small.dcm)を表示したものです。
image.png

また、画像データだけではなく、患者、撮影装置、医療機関の情報などのメタデータ1を1つのファイルに格納しています
※メタデータの一覧はこちらを参照してください。
※本書では分かりやすさを重視し、画像データの付随情報をメタデータと呼びます。正確には、DICOMでは画像データもメタデータの一種として定義されています。

よって、DICOMデータは準構造化データ寄りの「非構造化データ」 と呼べるのではないでしょうか。

さらに、このメタデータには、患者名,ID番号,生年月日,撮影日,撮影施設 などの個人情報に関わるデータが含まれているため、セキュリティの考慮も必要です。 アクセス制御だけでなく、匿名化も場合においては必要で、DICOM用の匿名化ツールなどもあるようです。

以上のような特性もあり、オブジェクトストレージにファイルだけ蓄積するのはややリスクがありそうです。
元データと合わせてメタデータの管理を実施していく必要がありそうですが、非構造化データのメタデータ管理って地味に大変ですよね・・・




ここからは、どのようにDICOMデータを処理していくかを見ていきます。

PyDicomとは

PyDicomは、PythonでDICOMデータを取り扱うライブラリです。 先ほど記載した画像のようなサンプルデータも含まれています。

PyDicomの基本操作

インストールは、ベーシックに pip install pydicom です。
サンプルデータは site-packages 配下の/pydicom/data/test_files/にあります。

ファイル読み込み

以下のように実施します。

import pydicom

path = "・・・/site-packages/pydicom/data/test_files/CT_small.dcm"
dataset = pydicom.filereader.dcmread(path)

メタデータの一覧表示

メタデータは以下のコードを実行すると取得できます。

print(dataset.dir())

出力結果は以下のようになります。患者情報(PatientXXXなど)、撮影装置(Manufacturer、ManufactureModelName、SoftwareVersionsなど)、医療機関(InstitutionNameなど)がメタデータとしてあることがわかります。
image.png

メタデータの取得

いくつかメタデータの値を取得してみます。

print(dataset.PatientID)
print(dataset.PatientName)
print(dataset.PatientWeight)
print(dataset.StationName)
print(dataset.StudyDate)
print(dataset.StudyDescription)

以下のような出力が得られました。サンプルデータだからか適当な値が入っています。
image.png

画像データの取得

画像データは、PixelData というキーワードでアクセスできます。

print(dataset.PixelData)

以下のようにバイナリ形式でデータが保存されていることがわかります。このデータを使い、画像ファイルを保存することもできます。
image.png

画像データの表示

この画像を表示するには、matplotlibを使って以下のコードを実行します。PixelDataではなく、pixel_array キーワードを使っていることにご注意ください。

import matplotlib.pyplot as plt
plt.imshow(dataset.pixel_array, cmap=plt.cm.gray)

image.png

ということで、基本的なDICOMデータの扱い方をご紹介しました。
より詳しい記事を書いている方もいらっしゃるので、詳細は調べてみてください。

Pydicomの課題

Pydicomはシングルノードで動くことを前提にしたライブラリになります。よって、DICOMデータが増えてくるとデータを処理しきれない可能性があります。 また、Amazon S3などのオブジェクトストレージに蓄積したデータをサーバにダウンロードして処理するのも大変です。

では、Apache Sparkを活用して、オブジェクトストレージにデータを配置したまま、大量のデータを処理する方法はあるのでしょうか?
調べてみると、Databricks ソリューションアクセラレータで公開されていることがわかりました。

おわりに

後編では、大規模環境においても DICOMデータを扱えるようにするためのソリューションを「DICOMをDatabricksで活用する方法」としてご紹介します。

仲間募集中!

NTTデータ Data&Intelligence事業部 では、以下の職種を募集しています。

1. 「クラウド技術を活用したデータ分析プラットフォームの開発・構築(ITアーキテクト/クラウドエンジニア)」の募集 クラウド/プラットフォーム技術の知見に基づき、ITアーキテクトまたはPMとして、DWH、BI、ETL領域における、ソリューション開発の推進や、コンサルティング工程のシステムグランドデザイン策定時におけるアーキテクト観点からの検討を行う人材を募集しています。

https://nttdata.jposting.net/u/job.phtml?job_code=808

2. AI/データ活用を実践する「クラウド・ソリューションアーキテクト」の募集 AI/データ活用を実践する「クラウド・ソリューションアーキテクト」として、クラウド先進テクノロジーを積極活用し、お客様のビジネス価値創出活動を実践。AI/データ活用の基本構想立案コンサルティングからクラウドプラットフォーム提供・活用を支援しています。お客様のAI・データ活用を支援するクラウド・ソリューション提案、アーキテクチャ設計・構築・継続活用支援(フルマネージドサービス提供)、および最新クラウドサービスに関する調査・検証で、クラウド分析基盤ソリューションのメニュー拡充を実施する人材を募集します。

https://nttdata.jposting.net/u/job.phtml?job_code=807



また、取り扱う主なソリューションについては、以下のページも参照ください。

ソリューション紹介

Trusted Data Foundation について ~データ資産を分析活用するための環境をオールインワンで提供するソリューション~ 最新のクラウド技術を採用して弊社が独自に設計したリファレンスアーキテクチャ(Datalake+DWH+AI/BI)を顧客要件に合わせてカスタマイズして提供します。 可視化、機械学習、DeepLearningなどデータ資産を分析活用するための環境がオールインワンで用意されており、これまでとは別次元の量と質のデータを用いてアジリティ高くDX推進を実現できます。

https://enterprise-aiiot.nttdata.com/tdf/

  1. 本書では分かりやすさを重視し、画像データの付随情報をメタデータと呼びます。正確には、DICOMでは画像データもメタデータの一種として定義されています。また、「DICOM File Meta Information」という言葉もあるため混同しないようご注意ください。

7
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?