.NET 轻量级中文开源PACS系统,医学影像必备的DICOM工具箱

1,207 阅读4分钟

前言

医学影像技术的飞速发展,医疗机构对高效、稳定且易于使用的图像存档与通信系统(PACS)的需求日益增长。

推荐一款中文开源社区最完善轻量PACS系统,医学影像必备DICOM工具箱。

项目介绍

一款中文医学影像圈设计的基于.NET 的轻量级 DICOM SCP 服务器,提供完整的 DICOM 功能,包括存储、工作列表、查询检索、打印服务和 WADO/DICOMweb 服务,并集成强大的桌面和 Web 查看器。

系统支持跨平台部署:Windows 用户可直接下载运行,Linux 用户推荐使用 Docker 部署,自动更新镜像。Weasis 查看器需在客户端电脑安装。

推荐使用 Docker 简化安装并自动获取最新版本。

项目完全开源,采用 MIT 许可证,由多年医学影像从业者打造,在为中文医学影像社区贡献力量。

系统要求

操作系统:Windows 10/11 或 Windows Server 2016及以上版本。

.NET 版本:需要.NET 8.0或更高版本。

SQLite 版本:3.x版本。

硬件需求:至少4GB RAM,10GB可用磁盘空间。

浏览器支持:如Chrome、Firefox或Edge。

项目技术

后端:.NET Core

前端:原生 JavaScript

DICOM 处理:fo-dicom、Cornerstone.js

数据库:SQLite

HTTP 客户端:Axios

UI 组件:Bootstrap

项目功能

存储服务 (C-STORE SCP)

标签归档:按4级标签自动组织存储目录。

压缩支持:JPEG、JPEG2000、JPEG-LS、RLE等。

字符处理:处理不标准的中文字符乱码。

工作列表服务 (Worklist SCP)

提供DICOM Modality Worklist服务,支持多种查询条件和字符集协商。

查询检索服务 (QR SCP)

支持C-FIND、C-MOVE、C-GET服务,配置多目标节点,支持不同查询级别和实时转码。

打印服务 (Print SCP)

管理打印任务队列,跟踪状态,归档原始文件与标签。

WADO URI 服务

访问DICOM对象,支持多种返回格式和传输语法,可选匿名化处理。

C-STORE SCU 和 Print SCU

发送DICOM图像至SCP,或转发打印任务,保留原始标签信息。

日志服务

查看、下载、删除日志,支持多日志级别配置。

WADO-RS 和 QIDO-RS 服务

实现DICOMweb规范,提供实例、元数据、帧检索及缩略图服务。

支持研究、序列、实例级别的查询,灵活指定查询参数(如患者ID、检查日期等),并返回JSON格式结果。

示例请求

WADO: http://localhost:5000/wado?requestType=WADO&studyUID=...&seriesUID=...&objectUID=...

QIDO: /dicomweb/studies?PatientID={id}&PatientName={name}

应用程序为医学影像提供了全面的管理和访问解决方案,从图像存储、检索到打印,同时通过Web接口实现了对DICOM对象的便捷访问。

项目使用

1、下载最新发布版本

2、修改 appsettings.json 配置文件

3、运行 DicomSCP.exe

4、访问 http://localhost:5000

5、默认账号 admin / admin

Docker部署

appsettings.json需要先在宿主机目录下创建好!

docker run -d --name DicomSCP --restart unless-stopped \
  -p 5000:5000 \
  -p 11112-11115:11112-11115 \
  -v /opt/docker/dicomscp/keys:/root/.aspnet/DataProtection-Keys \
  -v /opt/docker/dicomscp/logs:/app/logs \
  -v /opt/docker/dicomscp/received_files:/app/received_files \
  -v /opt/docker/dicomscp/temp_files:/app/temp_files \
  -v /opt/docker/dicomscp/appsettings.json:/app/appsettings.json \
  -v /opt/docker/dicomscp/db:/app/db \
  fightroad/dicomscp:latest

Nginx反向代理

proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_http_version 1.1;

项目效果

项目地址

GitHub:github.com/fightroad/D…

Gitee:gitee.com/fightroad/D…

总结

以上仅展示了DICOM 管理系统的部分功能。更多实用特性和详细信息,请大家访问项目地址。

希望通过本文能为医学影像开发方面提供有价值的参考。欢迎在评论区留言交流,分享您的宝贵经验和建议。

总结

通过上述内容的学习,我们已经掌握了如何使用 C# 和 WinForm 实现系统托盘图标和开机自启动功能。希望本文能为大家提供有价值的参考和启发,帮助开发出更加实用和高效的桌面应用。

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

优秀是一种习惯,欢迎大家留言学习!