覆盖 DICOM 中的像素数据时应替换哪些 DICOM UID?

2024-01-26

我正在尝试从现有文件创建一个新的 DICOM 文件(实例),并在其中更改像素数据。

我知道在替换像素数据时需要更改一些 UID。目前我正在生成SOPInstanceUID, MediaStorageSOPInstanceUID and ReferencedSOPInstanceUID凡适用。

是否需要更改其他一些 UID 才能获取有效的 DICOM 文件?如果您能指出在标准中的何处查找此内容,将会很有帮助。


以下是讨论 UID 唯一性的规范中的引用:

Unique Identifiers (UIDs) provide the capability to uniquely identify a wide variety of items. They guarantee uniqueness across multiple countries, sites, vendors and equipment. Different classes of objects, instance of objects and information entities can be distinguished from one another across the DICOM universe of discourse irrespective of any semantic context.
PS 3.5 2017a - Data Structures and Encoding - 9 Unique Identifiers (UIDs) http://dicom.nema.org/medical/dicom/current/output/html/part05.html#chapter_9

如果您要更改像素数据(将压缩(传输语法)更改为有损或一起覆盖),则必须更改SOP Instance UID (0008,0018).

About Media Storage SOP Instance UID (0002,0003)正如您所注意到的,它属于第 2 组,即文件元信息标头。这些标签仅在您将实例序列化到硬盘时出现。这应该与以下值具有相同的值SOP Instance UID (0008,0018)。因此,如果你改变其中之一,你也应该改变其他。请参阅this https://stackoverflow.com/q/32689446/5779732规范中的答案和以下部分:

C.12.1.1.1 SOP Class UID, SOP Instance UID
The SOP Class UID and SOP Instance UID Attributes are defined for all DICOM IODs. However, they are only encoded in Composite IODs with the Type equal to 1. See Section C.1.2.3. When encoded they shall be equal to their respective Attributes in the DIMSE Services and the File Meta Information header (see PS3.10 Media Storage).
PS3.3 2021a - Information Object Definitions - C.12.1.1.1 http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.12.html#sect_C.12.1.1.1

The Referenced SOP Instance UID (0008,1155)是对其他实例的引用。这取决于您是否需要根据您的情况进行更改;一般不需要。请参阅this https://stackoverflow.com/a/60828951/5779732回答有关引用的 SOP 实例 UID 的更多详细信息。

The Transfer Syntax UID (0002,0010)需要根据您应用的新传输语法进行更改。在覆盖像素数据时,如果要更改它,请相应地更改 UID。

The SOP Class UID (0008,0016) and Media Storage SOP Class UID (0002,0002)定义您的 SOP 类。仅更改像素数据并没有改变它。所以你不需要改变这个UID。

The Implementation Class UID (0002,0012)与创建者相关联。无需改变。

关于的决定Study Instance UID (0020,000D) and Series Instance UID (0020,000E)取决于您的用例。这取决于您希望用户如何处理新创建的实例。比如说,在为研究创建报告时,许多实现不会更改研究 IUID,而是创建新系列(即新系列 IUID)。

更多详情请参考以下回答:
https://stackoverflow.com/a/46316162/5779732 https://stackoverflow.com/a/46316162/5779732
https://stackoverflow.com/a/53775161/5779732 https://stackoverflow.com/a/53775161/5779732

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

覆盖 DICOM 中的像素数据时应替换哪些 DICOM UID? 的相关文章

  • Typescript Node.js 应用程序中的 guid/uuid

    我尝试做一个uuid v 3 0 1 包在 Node Typescript 应用程序中工作 但我不确定应该导入什么以及如何使用它 This is index d ts from types uuidv 2 0 29 declare name
  • 如何计算MPR的dicom切片之间的空间?

    由于显示MPR view基于 Dicom 我用一系列 dicom 文件制作了一个 3D 数组 我展示它来自Coronal and Sagittal sides My 3D array includes z count of dicoms c
  • AttributeError:使用与后端无关的 GUID 类型时,“UUID”对象没有属性“替换”

    我想使用 SQLAlchemy 1 1 5 在 Postgresql 数据库中拥有一个 uuid 类型的主键 id 并使用 pg8000 适配器连接到数据库 我用的是与后端无关的 GUID 类型 recipe http docs sqlal
  • 从相同的字符串生成相同的UUID

    我想从随机字符串生成一个UUID字符串 以便相同的输入字符串生成相同的UUID 我不关心从 UUID 获取输入字符串 作为迁移的一部分 我需要它来确定性地转换数据库中的密钥 以便并行操作的不同客户端收敛到相同的结果 接受的答案这个帖子 ht
  • 在 SQLite 中使用 UUID

    是否可以使用UUID https en wikipedia org wiki Universally unique identifier值作为 SQLite 中的主键 我发现有关该主题的信息极其有限 因此我不确定 SQLite 是否支持 U
  • 如何用C++封装视频文件的H.264码流

    我正在尝试转换视频文件 mp4 到 Dicom 文件 我通过在 Dicom 中存储单个图像 视频的每帧一个图像 成功地做到了这一点 但结果是文件太大 这对我来说不好 相反 我想将存储在视频文件中的 H 264 比特流封装到 Dicom 文件
  • CBPeripheral 存储的 UUID 对于重新连接有效多长时间? [复制]

    这个问题在这里已经有答案了 我一直在使用 Corebluetooth 并且了解到 除了每次想要连接时都要经历扫描外围设备的繁琐过程之外 我还可以存储外围设备的 UUID 并将其与retrievePeripheralsWithIdentifi
  • Google 云端硬盘文件 ID 是全球唯一的吗?

    Google 云端硬盘文件 ID 在全球范围内是唯一的吗 UUID 是否有可能使用生成NSUUID类将与 Google 驱动器文件 ID 相同吗 仅供参考 这不是重复的 Google 文档 驱动器资源 ID 是否全局唯一 https sta
  • iOS 上基于时间的 UUID(版本 1)?

    我们如何使用 iOS 创建 RFC 4122 投诉 UUID 版本 1 基于时间 这是man page https developer apple com library archive documentation System Conce
  • 从 PostgreSQL 中的 v1 UUID 转换或提取时间戳

    我正在尝试从 a 中提取时间戳版本 1 UUID https en wikipedia org wiki Universally unique identifier Version 1 date time and MAC address 天
  • Android蓝牙UUID连接APP到ANDROID

    我正在构建一个 Android 应用程序 用于跟踪设备上的蓝牙连接 并在超出范围时触发警报 Android 文档要求提供 UUID 才能建立连接 uuid 是用于唯一标识信息的字符串 ID 的通用唯一标识符 UUID 标准化 128 位格式
  • 使用 Python 查找 Mac UUID/序列号

    基本上 我计划将计算机的 UUID 序列号与它运行的密钥绑定起来 在 Windows 上 我发现获取 UUID 很容易 但我很难为 Mac 获取任何东西 有什么解决办法吗 MacOS 有一个内置程序用于访问此信息 您可以使用以下命令获取它
  • 串行版本 UID 有何用途? [复制]

    这个问题在这里已经有答案了 我正在创建一个 Java 应用程序 当创建一个与 ADT 一起使用的接口时 它发现需要将一个随机数初始化为 ID 号 public class StackFullException extends Runtime
  • MySql 插入选择 uuid()

    假设你有一张桌子 item 有字段 id VARCHAR 36 NOT NULL order BIGINT UNSIGNED NOT NULL And Unique id 然后你打电话 INSERT INTO item item id it
  • 如何以编程方式获取 Linux 中设备/分区的 uuid?

    我对 Linux 编程非常陌生 我的问题是 有没有办法以编程方式读取 Linux 中设备或分区的 UUID 是否有用于用户空间应用程序的 C C API 我发现了一些命令sudo vol id uuid dev sda1 sudo blki
  • 将唯一 ID 实现为 UUID 并将其保存在 Keychain 中

    我的应用程序中需要唯一 ID 我知道 我们不能再使用 UDID 因此根据我的研究 使用 UUID 作为设备唯一 ID 并将其保存在钥匙串中将确保即使用户重新安装我的应用程序 唯一 ID 仍保持不变 我从 stackoverflow 上类似问
  • 加密安全随机数生成器生成相同 uuid 的几率是否足够小,以至于您不需要检查唯一性?

    我在用着this https nodejs org api crypto html crypto crypto randombytes size callbackuuid 的长度为 20 如果生成的 uuid 用于持久唯一值 通常的做法是不
  • 以编程方式检索 OS X 磁盘分区 UUID

    我有一个分区的路径 如何在不使用终端命令的情况下以编程方式检索该分区的 UUID 举个例子会更有帮助 diskutil info grep UUID 从 C 运行它作为读者的练习 如果您想要根目录以外的分区 您可以指定挂载点或设备名称 例如
  • 如何查找 DICOM 研究中的图像数量?

    是否可以通过读取该研究中文件的 DICOM 标头来查找 DICOM 研究中的图像数量 我正在开发一个 Java 应用程序 该应用程序接收来自不同来源的 DICOM 研究 我只是想检查是否已完全收到研究 不幸的是 我不能依赖阅读 DICOMD
  • DICOM 和 DICOM 叠加问题

    我有一个 DICOM 图像 我正在使用 C 读取该图像并将其转换为 16 位位图 位图已创建 但图像具有 DICOM 覆盖 我想在创建最终的 dicom 位图时将叠加层刻录到位图中 我无法做到这一点 有什么帮助吗 一种方法是创建覆盖数据的位

随机推荐

  • Rails 4:带有关联的 form_for

    Rails 和 ruby 新手 挣扎着form for和协会 我正在尝试设置一个 Rails 应用程序 允许用户从客户端列表中进行选择 客户通过以下方式关联has many through关系 我让模型按预期工作 并且我可以通过 Rails
  • 使用 androids 可视化器类获取可变频率范围

    我想获取智能手机播放的声音的某些频率范围的值 以便我可以通过蓝牙将它们转发到可视化这些范围的设备 这些范围是 0 63Hz63 160赫兹160 400赫兹400 1000赫兹1000 2 500Hz2 500 6 250Hz6 250 1
  • MySQL“错误 1046 (3D000):更新查询时未选择数据库”

    我有一个 UPDATE 查询 其中明确引用了数据库 但 MySQL 仍然抱怨以下消息 ERROR 1046 3D000 No database selected 其他结构相似但使用 INSERT 的查询可以正常工作 其他仅执行 SELECT
  • Endpoint包含授权元数据,但未找到支持授权的中间件

    我目前正在将本地开发的应用程序迁移到数字海洋中的 Ubuntu 16 04 Droplet 我正在使用 NET Core 3 1 并已为其配置了我的服务器 但是 当我导航到控制器上使用 Authorize 属性 我仅在我的生产服务器上 而不
  • LINQ to XML 和 DataGridView

    您好 我第一次尝试使用 DataGridView 和 LINQ 这就是我正在尝试做的事情 我想使用它 尽管它不必使用 DataGridView 来读取和显示 XML 文件的内容 这部分是下面的工作代码 但我想在表单或 DataGridVie
  • 两个ArrayList 一个RecyclerView Adapter

    我有一个聊天屏幕 我可以在其中与其他用户聊天 我正在将聊天数据 通过列表的消息 时间和发件人 发送到 RecyclerAdapter 后者用数据填充聊天视图 现在我还有一个列表 其中包含不同布局的数据 像这样 这是我将第二个数组列表调用到
  • 使用 url 重定向下载文件

    我可以通过 url 下载文件 但是当我从 bash 尝试时 我得到的是 html 页面而不是文件 如何使用curl wget 或其他方式下载带有url 重定向 301 永久移动 的文件 UPD 来自 url 请求的标头 curl I htt
  • 使用命令提示符修改 cmd.exe 属性

    这不是很好的递归吗 我的外部驱动器上有一个便携式命令提示符 它有一个很好的 bat 文件来配置一些初始设置 但我想要更多 这是我知道如何从 bat 设置的内容 颜色 颜色 XY 其中 x 和 y 是预定义颜色的十六进制数字 Prompt p
  • ini_set("upload_max_filesize","200M") 在 php 中不起作用[重复]

    这个问题在这里已经有答案了 可能的重复 覆盖 upload max filesize https stackoverflow com questions 949415 overriding upload max filesize 我使用这些
  • 我需要一个循环遍历日期间隔

    我有开始日期和结束日期 我需要遍历这两个日期之间的每一天 最好的方法是什么 我只能建议这样的事情 Date currentDate new Date startDate getTime while true if currentDate g
  • xcode 无法识别类的更改

    由于某种原因 xcode 无法识别我对程序 这是一个 C 命令行程序 中的某个类所做的任何更改 例如 如果我为此类创建一个新方法并尝试在另一个文件中使用它 该文件已经包含该类的 h 文件 并且我已经在该文件中广泛使用了该类 它会给我一个错误
  • cassandra CQL 中的内连接

    如何在 cassandra 中编写子查询 嵌套查询 CQL 中是否提供了此功能 我尝试过的例子 cqlsh testdb gt select itemname from item where itemid select itemid fro
  • Docker compose找不到本地包

    因此 我在 GOlang 中创建了 REST api 和一个 grpc 服务 现在我想在 docker compose 中组合它 我的 docker compose 看起来像这样 version 3 services db image po
  • 在同一台计算机上运行 Internet Explorer 6、Internet Explorer 7 和 Internet Explorer 8

    和其他人一样 我需要在 Internet Explorer 6 和 Internet Explorer 7 上测试我的代码 现在 Internet Explorer 8 为开发人员提供了一些很棒的工具 我想使用它们 我还想开始使用 Inte
  • 在bat文件中查询npm错误状态

    我们目前正在将 UI 项目 总共 3 个 的构建转移到 Grunt 为了简化转换 我想提供一个可以运行的bat文件npm install对于每个项目 但是我想知道发出此命令时是否出现问题 我所追求的只是糖衣 我知道 npm 会回显错误 但我
  • psql: FATAL: 用户 PAM 身份验证失败

    PostgreSQL 9 2 4 我无法再使用过去工作过的用户登录 我假设配置有问题 因此 为了进行测试 我创建了一个测试用户角色 testing 其选项与相关角色相同 作为仍然可以登录的 postgres 用户 CREATE ROLE t
  • 如何在Python 2.7中实现带超时的锁

    有没有一种方法可以在Python中实现多线程锁acquire方法可以有任意超时吗 到目前为止我发现的唯一可行的解 决方案使用轮询 这 我觉得不优雅而且效率低下 不保留锁的有界等待 进度保证作为临界区问题的解决方案 有没有更好的方法来实现这个
  • IList 到 IQueryable

    我有一个列表 我想将其包装到 IQueryable 中 这可能吗 List
  • 使用 C# 进行 AES 加密 使用 crypto-js 进行解密

    我正在尝试使用 C 加密字符串并使用 Angular crypto js 库解密它 但它给了我不同的输出 我尝试了不同的 c aes 加密实现 但 crypto js 库无法解密 c 中的加密数据 感谢您的任何帮助 这是我的代码 程序 cs
  • 覆盖 DICOM 中的像素数据时应替换哪些 DICOM UID?

    我正在尝试从现有文件创建一个新的 DICOM 文件 实例 并在其中更改像素数据 我知道在替换像素数据时需要更改一些 UID 目前我正在生成SOPInstanceUID MediaStorageSOPInstanceUID and Refer