yxh
2026-10-03 d553a4be94d4f6ee162cc353a28b220403909cfc
src/utils/stringUtil.ts
@@ -1,12 +1,25 @@
export function isStringEmpty(value: string | null | undefined): boolean {
  return !value || value.trim() === '';
  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 '未知'
}