DICOM プラグイン
DicomPlugin で医療画像を表示
DICOM プラグインは Doconut に医療画像ビュー機能を追加します:マルチフレーム DICOM ファイルはアニメーションの概要、個々のフレーム、またはその両方としてレンダリングされます。DICOM は プラグイン専用フォーマット であり、このプラグイン(およびそのライセンス機能)がなければ、.dcm ファイルは全く開くことができません。
.NET Framework 4.7.2 上では、DICOM ファイルはページ、フレーム、アニメーションすべてが完全にレンダリングされますが、技術メタデータ(DICOM タグ)は利用できません。
Viewer.GetDicomMetadataAsyncは常にnullを返し、ウィジェットのメタデータ要求は501 Not Implementedで応答します。タグが必要な場合はDoconut.NET8を使用してください。
パッケージのインストール
Install-Package Doconut.NETFramework.DicomDoconut.NETFramework と同じバージョンの DICOM パッケージを使用してください。
プラグインの登録
Doconut.DoconutHost.Initialize(options =>
{
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});プラグイン(Name: "Doconut DICOM Viewer")は .dcm と .ima 拡張子用のビューアを登録し、Dicom 機能で制御されます。ライセンスがこれを許可していない場合、DoconutHost.Initialize は Application_Start で例外をスローし、サイトはすべてのリクエストに空の 500 で応答します(理由は Windows イベントログにあります)。組み込みビューアがこれらの形式を処理しないため、機能が後で利用できなくなると、開くことは即座に失敗します:
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 = フレームごとに 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 にフォールバックします。
// Uniform bump via the base property…
new DicomConfig { ImageResolution = 150 };
// …or per-axis control
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };DICOM メタデータ
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 のケースは次のようになります:
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 | このパッケージでは想定通りです — 上部の注意を参照 |
このページは役に立ちましたか?