1134 lines
93 KiB
Python
1134 lines
93 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
"""
|
||
生成 10 个医疗器械示例项目的完整数据包 (前端 Seed JSON + 后端 SQL 导入脚本)
|
||
涵盖:
|
||
1. 项目基础信息与工作流状态 (main, product_manager, test_manager)
|
||
2. 多角色生动、自然、各具专业特色的对话记录 (张工 u1, 李主管 u2, 王总监 u3)
|
||
- 重点包含真实上传《用户需求说明书(URS)》的对话记录、附件文件卡片与4阶段要素提取
|
||
- 李主管审核对话中调阅 URS 附件比对覆盖度并挂载【合规审核确认卡】
|
||
- 王总监批准对话中确认 URS 输入基线到 SRS 的闭环并挂载【终审批准确认卡】
|
||
3. 真实 40KB~90KB 的《系统需求规格书》与《系统验证方案及计划》Markdown 全文
|
||
4. 文档血缘 (document_lineage) 与工作流运行记录 (workflow_runs)
|
||
"""
|
||
|
||
import hashlib
|
||
import json
|
||
import os
|
||
import sys
|
||
|
||
PROJECT_DEFS = [
|
||
{
|
||
"id": 6001,
|
||
"code": "PROJ-WANGJING-0021",
|
||
"key": "wangjing",
|
||
"name": "膝骨关节炎综合治疗仪",
|
||
"short_name": "膝骨关节炎综合治疗仪 (望京医院)",
|
||
"customer": "中国中医科学院望京医院骨伤科",
|
||
"device_type": "中药离子导入与多频温控电热综合治疗设备",
|
||
"intended_use": "用于早中期膝骨关节炎患者的局部经皮靶向定向透药导入、穴位多频电刺激止痛与温热理疗",
|
||
"target_market": "中国 NMPA II类 (YY 0601-2007 中药定向透药治疗仪, GB 9706.1-2020, YY 0505-2012)",
|
||
"path": "/Volumes/新加卷/WeiCHEN-Backup/01-Projects/ShuiMuDongFang/2026-08-17 飞书智能体/.tmp/dual-agent/望京医院",
|
||
"highlight_tech": "双通道脉冲离子导入极性自适应换相技术,温控范围 38℃~45℃ ±0.5℃,输出隔离耐压 4000V",
|
||
"srs_title": "膝骨关节炎综合治疗仪系统需求规格书",
|
||
"svp_title": "膝骨关节炎综合治疗仪系统验证方案及计划",
|
||
"urs_file": {
|
||
"name": "RDDHF0201-0021_膝骨关节炎综合治疗仪_用户需求说明书(URS)_V1.0.docx",
|
||
"size": "284 KB",
|
||
"type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
||
},
|
||
"chat_topics": {
|
||
"u1": [
|
||
("我已上传中国中医科学院望京医院骨伤科临床中心联合编制的《RDDHF0201-0021_膝骨关节炎综合治疗仪_用户需求说明书(URS)_V1.0.docx》。\n临床重点关注:膝关节腔内深部红外热疗(38℃~45℃ 精确控温)与中频脉冲电刺激的协同镇痛机制,且必须具备皮肤接触防烫伤双重硬件断电保护。请智能体进行 URS 结构化解析,提取关键临床指标、工程参数和适用的国家强制性标准。",
|
||
"已成功接收并解析用户需求说明书《RDDHF0201-0021_膝骨关节炎综合治疗仪_用户需求说明书(URS)_V1.0.docx》!\n\n经智能体核心工程知识库比对与特征抽取,提炼四大维度受控输入基线:\n1. **临床功能与预期用途**:用于中老年膝骨关节炎(KOA)阶梯化保守治疗,集成特种波长红外热辐射、中频调制方波及穴位气压循环泵;\n2. **关键技术指标边界**:\n - **离子渗透防灼伤**:采用「双极性非对称周期换相脉冲算法」,换相周期 30s~120s 可调,大幅消除极板电荷积累与电化学灼伤;\n - **双重物理限温**:MCU 采用闭环 NTC 数字 PID 控温(38℃~45℃ ±0.5℃),贴片回路串联双金属温控开关(47℃ 硬件不可逆硬切断),符合 YY 0601 与 GB 9706.1 接触表面限温要求;\n - **输出隔离耐压**:变压器原副边电气绝缘耐压 4000 VAC 1分钟,患者漏电流 < 10 μA;\n3. **安全防护与法规标准映射**:严格对标 YY 0601-2007(中药定向透药治疗仪)、GB 9706.1-2020、YY 0505-2012;\n4. **受控基线状态**:已在工程事实黑板建立系统需求规格书(SRS)的原始来源映射(URS-REQ-001 ~ URS-REQ-039),正前置对齐【智能产品经理】工作流。"),
|
||
("请深入分析一下:YY 0601-2007 对输出直流分量和漏电流有严格限值,我们在变压器隔离和驱动桥设计上该怎么落规?",
|
||
"关于 YY 0601-2007 与 GB 9706.1-2020 输出端电气绝缘与患者漏电流的合规设计,技术解析如下:\n\n### 一、法规限值基线\n- 患者漏电流(正常状态):直流 < 10 μA,交流 < 100 μA(BF型应用部分);\n- 单一故障状态(S.F.C.):漏电流必须 < 500 μA;\n- YY 0601 规定透药通道开路电压不得超过 100 V,最大有效输出电流不得超过 50 mA。\n\n### 二、硬件工程拓扑\n1. **全隔离驱动**:采用变压器原副边电气绝缘(爬电距离 ≥ 5.0 mm,电气间隙 ≥ 3.2 mm,耐压 4000 VAC 1分钟);\n2. **输出级防直流失步**:在电极输出端串接无极性低等效串联电阻(ESR)安规隔直电容(耐压 250V),即便 MCU PWM 异常封波,也能彻底杜绝纯直流进入人体组织;\n3. **动态阻抗检测**:实时检测电极脱落(阻抗 > 5 kΩ 自动封波)与短路保护(阻抗 < 50 Ω 限流 < 5 mA)。"),
|
||
("很好,参数完整。请启动【智能产品经理】工作流,生成完整的受控《系统需求规格书》(RD-SR)。",
|
||
"已启动【智能产品经理工作流】编制任务!\n\n- 步骤1/5: 需求提炼(已提取 39 项用户需求)\n- 步骤2/5: 规格分解(完成电气、温控、软件、结构 117 项 REQ 条目)\n- 步骤3/5: 强标论证(对齐 YY 0601、GB 9706.1、YY 0505)\n- 步骤4/5: 全文编制(完成 12 个规范章节,含环境与包材要求)\n- 步骤5/5: 可测性终审(门禁通过率 100%,无 TODO 占位符)\n\n正式成果《膝骨关节炎综合治疗仪系统需求规格书》已生成并载入交付物受控大盘(doc-proj6001-system_reqs),现已提交李主管审核。"),
|
||
("李主管和王总监已审批通过规格书!请切换到【智能测试经理】工作流,以已批准的规格书为基准,编制完整的《系统验证方案及计划》(RD-SVP)。",
|
||
"已原子切换至【智能测试经理】工作流焦点!\n系统检测到前置依赖《系统需求规格书》(RD-SR, V1.0, 状态: approved) 已就绪,已放行前置质量门禁。\n\n测试经理智能体正在遍历 117 项系统规格条目,自动生成映射验证用例库(涵盖温控精度试验、输出波形与电流密度试验、电磁兼容试验、安规耐压与漏电流试验、软件压力与故障注入测试)。\n\n成果《膝骨关节炎综合治疗仪系统验证方案及计划》已生成完毕(doc-proj6001-test_manager)!系统已建立与上游规格书的文档血缘追踪链路,版本与 SHA-256 均已安全锁定。")
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"id": 6002,
|
||
"code": "PROJ-TINAVI-0050",
|
||
"key": "tianzhihang",
|
||
"name": "移动式C形臂X射线机",
|
||
"short_name": "移动式C形臂X射线机 (天智航)",
|
||
"customer": "北京天智航医疗科技股份有限公司",
|
||
"device_type": "骨科手术三维透视导航配准高频X射线成像系统",
|
||
"intended_use": "用于骨科创伤与脊柱微创手术中实时高频脉冲透视、三维空间重构及导航配准标记点追踪",
|
||
"target_market": "中国 NMPA III类 (GB 9706.1-2020, GB 9706.103, GB 9706.254, YY 0505)",
|
||
"path": "/Volumes/新加卷/WeiCHEN-Backup/01-Projects/ShuiMuDongFang/2026-08-17 飞书智能体/.tmp/dual-agent/天智航",
|
||
"highlight_tech": "高压发生器 50kW / 120kV / 0.1s脉冲曝光,平板探测器 30cm×30cm 像元 100μm,激光交叉十字线投照精度 ±0.5mm",
|
||
"srs_title": "移动式C形臂X射线机系统需求规格书",
|
||
"svp_title": "移动式C形臂X射线机系统验证方案及计划",
|
||
"urs_file": {
|
||
"name": "RDDHF0201-0050_移动式C形臂X射线机_用户需求说明书(URS)_V1.0.pdf",
|
||
"size": "1.2 MB",
|
||
"type": "application/pdf"
|
||
},
|
||
"chat_topics": {
|
||
"u1": [
|
||
("我已上传天智航骨科手术机器人配套的《RDDHF0201-0050_移动式C形臂X射线机_用户需求说明书(URS)_V1.0.pdf》。\n天智航研发部提出了硬性配套指标:透视中心空间重复定位精度必须优于 0.3mm,且每次三维扫描辐射累积剂量较传统连续透视降低 30% 以上。请智能体对该 URS 进行合规与工程要素解析。",
|
||
"已成功接收并解析用户需求说明书《RDDHF0201-0050_移动式C形臂X射线机_用户需求说明书(URS)_V1.0.pdf》!\n\n手术机器人导航配准对 C 臂空间刚性及剂量控制提出了极致要求,经智能体深度解析提取如下关键工程基线:\n1. **高精度空间定位**:高刚度碳纤维平衡复合弧形臂轨道,绝对值编码器重复定位精度 < 0.2mm,激光交叉十字线投照精度 ±0.5mm;\n2. **超低剂量高频曝光**:高压发生器 50kW / 120kV,自适应微剂量脉冲曝光(1~15 fps,脉宽 < 10ms),搭配 30cm×30cm(像元 100μm)平板探测器,实测辐射剂量降低 35%~50%;\n3. **机器人通信互锁**:标准光学隔离 DICOM 3.0 / RD-Interface 手术机器人控制总线;\n4. **强制性标准对齐**:全面覆盖 GB 9706.1-2020、GB 9706.103 辐射防护、GB 9706.254 X射线专标与 YY 0505;\n5. **受控基线状态**:已提取 99 项工程条目录入事实黑板,作为系统需求规格书编制依据。"),
|
||
("请补充分析:C 臂沿轨道滑动和摆动时,电缆拖链与高压电缆弯折寿命以及平衡机构防滑落安全保护如何规范?",
|
||
"关于 C 臂机械运动防坠落与电缆寿命工程规格:\n\n### 一、防坠落重力平衡机构设计\n- 采用高精度双恒力弹簧预紧机构与冗余电磁断电刹车(抱闸):在发生意外断电或驱动皮带断裂时,机械抱闸在 10 ms 内强行抱紧,C 臂下坠滑移量不得大于 1.0 mm,完全满足 GB 9706.1 机械危险防护标准;\n- 轨道两端设置双级机械聚氨酯防撞缓冲块及双路极限行程微动开关(硬件级互锁中断高压驱动)。\n\n### 二、高压电缆与信号拖链寿命\n- 高压电缆弯曲半径必须 ≥ 8 倍外径,拖链采用低粉尘超高柔性静音尼龙护套;\n- 规定满行程(滑动 130°、轨道旋转 ±180°)机械疲劳试验寿命必须通过 100,000 次无内部绝缘破损与高压打火。"),
|
||
("请启动智能产品经理工作流,产出正式版《系统需求规格书》(RD-SR)。",
|
||
"已触发【智能产品经理工作流】!\n正在调取天智航原始用户需求(RDDHF0201-0050),完成 99 项规格条目分解及 X 射线专标(GB 9706.254)条文对齐。\n\n已成功生成《移动式C形臂X射线机系统需求规格书》(doc-proj6002-system_reqs)并锁定受控状态!正文包括球管热容量、平板成像特性、激光指示器波长、电磁制动扭矩及辐射泄漏率等严苛技术要求。"),
|
||
("规格书经李主管审核与王总监批准已正式受控生效。请立即启动【智能测试经理】工作流,输出配套的系统验证方案。",
|
||
"收到!系统校验前置《系统需求规格书》已处于批准态,前置依赖门禁通过!\n\n智能测试经理已启动执行:\n1. 提取 136 项可测性技术指标;\n2. 编制《移动式C形臂X射线机系统验证方案及计划》(doc-proj6002-test_manager);\n3. 覆盖高压重复性试验、X射线空气比释动能率试验、空间分辨率线对卡实测(≥ 3.2 lp/mm)、跌落与抗倾翻稳定性试验;\n4. 建立与规格书各 REQ- 的双向追溯矩阵(Traceability Matrix)及 SHA-256 数据指纹。")
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"id": 6003,
|
||
"code": "PROJ-ROBOT-0025",
|
||
"key": "xunzun",
|
||
"name": "移动式远程查房听问诊系统",
|
||
"short_name": "巡诊机器人 (ICU远程查房)",
|
||
"customer": "解放军总医院第一医学中心急诊重症监护室",
|
||
"device_type": "移动式隔离病区智能巡诊查房与电子听诊系统",
|
||
"intended_use": "用于传染病隔离病房及危重监护室中远程医生自主导航移动巡诊、高保真电子听诊心肺音与音视频问诊",
|
||
"target_market": "中国 NMPA II类 (GB 9706.1-2020, YY 0505, 机器人安全通用要求)",
|
||
"path": "/Volumes/新加卷/WeiCHEN-Backup/01-Projects/ShuiMuDongFang/2026-08-17 飞书智能体/.tmp/dual-agent/巡诊机器人",
|
||
"highlight_tech": "激光SLAM自主建图避障导航,多自由度听诊机械臂接触力控 0.5N~2.0N,电子听诊器 20Hz~2000Hz 动态降噪",
|
||
"srs_title": "移动式远程查房听问诊系统系统需求规格书",
|
||
"svp_title": "移动式远程查房听问诊系统系统验证方案及计划",
|
||
"urs_file": {
|
||
"name": "RDDHF0201-0025_移动式远程查房听问诊系统_用户需求说明书(URS)_V1.0.docx",
|
||
"size": "312 KB",
|
||
"type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
||
},
|
||
"chat_topics": {
|
||
"u1": [
|
||
("我已上传解放军总医院第一医学中心 ICU 编制的《RDDHF0201-0025_移动式远程查房听问诊系统_用户需求说明书(URS)_V1.0.docx》。\n临床现场核心要求:机器人在病房狭窄过道(最小净宽 70cm)必须实现自主导航零刮碰,且电子听诊器采集心音时必须滤除呼吸机与监护仪低频啸叫。请进行 URS 需求提取与标准映射。",
|
||
"已成功接收并解析用户需求说明书《RDDHF0201-0025_移动式远程查房听问诊系统_用户需求说明书(URS)_V1.0.docx》!\n\n针对隔离病房自主巡诊与微弱生理声学采集,提取核心受控需求基线如下:\n1. **窄道自主导航与零刮碰**:激光 SLAM + 双 3D-LiDAR + 前向 ToF 深度相机全融合避障,最小通行净宽由 80cm 压缩至 65cm,外缘医用硅胶缓冲带触碰响应 < 20ms;\n2. **微弱心肺音抗噪听诊**:压电薄膜传感器搭配自适应 LMS 滤波,滤除 50Hz 工频及 20~200Hz 呼吸机气泵噪音,心音特征保真度 > 95%,频响 20Hz~2000Hz;\n3. **机械臂接触力控安全**:六维力控传感,接触压力 0.5N~2.0N(设定 1.2N ±0.3N),咳嗽突发阻抗在 5ms 内后撤卸力;\n4. **标准与法规对标**:对齐 GB 9706.1-2020、YY 0505、医用服务机器人通用安全规范,提取 133 项技术条目入库。"),
|
||
("听诊机械臂接触患者胸部时,如果患者咳嗽或者突然翻身,如何保证绝对安全?力反馈安全策略是什么?",
|
||
"机械臂接触人体的安全策略遵循严格的三级保护机制:\n\n1. **一级力控闭环**:听诊臂末端配置六维力传感器,微处理器实时运行阻抗力控算法,设定目标接触压力为 1.2 N ± 0.3 N;当患者咳嗽导致胸壁突然突起(瞬时压力 > 3.0 N)时,机械臂在 5 ms 内主动后撤卸力;\n2. **二级物理滑移离合器**:关节驱动链内置机械阻尼过载脱扣器,任何方向外力超过 8 N 时机械脱扣自由回弹;\n3. **三级软件超时防护**:单次听诊贴合持续时间不得超过 45s,超时强制收回至归位安全锚点。完全满足机器人医疗器械接触安全准则。"),
|
||
("请启动【智能产品经理】工作流,生成规格书。",
|
||
"【智能产品经理工作流】执行完毕!已生成《移动式远程查房听问诊系统系统需求规格书》(doc-proj6003-system_reqs)。涵盖激光导航定位精度(重复定位误差 < 15mm)、音视频端到端延迟(< 150ms)、听诊器声学频响曲线(20Hz~2000Hz)、锂电池连续工作巡航(≥ 8小时)等 133 项规格。"),
|
||
("经审核批准后,请触发【智能测试经理】工作流,产出系统验证方案。",
|
||
"已切换至【智能测试经理】工作流!前置依赖核验完成(规格书状态为 approved)。\n测试经理已生成《移动式远程查房听问诊系统系统验证方案及计划》(doc-proj6003-test_manager),包含:倾翻与越障试验(越过 10mm 门槛)、机械臂接触力超载主动后退试验、心肺音仿真发生器对比失真度测试(THD < 1.0%)、网络弱网丢包模拟试验。文档血缘已绑定!")
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"id": 6004,
|
||
"code": "PROJ-XHJ-0089",
|
||
"key": "xianghejie",
|
||
"name": "一次性使用高频手术电极",
|
||
"short_name": "一次性高频手术电极 (祥合洁)",
|
||
"customer": "常州祥合洁医疗科技有限公司",
|
||
"device_type": "无源微创高频腹腔镜手术电极附件",
|
||
"intended_use": "与兼容的高频手术设备主机配套,用于内窥镜或普腹手术中对人体软组织进行电切、电凝止血与剥离",
|
||
"target_market": "中国 NMPA II类 (GB 9706.202-2021 高频手术设备专标, GB/T 16886, GB 9706.1)",
|
||
"path": "/Volumes/新加卷/WeiCHEN-Backup/01-Projects/ShuiMuDongFang/2026-08-17 飞书智能体/.tmp/dual-agent/祥合洁电极",
|
||
"highlight_tech": "涂覆全氟医用绝缘层耐击穿电压 > 3000Vrms,电极刀头采用防粘耐腐 316L/钨合金,手柄密封防水 IPX7",
|
||
"srs_title": "一次性使用高频手术电极系统需求规格书",
|
||
"svp_title": "一次性使用高频手术电极系统验证方案及计划",
|
||
"urs_file": {
|
||
"name": "RDDHF0201-0089_一次性使用高频手术电极_用户需求说明书(URS)_V1.0.docx",
|
||
"size": "198 KB",
|
||
"type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
||
},
|
||
"chat_topics": {
|
||
"u1": [
|
||
("我已上传常州祥合洁医疗编制的《RDDHF0201-0089_一次性使用高频手术电极_用户需求说明书(URS)_V1.0.docx》。\n质量部提出型检要点:刀杆在 300℃ 高温切凝后绝缘层不能脱落或碳化击穿,且全套材料必须满足医用生物相容性要求。请解析该 URS 文档并提炼工程基线。",
|
||
"已成功接收并解析用户需求说明书《RDDHF0201-0089_一次性使用高频手术电极_用户需求说明书(URS)_V1.0.docx》!\n\n微创高频电极的核心工程与法规要素已提炼归纳:\n1. **耐高频高压绝缘**:全氟医用绝缘层耐击穿电压 > 3000Vrms(高频峰值 3500 Vpeak),连续切凝 60 秒后绝缘电阻保持 > 100 MΩ,杜绝鞘管与腹壁热灼伤;\n2. **电极材料与结构**:防粘耐腐 316L/钨合金刀头,手柄 IPX7 密封防水,电极抗弯曲强度承受 20N 侧向力无塑性形变;\n3. **生物相容性与无菌**:符合 GB/T 16886 细胞毒性(≤ 1级)、皮内刺激与迟发超敏全阴性,环氧乙烷残留量 EO ≤ 10 μg/g;\n4. **法规标准映射**:对标 GB 9706.202-2021(高频手术附件专标)、GB 9706.1-2020、GB/T 16886,提炼 46 项工程指标录入黑板。"),
|
||
("请详细说明按 GB 9706.202 进行高频电极高压试验的配置要求与检验方法。",
|
||
"GB 9706.202-2021 对高频附件绝缘强度的检测规范:\n- 试验在 0.9% 生理盐水浴中进行,浸没深度覆盖有效工作杆部分(除裸露电极尖端 5mm 外);\n- 施加 1.2 倍额定附件高频峰值工作电压(如标称 3000V 则施加 3600Vpeak,频率 300kHz~1MHz)持续 60 秒;\n- 试验期间不得出现火花放电、飞弧或绝缘套管烧穿孔洞,高频漏电流必须低于 50 mA。\n该检验规程已作为强制条目纳入规格书。"),
|
||
("请启动【智能产品经理】工作流,生成受控需求规格书。",
|
||
"已完成【智能产品经理工作流】全流程编排!正式生成《一次性使用高频手术电极系统需求规格书》(doc-proj6004-system_reqs)。涵盖刀尖几何公差(±0.05mm)、插头插拔力(5N~25N)、电极抗弯曲强度(承受 20N 侧向力无永久塑性变形)等 46 项工程指标。"),
|
||
("规格书批准生效,请切换至【智能测试经理】工作流生成验证方案与计划。",
|
||
"已切换【智能测试经理】工作流,前置依赖已确认!\n成功生成《一次性使用高频手术电极系统验证方案及计划》(doc-proj6004-test_manager)。方案涵盖高压介电强度试验、环氧乙烷灭菌残留量实测(EO ≤ 10 μg/g)、无菌包装热封密封剥离力测试(1.5N/15mm~3.5N/15mm)及高频组织切割热损伤深度病理切片对比试验。血缘链路完整。")
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"id": 6005,
|
||
"code": "PROJ-ENDO-0029",
|
||
"key": "yamui",
|
||
"name": "自动化牙髓根管治疗仪",
|
||
"short_name": "自动化牙髓根管治疗仪 (北京口腔医院)",
|
||
"customer": "首都医科大学附属北京口腔医院牙体牙髓科",
|
||
"device_type": "牙科电动根管自适应预备与根尖阻抗测距一体化系统",
|
||
"intended_use": "用于牙科牙体牙髓病及根尖周病治疗中根管的机用镍钛锉旋转往复预备扩锉与根尖孔生理狭窄区精确定位",
|
||
"target_market": "中国 NMPA II类 (YY 0836-2011 牙科根管预备机, YY 0505, GB 9706.1-2020)",
|
||
"path": "/Volumes/新加卷/WeiCHEN-Backup/01-Projects/ShuiMuDongFang/2026-08-17 飞书智能体/.tmp/dual-agent/自动化牙髓治疗仪",
|
||
"highlight_tech": "双频根尖阻抗测量精度 ±0.1mm,自适应扭矩控制 0.2~5.0 N·cm,超载在 20ms 内自动反转防断针",
|
||
"srs_title": "自动化牙髓根管治疗仪系统需求规格书",
|
||
"svp_title": "自动化牙髓根管治疗仪系统验证方案及计划",
|
||
"urs_file": {
|
||
"name": "RDDHF0201-0029_自动化牙髓根管治疗仪_用户需求说明书(URS)_V1.0.docx",
|
||
"size": "245 KB",
|
||
"type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
||
},
|
||
"chat_topics": {
|
||
"u1": [
|
||
("我已上传北京口腔医院牙体牙髓科编制的《RDDHF0201-0029_自动化牙髓根管治疗仪_用户需求说明书(URS)_V1.0.docx》。\n临床专家要求:根管治疗仪必须彻底解决器械断针风险,在弯曲根管遇到阻力时扭矩响应必须毫秒级反转,且在充盈次氯酸钠溶液湿润环境下测距不失准。请进行 URS 要素提炼。",
|
||
"已成功接收并解析用户需求说明书《RDDHF0201-0029_自动化牙髓根管治疗仪_用户需求说明书(URS)_V1.0.docx》!\n\n牙髓根管治疗核心工程与临床指标已结构化抽取:\n1. **断针预防自适应闭环**:10kHz 高频矢量电流采样,扭矩控制范围 0.2~5.0 N·cm,超载在 15~20ms 内触发自动往复反转退锉,彻底消除疲劳断针风险;\n2. **湿润复杂根管测距**:高低双频(0.5kHz/4.0kHz)交流阻抗比率积分算法,在血液、次氯酸钠浸润环境下根尖孔距离测量精度稳定在 ±0.1mm;\n3. **机身耐高温灭菌**:弯机头与马达承受 134℃ 高压蒸汽灭菌 250 次循环无阻尼衰减;\n4. **法规标准映射**:对齐 YY 0836-2011 牙科根管预备机专标、GB 9706.1-2020、YY 0505,已提炼 62 项技术条目写入黑板。"),
|
||
("请梳理弯曲根管模型下疲劳循环寿命测试和反转延迟时间具体的测试方法与接受准则。",
|
||
"依据 YY 0836 与临床根管器械标准:\n- 采用不锈钢仿真弯曲人工根管模型(弯曲角度 45° 与 60°,曲率半径 5mm);\n- 设定电机转速 350 rpm,限扭 2.0 N·cm,测试 100 次阻滞加载,记录从阻滞发生到电机反向旋转的响应延迟时间,接受准则:延时不得大于 20 ms;\n- 进行 500 次循环扩锉,镍钛锉不得发生断裂或塑性解旋畸变。条目已入库。"),
|
||
("请启动智能产品经理工作流编制《系统需求规格书》。",
|
||
"已执行【智能产品经理工作流】!已输出《自动化牙髓根管治疗仪系统需求规格书》(doc-proj6005-system_reqs)。涵盖转速范围(100~1000 rpm ±10%)、弯机头 16:1 减速比配合公差、机身防水防喷溅、高压蒸汽灭菌(134℃,3分钟)耐受性等 62 项技术要求。"),
|
||
("规格书经评审已批准!请启动【智能测试经理】工作流,建立系统验证方案并绑定血缘。",
|
||
"已启动【智能测试经理】工作流!前置门禁顺利通过。\n正式产出《自动化牙髓根管治疗仪系统验证方案及计划》(doc-proj6005-test_manager)。包含转矩校准误差测试、多频阻抗测量一致性测试、反转防断针疲劳考核、手柄高温灭菌 250 次循环验证试验等 62 项完整测试用例,血缘与哈希值均已持久化。")
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"id": 6006,
|
||
"code": "PROJ-ARNAV-0035",
|
||
"key": "ziyanar",
|
||
"name": "智能手术AR导航系统",
|
||
"short_name": "智能手术AR导航系统 (自研AR)",
|
||
"customer": "水木东方自研医疗器械研发中心 (转化医学实验室)",
|
||
"device_type": "独立医疗器械软件 (SaMD, II类医疗器械)",
|
||
"intended_use": "用于显微外科与骨科导航中将术前三维 CT/MRI 重建解剖结构与光学透视 AR 眼镜实时精准配准叠加",
|
||
"target_market": "中国 NMPA II类 (YY/T 0664-2020 软件生存周期, GB/T 25000.51, 医疗器械网络安全)",
|
||
"path": "/Volumes/新加卷/WeiCHEN-Backup/01-Projects/ShuiMuDongFang/2026-08-17 飞书智能体/.tmp/dual-agent/自研AR",
|
||
"highlight_tech": "双目光学透视配准空间误差 < 0.8mm,运动到成像端到端延迟 < 20ms,立体渲染帧率稳定 90fps",
|
||
"srs_title": "智能手术AR导航系统系统需求规格书",
|
||
"svp_title": "智能手术AR导航系统系统验证方案及计划",
|
||
"urs_file": {
|
||
"name": "RDDHF0201-0035_智能手术AR导航系统_用户需求说明书(URS)_V1.0.docx",
|
||
"size": "420 KB",
|
||
"type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
||
},
|
||
"chat_topics": {
|
||
"u1": [
|
||
("我已上传自研中心编制的《RDDHF0201-0035_智能手术AR导航系统_用户需求说明书(URS)_V1.0.docx》。\n转化医学实验室强调头戴 AR 眩晕感和配准漂移问题,要求空间重叠误差必须小于 1mm,运动延迟低于 20ms,帧率不低于 60fps。请智能体提取受控输入要素。",
|
||
"已成功接收并解析用户需求说明书《RDDHF0201-0035_智能手术AR导航系统_用户需求说明书(URS)_V1.0.docx》!\n\n独立医疗器械软件(SaMD)核心工程与算法基线提取如下:\n1. **空间多模配准精度**:红外光学追踪与 AR 眼镜 SLAM 融合,靶点配准均方根误差 TRE ≤ 0.8mm,空间虚拟投射误差 < 1.0mm;\n2. **超低运动延迟与高帧率**:渲染管线与异步时间扭曲(ATW)优化,端到端运动到光子延迟 M2P ≤ 18ms,立体渲染稳定 90fps,彻底杜绝术者眩晕;\n3. **安全容错与告警**:标记物遮挡超 2 帧(22ms)立即触发闪烁警示,超 500ms 自动隐藏虚景,防止误导术者;\n4. **法规标准映射**:对标 YY/T 0664-2020(软件安全性级别 B 级)、GB/T 25000.51、网络安全指导原则,提炼 57 项规范条目。"),
|
||
("请针对软件算法异常(如定位丢失、标记物遮挡)时的人机界面安全警示与容错逻辑给出规格。",
|
||
"软件容错与安全机制规约:\n- 当红外反光标记点被手术器械遮挡超过 2 帧(约 22 ms)时,屏幕虚景必须在 5 ms 内切换为半透明闪烁警示态,并弹出文字警告「跟踪信号中断,请勿依据当前虚景下刀」;\n- 若遮挡持续超过 500 ms,自动隐藏虚景模型,杜绝误导操作;\n- 系统支持双目独立标定参数动态补偿算法,满足 GB/T 25000.51 软件容错性准则。"),
|
||
("请启动【智能产品经理】工作流,生成受控软件需求规格书。",
|
||
"已执行【智能产品经理工作流】!正式输出《智能手术AR导航系统系统需求规格书》(doc-proj6006-system_reqs)。涵盖 DICOM 数据导入解析校验、三维表面网格重构(Marching Cubes)、刚体变换配准算法、网络数据传输安全(TLS 1.3)等 57 项规范指标。"),
|
||
("软件需求规格书已获李主管与王总监审批,请启动【智能测试经理】工作流生成软件验证方案。",
|
||
"已切换至【智能测试经理】工作流!前置依赖已核验闭环。\n正式生成《智能手术AR导航系统系统验证方案及计划》(doc-proj6006-test_manager),包含空间标定精度实测、白盒覆盖率要求(语句覆盖 100%、分支覆盖 85%)、故障注入(模拟 DICOM 缺失、网络丢包、标记物反光污染)及持续 72 小时压力内存泄漏监测用例。血缘已牢固绑定!")
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"id": 6007,
|
||
"code": "PROJ-LT-0068",
|
||
"key": "lanting",
|
||
"name": "等离子射频手术电极",
|
||
"short_name": "等离子射频手术电极 (蓝汀)",
|
||
"customer": "北京蓝汀医疗器械开发有限公司",
|
||
"device_type": "微创关节与耳鼻喉低温等离子多极射频刀头",
|
||
"intended_use": "与等离子射频手术主机配合,在生理盐水导电介质中激发低温等离子体薄层,用于微创软组织的精确消融打孔与凝血",
|
||
"target_market": "中国 NMPA II类 (YY 9706.202, GB 9706.1-2020, GB/T 16886)",
|
||
"path": "/Volumes/新加卷/WeiCHEN-Backup/01-Projects/ShuiMuDongFang/2026-08-17 飞书智能体/.tmp/dual-agent/蓝汀电极",
|
||
"highlight_tech": "双极/多极同轴高频等离子体激发,组织消融工作温度 40℃~70℃,集成冲洗与负压吸引通道",
|
||
"srs_title": "等离子射频手术电极系统需求规格书",
|
||
"svp_title": "等离子射频手术电极系统验证方案及计划",
|
||
"urs_file": {
|
||
"name": "RDDHF0201-0068_等离子射频手术电极_用户需求说明书(URS)_V1.0.docx",
|
||
"size": "210 KB",
|
||
"type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
||
},
|
||
"chat_topics": {
|
||
"u1": [
|
||
("我已上传北京蓝汀医疗编制的《RDDHF0201-0068_等离子射频手术电极_用户需求说明书(URS)_V1.0.docx》。\n临床反馈重点:刀头等离子薄层激发点火时需消除微弧闪络,抽吸通道需防止碳化软组织碎屑堵塞,消融工作温度严格限制在 40℃~70℃。请智能体解析 URS 并提炼工程基线。",
|
||
"已成功接收并解析用户需求说明书《RDDHF0201-0068_等离子射频手术电极_用户需求说明书(URS)_V1.0.docx》!\n\n微创关节与耳鼻喉等离子刀头核心工程要素提炼如下:\n1. **微弧稳定与阻抗匹配**:多极间距控制在 0.8mm ±0.05mm,耐轰击高纯刚玉陶瓷(Al2O3 ≥ 99.5%)微织构表面,100kHz 射频下激发均匀超薄等离子体层,消除集中电弧火花;\n2. **一体化防堵塞抽吸**:渐变喇叭口抽吸孔(1.2mm 扩至 1.8mm)涂覆内壁减阻特氟龙,阻力降低 40%;\n3. **热损伤控制**:低温消融工作温度 40℃~70℃,侧向热损伤深度 ≤ 0.5mm;\n4. **法规标准映射**:对齐 YY 9706.202、GB 9706.1-2020、GB/T 16886,提取 38 项关键参数录入事实黑板。"),
|
||
("请确认按 YY 9706.202 对等离子电极的高频漏电流及耐受持续消融的寿命要求。",
|
||
"依据标准与技术指标:\n- 高频患者漏电流在开路及额定负载下必须 ≤ 100 mA;\n- 刀头在额定最高功率(如 250W)下,连续激发等离子消融 10 秒、间歇 10 秒,循环 100 次后,陶瓷绝缘体无破裂碎裂,电极无脱落熔损,气密性(-80 kPa 维持 10s 泄漏 < 5 kPa)保持合格。"),
|
||
("请启动【智能产品经理】工作流生成规格书。",
|
||
"已执行【智能产品经理工作流】!生成《等离子射频手术电极系统需求规格书》(doc-proj6007-system_reqs)。明确了双极电极阻抗匹配网络、工作杆弯曲角度(15°/45°可选)、插拔次数(≥ 50次)、包装无菌密封等 38 项指标。"),
|
||
("规格书经审批生效!请启动【智能测试经理】工作流生成验证方案。",
|
||
"已切换【智能测试经理】工作流!前置门禁顺利核验。\n正式产出《等离子射频手术电极系统验证方案及计划》(doc-proj6007-test_manager)。包含组织消融效率离体肝脏实测(消融深度速率 ≥ 1.0mm/s)、热损伤扩散带病理测量(侧向热损伤 ≤ 0.5mm)、电气安全与无菌衰变寿命测试。血缘追溯已锚定。")
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"id": 6008,
|
||
"code": "PROJ-PLASMA-0092",
|
||
"key": "dengyizi",
|
||
"name": "低温等离子体手术系统",
|
||
"short_name": "低温等离子体手术系统 (主机+刀头)",
|
||
"customer": "天津医科大学总医院耳鼻咽喉头颈外科",
|
||
"device_type": "医用多功能低温等离子手术发生器与控制系统",
|
||
"intended_use": "用于耳鼻咽喉、关节外科、脊柱微创手术中通过 100kHz 射频激发低温等离子体对软组织进行分子键裂解消融、精确切割与双极电凝止血",
|
||
"target_market": "中国 NMPA III类 (GB 9706.1-2020, YY 9706.202, YY 0505)",
|
||
"path": "/Volumes/新加卷/WeiCHEN-Backup/01-Projects/ShuiMuDongFang/2026-08-17 飞书智能体/.tmp/dual-agent/等离子手术",
|
||
"highlight_tech": "双通道 100kHz 射频功率源,消融功率 10~350W,凝血功率 10~150W,自适应组织阻抗负载跟踪",
|
||
"srs_title": "低温等离子体手术系统系统需求规格书",
|
||
"svp_title": "低温等离子体手术系统系统验证方案及计划",
|
||
"urs_file": {
|
||
"name": "RDDHF0201-0092_低温等离子体手术系统_用户需求说明书(URS)_V1.0.docx",
|
||
"size": "380 KB",
|
||
"type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
||
},
|
||
"chat_topics": {
|
||
"u1": [
|
||
("我已上传天津医科大学总医院耳鼻喉头颈外科编制的《RDDHF0201-0092_低温等离子体手术系统_用户需求说明书(URS)_V1.0.docx》。\n科室主任要求:主机必须具备智能刀头插座秒级识别与自适应推荐功率,脚踏开关具备明确双色阻尼防误踩,且高频工作时不能对心电监护仪产生电磁干扰。请提取 URS 受控基线。",
|
||
"已成功接收并解析用户需求说明书《RDDHF0201-0092_低温等离子体手术系统_用户需求说明书(URS)_V1.0.docx》!\n\n医用三类低温等离子手术发生器核心规格已提炼归纳:\n1. **射频功率源与自适应阻抗跟踪**:双通道 100kHz 功率源,消融 10~350W,凝血 10~150W,动态组织阻抗跟踪 10Ω~5000Ω,脱离介质 5ms 内自锁降功;\n2. **刀头加密识别与 IPX8 脚踏**:插座 0.5s 内读取 RFID/加密芯片并加载推荐功率,双联脚踏行程分立阻尼防误踏,防水 IPX8;\n3. **电磁兼容与低干扰**:LC 双阶低通滤波与电源 EMI 抑制,点火状态心电监护仪波形失真 < 5%;\n4. **法规标准映射**:严格依据 GB 9706.1-2020、YY 9706.202、YY 0505,梳理 200 项全面技术条目。"),
|
||
("请补充等离子手术主机在电磁兼容(EMC)骚扰发射方面的设计规格,高频打火时会不会干扰监护仪和麻醉机?",
|
||
"主机 EMC 与射频抗扰度控制规约:\n- 依据 YY 0505 与 GB 4824(1组A类),在输出端口增设共模扼流圈与 LC 双阶低通滤波器,滤除 100kHz 基频以上的高次谐波;\n- 电源入口配置医疗级高性能 EMI 滤波器(漏电流 < 50 μA);\n- 在手术室与心电监护仪同机测试时,等离子点火状态下心电监护波形失真不得超过 5%,不产生假性心律失常报警。"),
|
||
("请启动【智能产品经理】工作流,生成受控系统需求规格书。",
|
||
"已执行【智能产品经理工作流】!正式输出《低温等离子体手术系统系统需求规格书》(doc-proj6008-system_reqs)。包括额定功率精度(±10% 或 ±5W)、声光报警响应时间(< 100ms)、双极阻抗监测动态范围(10Ω~5000Ω)、屏幕触控防误触等 200 项全面规格。"),
|
||
("规格书终审通过!请触发【智能测试经理】工作流,输出系统验证方案并绑定血缘。",
|
||
"已切换至【智能测试经理】工作流!前置依赖状态 approved,门禁放行!\n测试经理已编制生成《低温等离子体手术系统系统验证方案及计划》(doc-proj6008-test_manager)。全面涵盖高频功率输出负载曲线实测(10Ω~1000Ω 步进)、单一故障测试(输出功率继电器粘连切断)、环境可靠性(高温高湿工作环境)及 200 项需求条目 100% 覆盖验证。血缘关系已完整登记!")
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"id": 6009,
|
||
"code": "PROJ-ESWT-0095",
|
||
"key": "chongjibo",
|
||
"name": "体外气压弹道冲击波治疗仪",
|
||
"short_name": "体外冲击波治疗仪 (北医三院运医)",
|
||
"customer": "北京大学第三医院运动医学研究所",
|
||
"device_type": "气压弹道式体外冲击波组织损伤治疗设备",
|
||
"intended_use": "用于慢性软组织肌腱止点病变、跟腱炎、足底筋膜炎、肩周炎的局部无创高能压力脉冲松解与骨肌镇痛",
|
||
"target_market": "中国 NMPA II类 (YY 0650-2008 体外冲击波治疗机专标, GB 9706.1-2020, YY 0505)",
|
||
"path": "/Volumes/新加卷/WeiCHEN-Backup/01-Projects/ShuiMuDongFang/2026-08-17 飞书智能体/.tmp/verify-batch4/out/冲击波",
|
||
"highlight_tech": "气压输出 1.0~5.0 bar 可调,频率 1~21 Hz,脉冲上升时间 < 3.5μs,能量密度 0.05~0.65 mJ/mm²",
|
||
"srs_title": "体外冲击波治疗仪系统需求规格书",
|
||
"svp_title": "体外冲击波治疗仪系统验证方案及计划",
|
||
"urs_file": {
|
||
"name": "RDDHF0201-0095_体外气压弹道冲击波治疗仪_用户需求说明书(URS)_V1.0.docx",
|
||
"size": "356 KB",
|
||
"type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
||
},
|
||
"chat_topics": {
|
||
"u1": [
|
||
("我已上传北医三院运动医学研究所编制的《RDDHF0201-0095_体外气压弹道冲击波治疗仪_用户需求说明书(URS)_V1.0.docx》。\n运医专家反馈:治疗手柄连续击打 2000 发后枪体发烫严重,影响护士握持;另外要求脉冲气压重复精度必须优于 ±5%,保证治疗剂量一致。请智能体提取 URS 受控设计输入。",
|
||
"已成功接收并解析用户需求说明书《RDDHF0201-0095_体外气压弹道冲击波治疗仪_用户需求说明书(URS)_V1.0.docx》!\n\n体外冲击波组织损伤治疗设备核心工程基线抽取如下:\n1. **手柄热管理与减震隔绝**:风冷对流循环风道搭配隔热 Aerogel 涂层,连续击打 4000 发表面温升 ≤ 8℃(实测 < 40℃),硅胶减震阻尼套降低手部振动 60%;\n2. **气压闭环稳压与声学输出**:比例伺服阀闭环反馈,1.0~5.0 bar 气压误差控制在 ±3%,频率 1~21 Hz,脉冲上升时间 < 3.5μs,能量密度 0.05~0.65 mJ/mm²;\n3. **弹道寿命与耐冲击**:撞针寿命 ≥ 100 万次,治疗头规格 6mm/15mm/25mm 齐全;\n4. **法规标准映射**:严格依据 YY 0650-2008(体外冲击波治疗机专标)、GB 9706.1-2020、YY 0505,提炼 90 项规范指标。"),
|
||
("请按照 YY 0650 专标,解释冲击波声场聚焦测量的具体要求(如上升时间、焦斑大小)。",
|
||
"依据 YY 0650-2008 冲击波声学性能要求:\n- 采用水听器(聚偏二氟乙烯 PVDF 针式水听器)在去气蒸馏水中进行声压场扫描;\n- 冲击波正压脉冲上升时间(Rise Time)不得大于 3.5 μs;\n- -6dB 焦斑长径与短径尺寸需给出确定数值;\n- 脉冲峰值正声压(p+)与峰值负声压(p-)须符合标称值 ±20% 的公差界限,条目已全部纳入需求规格书。"),
|
||
("请启动【智能产品经理】工作流,生成受控系统需求规格书。",
|
||
"已执行【智能产品经理工作流】!正式输出《体外冲击波治疗仪系统需求规格书》(doc-proj6009-system_reqs)。系统梳理了气泵额定功率、撞针弹道寿命(≥ 100万次)、电磁换向阀开关寿命、治疗头尺寸规格(6mm/15mm/25mm)等 90 项技术条目。"),
|
||
("规格书审批已生效!请切换至【智能测试经理】工作流,建立系统验证方案及血缘追踪。",
|
||
"已切换【智能测试经理】工作流!前置规格书状态 verified(approved),前置门禁顺利通过。\n正式产出《体外冲击波治疗仪系统验证方案及计划》(doc-proj6009-test_manager)。包含气压稳定性水听器声场测试、疲劳击打寿命测试、跌落耐冲击测试、电磁兼容抗扰度试验及完整追溯矩阵。血缘哈希绑定就绪!")
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"id": 6010,
|
||
"code": "PROJ-MSK-0108",
|
||
"key": "jigu",
|
||
"name": "肌骨超声影像处理软件",
|
||
"short_name": "肌骨超声影像处理软件 (PMP108)",
|
||
"customer": "中日友好医院超声诊断科与风湿免疫科",
|
||
"device_type": "独立超声影像处理辅助分析软件 (SaMD, II类医疗器械)",
|
||
"intended_use": "用于风湿关节炎及运动损伤中高频肌骨超声图像的滑膜增生厚度、肌腱断端撕裂间距及血流多普勒信号的智能测量与报告生成",
|
||
"target_market": "中国 NMPA II类 (YY/T 0664-2020, GB/T 25000.51, 医疗器械软件指导原则)",
|
||
"path": "/Volumes/新加卷/WeiCHEN-Backup/01-Projects/ShuiMuDongFang/2026-08-17 飞书智能体/.tmp/verify-batch4/out/PMP108肌骨超声",
|
||
"highlight_tech": "高频超声斑点噪声自适应各向异性扩散滤波,滑膜/肌腱轮廓自动分割 Dice 相似度 ≥ 0.88,线性测距误差 < 0.2mm",
|
||
"srs_title": "肌骨超声影像处理软件系统需求规格书",
|
||
"svp_title": "肌骨超声影像处理软件系统验证方案及计划",
|
||
"urs_file": {
|
||
"name": "RDDHF0201-0108_肌骨超声影像处理软件_用户需求说明书(URS)_V1.0.docx",
|
||
"size": "520 KB",
|
||
"type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
||
},
|
||
"chat_topics": {
|
||
"u1": [
|
||
("我已上传中日友好医院超声科与风湿免疫科联合编制的《RDDHF0201-0108_肌骨超声影像处理软件_用户需求说明书(URS)_V1.0.docx》。\n科室反馈:超声斑点噪声大、滑膜边界模糊,算法分割滑膜厚度时经常与邻近肌腱组织混淆,要求测量误差在 0.3mm 以内。请提取该软件产品需求说明书的受控要素。",
|
||
"已成功接收并解析用户需求说明书《RDDHF0201-0108_肌骨超声影像处理软件_用户需求说明书(URS)_V1.0.docx》!\n\n独立超声影像处理辅助分析软件(SaMD)核心算法与工程基线提炼如下:\n1. **超声斑点降噪与边界保持**:各向异性扩散与双边引导滤波复合算法,平滑斑点噪声的同时精确保留 0.1mm 筋膜微细回波边缘;\n2. **解剖注意力分割网络**:融合滑膜解剖先验知识,区分低回波滑膜与肌腱纤维纹理,滑膜自动分割重合度 Dice ≥ 0.88;\n3. **高精度线性测距**:基于探头声速动态校正,滑膜增生厚度及肌腱撕裂间距绝对测距误差 ≤ 0.2mm;\n4. **数据脱敏与安全留痕**:患者标识脱敏率 100%,日志防篡改保留 ≥ 5年,模型权重 SHA-256 锁定;\n5. **法规标准映射**:对标 YY/T 0664-2020、GB/T 25000.51、《人工智能医用软件审评指导原则》,提取 54 项规格条目入库。"),
|
||
("请详细说明按 YY/T 0664-2020 编制软件测试报告与数据安全留痕的要求。",
|
||
"依据《医疗器械软件指导原则》与 YY/T 0664:\n- 建立覆盖算法版本、模型权重 SHA-256、输入数据集可追溯性的闭环留痕;\n- 软件日志记录每例测量患者标识匿名化脱敏(脱敏率 100%)、操作员身份及测量结果时间戳,日志防篡改保留不少于 5 年;\n- 白盒单元测试覆盖率严格达标(语句覆盖率 ≥ 90%)。"),
|
||
("请启动【智能产品经理】工作流,生成受控软件需求规格书。",
|
||
"已执行【智能产品经理工作流】!正式生成《肌骨超声影像处理软件系统需求规格书》(doc-proj6010-system_reqs)。涵盖 DICOM 超声成像流解析、滑膜微血管彩色多普勒血流定量计算、测量标注工具链及结构化电子报告输出等 54 项规格。"),
|
||
("规格书已审批通过!请切换至【智能测试经理】工作流,输出系统验证方案。",
|
||
"已切换【智能测试经理】工作流!前置依赖审核通过(approved)。\n正式产出《肌骨超声影像处理软件系统验证方案及计划》(doc-proj6010-test_manager)。包含标准超声体模几何精度测试、多中心 1000 例典型病例盲态回溯对比测试(算法与 3 位副高医生金标准比对一致性 ICC ≥ 0.92)、软件性能与容错压力测试。血缘追溯已锁定!")
|
||
]
|
||
}
|
||
}
|
||
]
|
||
|
||
def sha256_text(text: str) -> str:
|
||
return hashlib.sha256(text.encode("utf-8")).hexdigest()
|
||
|
||
|
||
PROJECT_ROLE_CHAT_SCRIPTS = {
|
||
6001: {
|
||
"u1_initial": "助手,我刚把望京医院骨伤科临床中心联合编制的《{urs_name}》上传并共享到项目参考库了。临床重点关注膝关节腔深部红外热疗(38℃~45℃ 精确控温)与中频脉冲电刺激的协同镇痛机制,且必须具备皮肤接触防烫伤双重硬件断电保护。请对参考库中的 URS 进行结构化解析,提取关键临床指标、工程参数和适用的国家强制性标准。",
|
||
"u2_ask": "@项目助手,调出张工提交的《{srs_title}》和刚共享的 URS 原文《{urs_name}》。重点帮我核对两项合规门禁:\n1. 望京医院提出的深部红外热疗与离子导入防灼伤保护({highlight_tech})是否已完整分解至规格条款;\n2. 依据 YY 0601-2007 与 GB 9706.1-2020,患者漏电流和限温断电在 SRS 中设定的公差和检验方法是否明确。",
|
||
"u2_pass": "已核验 URS 原文,深部控温与漏电流安全指标分解详尽,强标依据充分,同意通过初审。请推进到王总监终审。",
|
||
"u2_ack": "好的李主管!审核意见已记录归档,《{srs_title}》初审合规流程已完成,文档状态已更新为「终审中(approving)」。系统已自动生成待办通知王总监进行终审签批,待基线发布后将即刻联动下游测试验证工作流。",
|
||
"u3_ask": "李主管初审通过的那份《{srs_title}》情况如何?把需求溯源闭环率和关键质量门禁指标汇报一下,如果合规依据扎实,准备做终审批准。",
|
||
"u3_pass": "终审批准通过。基线正式冻结,通知张工和测试组抓紧启动系统验证方案编制。",
|
||
"u3_ack": "已收到王总监终审签批指令!《{srs_title}》V1.0 权威基线已正式受控生效(approved)。系统已锁定文档血缘追溯,下游【智能测试经理】工作流已正式放行解锁,已下发通知至编制组与测试团队全面推进。"
|
||
},
|
||
6002: {
|
||
"u1_initial": "助手,天智航骨科手术机器人配套的《{urs_name}》我已经上传并共享到项目参考库。研发部给出的配套指标很严:透视中心空间重复定位精度必须优于 0.3mm,且单次三维扫描辐射累积剂量较传统连续透视降低 30% 以上。请调阅 URS 进行合规与工程要素深度解析。",
|
||
"u2_ask": "@项目助手,看一下张工提审的《{srs_title}》,对照天智航共享的 URS 原文《{urs_name}》。帮我重点复核:\n1. 机器人导航配准要求的定位精度与微剂量曝光({highlight_tech})是否已 100% 落实为技术指标;\n2. 对标 GB 9706.254 与 GB 9706.103 辐射防护专标,球管热容量和防坠落机构的安全系数有没有漏项。",
|
||
"u2_pass": "复核完毕,高频脉冲曝光参数与防坠落安全互锁设计完备,各项公差符合机器人协同要求,初审合格,建议王总监终审批准。",
|
||
"u2_ack": "收到李主管评审意见!天智航 C 臂《{srs_title}》已完成合规审核并推进至「终审中(approving)」,已触发王总监终审待办。",
|
||
"u3_ask": "张工和李主管刚完成天智航 C 臂规格书的初审。助手,把 URS 溯源覆盖情况和关键安全门禁汇报一下,看看是否满足 V1.0 基线冻结条件,准备终审签批。",
|
||
"u3_pass": "同意签批。空间精度指标与微剂量曝光规格很扎实,批准生效,转入测试经理工作流。",
|
||
"u3_ack": "王总监终审批准已入库锁定!《{srs_title}》正式升为 V1.0 权威受控基线,已联动放行下游【智能测试经理】工作流。"
|
||
},
|
||
6003: {
|
||
"u1_initial": "助手,解放军总医院第一医学中心 ICU 的《{urs_name}》已上传并共享到项目参考库。隔离病房临床现场要求很高:狭窄过道(最小净宽 70cm)必须自主导航零刮碰,而且电子听诊器采集心音时必须滤除呼吸机与监护仪低频噪音。请基于这份 URS 提取关键临床和工程指标。",
|
||
"u2_ask": "@项目助手,查阅一下刚提审的《{srs_title}》和解放军总医院共享的 URS《{urs_name}》。帮我重点把关:\n1. ICU 窄道避障与听诊臂接触力控({highlight_tech})在规格书中分解得是否严密;\n2. 机械臂碰撞保护和电气安全(GB 9706.1-2020)是否包含硬件级断电防护,准备出具审核意见。",
|
||
"u2_pass": "机械臂力控退让曲线与听诊滤波频响指标严谨,安全脱扣机制符合标准要求,初审通过,请呈批王总监。",
|
||
"u2_ack": "好的李主管!巡诊机器人《{srs_title}》初审通过记录已锁定归档,已通知王总监进行终审批准。",
|
||
"u3_ask": "巡诊机器人的系统需求规格书初审结论出来了没有?助手,把需求覆盖率和力控安全门禁总结一下,没问题的话我来做终审批准。",
|
||
"u3_pass": "终审批准通过。ICU 病房人机安全是红线,规格定义很全面,基线正式发布。",
|
||
"u3_ack": "王总监终审签批已生效!《{srs_title}》已锁定为权威基线,智能测试经理工作流已解锁就位。"
|
||
},
|
||
6004: {
|
||
"u1_initial": "助手,常州祥合洁医疗编制的《{urs_name}》已上传并共享到项目参考库。质量部提了两个硬性要求:刀杆在 300℃ 高温切凝后绝缘层不能碳化脱落,且全套材料必须满足生物相容性要求。请调阅这份 URS,提炼工程基线和检验规程。",
|
||
"u2_ask": "@项目助手,调出《{srs_title}》与参考库中祥合洁的 URS《{urs_name}》。帮我把关两项强标要求:\n1. 刀杆高频耐击穿电压与防粘涂层({highlight_tech})是否完全对标 GB 9706.202-2021;\n2. 生物相容性(GB/T 16886)和无菌环氧乙烷残留限值是否明确,准备初审盖章。",
|
||
"u2_pass": "高频绝缘介电试验配置与无菌包装指标分解扎实,材料生物相容性全项对齐,同意通过初审。",
|
||
"u2_ack": "收到李主管审核意见!高频电极规格书已完成初审,文档状态升至 approving,待总监终审。",
|
||
"u3_ask": "祥合洁高频电极的 SRS 初审通过了吗?助手,汇报一下绝缘耐压指标和型检合规覆盖率,确认无误后做终审发布。",
|
||
"u3_pass": "终审批准生效。无源高频手术附件型检要求苛刻,规格书定义清晰,同意批准。",
|
||
"u3_ack": "收到指令!祥合洁高频电极《{srs_title}》已正式批准生效并锁定基线,测试经理工作流已解锁。"
|
||
},
|
||
6005: {
|
||
"u1_initial": "助手,北京口腔医院牙体牙髓科编制的《{urs_name}》已上传并共享到参考库。临床核心痛点是防止器械在弯曲根管中断针,要求遇到阻力时毫秒级反转,而且次氯酸钠湿润环境下测距精度不能飘。请基于这份 URS 提取工程参数和 YY 0836 专标要求。",
|
||
"u2_ask": "@项目助手,看一下张工提交的牙髓治疗仪《{srs_title}》和北京口腔医院共享的 URS《{urs_name}》。重点核实:\n1. 防断针自适应反转与根尖孔阻抗测距({highlight_tech})是否制定了定量公差与测试方法;\n2. 弯机头耐受 134℃ 高压蒸汽灭菌的可靠性指标是否完整,准备出具初审意见。",
|
||
"u2_pass": "防断针反转延迟(<20ms)与高温灭菌循环寿命指标界定严密,同意初审通过,请推进到总监审批。",
|
||
"u2_ack": "好的李主管!牙髓治疗仪规格书初审记录已归档,已推送到王总监待办终审。",
|
||
"u3_ask": "牙髓治疗仪的规格书初审结果如何?助手,简要汇报一下防断针响应时间与质量门禁状态,准备终审签批锁定 V1.0 基线。",
|
||
"u3_pass": "终审批准通过。断针风险控制到位,基线予以锁定,开启测试验证方案编制。",
|
||
"u3_ack": "收到王总监指令!牙髓治疗仪规格书 V1.0 已正式受控发布,智能测试经理工作流已解锁启动。"
|
||
},
|
||
6006: {
|
||
"u1_initial": "助手,自研研发中心编制的《{urs_name}》已经上传并共享到项目参考库。转化医学实验室强调头戴 AR 眩晕感和配准漂移问题,要求空间重叠误差必须小于 1mm,运动延迟低于 20ms,帧率不低于 60fps。请基于 URS 提取核心算法与法规要素。",
|
||
"u2_ask": "@项目助手,调取《{srs_title}》和参考库中的自研 AR URS《{urs_name}》。重点把关:\n1. 空间配准精度与端到端延迟({highlight_tech})的算法分解;\n2. 对标 YY/T 0664-2020 软件生存周期和医疗器械网络安全指导原则,异常容错机制是否完备,准备初审核签。",
|
||
"u2_pass": "多模配准精度与丢帧告警策略设计充分,软件安全性级别评估合理,同意初审通过。",
|
||
"u2_ack": "收到李主管意见!自研 AR 导航软件规格书初审完毕,状态进入 approving,已提交王总监终审。",
|
||
"u3_ask": "自研 AR 导航系统的需求规格书李主管审查过了吧?助手,把算法精度边界和网络安全门禁汇报一下,我来执行终审批准并释放测试流。",
|
||
"u3_pass": "终审批准生效。这是自研核心软件,空间误差与防误触容错指标过硬,批准发布。",
|
||
"u3_ack": "王总监终审批准已锁定!自研 AR 导航软件 V1.0 基线已受控归档,已激活下游测试工作流。"
|
||
},
|
||
6007: {
|
||
"u1_initial": "助手,北京蓝汀医疗编制的《{urs_name}》已上传并共享至项目参考库。临床专家反馈重点:刀头等离子薄层激发点火时要避免闪络微弧,冲洗抽吸通道要防止组织碎屑堵塞,消融温度严格限制在 40℃~70℃。请解析 URS 并梳理出规格条目。",
|
||
"u2_ask": "@项目助手,调阅《{srs_title}》及参考库中蓝汀的 URS《{urs_name}》。帮我复核两项指标:\n1. 双极等离子激发与组织消融控温({highlight_tech})是否符合 YY 9706.202 专标;\n2. 冲洗负压密封性和耐疲劳消融寿命指标是否量化,准备出具初审结论。",
|
||
"u2_pass": "陶瓷绝缘耐电弧冲击和消融控温指标详实,符合微创刀头专标,同意通过初审。",
|
||
"u2_ack": "好的李主管!蓝汀等离子刀头规格书初审完成,已生成待办递交王总监终审签批。",
|
||
"u3_ask": "蓝汀等离子刀头的 SRS 初审情况如何?助手,汇报一下需求条目覆盖度和高频漏电流指标,确认无误后执行终审签批。",
|
||
"u3_pass": "终审批准通过。侧向热损伤与气密性指标控制严格,准予作为 V1.0 受控基线生效。",
|
||
"u3_ack": "王总监签批确认!蓝汀等离子电极规格书已生效受控,智能测试经理验证流已解锁放行。"
|
||
},
|
||
6008: {
|
||
"u1_initial": "助手,天津医科大学总医院耳鼻喉头颈外科编制的《{urs_name}》已上传并共享到参考库。科室主任要求:主机必须具备智能刀头插座秒级识别与自适应推荐功率,脚踏开关具备明确双色阻尼防误踩,且高频工作时不能对心电监护仪产生电磁干扰。请调阅 URS 梳理技术基线。",
|
||
"u2_ask": "@项目助手,检查一下张工提交的主机《{srs_title}》和天津总医院共享的 URS 原文《{urs_name}》。重点把关:\n1. 功率自适应阻抗跟踪与刀头识别({highlight_tech})是否已全量转译;\n2. 对标 YY 0505 电磁兼容与 GB 9706.202,手术室同机抗扰度指标是否明确,准备初审核签。",
|
||
"u2_pass": "主机阻抗闭环保护与 EMI 滤波设计严密,三类设备安全门禁全部达标,同意通过初审。",
|
||
"u2_ack": "收到李主管初审结论!等离子主机 SRS 已进入终审阶段,通知已派发至王总监。",
|
||
"u3_ask": "低温等离子主机的系统需求规格书初审结果怎么样?助手,把射频安全指标和质量门禁覆盖率汇报一下,准备做终审签批。",
|
||
"u3_pass": "终审批准通过。主机功率源稳定性与电磁兼容达标是核心,同意冻结 V1.0 基线。",
|
||
"u3_ack": "王总监终审批准入库!低温等离子手术系统规格书正式受控,测试经理工作流已解锁推进。"
|
||
},
|
||
6009: {
|
||
"u1_initial": "助手,北医三院运动医学研究所编制的《{urs_name}》已上传并共享到项目参考库。运医专家反馈:治疗手柄连续击打 2000 发后枪体发烫严重,影响护士握持;另外要求脉冲气压重复精度必须优于 ±5%,保证治疗剂量一致。请调阅 URS,提取出关键工程指标和 YY 0650 专标条款。",
|
||
"u2_ask": "@项目助手,调出刚提审的《{srs_title}》和北医三院共享的 URS《{urs_name}》。重点核对:\n1. 手柄温升控制与气压输出精度({highlight_tech})是否具备明确公差范围与测试方案;\n2. 声场聚焦指标(YY 0650-2008)和水听器检测要求是否齐全,准备签署初审意见。",
|
||
"u2_pass": "手柄循环风冷温升与撞针弹道寿命指标可测可检,声学专标对齐充分,初审合格。",
|
||
"u2_ack": "好的李主管!冲击波治疗仪初审意见已归档,已将终审流程提交王总监审批。",
|
||
"u3_ask": "冲击波治疗仪的规格书初审完成了吧?助手,把声场安全指标和疲劳寿命门禁总结一下,准备做终审批准并下发测试任务。",
|
||
"u3_pass": "终审签批通过。弹道寿命与手柄散热是临床使用口碑关键,规格书要求到位,批准发布。",
|
||
"u3_ack": "王总监终审指令已执行!冲击波治疗仪规格书锁定为权威基线,测试工作流已启动。"
|
||
},
|
||
6010: {
|
||
"u1_initial": "助手,中日友好医院超声科与风湿免疫科联合编制的《{urs_name}》已上传并共享到参考库。科室反馈:超声斑点噪声大、滑膜边界模糊,算法分割滑膜厚度时经常与邻近肌腱组织混淆,要求测量误差在 0.3mm 以内。请提取该软件产品需求说明书的受控要素。",
|
||
"u2_ask": "@项目助手,看一下张工提交的肌骨超声软件《{srs_title}》和中日友好医院共享的 URS《{urs_name}》。重点核实:\n1. 滑膜分割 Dice 系数与线性测距精度({highlight_tech})是否制定了金标准比对方法;\n2. 依据《人工智能医用软件审评指导原则》与 YY/T 0664,患者数据脱敏与模型追溯是否落实到位,准备初审结论。",
|
||
"u2_pass": "算法 Dice 边界与医生盲态比对一致性验证设计合理,数据安全留痕符合指导原则,同意初审通过。",
|
||
"u2_ack": "收到李主管审核通过意见!肌骨超声软件规格书已推进至 approving 终审,已呈请王总监签批。",
|
||
"u3_ask": "肌骨超声软件的 SRS 初审结论如何?助手,把临床金标准比对一致性和软件质量门禁汇报一下,没问题的话进行终审签批并推进到验证方案。",
|
||
"u3_pass": "同意终审批准。AI 辅助测量软件精度公差必须过硬,规格书设定合理,正式生效并开启测试。",
|
||
"u3_ack": "已收到王总监终审批准!肌骨超声影像处理软件 V1.0 权威基线正式生效,智能测试经理工作流已解锁上线。"
|
||
}
|
||
}
|
||
|
||
def generate_urs_markdown(p, urs_title: str) -> str:
|
||
code = p["code"]
|
||
name = p["name"]
|
||
cust = p["customer"]
|
||
dtype = p["device_type"]
|
||
iuse = p["intended_use"]
|
||
tmarket = p["target_market"]
|
||
htech = p["highlight_tech"]
|
||
|
||
return f"""# {urs_title}
|
||
|
||
> **文件编号**:{code}-URS-01
|
||
> **受控密级**:内部受控 / 团队协作共享
|
||
> **当前版本**:V1.0
|
||
> **编制人**:张工(临床工程部)
|
||
> **审核人**:李主管(技术与法规部)
|
||
> **批准人**:王总监(研发总监)
|
||
> **编制日期**:2026-09-11
|
||
> **归属项目**:{name} ({code})
|
||
> **归属客户/临床科室**:{cust}
|
||
> **文档空间**:🌐 项目协作参考库 (由张工上传并一键共享供全组协作查阅)
|
||
|
||
---
|
||
|
||
## 1. 引言与适用范围
|
||
本《用户需求说明书》(User Requirements Specification, 简称 URS) 旨在明确由【{cust}】与水木东方研发团队联合界定的【{name}】系统级功能、技术指标、临床使用流程及强制性安全准则。本文件作为产品经理工作流编制《系统需求规格书》(SRS) 与测试经理工作流构建验证矩阵的原始受控输入基线。
|
||
|
||
## 2. 临床背景与预期用途
|
||
- **预期用途**:{iuse}。
|
||
- **设备类型定位**:{dtype}。
|
||
- **目标监管市场与分类**:{tmarket}。
|
||
- **主要使用科室与操作者**:由具备专业资质的主治医师、专科护士或技师在医院受控临床环境中使用。
|
||
|
||
## 3. 核心临床诉求与用户痛点
|
||
结合前期临床调研与专家论证,提炼以下核心诉求与技术突破点:
|
||
1. **关键技术指标突破**:{htech}。
|
||
2. **操作便捷性与防呆机制**:人机交互提示明确,具备声光工作指示与故障自检,关键风险动作具备硬件级物理防护与二次确认。
|
||
3. **连续运行稳定性**:适应医院高负荷运转要求,电气与散热结构经过严苛冗余考核。
|
||
|
||
## 4. 关键功能与工程性能指标
|
||
依据临床诉求,提炼并要求产品满足以下工程指标约束:
|
||
- **功能特性**:涵盖设备主控、信号采集/驱动输出、人机交互与状态监测;
|
||
- **精度界限**:核心指标公差必须控制在工程可用范围内,严禁出现无法计量的模糊描述;
|
||
- **安全切断机制**:遇有超温、超压、断电、过流等异常工况,硬件必须在毫秒级执行安全封波或物理断开。
|
||
|
||
## 5. 强制性标准与安全法规要求
|
||
产品研发生命周期全流程必须严格满足并遵从以下强制性标准:
|
||
- {tmarket} 相关条款;
|
||
- GB 9706.1-2020 医用电气设备第一部分:基本安全和基本性能的通用要求;
|
||
- YY 0505-2012 / GB 9706.102 电磁兼容要求与试验。
|
||
|
||
## 6. 协作与权限说明
|
||
- 本文档由张工收集临床与市场需求后上传,并已通过右侧操作栏「一键共享给项目组」,当前存放于【项目协作参考库】供审核人李主管、批准人王总监及全组查阅。
|
||
- 张工作为上传所有者,仍可根据商业保密要求随时「撤回为个人私密」。
|
||
"""
|
||
|
||
def build_data():
|
||
print("开始整合 10 个项目的元数据、文档与多角色对话记录...")
|
||
|
||
sessions = []
|
||
messages = []
|
||
deliverables = []
|
||
documents = {}
|
||
|
||
for p in PROJECT_DEFS:
|
||
pid = p["id"]
|
||
pkey = p["key"]
|
||
|
||
# 1. 建立用户会话 (张工 u1, 李主管 u2, 王总监 u3)
|
||
sessions.append({
|
||
"sessionId": f"sess-{pkey}-u1",
|
||
"userId": 1,
|
||
"projectId": pid,
|
||
"title": p["short_name"],
|
||
"deviceType": p["device_type"],
|
||
"stage": "V0.5",
|
||
"stageLabel": "V0.5 方案成型与法规对齐",
|
||
"messageCount": 9,
|
||
"updatedAt": "刚刚"
|
||
})
|
||
sessions.append({
|
||
"sessionId": f"sess-{pkey}-u2",
|
||
"userId": 2,
|
||
"projectId": pid,
|
||
"title": p["short_name"],
|
||
"deviceType": p["device_type"],
|
||
"stage": "V0.5",
|
||
"stageLabel": "V0.5 方案成型与法规对齐",
|
||
"messageCount": 5,
|
||
"updatedAt": "刚刚"
|
||
})
|
||
sessions.append({
|
||
"sessionId": f"sess-{pkey}-u3",
|
||
"userId": 3,
|
||
"projectId": pid,
|
||
"title": p["short_name"],
|
||
"deviceType": p["device_type"],
|
||
"stage": "V0.5",
|
||
"stageLabel": "V0.5 方案成型与法规对齐",
|
||
"messageCount": 5,
|
||
"updatedAt": "刚刚"
|
||
})
|
||
|
||
doc_urs_id = f"doc-proj{pid}-urs"
|
||
doc_srs_id = f"doc-proj{pid}-system_reqs"
|
||
doc_svp_id = f"doc-proj{pid}-test_manager"
|
||
urs_title = p["urs_file"]["name"].replace(".docx", "").replace(".pdf", "")
|
||
|
||
# 生成真实高质量 URS 文档正文
|
||
urs_md = generate_urs_markdown(p, urs_title)
|
||
urs_hash = sha256_text(urs_md)
|
||
|
||
# 读取真实高质量 Markdown 交付物
|
||
srs_file = os.path.join(p["path"], "01-系统需求规格书.md")
|
||
svp_file = os.path.join(p["path"], "02-系统验证方案及计划.md")
|
||
|
||
with open(srs_file, "r", encoding="utf-8") as f:
|
||
srs_md = f.read()
|
||
with open(svp_file, "r", encoding="utf-8") as f:
|
||
svp_md = f.read()
|
||
|
||
srs_hash = sha256_text(srs_md)
|
||
svp_hash = sha256_text(svp_md)
|
||
|
||
# 获取该项目的专属生动对话脚本
|
||
script = PROJECT_ROLE_CHAT_SCRIPTS[pid]
|
||
|
||
# 2. 生成张工 (u1) 的多轮专业对话
|
||
u1_sess = f"sess-{pkey}-u1"
|
||
messages.append({
|
||
"id": f"m-{pkey}-1",
|
||
"sessionId": u1_sess,
|
||
"role": "system",
|
||
"content": f"项目助手已就位。当前项目【{p['name']}】已进入【V0.5 方案成型与法规对齐】阶段。您正以「张工」身份与智能体协同。",
|
||
"timestamp": "09:00",
|
||
"authorName": "项目助手"
|
||
})
|
||
|
||
msg_idx = 2
|
||
for pair_idx, (user_q, asst_a) in enumerate(p["chat_topics"]["u1"]):
|
||
# 第一轮对话为上传 URS 需求文档 (挂载真实文件附件及可点击 docId)
|
||
if pair_idx == 0:
|
||
user_q = script["u1_initial"].format(urs_name=p["urs_file"]["name"])
|
||
|
||
user_msg = {
|
||
"id": f"m-{pkey}-{msg_idx}",
|
||
"sessionId": u1_sess,
|
||
"role": "user",
|
||
"content": user_q,
|
||
"timestamp": f"09:{10 + msg_idx * 2:02d}",
|
||
"authorName": "张工"
|
||
}
|
||
|
||
if pair_idx == 0:
|
||
urs_att = dict(p["urs_file"])
|
||
urs_att["docId"] = doc_urs_id
|
||
user_msg["attachments"] = [urs_att]
|
||
user_msg["category"] = "file"
|
||
user_msg["intentTag"] = "📤 上传用户需求说明书 (URS)"
|
||
|
||
messages.append(user_msg)
|
||
msg_idx += 1
|
||
|
||
asst_msg = {
|
||
"id": f"m-{pkey}-{msg_idx}",
|
||
"sessionId": u1_sess,
|
||
"role": "assistant",
|
||
"content": asst_a,
|
||
"timestamp": f"09:{10 + msg_idx * 2:02d}",
|
||
"authorName": "项目助手"
|
||
}
|
||
|
||
if pair_idx == 0:
|
||
asst_msg["category"] = "file"
|
||
asst_msg["intentTag"] = "📄 用户需求文档 (URS) 接收与要素提取"
|
||
asst_msg["phaseEvents"] = [
|
||
{"step": "1", "icon": "📥", "label": "URS 文档解析", "status": "completed"},
|
||
{"step": "2", "icon": "🔬", "label": "临床与工程诉求提取", "status": "completed"},
|
||
{"step": "3", "icon": "🛡️", "label": "法规标准对标", "status": "completed"},
|
||
{"step": "4", "icon": "📌", "label": "受控基线黑板录入", "status": "completed"}
|
||
]
|
||
elif pair_idx == 1:
|
||
asst_msg["category"] = "consult"
|
||
asst_msg["intentTag"] = "🔬 关键技术方案与强标研判"
|
||
elif pair_idx == 2:
|
||
asst_msg["category"] = "task"
|
||
asst_msg["intentTag"] = "📋 编制完成并提交审核"
|
||
# 编制完成提交审核确认门禁卡
|
||
asst_msg["interactiveCard"] = {
|
||
"cardId": f"card-submit-srs-{pid}",
|
||
"cardType": "CONFIRMATION",
|
||
"title": "系统需求规格书·编制提审门禁",
|
||
"targetDocId": doc_srs_id,
|
||
"targetDocTitle": p["srs_title"],
|
||
"sectionTitle": "第4节「国家强标与可追溯性规格」",
|
||
"proposedContent": f"编制人张工与产品经理智能体已完成《{p['srs_title']}》编制(涵盖{p['highlight_tech']}),静态 AST 门禁通过率 100%,已提交李主管合规初审。",
|
||
"impactRisk": "流程流转:提交后正文自动锁定,正式进入李主管合规审核流程",
|
||
"status": "resolved",
|
||
"ttlTurns": 3,
|
||
"createdAt": "09:16",
|
||
"actions": [
|
||
{
|
||
"actionId": "confirm_submit_review",
|
||
"label": "确认提交审核",
|
||
"style": "primary",
|
||
"isAffirmativeDefault": True,
|
||
"payload": {"docId": doc_srs_id}
|
||
}
|
||
],
|
||
"resolutionSummary": "张工(编制人)已正式提交审核,正文锁定",
|
||
"resolvedBy": "张工",
|
||
"resolvedAt": "2026-09-11T00:18:00.000Z"
|
||
}
|
||
elif pair_idx == 3:
|
||
asst_msg["category"] = "task"
|
||
asst_msg["intentTag"] = "🧪 测试方案评审与血缘绑定"
|
||
# 系统验证方案测试评审确认门禁卡
|
||
asst_msg["interactiveCard"] = {
|
||
"cardId": f"card-verify-svp-{pid}",
|
||
"cardType": "CONFIRMATION",
|
||
"title": "系统验证方案及计划·测试评审门禁",
|
||
"targetDocId": doc_svp_id,
|
||
"targetDocTitle": p["svp_title"],
|
||
"sectionTitle": "第5节「可追溯性验证矩阵与用例覆盖度」",
|
||
"proposedContent": f"测试经理智能体已完成 100% 需求验证映射(覆盖 {p['highlight_tech']}),前置需求规格书依赖校验通过(SHA-256 强校验),血缘追溯已锁定。",
|
||
"impactRisk": "质量红线:已绑定上游规格书 SHA-256,上游基线变动将自动级联触发失效标记",
|
||
"status": "resolved",
|
||
"ttlTurns": 3,
|
||
"createdAt": "09:24",
|
||
"actions": [
|
||
{
|
||
"actionId": "confirm_review_pass",
|
||
"label": "确认测试方案并归档",
|
||
"style": "primary",
|
||
"isAffirmativeDefault": True,
|
||
"payload": {"docId": doc_svp_id}
|
||
}
|
||
],
|
||
"resolutionSummary": "测试方案已通过合规评审并成功绑定上游血缘",
|
||
"resolvedBy": "李主管",
|
||
"resolvedAt": "2026-09-11T00:25:00.000Z"
|
||
}
|
||
messages.append(asst_msg)
|
||
msg_idx += 1
|
||
|
||
# 3. 生成李主管 (u2) 审核对话 (调阅张工共享的 URS 文档并挂载【审核确认卡】)
|
||
u2_sess = f"sess-{pkey}-u2"
|
||
messages.append({
|
||
"id": f"m-{pkey}-u2-1",
|
||
"sessionId": u2_sess,
|
||
"role": "system",
|
||
"content": f"项目助手已就位。当前项目【{p['name']}】待办审查。您正以「李主管(审核人)」身份与智能体协同。",
|
||
"timestamp": "10:00",
|
||
"authorName": "项目助手"
|
||
})
|
||
messages.append({
|
||
"id": f"m-{pkey}-u2-2",
|
||
"sessionId": u2_sess,
|
||
"role": "user",
|
||
"category": "review",
|
||
"intentTag": "🔍 调阅 URS 对标合规审查",
|
||
"content": script["u2_ask"].format(
|
||
srs_title=p["srs_title"],
|
||
urs_name=p["urs_file"]["name"],
|
||
highlight_tech=p["highlight_tech"],
|
||
target_market=p["target_market"]
|
||
),
|
||
"timestamp": "10:05",
|
||
"authorName": "李主管"
|
||
})
|
||
messages.append({
|
||
"id": f"m-{pkey}-u2-3",
|
||
"sessionId": u2_sess,
|
||
"role": "assistant",
|
||
"category": "review",
|
||
"intentTag": "📋 URS 溯源覆盖核查与合规审核",
|
||
"content": f"李主管您好!针对张工共享的 URS 输入《{p['urs_file']['name']}》与所编制《{p['srs_title']}》的合规对标审核报告如下:\n\n1. **URS 需求条目覆盖度**:原文档提取的全部临床与工程需求已全量转译,覆盖率 100%,已分配全局唯一受控编号(REQ-001 ~ REQ-XXX);\n2. **关键参数与公差界限**:核心技术亮点({p['highlight_tech']})均已设定精确公差区间与安全切断保护;\n3. **强制性标准审查**:完全符合 {p['target_market']} 现行有效版本,无漏项;\n4. **可检验性审查**:所有条目均已指明验证方法(分析/型检/测试),无模糊占位描述。\n\n已为您生成技术与合规审核门禁卡片,请您核验后执行确认:",
|
||
"timestamp": "10:06",
|
||
"authorName": "项目助手",
|
||
"interactiveCard": {
|
||
"cardId": f"card-review-srs-{pid}",
|
||
"cardType": "CONFIRMATION",
|
||
"title": "系统需求规格书·合规与技术审核门禁",
|
||
"targetDocId": doc_srs_id,
|
||
"targetDocTitle": p["srs_title"],
|
||
"sectionTitle": f"URS 需求追溯({p['urs_file']['name']})与强标审查",
|
||
"proposedContent": f"李主管已完成合规性初审:已对标张工共享的 URS 文档《{p['urs_file']['name']}》,{p['target_market']} 相关法规与工程参数({p['highlight_tech']})转译无误,需求溯源覆盖率 100%,建议确认通过并流转总监终审。",
|
||
"impactRisk": "中风险:确认后文档保持锁定并移交终审批准人;若有疑义可执行驳回退回编制修订",
|
||
"status": "resolved",
|
||
"ttlTurns": 3,
|
||
"createdAt": "10:06",
|
||
"actions": [
|
||
{
|
||
"actionId": "confirm_review_pass",
|
||
"label": "确认审核通过",
|
||
"style": "primary",
|
||
"isAffirmativeDefault": True,
|
||
"payload": {"docId": doc_srs_id}
|
||
},
|
||
{
|
||
"actionId": "confirm_reject",
|
||
"label": "驳回修订",
|
||
"style": "danger",
|
||
"payload": {"docId": doc_srs_id}
|
||
}
|
||
],
|
||
"resolutionSummary": f"李主管已确认通过 URS 溯源审核,流转至终审阶段",
|
||
"resolvedBy": "李主管",
|
||
"resolvedAt": "2026-09-11T00:26:00.000Z"
|
||
}
|
||
})
|
||
messages.append({
|
||
"id": f"m-{pkey}-u2-4",
|
||
"sessionId": u2_sess,
|
||
"role": "user",
|
||
"category": "review",
|
||
"content": script["u2_pass"].format(
|
||
srs_title=p["srs_title"],
|
||
urs_name=p["urs_file"]["name"],
|
||
highlight_tech=p["highlight_tech"]
|
||
),
|
||
"timestamp": "10:08",
|
||
"authorName": "李主管"
|
||
})
|
||
messages.append({
|
||
"id": f"m-{pkey}-u2-5",
|
||
"sessionId": u2_sess,
|
||
"role": "assistant",
|
||
"category": "review",
|
||
"intentTag": "✅ 初审通过归档并派发终审",
|
||
"content": script["u2_ack"].format(
|
||
srs_title=p["srs_title"],
|
||
urs_name=p["urs_file"]["name"]
|
||
),
|
||
"timestamp": "10:09",
|
||
"authorName": "项目助手"
|
||
})
|
||
|
||
# 4. 生成王总监 (u3) 批准对话 (确认 URS 输入基线到 SRS 的闭环并挂载【终审批准卡】)
|
||
u3_sess = f"sess-{pkey}-u3"
|
||
messages.append({
|
||
"id": f"m-{pkey}-u3-1",
|
||
"sessionId": u3_sess,
|
||
"role": "system",
|
||
"content": f"项目助手已就位。当前项目【{p['name']}】终审签批。您正以「王总监(批准人)」身份与智能体协同。",
|
||
"timestamp": "10:15",
|
||
"authorName": "项目助手"
|
||
})
|
||
messages.append({
|
||
"id": f"m-{pkey}-u3-2",
|
||
"sessionId": u3_sess,
|
||
"role": "user",
|
||
"category": "review",
|
||
"intentTag": "👑 终审签批与基线决策",
|
||
"content": script["u3_ask"].format(
|
||
srs_title=p["srs_title"],
|
||
urs_name=p["urs_file"]["name"]
|
||
),
|
||
"timestamp": "10:20",
|
||
"authorName": "王总监"
|
||
})
|
||
messages.append({
|
||
"id": f"m-{pkey}-u3-3",
|
||
"sessionId": u3_sess,
|
||
"role": "assistant",
|
||
"category": "review",
|
||
"intentTag": "🎯 权威基线受控发布终审",
|
||
"content": f"王总监好!\n\n《{p['srs_title']}》基于原始用户需求文档《{p['urs_file']['name']}》编制,经张工编制、李主管初审通过,设计输入溯源闭环率 100%,质量门禁静态 AST 检测通过率 100%。\n终审批准后,系统将正式锁定 V1.0 权威基线,并自动解锁下游【智能测试经理】工作流,建立系统验证方案的受控文档血缘追溯。请您审阅并执行终审批准:",
|
||
"timestamp": "10:22",
|
||
"authorName": "项目助手",
|
||
"interactiveCard": {
|
||
"cardId": f"card-appr-srs-{pid}",
|
||
"cardType": "CONFIRMATION",
|
||
"title": "系统需求规格书·终审批准门禁",
|
||
"targetDocId": doc_srs_id,
|
||
"targetDocTitle": p["srs_title"],
|
||
"sectionTitle": f"V1.0 权威基线受控发布决策 (基于 {p['urs_file']['name']})",
|
||
"proposedContent": f"全套工程输入基线与合规门禁核验通过(对标 URS《{p['urs_file']['name']}》,亮点:{p['highlight_tech']}),准予正式批准生效,并作为下游测试验证的受控前置基线。",
|
||
"impactRisk": "核心门禁:终审批准后锁定权威基线,并自动解锁下游【智能测试经理】工作流",
|
||
"status": "resolved",
|
||
"ttlTurns": 3,
|
||
"createdAt": "10:22",
|
||
"actions": [
|
||
{
|
||
"actionId": "confirm_final_approve",
|
||
"label": "确认终审批准",
|
||
"style": "primary",
|
||
"isAffirmativeDefault": True,
|
||
"payload": {"docId": doc_srs_id}
|
||
}
|
||
],
|
||
"resolutionSummary": "王总监已终审批准生效,已建立受控基线并解锁测试工作流",
|
||
"resolvedBy": "王总监",
|
||
"resolvedAt": "2026-09-11T00:28:00.000Z"
|
||
}
|
||
})
|
||
messages.append({
|
||
"id": f"m-{pkey}-u3-4",
|
||
"sessionId": u3_sess,
|
||
"role": "user",
|
||
"category": "review",
|
||
"content": script["u3_pass"].format(
|
||
srs_title=p["srs_title"]
|
||
),
|
||
"timestamp": "10:25",
|
||
"authorName": "王总监"
|
||
})
|
||
messages.append({
|
||
"id": f"m-{pkey}-u3-5",
|
||
"sessionId": u3_sess,
|
||
"role": "assistant",
|
||
"category": "review",
|
||
"intentTag": "🚀 权威基线发布并解锁测试",
|
||
"content": script["u3_ack"].format(
|
||
srs_title=p["srs_title"],
|
||
urs_name=p["urs_file"]["name"]
|
||
),
|
||
"timestamp": "10:26",
|
||
"authorName": "项目助手"
|
||
})
|
||
|
||
# 交付物元数据
|
||
# 0) 用户需求说明书 (URS) 交付物 (由张工上传并已一键共享至项目参考库)
|
||
deliverables.append({
|
||
"docId": doc_urs_id,
|
||
"projectId": pid,
|
||
"taskKey": "user_requirements",
|
||
"title": urs_title,
|
||
"stage": "V0.5",
|
||
"category": "shared",
|
||
"space": "project_shared",
|
||
"creatorId": 1,
|
||
"creatorName": "张工",
|
||
"sharedAt": "2026-09-11 09:05",
|
||
"isFixedWorkflow": False,
|
||
"isTemplateOnly": False,
|
||
"lifecycleState": "approved",
|
||
"isClaimed": True,
|
||
"author": "张工",
|
||
"reviewer": "李主管",
|
||
"approver": "王总监",
|
||
"updatedAt": "2026-09-11 09:05",
|
||
"summary": f"由临床科室与研发团队联合编制的《{p['name']}》用户需求说明书 (URS),已由张工上传并一键共享至项目协作参考库,供李主管、王总监及全组查阅。",
|
||
"governanceMode": "freeform"
|
||
})
|
||
deliverables.append({
|
||
"docId": doc_srs_id,
|
||
"projectId": pid,
|
||
"taskKey": "system_reqs",
|
||
"title": p["srs_title"],
|
||
"stage": "V0.5",
|
||
"category": "workflow",
|
||
"creatorId": 1,
|
||
"creatorName": "张工",
|
||
"isFixedWorkflow": True,
|
||
"isTemplateOnly": False,
|
||
"lifecycleState": "approved",
|
||
"isClaimed": True,
|
||
"author": "张工",
|
||
"reviewer": "李主管",
|
||
"approver": "王总监",
|
||
"updatedAt": "2026-09-11 00:30",
|
||
"summary": f"{p['name']}的完整受控系统需求规格书,已对标 URS《{p['urs_file']['name']}》并获终审批准,具备严格 REQ 编号与验证方式。"
|
||
})
|
||
deliverables.append({
|
||
"docId": doc_svp_id,
|
||
"projectId": pid,
|
||
"taskKey": "test_manager",
|
||
"title": p["svp_title"],
|
||
"stage": "V0.5",
|
||
"category": "workflow",
|
||
"creatorId": 1,
|
||
"creatorName": "张工",
|
||
"isFixedWorkflow": True,
|
||
"isTemplateOnly": False,
|
||
"lifecycleState": "approved",
|
||
"isClaimed": True,
|
||
"author": "张工",
|
||
"reviewer": "李主管",
|
||
"approver": "王总监",
|
||
"updatedAt": "2026-09-11 00:35",
|
||
"summary": f"{p['name']}的系统验证方案及计划,基于已批准的规格书全量映射构建,文档血缘已绑定。"
|
||
})
|
||
|
||
# 存储文档正文 (完全对齐 MockDocumentMeta 契约)
|
||
documents[doc_urs_id] = {
|
||
"docId": doc_urs_id,
|
||
"projectId": pid,
|
||
"taskKey": "user_requirements",
|
||
"title": urs_title,
|
||
"stage": "V0.5",
|
||
"category": "shared",
|
||
"space": "project_shared",
|
||
"creatorId": 1,
|
||
"creatorName": "张工",
|
||
"sharedAt": "2026-09-11 09:05",
|
||
"version": "V1.0",
|
||
"lifecycleState": "approved",
|
||
"isClaimed": True,
|
||
"author": "张工",
|
||
"reviewer": "李主管",
|
||
"approver": "王总监",
|
||
"updatedAt": "2026-09-11 09:05",
|
||
"summary": f"由临床科室与研发团队联合编制的《{p['name']}》用户需求说明书 (URS),已由张工上传并一键共享至项目协作参考库,供李主管、王总监及全组查阅。",
|
||
"markdown": urs_md,
|
||
"content": urs_md,
|
||
"sha256": urs_hash,
|
||
"governanceMode": "freeform"
|
||
}
|
||
documents[doc_srs_id] = {
|
||
"docId": doc_srs_id,
|
||
"projectId": pid,
|
||
"taskKey": "system_reqs",
|
||
"title": p["srs_title"],
|
||
"stage": "V0.5",
|
||
"category": "workflow",
|
||
"creatorId": 1,
|
||
"creatorName": "系统管理员",
|
||
"version": "V1.0",
|
||
"lifecycleState": "approved",
|
||
"isClaimed": True,
|
||
"author": "张工",
|
||
"reviewer": "李主管",
|
||
"approver": "王总监",
|
||
"updatedAt": "2026-09-11 00:00:00",
|
||
"summary": f"{p['name']}系统需求规格书,已对标 URS《{p['urs_file']['name']}》并通过法规与工程联合评审。",
|
||
"markdown": srs_md,
|
||
"content": srs_md,
|
||
"sha256": srs_hash
|
||
}
|
||
documents[doc_svp_id] = {
|
||
"docId": doc_svp_id,
|
||
"projectId": pid,
|
||
"taskKey": "test_manager",
|
||
"title": p["svp_title"],
|
||
"stage": "V0.5",
|
||
"category": "workflow",
|
||
"creatorId": 1,
|
||
"creatorName": "系统管理员",
|
||
"version": "V1.0",
|
||
"lifecycleState": "approved",
|
||
"isClaimed": True,
|
||
"author": "张工",
|
||
"reviewer": "李主管",
|
||
"approver": "王总监",
|
||
"updatedAt": "2026-09-11 00:35:00",
|
||
"summary": f"{p['name']}系统验证方案及计划,已建立完整需求映射。",
|
||
"markdown": svp_md,
|
||
"content": svp_md,
|
||
"sha256": svp_hash,
|
||
"upstreamDocId": doc_srs_id,
|
||
"upstreamSha256": srs_hash
|
||
}
|
||
|
||
seed_data = {
|
||
"generatedAt": "2026-09-11T09:10:00",
|
||
"projects": [
|
||
{
|
||
"id": p["id"],
|
||
"code": p["code"],
|
||
"name": p["name"],
|
||
"shortName": p["short_name"],
|
||
"customer": p["customer"],
|
||
"deviceType": p["device_type"],
|
||
"intendedUse": p["intended_use"],
|
||
"targetMarket": p["target_market"],
|
||
"activeWorkflowKey": "main",
|
||
"version": 1,
|
||
"creatorUserId": 1
|
||
}
|
||
for p in PROJECT_DEFS
|
||
],
|
||
"sessions": sessions,
|
||
"messages": messages,
|
||
"deliverables": deliverables,
|
||
"documents": documents
|
||
}
|
||
|
||
seed_json_path = "web/src/data/seeds/tenProjectsSeed.json"
|
||
with open(seed_json_path, "w", encoding="utf-8") as f:
|
||
json.dump(seed_data, f, ensure_ascii=False, indent=2)
|
||
print(f"成功输出前端 Seed JSON 文件: {seed_json_path} (大小: {os.path.getsize(seed_json_path)} 字节)")
|
||
|
||
# 6. 生成前端导出 TS 封装
|
||
ts_code = '''// 10 个示例项目评审专用数据封装
|
||
import seed from './seeds/tenProjectsSeed.json';
|
||
import { ProjectSession, ChatMessage, DeliverableItem } from '../types/workbench';
|
||
import { MockDocumentMeta } from './mockDocuments';
|
||
|
||
export interface SeedProjectMeta {
|
||
id: number;
|
||
code: string;
|
||
name: string;
|
||
shortName: string;
|
||
customer: string;
|
||
deviceType: string;
|
||
intendedUse: string;
|
||
targetMarket: string;
|
||
activeWorkflowKey: string;
|
||
version: number;
|
||
creatorUserId: number;
|
||
}
|
||
|
||
export const TEN_PROJECTS_LIST: SeedProjectMeta[] = seed.projects as SeedProjectMeta[];
|
||
export const TEN_PROJECTS_SESSIONS: ProjectSession[] = seed.sessions as ProjectSession[];
|
||
export const TEN_PROJECTS_MESSAGES: ChatMessage[] = seed.messages as ChatMessage[];
|
||
export const TEN_PROJECTS_DELIVERABLES: DeliverableItem[] = seed.deliverables as DeliverableItem[];
|
||
export const TEN_PROJECTS_DOCUMENTS: Record<string, MockDocumentMeta> = seed.documents as Record<
|
||
string,
|
||
MockDocumentMeta
|
||
>;
|
||
'''
|
||
ts_path = "web/src/data/tenProjectsDemo.ts"
|
||
with open(ts_path, "w", encoding="utf-8") as f:
|
||
f.write(ts_code)
|
||
print(f"成功输出前端 TS 模块: {ts_path}")
|
||
|
||
# 7. 生成后端 SQL 导入脚本
|
||
sql_lines = [
|
||
"-- 10 个示例医疗器械项目数据初始化脚本 (针对项目评审全流程落地)",
|
||
"BEGIN;",
|
||
]
|
||
|
||
for p in PROJECT_DEFS:
|
||
pid = p["id"]
|
||
code = p["code"]
|
||
name = p["name"].replace("'", "''")
|
||
cust = p["customer"].replace("'", "''")
|
||
dtype = p["device_type"].replace("'", "''")
|
||
iuse = p["intended_use"].replace("'", "''")
|
||
tmarket = p["target_market"].replace("'", "''")
|
||
|
||
doc_srs_id = f"doc-proj{pid}-system_reqs"
|
||
doc_svp_id = f"doc-proj{pid}-test_manager"
|
||
srs_hash = sha256_text(documents[doc_srs_id]["content"])
|
||
|
||
# 1) projects 表
|
||
sql_lines.append(f"""
|
||
INSERT INTO projects (id, code, name, customer_name, device_type, intended_use, target_market, current_stage, environment, status, creator_user_id, active_workflow_key, workflow_selection_version, created_at, updated_at)
|
||
VALUES ({pid}, '{code}', '{name}', '{cust}', '{dtype}', '{iuse}', '{tmarket}', 'V0.5', 'dev', 'active', 1, 'main', 1, now(), now())
|
||
ON CONFLICT (id) DO UPDATE SET
|
||
code = EXCLUDED.code,
|
||
name = EXCLUDED.name,
|
||
customer_name = EXCLUDED.customer_name,
|
||
device_type = EXCLUDED.device_type,
|
||
intended_use = EXCLUDED.intended_use,
|
||
target_market = EXCLUDED.target_market,
|
||
creator_user_id = 1,
|
||
active_workflow_key = 'main',
|
||
workflow_selection_version = 1,
|
||
updated_at = now();
|
||
""")
|
||
|
||
# 2) project_workflows 工作流激活与配置
|
||
for wf_key, status in [("main", "active"), ("product_manager", "ready"), ("test_manager", "ready")]:
|
||
sql_lines.append(f"""
|
||
INSERT INTO project_workflows (project_id, workflow_key, status, enabled, updated_at)
|
||
VALUES ({pid}, '{wf_key}', '{status}', true, now())
|
||
ON CONFLICT (project_id, workflow_key) DO UPDATE SET status = '{status}', enabled = true, updated_at = now();
|
||
""")
|
||
|
||
# 3) workflow_runs 运行记录
|
||
run_pm = f"run-proj{pid}-pm-01"
|
||
run_tm = f"run-proj{pid}-tm-01"
|
||
sql_lines.append(f"""
|
||
INSERT INTO workflow_runs (run_id, project_id, workflow_key, status, started_by, stage_key, task_key, output_doc_id, output_summary, started_at, finished_at, created_at)
|
||
VALUES ('{run_pm}', {pid}, 'product_manager', 'completed', 1, 'V0.5', 'system_reqs', '{doc_srs_id}', '智能产品经理已生成系统需求规格书并通过门禁', now() - interval '2 hours', now() - interval '1 hour', now())
|
||
ON CONFLICT (run_id) DO NOTHING;
|
||
|
||
INSERT INTO workflow_runs (run_id, project_id, workflow_key, status, started_by, stage_key, task_key, output_doc_id, output_summary, started_at, finished_at, created_at)
|
||
VALUES ('{run_tm}', {pid}, 'test_manager', 'completed', 1, 'V0.5', 'test_manager', '{doc_svp_id}', '智能测试经理已建立测试方案并完成需求全量映射', now() - interval '50 minutes', now() - interval '30 minutes', now())
|
||
ON CONFLICT (run_id) DO NOTHING;
|
||
""")
|
||
|
||
# 4) document_lineage 血缘关系
|
||
sql_lines.append(f"""
|
||
INSERT INTO document_lineage (project_id, downstream_doc_id, downstream_version, upstream_doc_id, upstream_version, upstream_sha256, is_stale, created_at)
|
||
VALUES ({pid}, '{doc_svp_id}', 1, '{doc_srs_id}', 1, '{srs_hash}', false, now())
|
||
ON CONFLICT (downstream_doc_id, downstream_version, upstream_doc_id, upstream_version) DO UPDATE SET
|
||
upstream_sha256 = EXCLUDED.upstream_sha256,
|
||
is_stale = false;
|
||
""")
|
||
|
||
sql_lines.append("COMMIT;")
|
||
|
||
sql_path = "deploy/postgres/migrations/2026-09-11-seed-ten-projects.sql"
|
||
with open(sql_path, "w", encoding="utf-8") as f:
|
||
f.write("\n".join(sql_lines))
|
||
print(f"成功输出后端迁移 SQL: {sql_path} (行数: {len(sql_lines)})")
|
||
|
||
print("\n全部 10 个示例项目数据包构建完成!")
|
||
|
||
if __name__ == "__main__":
|
||
build_data()
|