Skip to content

Commit 0c1905f

Browse files
committed
rename scenarios with IDP naming conventions. add data preparation methods for scenario 2.
1 parent 6ecad8e commit 0c1905f

3 files changed

Lines changed: 142 additions & 2 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88

99
[安装指导](./doc/installation.md)
1010

11-
### 使用场景1: 使用已训练好的病理模型及应用
11+
### 场景1: 基于 ModelEngine 复现 RuiPath 辅助诊断任务
1212

1313
请参考[使用场景1文档](./doc/usage_scenario_1.md)了解如何在ModelEngine平台上使用已训练好的病理模型进行推理和应用。
1414

15-
### 使用场景2: 使用自有数据进行模型训练和推理
15+
### 场景2: 基于 ModelEngine 下游任务训练
1616

1717
请参考[使用场景2文档](./doc/usage_scenario_2.md)了解如何在ModelEngine平台上使用自有数据进行模型训练和推理。

doc/scenario-1.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# 场景1: 基于 ModelEngine 复现 RuiPath 辅助诊断任务

doc/scenario-2.md

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
# 场景2: 基于 ModelEngine 下游任务训练
2+
3+
[[toc]]
4+
5+
## 准备工作
6+
7+
### 准备医院数据
8+
9+
首先,需要获得医院病理系统 PIS 系统(病理科病例管理系统)和 MIS 系统(病理科影像管理系统)的连接和查询方式。DataMate 支持关系型数据库的表/视图查询,亦可以选择使用JSON数据格式的 RESTful API 接口进行查询。两种方法所需的连接和查询信息如下:
10+
11+
1. 数据库查询:
12+
1. 数据库连接URL、用户名(User)、密码(Password)
13+
2. SQL查询语句(Query)
14+
2. API查询:
15+
1. 接口地址(URL)、请求方式(GET/POST/)
16+
2. 请求体参数(Body)、请求头参数(Header)
17+
3. 数据解析(Schema)
18+
19+
我们需要从 PIS 系统和 MIS 系统中获取的数据如下:
20+
1. 从PIS系统获取的数据:以病例为维度,病理号、病理报告、取材部位
21+
2. 从MIS系统获取的数据:以数字病理切片为维度,病理号、病理切片号、数字切片路径、缩略图路径(当数字切片为SDPC格式时需要)
22+
23+
### 准备 DataMate 工作环境
24+
25+
病理系统数据预处理算子准备:从 [DataMate-Ops](https://github.com/JasonW404-HW/DataMate-Ops) 下载 main 分支代码为 zip 文件,解压后将 patho_sys_preprocess/ 文件夹下所有内容,打包为 .zip 或 .tar 压缩包文件,确保压缩包名称为 patho_sys_preprocess.zip 。进入 DataMate - 算子市场 页面,将该算子上传到 DataMate 算子市场 中,并发布。
26+
27+
DataMate 运行环境变更:因为数字病理切片的文件体积较大,且数量较多,本最佳实践中采用的数据准备方式为文件软连接形式。即,数字病理切片及其缩略图并不会传输到 DataMate 的服务器或关联的存储中,而是通过将 医院病理系统图像存储 挂载到 DataMate 运行环境中,通过创建文件软链接进行关联管理的方法。因此,需要做如下环境变更操作:
28+
29+
1. 在主机上完成对 医院病理系统图像存储 的挂载,建议挂载在 `/mnt` 目录下。注意,如果是多主机集群,请确保所有主机上都完成了挂载。
30+
2. 修改 DataMate 安装部署配置,将 医院病理系统图像存储 在主机上的路径,挂载到 POD 中,并记录该存储在 POD 中的路径。需要挂载的 POD 包括:`datamate-backend`, `datamate-runtime`, `datamate-backend-python`, `label-studio`
31+
32+
具体的操作步骤如下:
33+
34+
医院病理图像存储在主机 `/mnt` 下的某个挂载点(例如 `/mnt/pathology`),需要以 `hostPath` 方式挂载到4个 POD 中。按照当前 Helm 配置架构,所有修改集中在如下文件中:
35+
36+
- `deployment/helm/datamate/values.yaml`:控制backend、runtime、backend-python
37+
- `deployment/helm/label-studio/values.yaml`:控制 label-studio
38+
- `deployment/helm/label-studio/templates/deployment.yaml`:label-studio 的 deployment 模板(需要添加 hostPath volume 支持)
39+
40+
1. 确认主机挂载点路径:在每个 Kubernetes 节点上确认病理图像的实际路径。假设实际路径为 `/mnt/pathology`,POD 内挂载路径统一使用 `/data/pathology`
41+
42+
```bash
43+
ls /mnt/pathology # 或 /mnt/wsi-images 等实际挂载点名称
44+
```
45+
2. 修改 datamate 主 values.yaml:
46+
在 values.yaml 中,在顶部 YAML anchor 区域新增一个 hostPath volume anchor,然后分别追加到 backend、backend-python、runtime 的 volumes 和 volumeMounts 中:
47+
48+
```YAML
49+
# 在现有 operatorVolume anchor 后新增:
50+
pathologyVolume: &pathologyVolume
51+
name: pathology-volume
52+
hostPath:
53+
path: /mnt/pathology # ← 替换为实际主机路径
54+
type: Directory
55+
56+
# 在 backend.volumes 中追加:
57+
backend:
58+
volumes:
59+
- *datasetVolume
60+
- *flowVolume
61+
- *logVolume
62+
- *operatorVolume
63+
- *pathologyVolume # ← 新增
64+
volumeMounts:
65+
- name: dataset-volume
66+
mountPath: /dataset
67+
- name: flow-volume
68+
mountPath: /flow
69+
- name: log-volume
70+
mountPath: /var/log/datamate
71+
- name: operator-volume
72+
mountPath: /operators
73+
- name: pathology-volume # ← 新增
74+
mountPath: /data/pathology
75+
readOnly: true # 建议只读,避免误操作
76+
77+
# backend-python 和 runtime 同理追加相同两项
78+
第三步:修改 label-studio 的 values.yaml 和 deployment 模板
79+
values.yaml 新增:
80+
YAML
81+
pathologyVolume:
82+
enabled: true
83+
hostPath: /mnt/pathology # ← 替换为实际主机路径
84+
mountPath: /label-studio/local/pathology
85+
deployment.yaml 中追加:
86+
YAML
87+
# volumeMounts 区域追加:
88+
- name: pathology
89+
mountPath: /label-studio/local/pathology
90+
readOnly: true # 建议只读
91+
92+
# volumes 区域追加:
93+
{{- if .Values.pathologyVolume.enabled }}
94+
- name: pathology
95+
hostPath:
96+
path: {{ .Values.pathologyVolume.hostPath }}
97+
type: Directory
98+
{{- end }}
99+
```
100+
101+
注意:label-studio 的 `LOCAL_FILES_DOCUMENT_ROOT` 已设为 `/label-studio/local`,病理图像放在其子目录 `/label-studio/local/pathology` 下,label-studio 可以直接通过 Local Storage 访问。
102+
103+
3. 确认各 POD 中的存储路径
104+
105+
|POD | 主机路径 | POD 内路径 | 权限 |
106+
|------------------------|----------------|-------------------------------|------|
107+
|datamate-backend | /mnt/pathology | /data/pathology | 只读 |
108+
|datamate-runtime | /mnt/pathology | /data/pathology | 只读 |
109+
|datamate-backend-python | /mnt/pathology | /data/pathology | 只读 |
110+
|label-studio | /mnt/pathology | /label-studio/local/pathology | 只读 |
111+
112+
## 训练数据准备
113+
114+
### 数据归集
115+
116+
这一部分的操作目的,是为了将医院病理科业务系统中的数据,以结构化数据的形式,导入到 DataMate 中,便于后续处理和使用。
117+
118+
1. 进入 DataMate - 数据归集 页面,点击 创建任务 。
119+
2. 填入任务名称(不影响任务执行),根据数据查询的方式,选择正确的归集模板:
120+
1. 通过API查询:选择 API 归集模板
121+
2. 通过关系型数据库查询:选择 MySQL 归集模板 或 通用关系型数据库归集模板 。
122+
3. 等待归集结束。进入 DataMate - 数据管理 页面,点击 创建数据集。
123+
4. 填写数据集名称,选择合适的数据集类型(文本),关联 步骤 1-3 中创建并运行完成的数据归集任务。点击 确定,创建数据集。
124+
125+
> ‼️ **注意**:为了后续归集数据的清洗能正确执行,请对PIS系统和MIS系统分别设置归集任务,并将归集结果写入同一数据集中。
126+
127+
**预期结果**: 在对应数据集中,能看到两个 CSV 文件。
128+
129+
### 数据清洗
130+
131+
1. 进入 DataMate - 数据处理 页面,点击 创建模板 ,创建 “病理数据归集清洗流程” 模板。注意,该模板中仅需勾选一个“病理系统数据预处理”算子。保存并创建模板。
132+
2. 进入 DataMate - 数据处理 页面,点击 创建任务 ,创建 “病理图片归集“任务。
133+
3. 选择之前创建的“病理数据归集清洗”模板,创建清洗任务,等待清洗完成。
134+
135+
**预期结果**:在目标数据集“WSI归集”中,可以看到有若干 数字病理切片 和 数字病理切片的预览图 (如果有SDPC文件)。
136+
137+
> 至此,病理场景数据准备已经完成,您可以进入下一步 *模型训练*
138+
139+
## 模型训练

0 commit comments

Comments
 (0)