通过华银康集团 PathClaw 服务对 .svs 病理切片进行 AI 辅助诊断。适用于用户请求分析病理切片、肿瘤筛查、提到 PathClaw、病理切片、AI 辅助诊断时。必须先确认有效 .svs 文件路径和一个支持名称;支持常见简称映射,但“宫颈”和“甲状腺”必须先区分组织学或细胞学。
---
name: pathclaw
description: 通过华银康集团 PathClaw 服务对 .svs 病理切片进行 AI 辅助诊断。适用于用户请求分析病理切片、肿瘤筛查、提到 PathClaw、病理切片、AI 辅助诊断时。必须先确认有效 .svs 文件路径和一个支持名称;支持常见简称映射,但“宫颈”和“甲状腺”必须先区分组织学或细胞学。
---
## 概述
使用华银康集团 PathClaw 服务分析 .svs 病理切片。
## 名称确认
在用户完成名称选择前,不得登录、上传切片或调用诊断接口。
当需要让用户从支持名称中选择时,使用带表头的 Markdown 表格,每行 3 组「序号 + 名称」,共两列重复。直接按下面模板回复:
```text
请从以下名称中选择一个(回复序号即可):
| 序号 | 名称 | 序号 | 名称 | 序号 | 名称 |
| :---: | :---: | :---: | :---: | :---: | :---: |
| 1 | 消化道活检 | 2 | 肺 | 3 | 乳腺 |
| 4 | 前列腺 | 5 | 宫颈组织 | 6 | 宫颈液基细胞 |
| 7 | 甲状腺组织 | 8 | 甲状腺细胞 | 9 | 膀胱 |
| 10 | 子宫内膜 | 11 | 胃肠活检组织淋巴瘤 | 12 | 卵巢 |
| 13 | 骨髓 | 14 | 肾上腺 | 15 | 肝 |
| 16 | 软组织 | 17 | 胰腺 | 18 | 神经系统 |
| 19 | 胸腺 | 20 | 肾脏 | 21 | 眼 |
| 22 | 盆腔 | 23 | 胆囊 | 24 | 脾 |
| 25 | 鼻 | 26 | 胎盘 | 27 | 骨 |
| 28 | 口腔 | 29 | 睾丸 | 30 | 喉 |
| 31 | 耳 | 32 | 咽 | 33 | 淋巴结 |
| 34 | 阴茎 | 35 | 皮肤 | 36 | 呼吸道细胞 |
| 37 | 尿液细胞学 | 38 | 胸腹积液细胞 | | |
```
若用户回复的是短名称,按下方“简称映射”或“支持名称”归一化到规范名称后再继续。
### 支持名称
1. 消化道活检(组织学)
2. 肺组织(组织学)
3. 乳腺粗针穿刺活检(组织学)
4. 前列腺穿刺(组织学)
5. 宫颈组织(组织学)
6. 甲状腺组织(组织学)
7. 膀胱组织(组织学)
8. 子宫内膜组织(组织学)
9. 胃肠活检组织淋巴瘤(组织学)
10. 卵巢组织(组织学)
11. 骨髓组织(组织学)
12. 肾上腺病理(组织学)
13. 肝组织(组织学)
14. 软组织病理(组织学)
15. 胰腺病理(组织学)
16. 神经系统病理(组织学)
17. 胸腺病理(组织学)
18. 肾脏组织(组织学)
19. 眼病理(组织学)
20. 盆腔病理(组织学)
21. 胆囊病理(组织学)
22. 脾病理(组织学)
23. 鼻病理(组织学)
24. 胎盘组织(组织学)
25. 骨病理(组织学)
26. 口腔病理(组织学)
27. 睾丸活检(组织学)
28. 喉病理(组织学)
29. 耳病理(组织学)
30. 咽病理(组织学)
31. 淋巴结病理(组织学)
32. 阴茎病理(组织学)
33. 皮肤组织(组织学)
34. 宫颈液基细胞(细胞学)
35. 甲状腺细胞(细胞学)
36. 呼吸道细胞(细胞学)
37. 尿液细胞学(细胞学)
38. 胸腹积液细胞(细胞学)
### alg_id 对照
按归一化后的规范名称选择 `alg_id`。`/api/v1/diagnosis/run` 必须额外传 `alg_id`,参数类型为 `int`。名称以本 skill 的“支持名称”为准,不使用外部表中的非规范名称。
1. 消化道活检(组织学) -> `7`
2. 肺组织(组织学) -> `12`
3. 乳腺粗针穿刺活检(组织学) -> `14`
4. 前列腺穿刺(组织学) -> `13`
5. 宫颈组织(组织学) -> `21`
6. 甲状腺组织(组织学) -> `22`
7. 膀胱组织(组织学) -> `23`
8. 子宫内膜组织(组织学) -> `24`
9. 胃肠活检组织淋巴瘤(组织学) -> `26`
10. 卵巢组织(组织学) -> `27`
11. 骨髓组织(组织学) -> `28`
12. 肾上腺病理(组织学) -> `29`
13. 肝组织(组织学) -> `30`
14. 软组织病理(组织学) -> `31`
15. 胰腺病理(组织学) -> `32`
16. 神经系统病理(组织学) -> `33`
17. 胸腺病理(组织学) -> `34`
18. 肾脏组织(组织学) -> `35`
19. 眼病理(组织学) -> `36`
20. 盆腔病理(组织学) -> `37`
21. 胆囊病理(组织学) -> `38`
22. 脾病理(组织学) -> `39`
23. 鼻病理(组织学) -> `40`
24. 胎盘组织(组织学) -> `41`
25. 骨病理(组织学) -> `42`
26. 口腔病理(组织学) -> `43`
27. 睾丸活检(组织学) -> `44`
28. 喉病理(组织学) -> `45`
29. 耳病理(组织学) -> `46`
30. 咽病理(组织学) -> `47`
31. 淋巴结病理(组织学) -> `48`
32. 阴茎病理(组织学) -> `49`
33. 皮肤组织(组织学) -> `50`
34. 宫颈液基细胞(细胞学) -> `1`
35. 甲状腺细胞(细胞学) -> `9`
36. 呼吸道细胞(细胞学) -> `10`
37. 尿液细胞学(细胞学) -> `11`
38. 胸腹积液细胞(细胞学) -> `15`
### 简称映射
若用户提供以下简称,直接归一化为对应名称:
1. 肺 -> 肺组织(组织学)
2. 乳腺 -> 乳腺粗针穿刺活检(组织学)
3. 前列腺 -> 前列腺穿刺(组织学)
4. 膀胱 -> 膀胱组织(组织学)
5. 子宫内膜 -> 子宫内膜组织(组织学)
6. 卵巢 -> 卵巢组织(组织学)
7. 骨髓 -> 骨髓组织(组织学)
8. 肝 -> 肝组织(组织学)
9. 肾脏 -> 肾脏组织(组织学)
10. 胎盘 -> 胎盘组织(组织学)
11. 睾丸 -> 睾丸活检(组织学)
12. 淋巴结 -> 淋巴结病理(组织学)
13. 阴茎 -> 阴茎病理(组织学)
14. 皮肤 -> 皮肤组织(组织学)
15. 尿液 -> 尿液细胞学(细胞学)
16. 胸腹积液 -> 胸腹积液细胞(细胞学)
若用户只说“宫颈”或“甲状腺”,必须暂停并询问:
```text
{{name}} 支持以下类型,请选择本次要走哪一种:
1. 组织学
2. 细胞学
```
若用户说明多个名称,要求用户只选择一个名称后再继续。若用户说明的名称不支持,终止流程并给出支持名称列表。
## 文件要求
用户必须提供 `.svs` 病理切片文件路径。未提供时询问:
```text
请提供病理切片文件路径,例如:C:\path\to\slide.svs
```
脚本会在上传前校验:
1. 路径存在
2. 是普通文件
3. 当前进程可读
4. 文件大小大于 0 字节
5. 后缀名是 `.svs`,大小写不敏感
任一校验失败都终止流程,并提示:
```text
该文件不是有效的病理切片格式(应为 .svs 格式)
```
## 提交新任务
确认名称和文件路径后,先按归一化后的规范名称查出对应 `alg_id`,并在当前上下文中记录 `alg_id`。`alg_id` 仅用于内部接口调用,不得在用户可见输出中展示。然后输出一次:
```text
已选择名称:{{name}}({{analysis_type}})。
```
然后用 `curl` 依次完成登录、提交和轮询查询。不要向用户输出“开始登录”“登录成功”等认证过程信息;如需进度提示,只输出“正在提交切片文件进行分析...”。提交请求时必须带上 `alg_id`;提交成功后必须记录接口返回的 `slide_id`,用于后续继续查询。
1. 登录,获取 `token`
```bash
curl -s -X POST "https://pathclaw.pathologyunion.com/api/user/login"
```
2. 提交切片,使用 `multipart/form-data` 上传 `.svs` 文件和 `alg_id`
```bash
curl -s -X POST "https://pathclaw.pathologyunion.com/api/v1/diagnosis/run" ^
-H "Authorization: Bearer <token>" ^
-F "alg_id=<alg_id>" ^
-F "slide_file=@C:\path\to\slide.svs"
```
其中 `alg_id` 参数类型为 `int`。例如,若名称为“消化道活检(组织学)”,则传 `-F "alg_id=7"`。
3. 查询结果
```bash
# curl -s -X GET "https://pathclaw.pathologyunion.com/api/v1/diagnosis/<slide_id>/result" ^
-H "Authorization: Bearer <token>"
```
4. 轮询时每隔 10 秒重复查询,最多 30 次;`data.status` 为 `1/2/3` 时继续等待,`4` 为成功,`5` 为失败。
## 继续查询已有任务
当用户说“再查一次”“继续查结果”等,并且当前上下文已有 `slide_id`,直接用同一 `token` 调用结果接口。
若上下文没有 `slide_id`,要求用户提供:
```text
请提供要继续查询的 slide_id。
```
## 状态字段
以实际接口字段 `data.status` 为准:
1. `0`:未知
2. `1`:排队中
3. `2`:队列中
4. `3`:分析中
5. `4`:分析成功
6. `5`:分析失败
若旧接口或日志中出现 `ai_diagnosis_status`,可兼容理解为分析状态,但输出以 `data.status` 为主。
## 错误处理
人工兜底时遵守以下规则:
1. 每次 HTTP 请求设置超时。
2. 网络错误或 `5xx` 最多重试 2 次,退避 1 秒、2 秒。
3. `401/403`:提示认证失败或 token 失效,终止流程。
4. `4xx`:提示请求参数错误,可能与文件或接口参数有关,终止流程。
5. HTTP `200` 但 `code != 10000`:视为接口失败,输出 `code`、`msg`、`devmsg`、`tips`、`request_id` 的摘要。
6. `data.status` 为 `1/2/3`:输出仍在推理中,可继续查询。
7. `data.status` 为 `4`:输出最终诊断结果。
8. `data.status` 为 `5`:输出分析失败及返回摘要。
9. `data.status` 为 `0` 或未知值:按异常状态处理并终止流程。
## Token 安全
不得在最终回答、日志或中间输出中展示完整 token、完整 `Authorization` header 或原始登录响应。若调试必须提及 token,只允许使用前 6 位加 `***`,但默认不输出 token。
## 输出模板
### 已提交但未完成
```text
切片已完成上传,正在推理中。
当前 slide_id:{{slide_id}}
当前状态:{{status_text}}({{status}})
```
### 继续查询但仍未完成
```text
结果仍在推理中。
当前 slide_id:{{slide_id}}
当前状态:{{status_text}}({{status}})
```
### 分析成功
```text
1. 当前切片已完成推理。该切片 {{file_name}} 按 {{name}}({{analysis_type}})方向提交,经过 **华银康集团 PathClaw 服务** 辅助诊断,提示“{{diagnosis_result}}”,建议进一步做病理复查或免疫组化检测以明确诊断。
2. 热力图请点击查看以下链接:{{short_link}}
3. 本次 AI 辅助诊断结果仅供参考,不构成最终诊断建议。最终诊断应由专业医师结合临床情况及其他检查结果进行判断。
```
### 分析失败或异常
```text
PathClaw 分析未成功。
slide_id:{{slide_id_or_unknown}}
原因:{{error_or_status_summary}}
request_id:{{request_id_if_any}}
```
don't have the plugin yet? install it then click "run inline in claude" again.