work.ts
文件职责
定义工作列表任务(Task) 的数据结构接口,描述在任务清单、历史清单中展示的检查任务信息及其体位列表。
实现方式
通过 TypeScript 接口定义任务的数据契约,并使用 Omit 和交叉类型扩展出动物患者专用的 TaskAnimal 类型。
实现思路
- 基础任务接口:定义 Task 接口包含检查的核心展示信息和 DICOM 元数据
- 患者信息:包含患者基本信息(ID、姓名、年龄、性别、体型等)
- 检查信息:记录检查描述、开始时间、预约时间、检查状态、影像模态等
- 流程信息:包含请求流程 ID(RequestedProcedureID)、执行流程步骤 ID、协议代码等
- 体位列表:使用 Views 数组存储该任务包含的所有体位视图(dview)
- 状态标志:多个布尔字段跟踪任务状态(导出、编辑、追加、删除、映射等)
- 动物扩展:TaskAnimal 类型移除 pregnancy_status 字段,添加动物特有字段(绝育状态、主人姓名、芯片号、品种)
边界
输入边界
- ✅ 符合 Task 或 TaskAnimal 接口的对象结构
- ✅ Views 字段为 dview 类型数组
- ❌ 不验证字段值的有效性
输出边界
- ✅ 导出 Task 和 TaskAnimal 接口类型定义
- ❌ 不提供任务实例创建方法
- ❌ 不包含业务逻辑实现
职责边界
- ✅ 负责定义任务的数据结构
- ✅ 负责区分人类和动物患者的任务类型
- ❌ 不负责任务数据的持久化
- ❌ 不负责任务状态的变更逻辑
- ❌ 不负责任务列表的筛选和排序
涉及概念
任务(Task):工作列表中的一个检查项目,包含患者信息、检查信息和体位列表
工作列表(Worklist):待执行或进行中的检查任务列表
体位视图(Views):任务包含的所有拍摄体位的 dview 对象数组
请求流程 ID(RequestedProcedureID):HIS 系统中请求的流程标识
执行步骤 ID(PerformedProcedureStepID):实际执行的流程步骤标识
显示患者姓名(DisplayPatientName):用于界面显示的患者姓名(可能与 PatientName 格式不同)
工作引用(WorkRef):指向原始工作记录的引用标识
二维码(QRCode):任务的二维码标识,用于快速检索
TaskAnimal 类型:通过 Omit 工具类型移除人类专用字段,添加动物专用字段的扩展类型
绝育状态(sex_neutered):动物患者的绝育状态信息