DICOM プラグイン
DicomPluginで医療画像を表示
DICOM プラグインは Doconut に医療画像ビュー機能を追加します:マルチフレーム DICOM ファイルはアニメーションの概要、個別フレーム、またはその両方としてレンダリングされます。DICOM は プラグイン専用フォーマット であり、このプラグイン(およびそのライセンス機能)がなければ、.dcm ファイルはまったく開くことができません。
パッケージのインストール
dotnet add package Doconut.NET6.Dicomバージョン指定なしのコマンドは最新の安定版リリースをインストールします。プラグインを現在の 26.7.0 リリースに固定するには、バージョンを別途指定します:
dotnet add package Doconut.NET6.Dicom --version 26.7.0DICOM パッケージは Doconut.NET6 と同じバージョンに保ってください。パッケージ ID は Doconut.NET6.Dicom で、.26.7.0 はダウンロードされた .nupkg ファイル名にのみ現れます。
プラグインの登録
builder.Services.AddDoconut(options =>
{
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});プラグイン(Name: "Doconut DICOM Viewer")は .dcm と .ima 拡張子用のビューアを登録し、Dicom 機能でゲートします。欠如している、または一時的でない権限が不十分な場合、通常は AddDoconut() の実行時に失敗します。組み込みビューアがこれらの形式を処理しないため、後で機能が利用できなくなるとランタイムゲートもハードに失敗します:
LicenseException: This document type requires the 'Dicom' plugin license.DICOM ファイルのオープン
var token = await viewer.OpenDocumentAsync(path, new DicomConfig
{
DisplayMode = DicomDisplayMode.AnimationAndFrames
});表示モード
マルチフレーム DICOM ファイルは 3 つの方法で提示できます(DicomDisplayMode):
| モード | 生成されるページ | 用途 |
|---|---|---|
AnimationOnly | ページ 1 = すべてのフレームをループするアニメーション GIF | 迅速なシネマティックレビュー |
FramesOnly | ページ 1..N = フレームごとの静的 PNG | フレーム単位の診断ナビゲーション |
AnimationAndFrames (default) | ページ 1 = アニメーション GIF、ページ 2..N = 静的フレーム | 1 つのドキュメントで概要と詳細を提供 |
アニメーションのタイミングは AnimationFrameDelayMs(デフォルト 100 ms = 10 FPS;GIF の粒度は 10 ms 単位)と LoopCount(0 = 無限ループ)で制御されます。
解像度
DicomConfig はデフォルトで軸ごとに 100 DPI でレンダリングします。解像度プロパティには知っておくべきフォールバックチェーンがあります:HorizontalResolution/VerticalResolution を明示的に設定しない場合、設定されていれば BaseConfig.ImageResolution に従い、設定されていなければ 100 にフォールバックします。
// Uniform bump via the base property…
new DicomConfig { ImageResolution = 150 };
// …or per-axis control
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };.NET 6 における DICOM メタデータの利用可否
DICOM ページのレンダリング、個別フレーム、アニメーション、変換、ウォーターマークはサポートされています。テクニカルタグメタデータは、メタデータリーダーに .NET 6 ビルドがないため、.NET 6 パッケージでは利用できません。
Viewer.GetDicomMetadataAsync(token) は DICOM セッションに対して null を返し、1 回限りの警告をログに記録します。対応する ?token=…&meta ミドルウェアリクエストは、安定したエラーコード dicom_metadata_unsupported とともに HTTP 501 Not Implemented を返します。テクニカルな DICOM メタデータが必要な場合は .NET 8 パッケージを使用してください。
完全な構成リファレンス
完全な DicomConfig プロパティテーブルは API Reference → Format Configs にあります。リファレンスアプリの拡張子ごとのスイッチからの実運用例は次のとおりです:
".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 を返す | 想定された .NET 6 の制限です;レンダリングには影響しません |
このページは役に立ちましたか?