問題タブ [fo-dicom]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Fo-Dicom CMove SCP の適切な実装
fo-dicom を使用して超高速の PACS サーバーを実装しました。この時点での唯一の本当の問題は、CMove 要求の処理です。
IDicomCMoveProvider には 1 つのメソッドIEnumerable<DicomCMoveResponse> OnCMoveRequest(DicomCMoveRequest request);
がありますが、実装した方法は間違っているように見え、かなり遅いです。
具体的には CMove メソッド内で、スタディを受信する必要があるモダリティに送信する新しい CStore リクエストを作成しています。インスタンスごとに、新しい CStore リクエスト、新しい DicomClient を作成し、それを送信して応答を待ちます。次に発生するのは遅い部分です。各インスタンスは、DICOM 通信のシバン、接続、関連付け、インスタンスの送信、分離、切断をすべて実行し、研究全体を送信するには時間がかかります。
私の質問は、これを適切に実装して、1 つの接続のみを開き、すべての画像を送信して閉じるようにする方法です。これが fo-dicom でどのように行われるかの例が理想的です。
c# - fo-dicom、DicomTag RegionLocationMinX0 および PhysicalDeltaX を取得
以下を使用して、fo-dicom を使用していくつかの dicom タグの値を取得しました。
ulong imageMin_x = file.Dataset.Get< ulong >(DicomTag.RegionLocationMinX0);
double delta_x = file.Dataset.Get< double >(DicomTag.PhysicalDeltaX);
値は両方とも 0 です。Matlab dicominfo() を使用してタグを表示すると、ゼロ以外の値になります。fo-dicom を使用して C# で取得するにはどうすればよいですか?
ありがとう。
c# - fo-dicomでdicomアイテムの完全な文字列要素を取得するには?
fo-dicom を使用して、放射線治療計画の文字列を dicom ファイルで取得しようとしています。あなたにとってはそれほど難しくないようですが、正しいコマンドが見つからないため、行き詰まっています。
などの計画をフィルタリングしていましたLeaf/Jaw Positions
。VS デバッグ モードで表示される文字列値は"-35//35"であり、DICOM エディターにも表示されます。しかし、出力は私に値-35しか与えません。私のコードは
したがって、これにより、言及された最初の値のみが取得されます。オーバーウォッチのデバッグで最後Get<string>()
をGet<Dicom.DicomElement>()
何か他のものに変更すると、文字列全体を再び見ることができますが、印刷することはできません。
私がここで調べたようにC# Split A String By Another Stringまたは.NET の改行で文字列を分割する最も簡単な方法? コードを編集して試してみました
しかし、文字列としてstring
受け入れることができず、最後の行でカットされた文字列を再度取得するだけです。Dicom.DicomElement
Get<string>()
私が何か間違ったことをした場所と、このアイテムの完全な文字列を取得する方法を見つけるのを手伝ってくれることを願っています.
c# - fo-dicom による Dicom シーケンスの作成
DICOM ファイルとして保存された放射線治療計画から情報を抽出した後、私の問題は別のものになりました。
(例) を使用して、既存のプランのアイテムを追加または更新できることを知っています。
シーケンスで DicomTags を処理することでさえ、(eg) の問題ではありません。
しかし、完全な新しいシーケンスを作成し、そこに情報を保存することが可能かどうか疑問に思っています。これが必要な場合は、1 つのアイテムだけでなく、このアイテムに関するより多くの情報を作成する必要があることを私は知っています。
fo-dicom API ドキュメントで、Dicom.IO.Writer
名前空間を見つけました。ざっと見ましたが、期待していたものは見つかりませんでした。私の最初の本能に従って、私はこれを書いたでしょう
また、コンストラクターはオプションのみを受け取りたいため、他のコマンドラインDicomFileWriter file = new DicomFileWriter(...);
は機能しません。他のDicomWriter()
コンストラクターはこれに似ています。
file.Dataset
また、新しいタグを作成する可能性もチェックしましたが、成功しませんでした。だから、あなたの誰かが私が間違ったステップをしたヒントを教えてくれることを願っています.