work.ts 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import { dview } from './dview';
  2. // 作为展示数据的基础,本质是个work
  3. export interface Task {
  4. StudyInstanceUID: string;
  5. StudyID: string;
  6. SpecificCharacterSet: string;
  7. AccessionNumber: string;
  8. PatientID: string;
  9. PatientName: string;
  10. DisplayPatientName: string;
  11. PatientSize: string;
  12. PatientAge: string;
  13. PatientSex: string;
  14. AdmittingTime: string;
  15. RegSource: string;
  16. StudyStatus: string;
  17. RequestedProcedureID: string;
  18. PerformedProtocolCodeValue: string;
  19. PerformedProtocolCodeMeaning: string;
  20. PerformedProcedureStepID: string;
  21. StudyDescription: string;
  22. StudyStartDatetime: string;
  23. ScheduledProcedureStepStartDate: string;
  24. StudyLock: string;
  25. OperatorID: string;
  26. Modality: string;
  27. Views: dview[];
  28. Thickness: number;
  29. PatientType: string;
  30. StudyType: string;
  31. QRCode: string;
  32. IsExported: boolean;
  33. IsEdited: boolean;
  34. WorkRef: string;
  35. IsAppended: boolean;
  36. CreationTime: string;
  37. MappedStatus: boolean;
  38. IsDelete: boolean;
  39. /**
  40. * 生日
  41. */
  42. patient_dob?: string; // 生日
  43. /**
  44. * // 主管医师
  45. */
  46. ref_physician?: string;
  47. weight?: number; // 体重
  48. length?: number; // 长度
  49. comment?: string; // 备注
  50. /**---下面是宠物专用字段--- */
  51. owner_name?: string; // 主人姓名,
  52. chip_number?: string; // 芯片号,
  53. variety: string; // 品种,
  54. sex_neutered: string; // 绝育状态, 'ALTERED' | 'UNALTERED' | 'UNKNOWN'
  55. is_anaesthesia?: boolean; // 是否麻醉,
  56. is_sedation?: boolean; // 是否镇静,
  57. /**---下面是人医专用字段--- */
  58. pregnancy_status?: string; // 妊娠状态, 'NOT_PREGNANT' | 'PREGNANT' | 'UNKNOWN'
  59. /**---患者照片相关字段--- */
  60. portrait_status?: string; // 患者照片保存状态, 'Saved' | 'NotSaved' | ''
  61. portrait_file?: string; // 患者照片文件名
  62. /**---RIS相关字段--- */
  63. /** RIS条目ID,用于RIS条目的唯一标识 */
  64. entry_id?: string;
  65. /** 调度信息,包含AE标题、医师、步骤ID等 */
  66. scheduled?: {
  67. scheduled_ae_title: string;
  68. scheduled_performing_physician_name: string;
  69. scheduled_procedure_step_id: string;
  70. };
  71. /** 协议代码列表,方便技师选择体位 */
  72. protocol_code?: Array<{
  73. code_value: string;
  74. code_meaning: string;
  75. }>;
  76. }
  77. export type TaskAnimal = Omit<Task, 'pregnancy_status'> & {
  78. sex_neutered: string;
  79. owner_name: string;
  80. chip_number: object;
  81. variety: string;
  82. };
  83. /**
  84. * 判断是否为RIS条目
  85. * @param task 任务对象
  86. * @returns true表示是RIS条目,false表示是本地条目
  87. */
  88. export const isRISEntry = (task: Task): boolean => {
  89. return !task.StudyID || task.StudyID === '';
  90. };