# DaLang.Lims
**Repository Path**: shabigou/dalang-lims
## Basic Information
- **Project Name**: DaLang.Lims
- **Description**: DaLang LIMS 基于 .NET 8.0 + Vue 3 构建的现代化实验室信息管理系统,提供完整的实验室业务流程管理解决方案,采用前后端分离架构,支持跨平台运行。系统涵盖系统设置、基础数据管理、标本前处理、检验分析、报告生成等核心功能模块。
- **Primary Language**: C#
- **License**: GPL-2.0
- **Default Branch**: pathology
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 1
- **Created**: 2026-03-20
- **Last Updated**: 2026-05-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Net8, lims
## README
# DaLang.Lims



**现代化、可扩展的医学检验实验室信息管理系统**
---
## 📖 项目简介
DaLang LIMS 基于 **.NET 8.0** + **Vue 3** 构建的现代化实验室信息管理系统,提供完整的实验室业务流程管理解决方案,采用前后端分离架构,支持跨平台运行。系统涵盖系统设置、基础数据管理、标本前处理、检验分析、报告生成等核心功能模块。
**此项目为后台Api接口,前端及配套报告单工具项目地址:**
- vue3前端: https://gitee.com/shabigou/dalang-lims-ui
- 报告预览/生成器: https://gitee.com/shabigou/dalang-report-designer
---
## 🏗️ 技术架构
### 技术栈
| 类别 | 技术选型 |
|------|----------|
| 后端框架 | .NET Core 8.0 |
| 数据库 | MySQL + SqlSugar ORM |
| API 文档 | Knife4j/Swagger |
| 缓存 | Redis + MemoryCache |
| 权限认证 | JWT + Claim 认证 |
### 项目结构
```
DaLang.Lims
├── framework/ # 框架层
│ ├── DaLang.Lims.Web.ApiUI # API 文档 UI
│ ├── DaLang.Lims.Web.Common # 公共工具类
│ ├── DaLang.Lims.Web.DynamicApi # 动态 API 框架
│ ├── DaLang.Lims.Web.Framework # 核心框架
│ └── DaLang.Lims.Web.Module.Dev # 开发工具模块
├── hosts/ # 主机层
│ └── DaLang.Lims.Web.Host # Web 启动项目
└── modules/ # 业务模块
├── BasicData/ # 基础数据模块
├── Exam/ # 检验管理模块
├── Pretreatment/ # 前处理模块
├── ReportTemplate/ # 报告模板模块
├── Statistics/ # 统计分析模块
└── Shared/ # 共享模块
```
### 模块分层设计
每个业务模块采用标准分层架构:
```
ModuleName
├── Contracts/ # 接口契约层(DTO、Service 接口)
├── Application/ # 应用服务层(业务逻辑实现)
├── Domain/ # 领域层(实体、仓储接口)
├── Core/ # 核心层(常量、枚举、配置)
└── Sqlsugar.Mysql/ # 基础设施层(仓储实现)
```
## 📦 核心功能模块
### 1. 系统设置 🔧
| 功能 | 描述 |
|------|------|
| 用户管理 | 用户账号、角色、权限配置 |
| 组织架构 | 租户、部门、岗位管理 |
| 权限控制 | 菜单权限、API 权限、数据权限 |
| 系统日志 | 操作日志、登录日志、异常日志 |
| 字典管理 | 系统字典、字典类型维护 |
| 参数配置 | 系统参数、业务参数配置 |
### 2. 基础数据 📋
| 功能 | 描述 |
|------|------|
| 检验项目 | 检验项目、参考范围、个性化设置 |
| 上机项目 | 上机项目设置 |
| 检验目的 | 检验目的设置 |
| 检验套餐 | 检验套餐设置 |
| 仪器管理 | 检验仪器设置 |
| 样本类型 | 样本类型定义、采集要求 |
| 客户管理 | 客户信息管理 |
| 用户组别 | 检验、审核权限 |
| 规则管理 | 审核规则、问询规则 |
| 序列管理 | 样本号编号规则 |
### 3. 前处理管理 🧪
| 功能 | 描述 |
|------|------|
| 样本录入 | 样本直接录入 |
| 样本分拣 | 分拣规则、样本分拣 |
| 样本流转 | 样本交接 |
| 数据导入 | Excel 导入、导入配置管理 |
| 分血处理 | 样本分血、分血记录 |
### 4. 标本检验 🔬
| 功能 | 描述 |
|------|------|
| 检验任务 | 任务分配、任务执行 |
| 结果录入 | 手工录入 |
| 结果审核 | 人工审核、多级审核 |
| 危急值管理 | 危急值判定 |
| 报告生成 | 报告模板、报告发布 |
### 5. 报告与统计 📊
| 功能 | 描述 |
|------|------|
| 报告模板 | 模板设计、模板管理 |
| 报告查询 | 历史报告查询、报告下载 |
| 样本查询 | 样本状态查询、样本统计 |
### 6. 待完成功能列表
- [ ] 物流模块
- [ ] 前处理
- [ ] 双输录入
- [ ] 数据对接
- [ ] 条码打印
- [ ] 检验
- [ ] 加做
- [ ] 复查
- [ ] 批量操作
- [ ] 查询统计
- [ ] 报告合并打印
- [ ] 工作量统计
---
## 🚀 核心特性
### 动态 API 框架
项目内置 `DaLang.Lims.Web.DynamicApi` 动态 API 框架,支持:
- ✅ 自动路由生成(支持多种命名规范)
- ✅ 自动 HTTP 动词识别(GET/POST/PUT/DELETE)
- ✅ 统一响应格式封装
- ✅ 接口自动注册与发现
- ✅ 支持 Area 分组管理
```csharp
// 使用示例
[DynamicApi(Area = "BaseData")]
public class BaseItemService : BaseService,IBaseItemService,IDynamicApi
{
public async Task GetAsync(string id) { }
public async Task> GetListAsync(BaseItemQueryInput input) { }
}
```
### 权限安全
- JWT Token 认证
- Claim 权限模型
- API 访问控制
- 数据权限隔离
- 操作日志审计
### 缓存机制
- 多级缓存支持(Memory + Redis)
- 缓存键统一管理
- 缓存自动失效
- 分布式缓存支持
### 数据库支持
- SqlSugar ORM 框架
- MySQL 数据库
- 多租户数据隔离
- 仓储模式封装
- 支持多数据库扩展
---
## 🛠️ 快速开始
### 环境要求
- .NET 8.0 SDK
- MySQL 8.0+
- Redis 6.0+
- Node.js 16+ (前端)
### 安装步骤
1. **克隆项目**
```bash
git clone https://gitee.com/shabigou/dalang-lims.git
cd dalang-lims
dotnet restore
```
2. **配置数据库**
```
修改 hosts/DaLang.Lims.Web.Host/Configs/dbconfig.json
{
"ConnectionString": "server=localhost;port=3306;database=dlims;uid=root;pwd=yourpassword;"
}
```
3. **初始化数据库**
```
执行 hosts/InitData/dlims.sql
```
4. **运行项目**
```bash
cd hosts/DaLang.Lims.Web.Host
dotnet run
```
5. **API文档**
项目启动后访问 http://localhost:8000/admin/index.html
## 📁 目录说明
| 目录 | 说明 |
|------|------|
| framework/ | 核心框架代码,提供基础能力 |
| hosts/ | 应用程序入口,包含配置和启动代码 |
| modules/ | 业务模块,按功能域划分 |
| modules/*/Contracts/ | 接口契约,定义 DTO 和服务接口 |
| modules/*/Application/ | 应用服务,实现业务逻辑 |
| modules/*/Domain/ | 领域模型,定义实体和仓储接口 |
| modules/*/Sqlsugar.Mysql/ | 数据访问,实现仓储 |
## 🔌 扩展开发
**添加新模块**
- 在 modules/ 下创建新模块目录
- 按照分层结构创建子目录
```
// 在 dbconfig.json 中配置程序集
"assemblyNames": [
"DaLang.Lims.Web.Framework",
"DaLang.Lims.Web.Dev",
"DaLang.Lims.BaseData.Domain",
"DaLang.Lims.Shared.Domain",
"DaLang.Lims.Pretreatment.Domain",
"DaLang.Lims.Exam.Domain",
"DaLang.Lims.ReportTemplate.Domain"
]
```
## 效果图














## 📄 许可证
本项目采用GPL许可证,详见 LICENSE 文件。
## 🤝 贡献指南
欢迎提交 Issue 和 Pull Request!
```
⭐ 如果这个项目对你有帮助,请给一个 Star 支持一下!
```