我正在尝试检查是否有一种方法可以从私有DICOM标签中提取VR (值表示)。
我知道DicomObject.vROf:
http://www.dcm4che.org/docs/dcm4che2-apidocs/org/dcm4che2/data/DicomObject.html#vrOf(int)
如果没有为此私有标记配置VRMap,则返回UN!我想做一些类似的事情:
vR = dcmObj4.vrOf(0X0051100b).toString();
if("LO".equals(vR)) {
log.info("VR of acquisitionMatrix is: " + vR);
acquisitionMatrixX = dcmObj4.getString(0X0051100b, VR.LO);
} else if ("SH".equals(vR)) {
log.info("VR of acquisitionMatrix is: " + vR);
acquisitionMatrixX = dcmObj4.getString(0X0051100b, VR.SH);
} else if ("UN".equals(vR)) {
log.info("VR of acquisitionMatrix is: " + vR);
acquisitionMatrixX = dcmObj4.getString(0X0051100b, VR.UN);
} else {
log.info("VR of acquisitionMatrix is OTHER: " + vR);
}事实是,我正在尝试解析来自特定供应商/型号的dicom文件,我可以看到,即使对于相同的供应商/型号组合,也可以在相同的私有标记上使用不同的VRs!
我可以动态提取私有dicom标签的VR吗?
发布于 2015-06-05 18:56:46
好吧,在Private Tags的Dicom Standard中有一些规则来避免这种冲突。
请参阅私有创建者/标记用法的解释:Overview Private Tag Elements
发布于 2015-06-05 23:28:56
是的,您应该能够提取私有标记中的值。请注意,Private Creator数据元素VR始终为"LO“。当VR未知时,Value字段对小端/大端字节排序不敏感,并且不能是‘byteswapped’。因此,无论当前的传输语法如何,您都可以假定属性的Value Field以具有隐式VR编码的Little Endian字节顺序进行编码。
还要注意,UN的值表示的长度字段可以包含未知长度的值,在这种情况下,可以假设内容是用隐式VR编码的,并且PS 3.5节7.5.1具有与解析具有未知长度的数据元素有关的信息。
另外,7.8节还介绍了Private Data Element编码规则。
https://stackoverflow.com/questions/30664422
复制相似问题