| | |
| | | return value == null || value.trim() === ''; |
| | | } |
| | | |
| | | export function genderFormat(value: number): string { |
| | | if ( 1===value ) { |
| | | return "男"; |
| | | } else { |
| | | return "女"; |
| | | } |
| | | /** |
| | | * 性别格式化(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 '未知' |
| | | } |