0

ご挨拶、

私は現在、いくつかのJavaプログラミングを学ぼうとしています。これを行うために、実際に役立つものを作ろうとしています。私は医用画像処理を勉強しているので、Java で独自の Dicom Api を作成します。

Dicom 標準の一部は、Dicom ファイルで使用される属性を含むデータ ディクショナリです。これらの属性には次のプロパティがあります。

(グループ要素)説明

例:
(0x0002,0x0000) 長さ
(0x0002,0x0002) MediaStoredSOPClassUID
(0x0002,0x0010) TransferSyntaxUID
(0x0003,0x0003) 長さ

これらを API にどのように実装すればよいか考えていました。私が考えたオプションは次のとおりです。

  • Enum、それに関する問題は、一意の属性が同じ説明を持つ可能性があることです。

enum Attributes{ Length(0x0002,0x0000), Length(0x0003,0x0000, }

  • プロパティを含むいくつかの定数のみを持つ静的クラス。また、名前の問題も存在します。
  • このデータを含む xml ファイル。

データの表形式と簡単なアクセスのため、これには xml を使用したいと思います。しかし、これを私のApiに含める方法はありますか?

〜ティモ・ウィレムセン

4

4 に答える 4

2

ClassLoader#getResource()アクセスを容易にするために、XML ファイルをクラスパスに配置して、 によってその場所またはその内容を取得できるようにする必要がありますClassLoader#getResourceAsStream()

標準 API で XML ファイルの読み取り/評価/書き込みを行うには、StAXをお勧めします。XML ファイルが比較的大きい (数十メガバイト以上) 場合は、VTD-XMLをさらにお勧めします。

または、ファイルがそれほど大きくなく、純粋なキーと値のペアである場合は、基本的に を拡張する API で簡単に管理できるプロパティ ファイルを検討することもできます。java.util.PropertiesMap

于 2009-12-31T13:54:49.740 に答える
1

マップが最適です。dicom エントリを保持するクラスを定義します。

public class DicomEntry
{
private: 
    private string group;
    private string element;
    private string vr;
    private string name;

    public string  key() { return String.format("(%s,%s)",group,element); } 
}

すべてのエントリを保持するマップも作成します

Map<string,DicomEntry> mp=new HashMap<string, DicomEntry>();

辞書ファイルからエントリクラスオブジェクトに各行を読み取った後 de、マップを追加します

 mp.put(de.key(), de)

グループと要素の組み合わせは一意であるため、衝突があります

于 2009-12-31T13:51:13.163 に答える
1

他のDICOMソースも調べたいと思うかもしれません。特に、 PixelMedには、XML および XSLT ベースのバリデーターが含まれています。ImageJでは、いくつかのDICOM プラグインを利用できます。

于 2009-12-31T14:40:35.240 に答える
1

GDCM で使用される XML としての PS 3.6-2008 は次のとおりです。

http://gdcm.svn.sf.net/viewvc/gdcm/trunk/Source/DataDictionary/Part6.xml?view=マークアップ

上記のように、VM と Retired フラグも追加します。

 public class DicomEntry {  private: 
     private ushort group;
     private ushort element;
     private string vr;
     private string vm;
     private boolean retired;
     private string name;
     public string  key() { return String.format("(%s,%s)",group,element);
 } }
于 2010-01-04T11:55:12.260 に答える