yxh
2026-09-29 6ab4b1e0b68e4c347110e37018fa005603f53904
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
export function isStringEmpty(value: string | null | undefined): boolean {
  return value == null || value.trim() === '';
}
 
/**
 * 性别格式化(1 男 / 2 女)。
 *
 * 【修正】原实现是 `if (1===value) "男" else "女"` —— 会把**任何非 1 的值**都当成"女",
 * 包括 0(未知)与 null/undefined。实测库中 `pat_gender = 0` 有 2,123 行
 * (见 AppointmentServiceImpl 的 UNKNOWN_GENDER 常量语义),这些患者会被**错显为女性**。
 *
 * 另外注意:MySQL 的 `tinyint(1)` 会被 JDBC 驱动映射为 Boolean,
 * 故这里同时兼容 boolean / 字符串数字("1"、"2")等形态。
 */
export function genderFormat(value: number | string | boolean | null | undefined): string {
  if (value === null || value === undefined || value === '') return '未知'
  if (value === true) return '男'
  if (value === false) return '未知'
  const n = Number(value)
  if (n === 1) return '男'
  if (n === 2) return '女'
  // 0 = 未知(HIS 未提供),不要默认成"女"
  return '未知'
}