当前位置: 首页 > news >正文

DICOM通讯(ACSE->DIMSE->Worklist)

DICOM 通讯协议中的 ACSE → DIMSE → Worklist 这条通讯链路。DICOM 通讯栈本身是一个多层的协议结构,就像 OSI 模型一样,逐层封装功能。

一、DICOM 通讯协议栈总体架构

DICOM 通讯使用 TCP/IP 建立连接,其上面封装了多个协议层次,如下所示:

物理层 (TCP/IP)
└── 应用服务元素层(ACSE)└── DICOM 消息服务元素层(DIMSE)└── DICOM 服务类(如 Worklist、C-FIND、C-STORE)

二、分层结构分析(ACSE → DIMSE → 服务类)

层级全称功能示例
ACSEAssociation Control Service Element建立、维护、释放连接握手、验证 AE Title、协商 SOP Class
DIMSEDICOM Message Service Element封装具体 DICOM 命令C-ECHO(测试联通)、C-FIND(查询)、C-STORE(存储)
服务类(SCP/SCU)如 Worklist、Storage 等提供特定服务操作的实现Modality Worklist、Image Store 等

三、各层通讯流程详解

1. ACSE – 建立连接和协商参数

  • 目的: 类似“握手”,保证双方都支持相同的 SOP Class 和传输语法。
  • 主要操作: A-ASSOCIATE 请求/响应。
  • 双方角色:
    • SCU(Service Class User)——客户端,一般是 Modalities(如 CT、MR);
    • SCP(Service Class Provider)——服务端,一般是 RIS、PACS 系统。

🔁 示例流程:

Modality(SCU) ---- A-ASSOCIATE-REQUEST ----> RIS/PACS(SCP)<---- A-ASSOCIATE-ACCEPT ----

2. DIMSE – 封装命令与数据

  • DIMSE-C(Command)服务:
    • C-ECHO:测试网络连通性;
    • C-FIND:查找 Worklist;
    • C-STORE:存储影像;
  • DIMSE-N(Normalized)服务:
    • 如 N-CREATE, N-SET,多用于打印、影像挂接等场景。

📌 这些命令都是通过 P-DATA 传输的,一次 DICOM 命令可能包含多个数据块(PDUs)。


3. 服务类:Modality Worklist 实际通讯流程

Modality Worklist(MWL)服务帮助 Modalities 自动获取病人检查信息,避免人工输入。

🧭 实际通讯步骤如下:
步骤通讯方向操作协议层说明
1Modality → RISA-ASSOCIATEACSE连接并协商 SOP Class 和传输语法
2Modality → RISC-FIND 请求DIMSE提交查询条件(如 Scheduled Station AE Title)
3RIS → ModalityC-FIND 响应DIMSE返回匹配的 Worklist 项(可能多条)
4Modality → RISA-RELEASEACSE释放连接

🌐 查询参数举例(Worklist C-FIND 请求 DataSet)

属性标签属性名称说明示例
(0008,0050)Accession Number检查号20240401-01
(0010,0020)Patient ID病人ID123456
(0010,0010)Patient Name病人姓名张三
(0040,0100)Scheduled Procedure Step Sequence计划检查步骤包含影像类型、时间等信息

四、现实系统中的典型场景(示意图)

+-----------+            +-------------+
|  Modalities| <--C-FIND--|  Worklist SCP|
|  (CT/MR)  | --C-FIND--> |   (如RIS)   |
+-----------+            +-------------+\                       ^\-C-STORE 影像--------/\--> PACS 存储服务器

🧠 总结知识点(结构化回顾)

层级关键术语说明举例
ACSEA-ASSOCIATE, A-RELEASE, A-RJ建立/释放会话连接连接 RIS/PACS
DIMSEC-FIND, C-STORE, C-ECHO封装 DICOM 操作指令查询 Worklist、发送影像
服务类Worklist, Storage 等提供具体 DICOM 服务自动查询病人信息、影像归档

🌐模块一 DICOM 通讯分层机制简明解析

DICOM 通讯协议遵循类似于 TCP/IP 的分层架构,其核心通信流程由以下三层构成:

🔷 1. ACSE(Association Control Service Element)

负责 建立、确认、拒绝或释放会话连接

✅ 功能:
  • 完成 SCU(客户端) 与 SCP(服务器)之间的会话建立和协商
  • 协议协商内容:SOP Class、传输语法、AE Title 等
📦 ACSE 层常见 PDU(协议数据单元)类型:
PDU 类型含义功能说明
A-ASSOCIATE-RQ请求建立连接SCU 发起连接请求
A-ASSOCIATE-AC接受连接SCP 接受并返回
A-ASSOCIATE-RJ拒绝连接SCP 拒绝连接请求
A-RELEASE-RQ / RP释放连接通讯结束时使用
P-DATA-TF传输数据封装 DICOM 命令与数据(传入 DIMSE 层)

🔷 2. DIMSE(DICOM Message Service Element)

处理 DICOM 命令、响应和数据,如查询、存储、回声测试等

✅ 功能:
  • 接收 ACSE 层传入的 P-DATA PDU;
  • 解包获取 DIMSE 命令:如 C-ECHOC-FINDC-STORE 等;
  • 执行 DICOM 服务操作,封装响应回传。
📌 数据识别关键:

📍若接收到的第一个字节为 0x04(十进制 4),则代表该 PDU 类型为 P-DATA-TF,表明数据需进入 DIMSE 层进一步处理。


🔷 3. DICOM 服务类(以 Worklist 为例)

通过 DIMSE 封装的服务,提供真实的医疗影像业务能力,例如病人信息查询、影像传输等。

✅ Worklist 示例(Modality Worklist):
  • 基于 DIMSE 层的 C-FIND 命令;
  • 查询参数包括病人姓名、检查日期、检查类型等;
  • 返回结果包含待检查病人的详细信息,供 Modalities 自动填充。

你的分析很精准,抓住了 DICOM 协议中从 ACSE 到 DIMSE 的过渡细节。下面我将对你这段内容进行条理清晰的结构化分析,并补充:

  1. PDU → PDV → DIMSE Command/DataSet 的转换流程图解
  2. DIMSE 服务组(11种服务)全部列出并说明作用
  3. PDV Flags 字节说明表格

🔄 模块二 DICOM 通讯处理流程:PDU → PDV → DIMSE

ACSE 层接收到 PDU 且其类型为 0x04(P-DATA-TF) 时,进入以下处理流程:

PDU(P-DATA-TF)↓
剥离 PDU Header↓
分解为一个或多个 PDV(Presentation Data Value)↓
每个 PDV 包含:- Presentation Context ID(表示关联 SOP Class)- PDV Header Flags(标识 Command/Data Set 及是否结束)- PDV 内容(真正的数据)↓
根据 Flags 判断:- 是 Command 还是 Data Set- 是否已完成该 PDV 单元↓
交由 DIMSE 层解析并执行服务操作(如 C-FIND、C-STORE)

🧱 DIMSE 层完整服务列表(11种)

DIMSE(DICOM Message Service Element)定义了 11种服务原语,包括命令和响应,分为两类:

1️⃣ DIMSE-C 服务(基于 Composite 信息对象,最常用)

服务名操作代码用途说明
C-ECHO0x0030测试 DICOM 通讯连通性
C-FIND0x0020执行查询操作(如 Worklist 查询)
C-GET0x0010从 SCP 获取数据(图像等)
C-MOVE0x0021将数据从 SCP 推送到其他 AE
C-STORE0x0001向 PACS 服务器存储图像或其他实例

2️⃣ DIMSE-N 服务(基于 Normalized 信息对象,主要用于打印管理等)

服务名操作代码用途说明
N-EVENT-REPORT0x0100报告事件(如打印完成)
N-GET0x0110获取属性信息
N-SET0x0120设置属性(如修改打印参数)
N-ACTION0x0130请求操作(如开始打印)
N-CREATE0x0140创建对象(如打印作业)
N-DELETE0x0150删除对象

🧾 PDV Header Flags 字节说明

每个 PDV(Presentation Data Value) 的头部包含一个 Flags 字节(1字节),用于指示数据性质:

含义值为 1 时备注
bit 0命令/数据集标识表示这是一个命令(Command);为0则为数据集(Data Set)
bit 1最后一个片段标识表示这是该 PDV 的最后一个片段PDV 可能被分片
bit 2-7保留固定为0未来扩展位

示例:

Flags 十六进制说明
0x01命令,未结束(中间片段)
0x03命令,最后片段
0x00数据集,未结束
0x02数据集,最后片段

🎯 完整结构梳理

层级数据类型说明
PDU 层(ACSE)P-DATA-TF类型值为 0x04,承载 PDV
表示层(PDV)Flags + 数据表示是否是命令、数据及是否最后片段
DIMSE 层命令/数据集解析 PDV 后进入执行(如 C-FIND 查询)

每个 DIMSE 服务对应的典型 SOP Class UID(服务对象类唯一标识符) 和实际应用场景。我们将从 DIMSE-CDIMSE-N 两大类出发,列成表格。


🧱 模块三 DIMSE-C 服务类:SOP Class UID & 典型场景

DIMSE 命令SOP Class 名称SOP Class UID应用场景
C-ECHOVerification SOP Class1.2.840.10008.1.1检查 DICOM 节点联通性(Ping 测试)
C-FINDModality Worklist Information Model – FIND1.2.840.10008.5.1.4.31Modalities 查询待检病人信息(从 RIS)
C-FINDPatient Root Query/Retrieve Information Model – FIND1.2.840.10008.5.1.4.1.2.1.1PACS 查询病人级别影像信息
C-FINDStudy Root Query/Retrieve Information Model – FIND1.2.840.10008.5.1.4.1.2.2.1PACS 查询检查级影像信息
C-MOVEStudy Root Query/Retrieve Information Model – MOVE1.2.840.10008.5.1.4.1.2.2.2从 PACS 将图像“推送”到目标 AE
C-GETStudy Root Query/Retrieve Information Model – GET1.2.840.10008.5.1.4.1.2.2.3客户端主动“拉取”图像
C-STORECT Image Storage1.2.840.10008.5.1.4.1.1.2CT 图像发送至 PACS
C-STOREMR Image Storage1.2.840.10008.5.1.4.1.1.4MR 图像发送至 PACS
C-STORESecondary Capture Image Storage1.2.840.10008.5.1.4.1.1.7屏幕截图或再处理图像存储

📝 说明:

  • C-FINDC-MOVEC-GET 对应的 SOP Class UID 会根据查询层级(Patient/Study/Image)变化;
  • C-STORE 的 SOP Class UID 会根据图像类型变化(CT、MR、US、CR 等);
  • 有超过百种 SOP Class UID,但常用如上所列。

🧱 DIMSE-N 服务类:SOP Class UID & 典型场景

DIMSE 命令SOP Class 名称SOP Class UID应用场景
N-CREATE / N-SET / N-ACTIONBasic Film Session1.2.840.10008.5.1.1.1打印系统:创建打印会话
N-CREATE / N-SETBasic Film Box1.2.840.10008.5.1.1.2打印系统:设置打印页布局
N-CREATE / N-SETBasic Grayscale Image Box1.2.840.10008.5.1.1.4打印图像
N-GET / N-DELETEPrint Job SOP Class1.2.840.10008.5.1.1.14查询或取消打印作业
N-EVENT-REPORTBasic Film Session Event Reporting1.2.840.10008.5.1.1.40打印完成等事件通知

📝 DIMSE-N 服务多用于 DICOM 打印系统(DICOM Print Management),在临床中已有 PACS 较少使用,但仍用于一些医疗影像打印服务器对接中。


🧩 补充说明:SOP Class UID 的作用

  • 每个 SOP Class UID 唯一标识一种 DICOM 服务或数据模型;
  • 在 ACSE 建立连接时,双方通过 A-ASSOCIATE-RQ 中的 Presentation Context 协商 SOP Class(即功能);
  • 若某一端不支持该 UID,则连接请求会被拒绝或功能无法执行。

📌模块四 总结 Modality Worklist 通讯涉及的完整流程

阶段协议元素操作描述
1️⃣ 连接建立A-ASSOCIATE-RQSCU(模态设备)发起连接请求,协商服务(如 Worklist SOP Class)和传输语法
A-ASSOCIATE-ACSCP(Worklist Server)返回确认接受连接
2️⃣ 查询发起P-DATA-TF(封装 C-FIND-RQSCU 发送 Worklist 查询请求,封装在 P-DATA-TF 中
3️⃣ 查询响应P-DATA-TF(封装 C-FIND-RSPSCP 多次返回查询结果(逐条或批量),每次包含状态字段
4️⃣ 查询结束C-FIND-RSP(Status=0x0000)表示查询结果已全部返回,结束
5️⃣ 会话释放A-RELEASE-RQ / A-RELEASE-RP通讯完成后主动释放连接

🔁 流程图概览(通讯交互顺序)

[SCU]                                  [SCP]|                                      ||-- A-ASSOCIATE-RQ (请求连接) -------->||<-- A-ASSOCIATE-AC (接受连接) --------||                                      ||-- P-DATA-TF (封装 C-FIND-RQ) ------->||<-- P-DATA-TF (封装 C-FIND-RSP) -----||<-- P-DATA-TF (封装 C-FIND-RSP) -----|  多次,返回一个或多个结果|<-- P-DATA-TF (Status=0x0000) -------|  表示返回完毕|                                      ||-- A-RELEASE-RQ --------------------->||<-- A-RELEASE-RP ---------------------|

🧾 关键服务元素详解

1️⃣ A-ASSOCIATE-RQ 包含协商内容:
字段含义
Called AE Title接收方 AE 标识(服务器)
Calling AE Title发送方 AE 标识(客户端)
SOP Class UID通讯中使用的服务类(如:1.2.840.10008.5.1.4.31
Transfer Syntax如:Implicit VR Little Endian、Explicit VR 等
Presentation Context ID绑定 SOP Class + Transfer Syntax
2️⃣ C-FIND-RQ 包含查询数据集(DataSet)

一个标准的 Worklist 查询参数示例:

(PatientName, PN, “DOE^JOHN”)
(ScheduledProcedureStepStartDate, DA, “20250414”)
(Modality, CS, “CT”)
3️⃣ C-FIND-RSP 包含:
字段含义
Command FieldC-FIND-RSP
Status0xFF00(匹配项)、0x0000(完成)、其他值(错误)
DataSet一项或多项匹配结果(病人、预约信息)

🎯 四、Status 字段值说明(C-FIND-RSP)

Status 值含义说明
0xFF00Pending匹配项返回中,后续还有结果
0xFF01Pending同上(备用代码)
0x0000Success所有结果已返回,正常结束
0xA700RefusedSCP 拒绝处理请求
0xA900Error请求参数错误或内部失败
0xCxxxFailed查询失败,具体错误由 x 标识

✅典型场景回顾(应用于 Modalities 自动填充)

  1. CT 设备启动时主动发起 Worklist 查询;
  2. 查询参数通常为当天日期;
  3. PACS 或 RIS 返回病人待检查列表;
  4. 技术员选择一条记录,设备自动填充病人信息;
  5. 完善检查项后进行采集、图像发送等操作。

📘 模块五 连接释放的作用

在 DICOM 网络通讯中,一个完整的会话由“建立 → 通讯 → 释放”三阶段构成:

阶段操作功能
建立连接A-ASSOCIATE-RQ / AC建立 DICOM 连接
数据交换P-DATA-TF 封装 DIMSE 命令进行 C-FIND、C-STORE 等业务操作
释放连接A-RELEASE-RQ / RP优雅关闭连接,释放网络和会话资源

📌 释放连接并不是“强制断开”,而是一种双向确认的正常断开过程


🧱 A-RELEASE-RQ / RP 数据结构说明(简化)

A-RELEASE-RQ(SCU 发起)

字段
PDU Type0x05
Reserved00
Length固定值 4(或0)
Data空(无实际数据)

A-RELEASE-RP(SCP 响应)

字段
PDU Type0x06
Reserved00
Length固定值 4(或0)
Data空(无实际数据)

🔁 释放流程图(时序)

[SCU]                                  [SCP]|                                      ||-- A-RELEASE-RQ --------------------->|  ← 客户端请求释放连接|<-- A-RELEASE-RP ---------------------|  ← 服务端确认释放|                                      ||----> 关闭 Socket ------------------->|  ← 通讯资源释放完成

🔍 为什么“释放连接”是必须的?

原因描述
✅ 协议规范要求不释放会话会被视为异常断开,影响后续通讯
✅ 系统资源回收每个连接都占用线程、缓冲区、Socket 等资源
✅ 日志清晰正常释放连接便于审计和问题追踪
❌ 反面案例强制断开(如关闭Socket)可能导致远端状态不一致或挂起

🎯 释放连接失败的处理(异常处理建议)

场景建议
网络中断时强制断开日志记录 + 自动重连机制
SCP 未响应 A-RELEASE-RP设置超时后断开连接并释放资源
出现异常前未释放连接加入 finally 或连接池释放机制

✅ 总结:释放连接在 DICOM 中的地位

  • 是整个 ACSE 协议的重要组成;
  • 是符合 DICOM 协议的“优雅断开”;
  • 必须在 SCU 或 SCP 完成所有 DIMSE 命令操作后再发起
  • 在调试网络通讯时,如果发现连接悬挂不释放,极可能是 A-RELEASE 环节未正确处理。

相关文章:

DICOM通讯(ACSE->DIMSE->Worklist)

DICOM 通讯协议中的 ACSE → DIMSE → Worklist 这条通讯链路。DICOM 通讯栈本身是一个多层的协议结构&#xff0c;就像 OSI 模型一样&#xff0c;逐层封装功能。 一、DICOM 通讯协议栈总体架构 DICOM 通讯使用 TCP/IP 建立连接&#xff0c;其上面封装了多个协议层次&#xf…...

QML与C++:基于ListView调用外部模型进行增删改查(附自定义组件)

目录 引言相关阅读项目结构文件组织 核心技术实现1. 数据模型设计联系人项目类 (datamodel.h)数据模型类 (datamodel.h)数据模型实现 (datamodel.cpp) 2. 主程序入口点 (main.cpp)3. 主界面设计 (Main.qml)4. 联系人对话框 (ContactDialog.qml)5. 自定义组件CustomTextField.qm…...

# linux 设置宽容模式

linux 设置宽容模式 在Linux系统中&#xff0c;通常没有直接称为“宽容模式”的设置选项&#xff0c;但你可以通过几种方式来模拟或调整系统行为&#xff0c;使其表现得更加“宽容”&#xff0c;特别是在处理错误、权限问题或其他潜在问题时。以下是一些常见的方法&#xff1a…...

#1 理解物联网

物联不是一个新概念&#xff0c;物联网如其中文译名&#xff0c; 虚拟和物的对应和联接。 对于人类的梦想而言&#xff0c;总是希望自己无比强大&#xff0c;但受限于外部条件而只能为此悻悻念念。 所以人们的目光聚焦在&#xff0c;上世纪70年代发展的传感器、大规模电路、通…...

物联网场景实战:智能电表数据管理与分析(二)

数据管理 数据清洗与预处理 智能电表在数据采集、传输和存储过程中&#xff0c;不可避免地会引入噪声、出现缺失值和异常值等问题&#xff0c;这些问题会严重影响数据的质量和后续分析的准确性&#xff0c;因此数据清洗至关重要。 噪声数据通常是由于测量误差、通信干扰等原…...

linux一次启动多个jar包

linux一次启动多个jar包并且可以自定义路径和端口号 代码使用 分享公司大神使用的一个脚步,可以一次启动多个jar包,也可以指定启动jar包 代码 #! /bin/sh # 端口号 PORTS(8080 8081 8082 8083) # 模块 MODULES(gateway auth system file) # 模块名称 MODULE_NAMES(网关服务 认…...

自然语言交互:NAS进化的下一站革命

自然语言交互&#xff1a;NAS进化的下一站革命 在数据爆炸式增长的数字时代&#xff0c;网络附加存储设备&#xff08;NAS&#xff09;早已突破企业级应用的边界&#xff0c;成为个人数字资产管理的核心枢纽。当全球NAS市场年复合增长率稳定在15%之际&#xff0c;耘想科技推出…...

go中我遇到的问题总结

go问题总结 1 - go中的nil等于java中的null吗 在 Go 和 Java 中,nil 和 null 都用于表示“空值”,但它们的实现和使用方式有所不同。 以下是 Go 中的 nil 和 Java 中的 null 之间的对比: 1. Go 中的 nil 在 Go 中,nil 是一个预定义的常量,表示零值。它的行为根据数据类…...

java面试题带答案2025最新整理

文章目录 一、java面试题集合框架1. 请简要介绍 Java 集合框架的体系结构2. ArrayList 和 LinkedList 的区别是什么3. HashMap 的工作原理是什么&#xff0c;它在 JDK 7 和 JDK 8 中有哪些不同4. 如何解决 HashMap 的线程安全问题5. TreeSet 是如何保证元素有序的 二、java面试…...

第七届浙江省大学生网络与信息安全竞赛决赛Unserialize深度解析 1.0

花还会重新开&#xff0c;不同的春来了又来。 - 2025.4.11 0x01 声明 仅作为个人学习使用&#xff0c;仅供参考&#xff0c;欢迎交流 可能是新生赛缘故&#xff0c;突发奇想&#xff0c;想好好梳理此题&#xff0c;顺便写成参考&#xff0c;于是有了这篇文章 当然很多理解可…...

onlyoffice 在线编辑集成

onlyoffice 在线编辑集成 项目中要使用word在线编辑功能&#xff0c;记录一下过程 安装使用docker版本 docker run -itd -p 8001:80 --name kodoffice --restart always registry.cn-hangzhou.aliyuncs.com/kodcloud/kodoffice:7.4.1.1 启动后http://192.168.x.x:8001/web/…...

2.4goweb 项目1

mysql库和表 CREATE DATABASE IF NOT EXISTS book_manager CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;USE book_manager;-- 用户表&#xff08;用于登录&#xff09; CREATE TABLE IF NOT EXISTS users (user_id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(…...

ESP-ADF外设子系统深度解析:esp_peripherals组件架构与核心设计(系列开篇)

目录 ESP-ADF外设子系统深度解析&#xff1a;esp_peripherals组件架构与核心设计&#xff08;系列开篇&#xff09;简介模块概述功能定义架构位置核心特性 接口分析公共API概述1. 外设集合管理API2. 单个外设管理API3. 事件通信API4. 定时器管理API 数据结构关键数据结构分析枚…...

供应链管理:供应链管理的边界

一、追根溯源&#xff0c;什么是真正的财富 序号财富解释1土地作为生产资料&#xff0c;土地是农业、工业、商业的基础 城市中心的土地因稀缺性而价值连城&#xff0c;农业土地的肥沃程度直接影响粮食产量。2资源、矿产提供能源和原材料&#xff0c;支撑工业生产和经济发展。 …...

【Linux网络编程】TCP Echo Server的实现

本文专栏&#xff1a;linux网络编程 本文的基础知识是基于上篇文章&#xff1a;UDP Echo Server的实现 传送门&#xff1a; 【Linux网络编程】UDP Echo Server的实现 -CSDN博客 目录 一&#xff0c;InetAddr类的编写 二&#xff0c;客户端代码编写 创建套接字&#xff08;s…...

信奥赛CSP-J复赛集训(数学思维专题)(11):P9585 「MXOI Round 2」酒店

信奥赛CSP-J复赛集训&#xff08;数学思维专题&#xff09;&#xff08;11&#xff09;&#xff1a;P9585 「MXOI Round 2」酒店 题目描述 小 C 开了一家酒店&#xff0c;叫做 CC Hotel。 一天&#xff0c;CC Hotel 来了 n n n 位客人。小 C 需要把他们都安排在酒店的某一层…...

python: audioFlux XXCC 提取梅尔频率倒谱系数 MFCC

承上一篇&#xff1a;python&#xff1a;audioFlux 使用教程 XXCC: 倒谱系数&#xff0c;支持所有频谱类型. 可以提取梅尔频率倒谱系数&#xff08;MFCC&#xff09; Cepstrum coefficients, supports all spectrum types. 以下是使用 audioflux 库中 XXCC 类计算倒谱系数…...

PHP + Go 如何协同打造高并发微服务?

为什么需要 PHP Go 协同&#xff1f; 在微服务架构中&#xff0c;PHP 和 Go 看似是“两个世界”的语言&#xff0c;但它们的互补性极强&#xff1a; PHP&#xff1a;开发效率高、生态成熟&#xff0c;适合快速实现复杂业务逻辑&#xff08;如电商订单、用户系统&#xff09;…...

k8s工具使用

Kubectl Cheat Sheet k8s的命令级别 1.基础命令(初级) 2.基础命令(中级) 3.部署命令 4.集群管理命令 5.故障排查和调试命令 6.高级命令 7.设置命令 8.其它命令 命令行提示 为了使用kubectl命令更加高效,我们可以选择安装一下开源软件来增加操作kubectl命令的快捷方式,同…...

uml制做参考-以代码画UML图

【PlantUML系列】类图&#xff08;一&#xff09;_plantuml skin-CSDN博客 UML入门以及Plant UML工具介绍_plantuml-CSDN博客 UML类图详解-CSDN博客 【PlantUML】-类图-CSDN博客 【掌握绘图艺术】用PlantUML绘制完美UML图表&#xff0c;编程开发者的福音 - 知乎 如何优化P…...

深入解析B站androidApp接口:从bilibili.api.ticket.v1.Ticket/GetTicket到SendMsg的技术分析

前言 最近一段时间&#xff0c;我对B站的App接口进行了深入分析&#xff0c;特别是关注了认证机制和私信功能的实现。通过逆向工程和网络抓包&#xff0c;发现了B站移动端API的底层工作原理&#xff0c;包括设备标识生成机制、认证流程和消息传输协议。本文将分享这些研究成果…...

[AI ][Dify] 构建一个自动化新闻编辑助手:Dify 工作流实战指南

在内容创作行业中,自动化辅助工具已成为提升编辑效率的重要利器。本文将通过 Dify 平台,演示如何构建一个**“新闻编辑助手”**,实现从网页抓取、文本翻译、标题生成,到新闻配图的全流程自动化。 🎯 目标概览 这个工作流旨在实现如下功能: 从指定网页抓取新闻内容; 使…...

Unity中国战略调整简讯:Unity6下架 团结引擎接棒

Unity中国战略调整简讯&#xff1a;Unity6下架 团结引擎接棒 免费版 2025年4月9日 —— Unity中国宣布自即日起&#xff0c;中国大陆及港澳地区停止提供Unity 6及后续版本下载与服务&#xff0c;相关功能由国产引擎“团结引擎”承接。国际版2022 LTS及更早版本仍由Unity中国维护…...

司美格鲁肽用SNAC市场报告:2024年全球市场销售额达到了0.14亿美元

引言&#xff1a;了解司美格鲁肽与SNAC的重要性 在当前的医药领域&#xff0c;司美格鲁肽&#xff08;Semaglutide&#xff09;作为一种创新性的治疗2型糖尿病和肥胖症的药物&#xff0c;受到了广泛关注。而SNAC&#xff08;N-&#xff08;8-&#xff08;2-羟苯基&#xff09;…...

自动驾驶第一性原理

所谓的第一性原理&#xff1a; 就是指从最基本的物理规律&#xff0c;数据逻辑及工程约束条件出发&#xff0c;剥离所有的非本质的假设&#xff0c;直接推导出自动驾驶最核心的要素。 自动驾驶核心框架分解&#xff1a; 1、根本目标&#xff1a; 安全高效的将人/物从A地运送…...

《UE5_C++多人TPS完整教程》学习笔记36 ——《P37 拾取组件(Pickup Widget)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P37 拾取组件&#xff08;Pickup Widget&#xff09;》 的学习笔记&#xff0c;该系列教学视频为计算机工程师、程序员、游戏开发者、作家&#xff08;Engineer, Programmer, Game Developer, Author&#xff09; Steph…...

Uniswap V2/V3/V4 流动性与价格计算详解

Uniswap V2/V3/V4 流动性与价格计算详解 一、核心概念对比 Uniswap V2 流动性模型: 恒定乘积公式 (x * y = k)价格决定: 完全由池子中的代币数量决定 (price = y/x)流动性衡量: 总储备量代表流动性,直接通过 getReserves() 获取流动性分布: 均匀分布在所有价格点交易费用: 固…...

yum安装MySQL数据库

yum安装方式 优点&#xff1a;操作简单易用。不用单独下载&#xff0c;服务器可以联网且yum源没有问题即可(可以选择国内的163/阿里源) 安装步骤&#xff1a; 1.关闭防火墙和selinux: systemctl stop firewalld ##关闭防火墙 systemctl disable firewalld …...

大联盟(特别版)双端互动平台完整套件分享:含多模块源码+本地部署环境

这是一套结构清晰、功能完整的互动平台组件&#xff0c;适合有开发经验的技术人员进行模块参考、结构研究或本地部署实验使用。 该平台覆盖前端展示、后端服务、移动端资源以及完整数据库&#xff0c;采用模块化架构&#xff0c;整体部署流程简单清晰&#xff0c;适合自研团队参…...

【Code】《代码整洁之道》笔记-Chapter15-JUnit内幕

第15章 JUnit内幕 JUnit是最有名的Java框架之一。就像别的框架一样&#xff0c;它概念简单&#xff0c;定义精确&#xff0c;实现优雅。但它的代码是怎样的呢&#xff1f;本章将研判来自JUnit框架的一个代码例子。 15.1 JUnit框架 JUnit有很多位作者&#xff0c;但它始于K…...

【Java八股】

JVM JVM中有哪些引用 在Java中&#xff0c;引用&#xff08;Reference&#xff09;是指向对象的一个变量。Java中的引用不仅仅有常规的直接引用&#xff0c;还有不同类型的引用&#xff0c;用于控制垃圾回收&#xff08;GC&#xff09;的行为和优化性能。JVM中有四种引用类型…...

深入探究AI编程能力:ChatGPT及其大规模模型的实现原理

&#x1f4e2; 友情提示&#xff1a; 本文由银河易创AI&#xff08;https://ai.eaigx.com&#xff09;平台gpt-4-turbo模型辅助创作完成&#xff0c;旨在提供灵感参考与技术分享&#xff0c;文中关键数据、代码与结论建议通过官方渠道验证。 随着人工智能的快速发展&#xff0c…...

高德地图 JS-SDK 实现教程

高德地图 JS-SDK 实现教程&#xff1a;定位、地图选点、地址解析等 适用地点选择、地址显示、表单填写等场景&#xff0c;全面支持移动端、手机浏览器和 PC端环境 一、创建应用&Key 前端&#xff08;JS-SDK、地图组件&#xff09; 登陆 高德开放平台创建应用&#xff0c;…...

【信息系统项目管理师】高分论文:论信息系统项目的整合管理(银行数据仓库项目)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 正文一、制定项目章程二、制定项目管理计划三、指导和管理项目的实施四、管理项目知识五、监控项目工作六、实施整体变更控制七、结束项目或阶段正文 2023年6月,我以项目经理的身份,参加了 xx银行xx省分行数…...

dev中使用auto的方法

在dev-c中使用新特性是一样的道理&#xff0c;在他启动编译器来编译代码的时候我们让他加上这个参数就行了&#xff0c;设置方法是:在Tools里面找到Compiler Options打开它&#xff0c;然后把那个Add the following commands when calling compiler:选上勾&#xff0c;在里面加…...

C 语言中经典的数据结构

在 C 语言中&#xff0c;经典的数据结构通常包括以下几种&#xff0c;每种都有其特定的应用场景和实现方式&#xff1a; 1. 数组&#xff08;Array&#xff09; 定义&#xff1a;连续内存空间存储相同类型的数据。 特点&#xff1a;随机访问快&#xff08;O(1)&#xff09;&am…...

小白学习java第12天(下):网络编程

上面我们了解TCP就是三次握手&#xff01;&#xff01;&#xff01; 下面我们就详细介绍一下UDP&#xff0c;就是进行发包&#xff08;TCP协议类似于就是打电话&#xff0c;你必须进行连接才能进行传输&#xff0c;但是UDP类似于发消息&#xff0c;连不连接我都是可以的&#…...

论文精度:双分支图Transformer网络:视频驱动的3D人体网格重建新突破

论文地址:https://arxiv.org/pdf/2412.01179 目录 一、背景与问题定义 1.1 3D人体网格重建的意义 1.2 现有方法的困境 二、核心创新:DGTR网络架构 2.1 整体框架设计 2.2 全局运动感知分支(GMA) 2.3 局部细节优化分支(LDR) 2.3.1 局部信息聚合 2.3.2 调制图卷积…...

华三IRF堆叠技术

IRF&#xff08;Intelligent Resilient Framework&#xff0c;智能弹性架构&#xff09;是华三通信&#xff08;H3C&#xff09;自主研发的网络设备虚拟化技术&#xff0c;通过将多台物理设备整合为单一逻辑设备&#xff0c;实现统一管理、高可靠性和灵活扩展。以下是其核心要点…...

第一阶段补充知识

目录 书写脚本使用的相关知识&#xff1f; 备份和冗灾的区别&#xff1f;什么叫DD备份&#xff0c;什么叫DD冗灾&#xff1f; 关于Linux系统优化以及Linux的安全加固&#xff1f; 系统优化 硬件系统优化&#xff1a; 内核参数优化&#xff1a; 网络性能优化&#xff1a; 进程管…...

STM32 HAL库 L298N电机驱动模块实现

一、引言 在机器人、自动化设备等众多应用场景中&#xff0c;电机驱动是一个关键的部分。L298N 是一款常用的电机驱动模块&#xff0c;它可以驱动两个直流电机或一个步进电机。STM32F407 是一款高性能的 ARM Cortex-M4 内核微控制器&#xff0c;结合 HAL 库可以方便地实现对 L…...

Redis的Key的过期策略

我们都知道Redis的键值对是可以设置过期时间的&#xff0c;那么就会涉及到一个问题&#xff0c;Redis到底是如何做到响应快的同时有能快速地释放掉过期的键值对的呢&#xff1f;不卖关子了&#xff0c;直接说答案&#xff0c;那就是Redis两个策略&#xff1a;定期删除和惰性删除…...

ubuntu桌面版使用root账号进行登录

这里写自定义目录标题 第一步&#xff1a;给root账户设置密码&#xff0c;并切换至root账户第二步&#xff1a;注释gdm-autologin文件内的相关内容第三步&#xff1a;注释gdm-password文件内的相关内容第四步&#xff1a;重启系统即可使用root账户登录 第一步&#xff1a;给roo…...

贪心算法(18)(java)距离相等的条形码

在一个仓库里&#xff0c;有一排条形码&#xff0c;其中第 i 个条形码为 barcodes[i]。 请你重新排列这些条形码&#xff0c;使其中任意两个相邻的条形码不能相等。 你可以返回任何满足该要求的答案&#xff0c;此题保证存在答案。 示例 1&#xff1a; 输入&#xff1a;barco…...

CentOS服务器能ping通却无法yum install:指定镜像源解决

文章目录 前言一、问题记录二、解决过程1.修改DNS无效2.指定镜像源 总结 前言 今天有一个项目现场要在一个远程centos服务器上部署产品服务&#xff0c;发现能ping通百度&#xff0c;但是无法yum install 安装基础软件包&#xff0c;开始以为DNS服务器的问题&#xff0c;结果配…...

WebSocket与MQTT

在物联网&#xff08;IoT&#xff09;领域&#xff0c;​WebSocket和MQTT确实都可以实现实时通信&#xff0c;但它们的核心设计目标、适用场景和角色存在显著差异。以下是两者的对比分析&#xff1a; ​1. 协议设计初衷​ ​WebSocket​ ​目标​&#xff1a;提供浏览器与服务器…...

【论文解读】MSVM-UNet: Multi-Scale Vision Mamba UNet for Medical Image Segmentation

MSVM-UNet: Multi-Scale Vision Mamba UNet for Medical Image Segmentation 论文链接&#xff1a; https://arxiv.org/abs/2408.13735 Code&#xff1a; https://github.com/gndlwch2w/msvm-unet 来源&#xff1a; 2024 IEEE International Conference on Bioinformatics an…...

Vue表单组件el-form校验规则rules,条件判断rules表单验证显示必填或非必填

在使用 Element UI&#xff08;一个基于 Vue 的前端框架&#xff09;的表单验证功能时&#xff0c;你可能想要实现一个规则&#xff0c;使得某些字段在特定条件下成为必填项&#xff0c;或者在满足某些条件时不允许为空。这通常通过自定义校验规则来实现。 <template>&l…...

手动关闭ArcGIS与ArcGIS Online连接的方法

【关闭软件启动时ArcGIS与ArcGIS Online连接方法】 打开C盘找到文件夹“C:\Program Files (x86)\Common Files\ArcGIS\bin”&#xff0c;如下图&#xff0c;删除“ArcGISConnection.exe”与“ArcGISConnectionTest.exe”文件&#xff0c;软件下次启动的时候就不会建立与ArcGIS …...

(二十五)安卓开发一个完整的登录页面-支持密码登录和手机验证码登录

下面将详细讲解如何在 Android 中开发一个完整的登录页面&#xff0c;支持密码登录和手机验证码登录。以下是实现过程的详细步骤&#xff0c;从布局设计到逻辑实现&#xff0c;再到用户体验优化&#xff0c;逐步展开。 1. 设计登录页面布局 首先&#xff0c;我们需要设计一个用…...