refactor(flow): 优化流程配置及相关测试
- 在测试代码中统一使用 setPreviousAction 与 setDuration 方法,规范方法调用 - VirtualContextBuilder 允许 setDuration 接收 null,增强灵活性 - VirtualityFlowProcessor 计算步骤持续时间时改进判断逻辑,避免错误持续时间值 - 增加日志记录上一步骤开始时间,方便调试流程状态 - 自定义流程配置文件大幅重构,新增多种晨洗模式配置 - 新增机洗单步骤流程、无晨洗流程、每日首次晨洗、存储超时晨洗等多种流程样例 - 自定义流程支持 override_steps 为 true/false 的不同合并策略说明与示例 - 详细补充配置节点说明,增强配置文档准确性和用户理解 - 自定义语音模板扩展,支持多种语音播报及错误提示文本 - 更新时间验证配置,统一各流程中各步骤时间要求 - 补充“配置自定义节点流程指南”文档,详细说明配置原则、合并策略与使用建议
This commit is contained in:
@@ -1,60 +1,111 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* 流程配置示例文件
|
||||
* 演示如何灵活配置不同医院的业务流程
|
||||
* 流程配置文件
|
||||
*
|
||||
* 使用说明:
|
||||
* 1. 在 .env 中设置 FLOW_PROCESS_CONFIG_KEY 指定使用的配置键名
|
||||
* 2. 每个配置包含:晨洗模式、步骤列表、时间验证、语音模板等
|
||||
* 3. steps 中的 code 必须与 ProcessNode 的 getCode() 返回值一致
|
||||
*
|
||||
* @see \app\flow\config\ProcessConfig 加载和处理逻辑
|
||||
*/
|
||||
|
||||
return [
|
||||
// ============================================
|
||||
// 示例1: 标准完整流程(默认配置)
|
||||
// 晨洗→清洗→漂洗→消毒→终末漂洗→干燥→结束
|
||||
// 1. 机洗单步骤流程
|
||||
// ============================================
|
||||
// 场景:只刷机洗读卡器,自动完成后续步骤
|
||||
// 流程:机洗 → 终末漂洗 → 干燥 → 结束
|
||||
// 特点:跳过手工清洗的漂洗和消毒步骤
|
||||
// ============================================
|
||||
'machine_wash' => [
|
||||
'name' => '机洗单步骤流程',
|
||||
'description' => '只刷机洗后自动完成终末漂洗、干燥、结束',
|
||||
'override_steps' => true,
|
||||
|
||||
// 晨洗配置:禁用
|
||||
'morning_wash' => [
|
||||
'mode' => 'none', // none | all | daily_first | storage_time | specific_types
|
||||
],
|
||||
|
||||
// 步骤配置
|
||||
'steps' => [
|
||||
['code' => '晨洗', 'class' => 'MorningWashNode', 'enabled' => false],
|
||||
['code' => '清洗', 'class' => 'WashNode', 'enabled' => true, 'required' => ['结束']],
|
||||
['code' => '漂洗', 'class' => 'RinseNode', 'enabled' => true, 'required' => ['清洗']],
|
||||
['code' => '消毒', 'class' => 'DisinfectNode', 'enabled' => true, 'required' => ['漂洗']],
|
||||
['code' => '机洗', 'class' => 'MachineWashNode', 'enabled' => true, 'required' => ['清洗', '漂洗', '消毒']],
|
||||
['code' => '终末漂洗', 'class' => 'FinalRinseNode', 'enabled' => true, 'required' => ['机洗']],
|
||||
['code' => '干燥', 'class' => 'DryNode', 'enabled' => true, 'required' => ['终末漂洗']],
|
||||
['code' => '结束', 'class' => 'EndNode', 'enabled' => true, 'required' => ['干燥']],
|
||||
],
|
||||
],
|
||||
|
||||
// ============================================
|
||||
// 2. 标准完整流程
|
||||
// ============================================
|
||||
// 场景:完整的七步洗消流程
|
||||
// 流程:晨洗 → 清洗 → 漂洗 → 消毒 → 终末漂洗 → 干燥 → 结束
|
||||
// 特点:符合 WS 507-2016 规范,包含所有必需步骤
|
||||
// ============================================
|
||||
'standard' => [
|
||||
'name' => '标准完整流程',
|
||||
'description' => '包含所有步骤的完整清洗流程',
|
||||
// 覆盖 steps
|
||||
'override_steps' => false,
|
||||
'description' => '包含晨洗在内的完整七步洗消流程',
|
||||
'override_steps' => true,
|
||||
|
||||
// 晨洗配置:每天第一次需要晨洗
|
||||
'morning_wash' => [
|
||||
'mode' => 'daily_first', // 每天第一次需要晨洗
|
||||
'storage_threshold' => 4,
|
||||
'morning_start_time' => '00:00:00',
|
||||
'mode' => 'daily_first', // 每天第一次洗消需要晨洗
|
||||
'storage_threshold' => 4, // 存储时间阈值(小时)
|
||||
'morning_start_time' => '00:00:00', // 每日开始时间
|
||||
],
|
||||
|
||||
// 步骤配置
|
||||
'steps' => [
|
||||
['code' => '晨洗', 'class' => 'MorningWashNode', 'enabled' => true],
|
||||
['code' => '清洗', 'class' => 'WashNode', 'enabled' => true,'required' => ['结束','晨洗']],
|
||||
['code' => '漂洗', 'class' => 'RinseNode', 'enabled' => true,'required' => ['结束']],
|
||||
['code' => '清洗', 'class' => 'WashNode', 'enabled' => true],
|
||||
['code' => '漂洗', 'class' => 'RinseNode', 'enabled' => true],
|
||||
['code' => '消毒', 'class' => 'DisinfectNode', 'enabled' => true],
|
||||
['code' => '终末漂洗', 'class' => 'FinalRinseNode', 'enabled' => true],
|
||||
['code' => '干燥', 'class' => 'DryNode', 'enabled' => true],
|
||||
['code' => '结束', 'class' => 'EndNode', 'enabled' => true],
|
||||
['code' => '机洗', 'class' => 'MachineWashNode', 'enabled' => true],
|
||||
],
|
||||
|
||||
// 默认时间验证配置(秒)
|
||||
'time_validation' => [
|
||||
'手工洗' => [
|
||||
'清洗' => 120,
|
||||
'漂洗' => 60,
|
||||
'消毒' => 300,
|
||||
'终末漂洗' => 120,
|
||||
'干燥' => 30,
|
||||
'机洗' => 360,
|
||||
]
|
||||
'durations' => [
|
||||
'清洗' => 120, // 2 分钟
|
||||
'漂洗' => 60, // 1 分钟
|
||||
'消毒' => 300, // 5 分钟
|
||||
'终末漂洗' => 120, // 2 分钟
|
||||
'干燥' => 30, // 30 秒
|
||||
'机洗' => 360, // 6 分钟
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
|
||||
// ============================================
|
||||
// 示例2: 无晨洗流程
|
||||
// 医院不需要晨洗功能
|
||||
// 清洗→漂洗→消毒→终末漂洗→干燥→结束
|
||||
// 3. 无晨洗流程
|
||||
// ============================================
|
||||
// 场景:不需要晨洗功能的医院
|
||||
// 流程:清洗 → 漂洗 → 消毒 → 终末漂洗 → 干燥 → 结束
|
||||
// 特点:完全禁用晨洗节点
|
||||
// ============================================
|
||||
'no_morning_wash' => [
|
||||
'name' => '无晨洗流程',
|
||||
'description' => '医院不需要晨洗功能',
|
||||
'description' => '不包含晨洗步骤的标准洗消流程',
|
||||
'override_steps' => true,
|
||||
|
||||
// 晨洗配置:完全禁用
|
||||
'morning_wash' => [
|
||||
'mode' => 'none', // 完全禁用晨洗
|
||||
'mode' => 'none',
|
||||
],
|
||||
|
||||
// 步骤配置
|
||||
'steps' => [
|
||||
['code' => '晨洗', 'class' => 'MorningWashNode', 'enabled' => false], // 禁用晨洗节点
|
||||
['code' => '晨洗', 'class' => 'MorningWashNode', 'enabled' => false],
|
||||
['code' => '清洗', 'class' => 'WashNode', 'enabled' => true],
|
||||
['code' => '漂洗', 'class' => 'RinseNode', 'enabled' => true],
|
||||
['code' => '消毒', 'class' => 'DisinfectNode', 'enabled' => true],
|
||||
@@ -64,17 +115,48 @@ return [
|
||||
['code' => '机洗', 'class' => 'MachineWashNode', 'enabled' => true],
|
||||
],
|
||||
],
|
||||
|
||||
|
||||
// ============================================
|
||||
// 示例3: 部分镜子需要晨洗(义乌模式)
|
||||
// 根据存储时间判断:超过4小时需要晨洗
|
||||
// 4. 晨洗配置(多种模式)
|
||||
// ============================================
|
||||
'partial_morning_wash' => [
|
||||
'name' => '部分镜子晨洗(义乌模式)',
|
||||
'description' => '普通镜柜超过4小时需要晨洗,无菌镜柜免晨消',
|
||||
// 场景:根据不同医院政策配置晨洗规则
|
||||
// 子配置:
|
||||
// - morning_wash_daily: 每天第一次
|
||||
// - morning_wash_storage: 存储超时
|
||||
// - morning_wash_all: 每次都晨洗
|
||||
// - morning_wash_specific: 特定类型镜子
|
||||
// ============================================
|
||||
|
||||
// 4.1 每天第一次晨洗(忠县模式)
|
||||
'morning_wash_daily' => [
|
||||
'name' => '每天第一次晨洗',
|
||||
'description' => '每日首次洗消需要晨洗',
|
||||
'override_steps' => true,
|
||||
'morning_wash' => [
|
||||
'mode' => 'storage_time', // 根据存储时间判断
|
||||
'storage_threshold' => 4, // 4小时阈值
|
||||
'mode' => 'daily_first',
|
||||
'storage_threshold' => 4,
|
||||
'morning_start_time' => '00:00:00',
|
||||
],
|
||||
'steps' => [
|
||||
['code' => '晨洗', 'class' => 'MorningWashNode', 'enabled' => true],
|
||||
['code' => '清洗', 'class' => 'WashNode', 'enabled' => true],
|
||||
['code' => '漂洗', 'class' => 'RinseNode', 'enabled' => true],
|
||||
['code' => '消毒', 'class' => 'DisinfectNode', 'enabled' => true],
|
||||
['code' => '终末漂洗', 'class' => 'FinalRinseNode', 'enabled' => true],
|
||||
['code' => '干燥', 'class' => 'DryNode', 'enabled' => true],
|
||||
['code' => '结束', 'class' => 'EndNode', 'enabled' => true],
|
||||
['code' => '机洗', 'class' => 'MachineWashNode', 'enabled' => true],
|
||||
],
|
||||
],
|
||||
|
||||
// 4.2 存储超时晨洗(义乌模式)
|
||||
'morning_wash_storage' => [
|
||||
'name' => '存储超时晨洗(义乌模式)',
|
||||
'description' => '普通镜柜超过阈值小时需要晨洗,无菌镜柜免晨消',
|
||||
'override_steps' => true,
|
||||
'morning_wash' => [
|
||||
'mode' => 'storage_time',
|
||||
'storage_threshold' => 4, // 4 小时阈值
|
||||
'morning_start_time' => '06:00:00',
|
||||
],
|
||||
'steps' => [
|
||||
@@ -88,107 +170,14 @@ return [
|
||||
['code' => '机洗', 'class' => 'MachineWashNode', 'enabled' => true],
|
||||
],
|
||||
],
|
||||
|
||||
// ============================================
|
||||
// 示例4: 无干燥流程
|
||||
// 医院不需要干燥步骤,消毒后直接结束
|
||||
// 清洗→漂洗→消毒→结束
|
||||
// ============================================
|
||||
'no_dry' => [
|
||||
'name' => '无干燥流程',
|
||||
'description' => '医院不需要干燥步骤',
|
||||
|
||||
// 4.3 每次都晨洗(高感染风险区)
|
||||
'morning_wash_all' => [
|
||||
'name' => '每次都晨洗',
|
||||
'description' => '每次洗消都需要先进行晨洗',
|
||||
'override_steps' => true,
|
||||
'morning_wash' => [
|
||||
'mode' => 'none',
|
||||
],
|
||||
'steps' => [
|
||||
['code' => '晨洗', 'class' => 'MorningWashNode', 'enabled' => false],
|
||||
['code' => '清洗', 'class' => 'WashNode', 'enabled' => true],
|
||||
['code' => '漂洗', 'class' => 'RinseNode', 'enabled' => true],
|
||||
['code' => '消毒', 'class' => 'DisinfectNode', 'enabled' => true],
|
||||
['code' => '终末漂洗', 'class' => 'FinalRinseNode', 'enabled' => false], // 跳过终末漂洗
|
||||
['code' => '干燥', 'class' => 'DryNode', 'enabled' => false], // 禁用干燥
|
||||
['code' => '结束', 'class' => 'EndNode', 'enabled' => true],
|
||||
['code' => '机洗', 'class' => 'MachineWashNode', 'enabled' => true],
|
||||
],
|
||||
],
|
||||
|
||||
// ============================================
|
||||
// 示例5: 仅干燥流程
|
||||
// 医院只有干燥步骤,没有完整清洗流程
|
||||
// 干燥→结束
|
||||
// ============================================
|
||||
'dry_only' => [
|
||||
'name' => '仅干燥流程',
|
||||
'description' => '医院只有干燥步骤',
|
||||
'morning_wash' => [
|
||||
'mode' => 'none',
|
||||
],
|
||||
'steps' => [
|
||||
['code' => '晨洗', 'class' => 'MorningWashNode', 'enabled' => false],
|
||||
['code' => '清洗', 'class' => 'WashNode', 'enabled' => false],
|
||||
['code' => '漂洗', 'class' => 'RinseNode', 'enabled' => false],
|
||||
['code' => '消毒', 'class' => 'DisinfectNode', 'enabled' => false],
|
||||
['code' => '终末漂洗', 'class' => 'FinalRinseNode', 'enabled' => false],
|
||||
['code' => '干燥', 'class' => 'DryNode', 'enabled' => true],
|
||||
['code' => '结束', 'class' => 'EndNode', 'enabled' => true],
|
||||
['code' => '机洗', 'class' => 'MachineWashNode', 'enabled' => false],
|
||||
],
|
||||
],
|
||||
|
||||
// ============================================
|
||||
// 示例6: 机洗流程
|
||||
// 清洗→机洗→终末漂洗→干燥→结束
|
||||
// ============================================
|
||||
'machine_wash' => [
|
||||
'name' => '机洗流程',
|
||||
'description' => '刷完机洗后接终末漂洗再干燥结束',
|
||||
'morning_wash' => [
|
||||
'mode' => 'none',
|
||||
],
|
||||
'steps' => [
|
||||
['code' => '晨洗', 'class' => 'MorningWashNode', 'enabled' => false],
|
||||
['code' => '清洗', 'class' => 'WashNode', 'enabled' => true],
|
||||
['code' => '漂洗', 'class' => 'RinseNode', 'enabled' => false], // 跳过硬洗漂洗
|
||||
['code' => '消毒', 'class' => 'DisinfectNode', 'enabled' => false], // 跳过硬洗消毒
|
||||
['code' => '机洗', 'class' => 'MachineWashNode', 'enabled' => true],
|
||||
['code' => '终末漂洗', 'class' => 'FinalRinseNode', 'enabled' => true],
|
||||
['code' => '干燥', 'class' => 'DryNode', 'enabled' => true],
|
||||
['code' => '结束', 'class' => 'EndNode', 'enabled' => true],
|
||||
],
|
||||
],
|
||||
|
||||
// ============================================
|
||||
// 示例7: 简化流程
|
||||
// 只刷一个清洗就结束
|
||||
// 清洗→结束
|
||||
// ============================================
|
||||
'simple' => [
|
||||
'name' => '简化流程',
|
||||
'description' => '只刷一个清洗就结束',
|
||||
'morning_wash' => [
|
||||
'mode' => 'none',
|
||||
],
|
||||
'steps' => [
|
||||
['code' => '晨洗', 'class' => 'MorningWashNode', 'enabled' => false],
|
||||
['code' => '清洗', 'class' => 'WashNode', 'enabled' => true],
|
||||
['code' => '漂洗', 'class' => 'RinseNode', 'enabled' => false],
|
||||
['code' => '消毒', 'class' => 'DisinfectNode', 'enabled' => false],
|
||||
['code' => '终末漂洗', 'class' => 'FinalRinseNode', 'enabled' => false],
|
||||
['code' => '干燥', 'class' => 'DryNode', 'enabled' => false],
|
||||
['code' => '结束', 'class' => 'EndNode', 'enabled' => true],
|
||||
['code' => '机洗', 'class' => 'MachineWashNode', 'enabled' => false],
|
||||
],
|
||||
],
|
||||
|
||||
// ============================================
|
||||
// 示例8: 自定义语音流程
|
||||
// 针对某个流程特殊定制语音
|
||||
// ============================================
|
||||
'custom_voice' => [
|
||||
'name' => '自定义语音流程',
|
||||
'description' => '针对流程特殊定制语音',
|
||||
'morning_wash' => [
|
||||
'mode' => 'daily_first',
|
||||
'mode' => 'all',
|
||||
],
|
||||
'steps' => [
|
||||
['code' => '晨洗', 'class' => 'MorningWashNode', 'enabled' => true],
|
||||
@@ -200,54 +189,118 @@ return [
|
||||
['code' => '结束', 'class' => 'EndNode', 'enabled' => true],
|
||||
['code' => '机洗', 'class' => 'MachineWashNode', 'enabled' => true],
|
||||
],
|
||||
'voice_templates' => [
|
||||
// 与 VoiceGenerationStrategy 中默认配置进行合并
|
||||
'normal_wash' => [
|
||||
'清洗' => '第一步清洗开始,请认真清洗',
|
||||
'漂洗' => '第二步漂洗开始',
|
||||
'消毒' => '第三步消毒开始,请确保消毒时间',
|
||||
'终末漂洗' => '第四步终末漂洗开始',
|
||||
'干燥' => '最后一步干燥开始',
|
||||
'结束' => '清洗流程全部完成,请妥善保管内镜',
|
||||
],
|
||||
|
||||
// 4.4 特定类型镜子晨洗
|
||||
'morning_wash_specific' => [
|
||||
'name' => '特定类型镜子晨洗',
|
||||
'description' => '只有胃镜、十二指肠镜需要晨洗',
|
||||
'override_steps' => true,
|
||||
'morning_wash' => [
|
||||
'mode' => 'specific_types',
|
||||
'specific_types' => ['胃镜', '十二指肠镜'],
|
||||
],
|
||||
'steps' => [
|
||||
['code' => '晨洗', 'class' => 'MorningWashNode', 'enabled' => true],
|
||||
['code' => '清洗', 'class' => 'WashNode', 'enabled' => true],
|
||||
['code' => '漂洗', 'class' => 'RinseNode', 'enabled' => true],
|
||||
['code' => '消毒', 'class' => 'DisinfectNode', 'enabled' => true],
|
||||
['code' => '终末漂洗', 'class' => 'FinalRinseNode', 'enabled' => true],
|
||||
['code' => '干燥', 'class' => 'DryNode', 'enabled' => true],
|
||||
['code' => '结束', 'class' => 'EndNode', 'enabled' => true],
|
||||
['code' => '机洗', 'class' => 'MachineWashNode', 'enabled' => true],
|
||||
],
|
||||
],
|
||||
|
||||
// ============================================
|
||||
// 5. 有干燥流程(默认)
|
||||
// ============================================
|
||||
// 场景:包含干燥步骤的完整流程
|
||||
// 流程:晨洗 → 清洗 → 漂洗 → 消毒 → 终末漂洗 → 干燥 → 结束
|
||||
// 特点:干燥节点启用,符合规范要求
|
||||
// ============================================
|
||||
'with_dry' => [
|
||||
'name' => '有干燥流程',
|
||||
'description' => '包含干燥步骤的完整洗消流程',
|
||||
'override_steps' => true,
|
||||
|
||||
// 晨洗配置:每天第一次
|
||||
'morning_wash' => [
|
||||
'mode' => 'daily_first',
|
||||
],
|
||||
|
||||
// 步骤配置:干燥启用
|
||||
'steps' => [
|
||||
['code' => '晨洗', 'class' => 'MorningWashNode', 'enabled' => true],
|
||||
['code' => '清洗', 'class' => 'WashNode', 'enabled' => true],
|
||||
['code' => '漂洗', 'class' => 'RinseNode', 'enabled' => true],
|
||||
['code' => '消毒', 'class' => 'DisinfectNode', 'enabled' => true],
|
||||
['code' => '终末漂洗', 'class' => 'FinalRinseNode', 'enabled' => true],
|
||||
['code' => '干燥', 'class' => 'DryNode', 'enabled' => true], // ✓ 启用干燥
|
||||
['code' => '结束', 'class' => 'EndNode', 'enabled' => true],
|
||||
['code' => '机洗', 'class' => 'MachineWashNode', 'enabled' => true],
|
||||
],
|
||||
|
||||
// 时间验证
|
||||
'time_validation' => [
|
||||
'durations' => [
|
||||
'清洗' => 120,
|
||||
'漂洗' => 60,
|
||||
'消毒' => 300,
|
||||
'终末漂洗' => 120,
|
||||
'干燥' => 30, // 干燥至少 30 秒
|
||||
'机洗' => 360,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
|
||||
// ============================================
|
||||
// 示例9: 特定类型镜子晨洗
|
||||
// 只有特定类型的镜子需要晨洗
|
||||
// 6. 无干燥流程
|
||||
// ============================================
|
||||
'specific_type_morning_wash' => [
|
||||
'name' => '特定类型镜子晨洗',
|
||||
'description' => '只有胃镜需要晨洗,肠镜不需要',
|
||||
// 场景:医院不需要干燥步骤
|
||||
// 流程:晨洗 → 清洗 → 漂洗 → 消毒 → 终末漂洗 → 结束
|
||||
// 特点:禁用干燥和终末漂洗
|
||||
// ============================================
|
||||
'no_dry' => [
|
||||
'name' => '无干燥流程',
|
||||
'description' => '不包含干燥步骤的洗消流程',
|
||||
'override_steps' => true,
|
||||
|
||||
// 晨洗配置:禁用
|
||||
'morning_wash' => [
|
||||
'mode' => 'specific_types',
|
||||
'specific_types' => ['胃镜', '十二指肠镜'], // 只有这些类型需要晨洗
|
||||
'mode' => 'none',
|
||||
],
|
||||
|
||||
// 步骤配置:禁用干燥和终末漂洗
|
||||
'steps' => [
|
||||
['code' => '晨洗', 'class' => 'MorningWashNode', 'enabled' => true],
|
||||
['code' => '晨洗', 'class' => 'MorningWashNode', 'enabled' => false],
|
||||
['code' => '清洗', 'class' => 'WashNode', 'enabled' => true],
|
||||
['code' => '漂洗', 'class' => 'RinseNode', 'enabled' => true],
|
||||
['code' => '消毒', 'class' => 'DisinfectNode', 'enabled' => true],
|
||||
['code' => '终末漂洗', 'class' => 'FinalRinseNode', 'enabled' => true],
|
||||
['code' => '干燥', 'class' => 'DryNode', 'enabled' => true],
|
||||
['code' => '终末漂洗', 'class' => 'FinalRinseNode', 'enabled' => false], // ✗ 禁用
|
||||
['code' => '干燥', 'class' => 'DryNode', 'enabled' => false], // ✗ 禁用干燥
|
||||
['code' => '结束', 'class' => 'EndNode', 'enabled' => true],
|
||||
['code' => '机洗', 'class' => 'MachineWashNode', 'enabled' => true],
|
||||
],
|
||||
],
|
||||
|
||||
|
||||
// ============================================
|
||||
// 示例10: 自定义时间要求
|
||||
// 不同医院对步骤时间有不同要求
|
||||
// 7. 自定义语音流程
|
||||
// ============================================
|
||||
'custom_duration' => [
|
||||
'name' => '自定义时间要求',
|
||||
'description' => '消毒时间要求10分钟',
|
||||
// 覆盖 steps
|
||||
'override_steps' => false,
|
||||
// 场景:需要特殊语音播报的医院
|
||||
// 特点:每个步骤都有自定义语音内容
|
||||
// ============================================
|
||||
'custom_voice' => [
|
||||
'name' => '自定义语音流程',
|
||||
'description' => '每个步骤都有特殊语音提示',
|
||||
'override_steps' => true,
|
||||
|
||||
// 晨洗配置:每天第一次
|
||||
'morning_wash' => [
|
||||
'mode' => 'daily_first',
|
||||
],
|
||||
|
||||
// 步骤配置:标准流程
|
||||
'steps' => [
|
||||
['code' => '晨洗', 'class' => 'MorningWashNode', 'enabled' => true],
|
||||
['code' => '清洗', 'class' => 'WashNode', 'enabled' => true],
|
||||
@@ -258,13 +311,44 @@ return [
|
||||
['code' => '结束', 'class' => 'EndNode', 'enabled' => true],
|
||||
['code' => '机洗', 'class' => 'MachineWashNode', 'enabled' => true],
|
||||
],
|
||||
|
||||
// 自定义语音模板
|
||||
'voice_templates' => [
|
||||
// 正常洗消流程语音
|
||||
'normal_wash' => [
|
||||
'晨洗' => '晨洗开始,请进行每日首次清洗准备',
|
||||
'清洗' => '第一步清洗开始,请认真清洗内镜外表面和管道',
|
||||
'漂洗' => '第二步漂洗开始,用流动水冲洗残留酶液',
|
||||
'消毒' => '第三步消毒开始,请确保消毒剂浓度和时间',
|
||||
'终末漂洗' => '第四步终末漂洗开始,用无菌水彻底冲洗',
|
||||
'干燥' => '最后一步干燥开始,用压力气枪吹干管道',
|
||||
'结束' => '清洗流程全部完成,请妥善保管内镜',
|
||||
'机洗' => '机洗开始,请将内镜放入清洗机',
|
||||
],
|
||||
|
||||
// 晨洗流程语音
|
||||
'morning_wash' => [
|
||||
'晨洗' => '晨洗模式启动,今日首次清洗需额外注意',
|
||||
'清洗' => '晨洗后的第一次清洗,请按标准流程操作',
|
||||
],
|
||||
|
||||
// 错误提示语音
|
||||
'error_messages' => [
|
||||
'NOT_ENOUGH_TIME' => '{step}时间不足,还需等待{time}秒',
|
||||
'PLEASE_SWIPE_OPERATOR' => '请先刷人员卡',
|
||||
'PLEASE_SWIPE_ENDOSCOPE' => '请刷内镜卡',
|
||||
],
|
||||
],
|
||||
|
||||
// 时间验证配置
|
||||
'time_validation' => [
|
||||
'durations' => [
|
||||
'清洗' => 300, // 5分钟
|
||||
'漂洗' => 120, // 2分钟
|
||||
'消毒' => 600, // 10分钟(自定义)
|
||||
'终末漂洗' => 180, // 3分钟(自定义)
|
||||
'干燥' => 300, // 5分钟(自定义)
|
||||
'清洗' => 120,
|
||||
'漂洗' => 60,
|
||||
'消毒' => 300,
|
||||
'终末漂洗' => 120,
|
||||
'干燥' => 30,
|
||||
'机洗' => 360,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user