DICOM プラグイン

DicomPlugin で医療画像を表示

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

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

bash
dotnet add package Doconut.NETStandard.Dicom

バージョン指定なしのコマンドは最新の安定版リリースをインストールします。プラグインを現在の 26.8.0 リリースに固定したい場合は、バージョンを別途指定します:

bash
dotnet add package Doconut.NETStandard.Dicom --version 26.8.0

DICOM パッケージは Doconut.NETStandard と同じバージョンに保ってください。パッケージ ID は Doconut.NETStandard.Dicom で、.26.8.0 はダウンロードされた .nupkg ファイル名にのみ現れます。

プラグインの登録

csharp
builder.Services.AddDoconut(options =>
{
    options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});

プラグイン(Name: "Doconut DICOM Viewer")は .dcm と .ima 拡張子用のビューアを登録し、Dicom 機能で制御されます。欠如または不十分な一時的でない権利は通常 AddDoconut() 時に失敗します。これらの形式を処理できる組み込みビューアがないため、機能が後で利用できなくなるとランタイムゲートも厳しく失敗します:

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 (デフォルト)ページ 1 = アニメーション GIF、ページ 2..N = 静的フレーム1 つのドキュメントで概要と詳細

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

解像度

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 };

.NET Standard における DICOM メタデータの利用可否

DICOM ページのレンダリング、個別フレーム、アニメーション、変換、透かしはサポートされています。技術的なタグメタデータは、メタデータリーダーが .NET 8 ビルドのみで提供されているため、.NET Standard パッケージでは利用できません。

そのため Viewer.GetDicomMetadataAsync(token) は DICOM セッションに対して null を返し、1 回限りの警告をログに記録します。対応する ?token=…&meta ミドルウェアリクエストは、安定したエラーコード dicom_metadata_unsupported とともに HTTP 501 Not Implemented を返します。技術的な DICOM メタデータが必要な場合は .NET 8 パッケージを使用してください。

完全な構成リファレンス

DicomConfig の完全なプロパティテーブルは API Reference → Format Configs にあります。リファレンスアプリの拡張子ごとのスイッチからの実運用例は次のとおりです:

csharp
".DCM" or ".IMA" => new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames },

透かしとメモリ動作

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

マルチフレームの研究では、アニメーションとフレームごとの静的ページの両方を生成できます。AnimationAndFrames は最も豊富なナビゲーションを提供しますが、レンダリングとキャッシュのコストが最も高くなります。大規模な研究の場合は:

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

トラブルシューティング

症状確認項目
.dcm がサポートされていないと報告されるDicomPlugin の登録とパッケージのデプロイ
プラグイン追加後に起動が失敗するロードされたライセンスが Dicom を付与しているか
1 ページしか表示されないソースが単一フレームであるか、DisplayMode が AnimationOnly である可能性があります
アニメーションが速すぎるまたは遅すぎるAnimationFrameDelayMs を確認してください;実際の GIF タイミングは 10 ms 単位です
大きなマルチフレームファイルでメモリが増加する表示モード、解像度、ページキャッシュ、明示的なセッションクローズを確認してください
メタデータが null、または &meta が 501 を返すこのパッケージの想定される制限です;レンダリングには影響しません

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