- 博客(79)
- 收藏
- 关注

原创 【PACS Web系统开发】全网首发-JAVA开发医学影像存档与检索系统(PACS),遵循Dicom医学影像标准
基于B/S架构的Web版PACS系统开发,后端采用JAVA、SSM等主流框架,前端采用Vue2、React框架开发,数据库采用MySQL、Redis。目前已打通Dicom文件于系统中的数据流,数据文件可通过接收Dicom服务节点获取,也可手动上传文件,并且可将患者检查的Dicom文件传输至系统中动态配置的Dicom服务器;实现在线云胶片功能,可在线查看与操作医学影像图像等功能。
2024-01-14 00:17:39
3419
11
原创 DICOM 协议中常用命令(C系列(C-ECHO/C-STORE/C-GET等),N系列(N-CREATE/N-ACTION/N-DELETE))
摘要:DICOM协议中的DIMSE-C和DIMSE-N服务提供医疗影像传输与管理功能。DIMSE-C包含6个核心命令:C-STORE用于图像存储、C-FIND实现查询、C-GET/C-MOVE处理检索传输、C-ECHO测试连通性、C-CANCEL中断操作。DIMSE-N提供6个标准化对象操作:N-CREATE/N-DELETE管理对象生命周期,N-SET/N-GET更新查询属性,N-ACTION执行操作,N-EVENT-REPORT发送事件通知。两类服务协同工作,前者侧重数据传输,后者用于系统工作流控制,共
2025-06-25 17:53:12
550
原创 DICOM 协议中DIMSE-C 和 DIMSE‑N 功能
DICOM协议通过DIMSE-C和DIMSE-N两类命令实现医疗设备间的数据交互。DIMSE-C用于复合SOP实例操作,包含C-STORE(存储影像)、C-FIND(查询)等核心命令;DIMSE-N面向规范化SOP实例,提供N-CREATE(创建)、N-GET(获取属性)等管理功能。此外,ACSE层的A-ASSOCIATE、A-RELEASE等命令负责建立和释放通信连接。这两类命令共同构成了DICOM通信的核心机制,分别处理影像数据传输和抽象对象管理,支撑起医疗信息系统的互操作性。
2025-06-25 17:46:11
580
原创 DICOM协议中SCU与SOP的区分及应用
DICOM协议中的SCU(Service Class User)和SOP(Service Object Pair)定义了医疗影像设备间交互的机制。SCU作为客户端主动发起操作请求,如CT扫描仪发送图像到PACS;SOP则规定了特定数据类型的操作规范,如CT图像存储的格式和服务。通过实际应用场景(图像存储、工作列表查询、图像检索)可见,SOP定义"做什么",SCU执行"谁来做",二者的明确分工实现了不同厂商设备间的互操作性,是DICOM通信的核心基础。
2025-06-25 17:36:44
881
原创 Linux中Java开发、部署和运维常用命令
在Java开发、部署和运维过程中,Linux操作系统常用的一些命令可以帮助开发人员、运维人员管理系统、查看日志、控制进程等。
2025-05-27 11:58:50
968
原创 Git恢复之前版本的两种方法reset、revert异同和分析
特性resetrevert影响历史会改变Git历史记录,删除指定提交后面的所有提交保留Git历史,通过新提交来反向撤销指定的提交影响工作目录可以修改工作目录和暂存区内容不修改工作目录和暂存区,仅生成一个新提交适用场景本地开发时的撤销,想要彻底回到某个版本需要保持历史记录完整,撤销提交影响而不改变历史。
2025-05-19 10:27:02
1135
原创 DICOM通讯(ACSE->DIMSE->Worklist)
DICOM 通讯协议中的 ACSE → DIMSE → Worklist这条通讯链路。DICOM 通讯栈本身是一个多层的协议结构,就像 OSI 模型一样,逐层封装功能。
2025-04-14 18:14:05
1425
原创 为什么List、Set集合无法在遍历的时候修改内部元素
以常用集合ArrayList为例,ArrayList在遍历过程中无法直接修改内部元素的结构(例如通过remove()或add()方法修改元素),是因为可能会导致或。注意:和ArrayList一样,Set集合也不允许在遍历时直接修改其结构(如添加或删除元素),否则会抛出异常。为了安全地修改结构,可以使用Iterator的remove()方法或者使用removeIf方法。在需要修改集合结构时,最好先完成遍历操作,避免在遍历过程中进行结构修改,确保程序的稳定性和一致性。
2025-03-14 11:21:51
579
原创 Pacs系统开发之下载DICOM文件方式
(多个 DICOM 影像一起打包)。假设 PACS 服务器存储了一项。,需要手动解压后才能查看。这两个选项会影响下载的。,加快下载和传输速度。
2025-02-10 12:07:50
987
原创 RocketMQ、RabbitMQ、Kafka 的底层实现、功能异同、应用场景及技术选型分析
🚀RocketMQ、🐰RabbitMQ、📢Kafka 的底层实现、功能异同、应用场景及技术选型分析
2025-02-10 11:49:39
1558
原创 Pacs系统开发之导出检查方式
根据 实时性需求、目标 PACS 类型和数据量选择合适的导出方式,可以优化影像存储与传输流程,提高 PACS 系统的效率和稳定性。
2025-02-08 11:06:15
917
原创 WildFly与tomcat的异同
WildFly 适合构建和运行 企业级应用,需要较多的企业特性支持(如事务管理、消息队列、EJB 等),适合处理复杂的业务逻辑和高并发应用。Tomcat 适合构建和运行 Web 应用,尤其是那些以 Servlet 和 JSP 为核心的轻量级应用,适合不需要复杂 Java EE 功能的场景。
2025-01-17 10:42:33
1331
原创 JAVA EE与Spring的关系
最近在阅读一些从岁数很大却依然活跃在开源世界的项目(Dcm4chee),发现其开放接口采用JAVA EE(Jakarta EE)提供的标准用于构建 REST API,例如 @Path, @QueryParam, @PathParam, @GET, @Suspended 等。而目前主流开发中利用Spring框架已是家常便饭,利用@RestController, @RequestMapping, @GetMapping, @RequestParam等注解便快速且简洁地构建REST API。
2025-01-16 18:09:13
833
原创 Pacs系统开发之Dcm4chee代码结构分析
👉本教程主要讲解dcm4che开源家族中Dcm4chee 5.31.0的各个子模块的作用及其意义👈
2025-01-15 12:59:27
1414
原创 Pacs系统开发之DICOM通信(DICOM SCP/SCU角色)
DICOM (Digital Imaging and Communications in Medicine) 是一种用于存储和传输医学图像及相关信息的标准。在医疗影像领域,DICOM协议是各医疗设备之间进行数据交换的基础。
2025-01-06 12:07:45
1597
原创 Pacs系统开发之Dcm4Che简介
dcm4che 作为医疗保健信息技术应用程序和实用程序的开源集合,可用于深入医学成像世界。它具备高效、可扩展及互操作等特性,是您轻松管理 DICOM 图像和数据的重要门户。即刻发现开源在医疗保健领域的强大力量!
2025-01-06 11:40:37
2388
1
原创 @Autowired 注解(by type)和 @Resource 注解(by name),以及Spring容器中bean的type、name可以重复吗?
@Autowired 注解(by type)和 @Resource 注解(by name),以及Spring容器中bean的type、name可以重复吗?
2025-01-02 11:09:19
1142
原创 ThreadLocal的概述,及如何避免内存泄漏
通过合理地管理 `ThreadLocal` 变量,可以确保程序的线程安全性,同时避免潜在的内存泄漏问题。
2024-12-31 17:15:30
575
原创 单例(饿汉、懒汉)、工厂模式记录
现在利用枚举特性来重写这个单例模式,代码将变得更加简洁和安全。枚举实例在 JVM 加载时就会被创建,因此它天然地保证了线程安全和单例性。并且,使用枚举还可以避免反射攻击以及防止在序列化时出现问题。:在 Java 中,枚举类型的构造器会在类加载时自动调用,因此它能够保证只有一个实例。:由于枚举实例是由 JVM 保证单例并且是线程安全的,因此不需要手动控制同步。类型来实现,因此即使在反射机制中,也无法创建额外的实例。方法来保证枚举的唯一性,防止通过反序列化创建新实例。
2024-12-31 11:58:19
417
原创 工厂+策略模式之最佳实践(疾病报卡维护模块API设计)
利用自定义报卡标识注解将每个服务的实例化逻辑封装成不同的策略类;利用仿写Spring Bean工厂的方式,通过依赖注入和组件扫描来自动管理 Bean 的创建和查找,利用符合单一性原则自定义注解,服务类自行声明它们所支持的疾病类型,工厂可动态根据已报卡的服务去初始化报卡服务实例。
2024-12-27 18:10:10
1060
原创 Java应用GraphQL的入门讲解
GraphQL 是一种用于客户端和服务器之间通信的 API 查询语言,它允许客户端请求精确的数据,而不是服务器返回预定义的数据结构。通过 GraphQL,客户端可以指定查询的数据类型和字段,而服务器则根据请求返回这些数据。
2024-12-02 11:53:22
1135
原创 vue框架开发的前端项目,build和package的区别
Build(构建):是一个过程,目的是将你的源代码打包并优化为适合浏览器运行的代码,生成生产环境代码文件。Package(打包):通常指将项目打包成一个可分发的格式,可以是一个 npm 包、一个压缩包等,便于发布或分发。在开发 Vue 项目的过程中,你通常先执行build以生成生产环境的代码,然后根据需要进行package,例如发布到 NPM 或作为其他用途的压缩文件。
2024-11-21 17:24:34
719
原创 修改Mysql 8 的密码
推荐方法:使用ALTER USER语句修改密码。其他用户:修改其他用户密码时,只需替换用户名。忘记密码:通过跳过授权表重置密码。Windows部署Mysql指南外网连接参考此文档。
2024-11-07 10:18:17
1764
原创 Vue2、Element中实现Enter模拟Tab,实现切换下一个框的效果
在几乎所有的浏览器中,都具备通过 Tab 键来切换焦点的功能。然而,有些用户提出了强烈要求,希望能够增加通过 Enter 键切换焦点的功能。究其根本,无非是为了习惯性操作而使系统作出要求,秉持着甲方优先的态度,故实现此需求。
2024-10-23 11:12:19
979
原创 编写第一份合同
现在,让我们将所学的内容整合成一份完整的智能合同。现在,让我们将所学的内容整合成一份完整的智能合同。在本例中,你将使用 Solidity 为简单的在线市场创建一个智能合同。该合同将允许用户列出待售商品,并购买在售商品。涉及两个角色:卖方和买方。
2024-07-25 11:25:10
359
原创 了解引用类型
在编写合同时,还应了解引用类型。在编写合同时,还应了解引用类型。与总是传递值的独立副本的值类型不同,引用类型为值提供数据位置。这三种引用类型为:结构、数组和映射。
2024-07-25 09:53:03
426
原创 了解值类型
在本单元中,你将了解 Solidity 中的主要值类型。值类型通过值传递,并在使用时进行复制。编写合同时将使用的主要值类型包括“整数”、“布尔”、“”、“地址”和“枚举”。在本单元中,你将了解 Solidity 中的主要值类型。值类型通过值传递,并在使用时进行复制。编写合同时将使用的主要值类型包括“整数”、“布尔”、“”、“地址”和“枚举”。
2024-07-25 09:43:07
466
原创 什么是 Solidity
Solidity 是 Ethereum 区块链最常用的编程语言。Solidity 是一种基于其他编程语言(包括 C++、Python 和 JavaScript)的高级语言。如果你熟悉这些语言中的任何一种,则应该熟悉 Solidity 代码。Solidity 是静态类型语言,这意味着类型检查在编译时进行,而不像动态类型语言在运行时进行。对于静态类型语言,你需要指定每个变量的类型。例如,Python 和 JavaScript 是动态类型语言,而 C++ 是静态类型语言。
2024-07-24 09:19:10
720
原创 了解语言基础知识
所有 Solidity 合同通常都包括:虽然对生产级智能合同进行编程时会涉及更多知识,但上述这些内容应能让你迈出正确的一步。如果你了解这些概念,则可以立即开始为各种用例编写智能合同!
2024-07-24 09:09:39
1432
毕业设计:基于JAVA的SSM+Freemarker框架的CRM智能办公系统
2024-01-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人