pregnancyStatus.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /**
  2. * 妊娠状态类型定义
  3. */
  4. /**
  5. * 妊娠状态枚举
  6. * 0001: not pregnant - 未怀孕
  7. * 0002: possibly pregnant - 可能怀孕
  8. * 0003: definitely pregnant - 确定怀孕
  9. * 0004: unknown - 未知
  10. */
  11. export enum PregnancyStatus {
  12. NOT_PREGNANT = '0001', // 未怀孕
  13. POSSIBLY_PREGNANT = '0002', // 可能怀孕
  14. DEFINITELY_PREGNANT = '0003', // 确定怀孕
  15. UNKNOWN = '0004', // 未知
  16. }
  17. /**
  18. * 妊娠状态选项接口,用于UI下拉选择
  19. */
  20. export interface PregnancyStatusOption {
  21. value: PregnancyStatus;
  22. label: React.ReactNode;
  23. description?: string;
  24. }
  25. /**
  26. * 妊娠状态选项列表
  27. */
  28. export const pregnancyStatusOptions: PregnancyStatusOption[] = [
  29. {
  30. value: PregnancyStatus.NOT_PREGNANT,
  31. label: '未怀孕',
  32. description: '患者未怀孕'
  33. },
  34. {
  35. value: PregnancyStatus.POSSIBLY_PREGNANT,
  36. label: '可能怀孕',
  37. description: '患者可能怀孕'
  38. },
  39. {
  40. value: PregnancyStatus.DEFINITELY_PREGNANT,
  41. label: '确定怀孕',
  42. description: '患者确定怀孕'
  43. },
  44. {
  45. value: PregnancyStatus.UNKNOWN,
  46. label: '未知',
  47. description: '患者妊娠状态未知'
  48. }
  49. ];
  50. /**
  51. * 根据值获取妊娠状态描述
  52. * @param status 妊娠状态值
  53. * @returns 妊娠状态描述
  54. */
  55. export const getPregnancyStatusDescription = (status: string): string => {
  56. switch (status) {
  57. case PregnancyStatus.NOT_PREGNANT:
  58. return '未怀孕';
  59. case PregnancyStatus.POSSIBLY_PREGNANT:
  60. return '可能怀孕';
  61. case PregnancyStatus.DEFINITELY_PREGNANT:
  62. return '确定怀孕';
  63. case PregnancyStatus.UNKNOWN:
  64. return '未知';
  65. default:
  66. return '未知';
  67. }
  68. };
  69. /**
  70. * 将旧妊娠状态值映射到新枚举
  71. * @param oldStatus 旧状态值 ('yes', 'no', 'na')
  72. * @returns 新的妊娠状态枚举
  73. */
  74. export const mapOldPregnancyStatusToNew = (oldStatus: string): PregnancyStatus => {
  75. switch (oldStatus) {
  76. case 'yes':
  77. return PregnancyStatus.DEFINITELY_PREGNANT;
  78. case 'no':
  79. return PregnancyStatus.NOT_PREGNANT;
  80. case 'na':
  81. default:
  82. return PregnancyStatus.UNKNOWN;
  83. }
  84. };