DICOM プラグイン

DicomPlugin で医療画像を表示

DICOM プラグインは Doconut に医療画像ビュー機能を追加します:マルチフレーム DICOM ファイルはアニメーションの概要、個々のフレーム、またはその両方としてレンダリングされます。DICOM は プラグイン専用フォーマット であり、このプラグイン(およびそのライセンス機能)がなければ、.dcm ファイルは全く開くことができません。

.NET Framework 4.7.2 上では、DICOM ファイルはページ、フレーム、アニメーションすべてが完全にレンダリングされますが、技術メタデータ(DICOM タグ)は利用できません。 Viewer.GetDicomMetadataAsync は常に null を返し、ウィジェットのメタデータ要求は 501 Not Implemented で応答します。タグが必要な場合は Doconut.NET8 を使用してください。

パッケージのインストール

powershell
Install-Package Doconut.NETFramework.Dicom

Doconut.NETFramework と同じバージョンの DICOM パッケージを使用してください。

プラグインの登録

csharp
Doconut.DoconutHost.Initialize(options =>
{
    options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});

プラグイン(Name: "Doconut DICOM Viewer")は .dcm と .ima 拡張子用のビューアを登録し、Dicom 機能で制御されます。ライセンスがこれを許可していない場合、DoconutHost.Initialize は Application_Start で例外をスローし、サイトはすべてのリクエストに空の 500 で応答します(理由は Windows イベントログにあります)。組み込みビューアがこれらの形式を処理しないため、機能が後で利用できなくなると、開くことは即座に失敗します:

text
LicenseException: This document type requires the 'Dicom' plugin license.

DICOM ファイルのオープン

csharp
var token = await viewer.OpenDocumentAsync(path, new DicomConfig
{
    DisplayMode = DicomDisplayMode.AnimationAndFrames
});

表示モード

マルチフレーム DICOM ファイルは、3 つの方法で提示できます(DicomDisplayMode):

モード生成されるページ使用用途
AnimationOnlyページ 1 = すべてのフレームをループするアニメーション GIF迅速なシネマティックレビュー
FramesOnlyページ 1..N = フレームごとに 1 枚の静的 PNGフレーム単位の診断ナビゲーション
AnimationAndFrames (default)ページ 1 = アニメーション GIF、ページ 2..N = 静的フレーム1 つのドキュメントで概要と詳細を提供

アニメーションのタイミングは AnimationFrameDelayMs(デフォルト 100 ms = 10 FPS;GIF のタイミングは 10 ms 単位)と LoopCount(0 = 無限ループ)で制御されます。

ビューアはページ 1 がアニメーションであることを HEAD リクエストを送ることで検出します。そのため、DocImage.axd ハンドラは Web.config で HEAD を受け入れる必要があります(verb="GET,HEAD,POST"、インストール を参照)。これが設定されていないと、IIS が Doconut が実行される前に 404 を返し、アニメーション検出が機能しません。

解像度

DicomConfig はデフォルトで軸ごとに 100 DPI でレンダリングします。HorizontalResolution/VerticalResolution を明示的に設定しない場合、設定されていれば BaseConfig.ImageResolution に従い、設定がなければ 100 にフォールバックします。

csharp
// Uniform bump via the base property…
new DicomConfig { ImageResolution = 150 };

// …or per-axis control
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };

DICOM メタデータ

csharp
var metadata = await viewer.GetDicomMetadataAsync(token);
// On .NET Framework this is always null: the DICOM metadata reader is not available for this
// target. Pages, frames and animation render normally.

このメソッドは .NET 8 パッケージと共有するコードがコンパイルできるようにこのパッケージに存在しますが、DICOM タグの読み取りには .NET Framework 用のビルドがないコンポーネントが必要です。タグがないことを前提に UI を設計してください — 例えば、結果が null の場合はメタデータパネルを非表示にします。

完全な構成リファレンス

完全な DicomConfig プロパティテーブルは フォーマット設定 にあります。拡張子ごとの選択では、DICOM のケースは次のようになります:

csharp
case ".DCM": case ".IMA":
    return new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames };

透かしとメモリ動作

通常のページ透かしの判断は DICOM 出力にも適用されます。アニメーション出力の場合、各 GIF フレームに透かしが付与されるため、再生中ずっとマークが表示されます。カスタム DocOptions.Watermark はライセンスがカスタム透かしを許可する場合にのみ使用でき、評価用透かしの代替にはなりません。

マルチフレームの研究では、アニメーションとフレームごとの静的ページの両方を生成できます。AnimationAndFrames は最もリッチなナビゲーションを提供しますが、レンダリングとメモリコストも最高になります — そして単一サーバー上ではそのメモリは IIS ワーカープロセスに属します。大規模な研究の場合は:

  • FramesOnly を使用してください。フレーム検査が再生より重要な場合。
  • メモリを測定せずに解像度の両軸を上げることは避けてください。
  • 研究がもう開かれていないときは、セッションを明示的に閉じてください。
  • 繰り返しアクセスが保持された画像に見合う場合にのみ、CachePages を有効にしてください。

トラブルシューティング

症状確認項目
.dcm がサポートされていないと報告されるDicomPlugin の登録とパッケージのデプロイ
プラグイン追加後、すべてのリクエストが空の 500 で応答するライセンスが Dicom を許可しているか — Windows イベントログ、ASP.NET ソース
1 ページしか表示されないソースが単一フレームであるか、DisplayMode が AnimationOnly である可能性があります
ページ 1 がアニメーションしないWeb.config のハンドラが HEAD を受け入れているか
アニメーションが速すぎるまたは遅すぎるAnimationFrameDelayMs;GIF のタイミングは 10 ms 単位です
大きなマルチフレームファイルでメモリが増加する表示モード、解像度、ページキャッシュ、明示的なセッションクローズ
メタデータが常に nullこのパッケージでは想定通りです — 上部の注意を参照

このページは役に立ちましたか?