# web服务器和DICOM服务器 **Repository Path**: yq5858588/webServerAndDicomServer ## Basic Information - **Project Name**: web服务器和DICOM服务器 - **Description**: web服务器:一个高效、可扩展的Web服务器开源项目,支持多种协议和应用开发,适用于高并发和高性能需求。 DICOM服务器:专注于医疗影像存储与传输的开源DICOM服务器,提供标准化接口,支持多模态数据处理与管理。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: https://gitee.com/yq5858588/webServerAndDicomServer - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2026-01-28 - **Last Updated**: 2026-02-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 兔子中医 Web 服务器和 DICOM 服务器 ## 项目简介 本项目是一个集成了 Web 服务器和 DICOM 服务器的综合性医疗信息化解决方案,专为医疗机构设计。项目采用 C# 开发,提供 DICOM 医学影像存储与传输服务,同时支持文件上传下载的 Web 服务功能。 ![输入图片说明](Resources/image.png) ![输入图片说明](Resources/image2.png) ![输入图片说明](Resources/image3.png) ## 功能特点 ### DICOM 服务器 - **DICOM 存储服务**:支持 C-STORE 请求,接收并存储医学影像文件 - **DICOM 验证服务**:支持 C-ECHO 请求,用于验证 DICOM 连接 - **传输语法支持**:自动适配多种 DICOM 传输语法 - **磁盘空间管理**:自动检查存储目录可用空间 - **UID 验证**:确保 DICOM UID 的有效性 - **日志记录**:完整的操作日志记录功能 ### Web 服务器 - **文件上传**:支持客户端上传文件到服务器 - **文件管理**:提供文件列表查询接口 - **静态文件服务**:托管静态 Web 资源 - **API 接口**:RESTful 风格的 Web API ### 系统特性 - **系统托盘运行**:支持最小化到托盘运行 - **开机自启**:支持开机自动启动服务 - **配置管理**:运行时配置保存与加载 - **多实例管理**:防止程序重复启动 - **跨平台支持**:基于 .NET 框架,支持 Windows 系统 ## 环境要求 - **.NET8 或更高版本** - **Windows 7** 及以上操作系统 - **Fo-Dicom** 库(通过 NuGet 安装) - **AntdUI** 库(用于界面组件) ## 安装部署 1. 克隆或下载项目源码: ```bash git clone https://gitee.com/yq5858588/webServerAndDicomServer.git ``` 2. 使用 Visual Studio 打开解决方案文件 `*.sln` 3. 还原 NuGet 包依赖 4. 编译项目生成可执行文件 5. 运行生成的 `兔子中医Web服务器和DICOM服务器.exe` ## 使用说明 ### 启动服务 1. 运行程序后,系统会自动启动 Web 服务器和 DICOM 服务器 2. 程序会在系统托盘显示图标,可最小化到托盘运行 3. 点击托盘图标可恢复主窗口 ### DICOM 服务配置 默认 DICOM 服务配置: - **AE Title**: YQ_DICOM - **IP 地址**: 0.0.0.0(监听所有网卡) - **端口**: 104(可配置) - **存储目录**: 程序目录下的 DicomStorage 文件夹 ### Web 服务配置 默认 Web 服务配置: - **服务器地址**: http://0.0.0.0:5000 - **上传目录**: 程序目录下的 uploads 文件夹 - **静态文件目录**: 程序目录下的 wwwroot 文件夹 ## API 接口 ### 文件上传 ``` POST /api/upload Content-Type: multipart/form-data 请求参数: - file: 要上传的文件 响应格式: { "success": true, "fileName": "文件名", "filePath": "存储路径", "size": 12345, "uploadTime": "2024-01-01T12:00:00", "fileType": "文件类型" } ``` ### 文件列表查询 ``` GET /api/files 响应格式: [ { "fileName": "文件名", "filePath": "存储路径", "size": 12345, "uploadTime": "2024-01-01T12:00:00", "fileType": "文件类型" } ] ``` ### 根路径访问 ``` GET / 返回 Web 应用的首页 ``` ## 配置说明 ### DICOM 服务器配置 配置文件:`DicomServerConfig.json` ```json { "AETitle": "YQ_DICOM", "ServerIp": "0.0.0.0", "Port": 104, "StorageDirectory": "DicomStorage", "Timeout": 30, "LastUpdateTime": "2024-01-01T12:00:00" } ``` | 参数 | 说明 | 默认值 | |------|------|--------| | AETitle | DICOM 应用实体名称 | YQ_DICOM | | ServerIp | 监听 IP 地址 | 0.0.0.0 | | Port | 监听端口 | 104 | | StorageDirectory | 影像存储目录 | DicomStorage | | Timeout | 连接超时时间(秒) | 30 | ### Web 服务器配置 配置文件:`WebServerConfig.json` ```json { "ServerIp": "0.0.0.0", "ServerPort": 5000, "UploadDirectory": "uploads", "StaticFileDirectory": "wwwroot", "LastUpdateTime": "2024-01-01T12:00:00" } ``` | 参数 | 说明 | 默认值 | |------|------|--------| | ServerIp | 监听 IP 地址 | 0.0.0.0 | | ServerPort | HTTP 端口 | 5000 | | UploadDirectory | 上传文件存储目录 | uploads | | StaticFileDirectory | 静态文件目录 | wwwroot | ## 常见问题 ### 1. DICOM 连接失败 - 检查防火墙是否开放 DICOM 端口(默认 104) - 确认 AE Title 配置正确 - 验证网络连通性 ### 2. 文件上传失败 - 检查上传目录是否有写入权限 - 确认磁盘空间充足 - 检查文件大小是否超过限制 ### 3. 程序无法启动 - 检查 .NET Framework 是否正确安装 - 确认没有其他程序占用相同端口 - 查看日志文件获取详细错误信息 ## 日志查看 程序运行时会记录详细的操作日志,包括: - DICOM 连接日志 - 文件上传日志 - 系统错误日志 日志信息可在程序界面查看,也可通过调试输出获取。 ## 项目结构 ``` ├── Common/ # 公共组件 │ ├── DicomMultiServiceProvider.cs # DICOM 服务提供者 │ ├── DicomServer.cs # DICOM 服务器实现 │ ├── DicomServerConfig.cs # DICOM 服务器配置 │ ├── HisWebServer.cs # Web 服务器实现 │ └── WebServerConfig.cs # Web 服务器配置 ├── Controllers/ # Web API 控制器 │ ├── FileController.cs # 文件控制器 │ └── RootController.cs # 根路径控制器 ├── Models/ # 数据模型 │ └── UploadedFileInfo.cs # 上传文件信息模型 ├── Properties/ # 资源文件 │ └── Resources.resx # 程序资源 ├── Resources/ # 静态资源 │ └── favicon.ico # 网站图标 ├── FrmMain.cs # 主窗口 ├── FrmMain.Designer.cs # 主窗口设计器 ├── App.config # 应用程序配置 └── Program.cs # 程序入口 ``` ## 贡献指南 欢迎提交 Issue 和 Pull Request 来改进本项目。在提交代码前,请确保: 1. 代码符合项目的编码规范 2. 添加必要的注释说明 3. 测试通过后再提交 ## 开源协议 本项目遵循 MIT 开源协议,您可以自由使用、修改和分发本项目的代码。 ## 联系方式 - 项目地址:https://gitee.com/yq5858588/webServerAndDicomServer - 作者:兔子中医 ## 致谢 感谢以下开源项目为本项目提供支持: - FellowOakDicom:DICOM 协议实现库 - AntdUI:精美的 UI 组件库