Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在自己的API中实现Dicom属性字典_Java_Attributes_Dicom - Fatal编程技术网

Java 如何在自己的API中实现Dicom属性字典

Java 如何在自己的API中实现Dicom属性字典,java,attributes,dicom,Java,Attributes,Dicom,您好 我目前正在尝试学习一些Java编程。为了做到这一点,我正试图做一些真正有用的东西。因为我在学习医学成像,我想我会用Java编写自己的Dicom Api Dicom标准的一部分是包含Dicom文件中使用的属性的数据字典。这些属性必须具有以下属性 (组、元素)说明 例如: (0x0002,0x0000)长度 (0x0002,0x0002)MediaStoredSOPClassUID (0x0002,0x0010)TransferSyntaxUID (0x0003,0x0003)长度 我想知道应

您好

我目前正在尝试学习一些Java编程。为了做到这一点,我正试图做一些真正有用的东西。因为我在学习医学成像,我想我会用Java编写自己的Dicom Api

Dicom标准的一部分是包含Dicom文件中使用的属性的数据字典。这些属性必须具有以下属性

(组、元素)说明

例如:
(0x0002,0x0000)长度
(0x0002,0x0002)MediaStoredSOPClassUID
(0x0002,0x0010)TransferSyntaxUID
(0x0003,0x0003)长度

我想知道应该如何在API中实现这些。我想到的选择是:

  • Enum,问题是唯一属性可能具有相同的描述

枚举属性{
长度(0x0002,0x0000),
长度(0x0003,0x0000,
}

  • 只有一些常量包含属性的静态类。还有名称问题
  • 包含此数据的xml文件
我真的很想使用xml来实现这一点,因为数据的表格化和易于访问。但有什么方法可以将其包含在我的Api中呢


~Timo Willemsen

映射最适合您,定义一个类来保存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>();

由于组和元素的组合是唯一的,因此您可能会遇到任何冲突

贴图最适合您,请定义一个包含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>();

由于组和元素的组合是唯一的,因此您可能会遇到任何冲突

为了便于访问,XML文件应该放在类路径中,以便您可以通过或通过获取其位置

要使用标准API读取/评估/写入XML文件,我可以推荐。如果XML文件相对较大(超过数十兆字节),那么我可以推荐更多


可选的是,如果文件不是很大,它是纯密钥值对,那么你也可以考虑,基本上扩展了<>代码> map .< /p> ,以便于访问,XML文件应该放置在类路径中,这样你就可以通过它的内容或它的内容得到它的位置。 要使用标准API读取/评估/写入XML文件,我可以推荐。如果XML文件相对较大(超过数十兆字节),那么我可以推荐更多


另一方面,如果文件不是很大,它是纯密钥值对,那么你也可以考虑用API来管理,它基本上扩展了<代码> MAP>代码> .< /P>

你可能还想研究其他的源代码,特别是包含一个基于XML和XSLT的验证器。研究其他来源的ant,特别是包含一个基于XML和XSLT的验证器。有几个可用于。

以下是PS 3.6-2008,作为GDCM中使用的XML:

如上所述,我还将添加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);
 } }

以下是PS 3.6-2008作为GDCM中使用的XML:

如上所述,我还将添加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);
 } }

好的。首先很抱歉。我认为我最初的问题有点模糊,所以我对它进行了编辑。很抱歉弄错了。这也是我想到的。唯一困扰我的是你回答的这一部分“在将字典文件中的每一行读入entry类对象后”我知道如何进行文件io。但要设计它,我仍然需要包含一个静态文件(xml、csv、txt)我的API中的文件。我看不到解决方法,将字典硬编码到java源代码中是不好的形式,如果属性被添加或从集合中抽象出来,将迫使您重新编译。包含这样一个文件有什么不好的呢?顺便说一句,我更喜欢使用csv文件,因为它对人类更具可读性。老实说,我没有理由不这样做好主意。谢谢。我会努力解决的。好的。首先,对不起。我认为我最初的问题有点模糊,所以我编辑了它。很抱歉弄错了。这也是我想到的。唯一让我困扰的是你答案的这一部分“在将字典文件中的每一行读入entry类对象后”我知道如何进行文件io。但要设计它,我仍然需要包含一个静态文件(xml、csv、txt)我的API中的文件。我看不到解决方法,将字典硬编码到java源代码中是不好的形式,如果属性被添加或从集合中抽象出来,将迫使您重新编译。包含这样一个文件有什么不好的呢?顺便说一句,我更喜欢使用csv文件,因为它对人类更具可读性。老实说,我没有理由不这样做好主意。谢谢。我会努力解决的。非常感谢!我不知道属性文件的正确性。结合Alon的答案,我想我可以正确地解决这个问题。非常感谢!我不知道属性文件的正确性。结合Alon的答案,我想我可以正确地解决这个问题。谢谢你提供的信息。Pixelmed是我的一个例子^^。我不知道ImageJ插件。感谢您提供的信息。Pixelmed是我的一个例子^^。我不知道ImageJ插件。