医療画像を DICOM から JPG に変換することは、放射線アプリケーションがウェブポータルやモバイルビューアで検査結果を表示する必要がある場合に頻繁に行われる作業です。Aspose.HTML Cloud SDK for Python は、サーバー側での重い処理を担当する堅牢なライブラリを提供します。このガイドでは、Python で DICOM から JPG への変換をステップバイステップで実装する方法を学び、マルチスレッドオプションを検討し、REST ベースのワークフロー向けに cURL で同じサービスを呼び出す方法も紹介します。

DICOM から JPG への変換要件

放射線科のワークステーションは、迅速なプレビューのために軽量なJPGサムネイルとしてレンダリングする必要があるDICOMファイルを受け取ることがよくあります。開発者は次のようなソリューションを必要としています:

  • 外部の画像ライブラリに依存せずにバイナリ DICOM データを読み取ります。
  • 診断品質を維持しながら、JPG などの広くサポートされている形式に画像を変換します。
  • 大量のファイルを効率的に処理し、理想的には並列処理を行います。

デスクトップツールを使用した手動変換は時間がかかり、サーバーサイドのパイプラインにスケールしないため、最新の放射線ソフトウェアには自動化された API が不可欠です。

アプローチ: 最適化されたクラウド変換ワークフロー

Aspose.HTML Cloud SDK for Python は、変換ロジックを抽象化したクラウドベースの API を提供します。サービスは次のとおりです:

  • 生の DICOM バイトを受け取り、JPG バイトストリームを返します。
  • Aspose cloud で実行され、ローカルの DICOM パーサーが不要になります。
  • 画像品質、解像度、マルチスレッド実行の構成オプションを提供します。

認証の詳細については公式ドキュメントを参照し、このチュートリアルで使用される ConvertDocumentRequest クラスのAPI リファレンスをご覧ください。

PythonでDICOMからJPGへの変換を実装する

以下は、任意の放射線バックエンドに統合できる実用的なステップバイステップの実装です。

Aspose.HTML Cloud SDK for Python をインストールする

pip install asposehtmlcloud

資格情報で API クライアントを構成する

from asposehtmlcloud import HtmlApi, Configuration

config = Configuration()
config.api_key['api_key'] = api_key               # Replace with your actual API key
config.host = "https://api.aspose.cloud"

html_api = HtmlApi(config)

DICOM ファイルをメモリにロードする

with open(input_file, "rb") as f:
    dicom_bytes = f.read()

JPG 出力の変換リクエストを作成

from asposehtmlcloud import ConvertDocumentRequest

request = ConvertDocumentRequest(
    file=dicom_bytes,
    format="jpg"
)

JPG バイトをディスクに書き込む

jpg_bytes = html_api.convert_document(request)

with open(output_file, "wb") as out_f:
    out_f.write(jpg_bytes)

これらの手順により、DICOM から JPG への変換ワークフローが完了し、ユーティリティをより大きなパイプラインに統合したり、コマンドラインスクリプトから呼び出したりできるようになりました。

DICOMからJPGへの変換ユーティリティ - 完全コード例

次の例は、エンドツーエンドの完全なプロセスを示しています。

import os
from asposehtmlcloud import HtmlApi, Configuration, ConvertDocumentRequest

def dicom_to_jpg(input_file: str, output_file: str, api_key: str):
    # Configure Aspose.HTML Cloud SDK
    config = Configuration()
    config.api_key['api_key'] = api_key               # Replace with your actual API key
    config.host = "https://api.aspose.cloud"

# Initialize the API client
    html_api = HtmlApi(config)

# Read the DICOM file into memory
    with open(input_file, "rb") as f:
        dicom_bytes = f.read()

# Build the conversion request (target format: jpg)
    request = ConvertDocumentRequest(
        file=dicom_bytes,
        format="jpg"
    )

# Perform conversion – the response is a binary stream of the JPG image
    jpg_bytes = html_api.convert_document(request)

# Write the resulting JPG to disk
    with open(output_file, "wb") as out_f:
        out_f.write(jpg_bytes)

if __name__ == "__main__":
    # Example usage
    INPUT_DICOM = "sample.dcm"          # Path to your source DICOM file
    OUTPUT_JPG = "sample_converted.jpg" # Desired output path
    API_KEY = "YOUR_ASPOSE_CLOUD_API_KEY"

dicom_to_jpg(INPUT_DICOM, OUTPUT_JPG, API_KEY)

注: このコード例はコア機能を示しています。プロジェクトで使用する前に、ファイルパスや設定値を実際の環境に合わせて更新し、必要な依存関係がすべて正しくインストールされていることを確認し、開発環境で徹底的にテストしてください。問題が発生した場合は、公式ドキュメント または サポートチーム にお問い合わせください。

cURL を使用した REST API によるマルチスレッド変換

純粋な REST アプローチを好む場合、同じ変換は cURL コマンドで実行できます。これはコマンドラインの自動化や CI パイプラインとの統合に便利です。

  1. アクセス トークンを取得する
curl -X POST "https://api.aspose.cloud/connect/token" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. DICOM ファイルをアップロード
curl -X PUT "https://api.aspose.cloud/v4.0/html/storage/file/sample.dcm" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/dicom" \
     --data-binary "@sample.dcm"
  1. JPGへの変換をリクエスト
curl -X POST "https://api.aspose.cloud/v4.0/html/convert?format=jpg" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"FileName":"sample.dcm"}' \
     -o sample_converted.jpg
  1. 変換されたJPGをダウンロードする(直接保存されていない場合)
curl -X GET "https://api.aspose.cloud/v4.0/html/storage/file/sample_converted.jpg" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o sample_converted.jpg

これらのコマンドは、複数のファイルを同時に複数のアップロード/変換ペアを発行して並列に処理できるマルチスレッド変換ワークフローを示しています。完全な API の詳細については、公式 API ドキュメントをご覧ください。

DICOM から JPG への変換オプションの構成

SDKは出力を微調整することができます。一般的なオプションは次のとおりです:

  • 画像品質 - JPEG の圧縮レベル (0‑100) を調整します。
  • 解像度 - 高解像度出力のために DPI を設定します。
  • カラーモード - DICOM にカラー データが含まれている場合、グレースケールとカラーのいずれかを選択します。

リクエスト ペイロードでこれらのオプションを渡すことができます。たとえば、品質を設定するには:

request = ConvertDocumentRequest(
    file=dicom_bytes,
    format="jpg",
    options={"quality": 90}
)

サポートされているすべてのパラメータは、API リファレンスに記載されています。特に大規模な DICOM データセットを扱う場合は、ファイルサイズと診断の明瞭性の最適なバランスを得るために、これらの設定を試してみてください。

結論

PythonでのDICOMからJPGへの変換 は、Aspose.HTML Cloud SDK for Python を使用すると簡単になります。ライブラリは重い処理を担当し、高スループット環境向けにマルチスレッド実行を提供し、画像品質に対する細かな制御が可能です。本番環境での展開には適切な商用ライセンスを取得することを忘れないでください。価格情報は製品ページで確認でき、一時ライセンスページ から一時ライセンスを取得できます。上記のコードと cURL の例を使用すれば、信頼性の高い DICOM から JPG への変換をあらゆる放射線診断アプリケーションに統合できます。

よくある質問

Aspose.HTML Cloud SDK が DICOM 以外に変換できるファイル形式は何ですか?
SDK は、PDF、PNG、BMP、GIF、TIFF、および SVG を含む幅広い形式をサポートしています。完全なリストについては、ドキュメント を参照してください。

外部ツールをインストールせずに変換を実行できますか?
はい。変換は完全にクラウド上で実行されるため、ローカルの DICOM ライブラリや画像処理ツールは必要ありません。

マルチスレッド変換はどのようにパフォーマンスを向上させますか?
複数の変換リクエストを並行して発行することで、Aspose サーバー上の複数の CPU コアを活用でき、大量の DICOM ファイルの処理時間を短縮できます。

コマンドラインスクリプトで SDK を使用できますか?
もちろんです。提供された cURL の例はコマンドラインのワークフローを示しており、Python スクリプトはターミナルから直接実行することも、スケジュールタスクとして実行することもできます。

もっと読む