153 lines
5.9 KiB
TypeScript
153 lines
5.9 KiB
TypeScript
import {
|
|
SAMPLE_TYPE_PERINATAL_HSC,
|
|
SAMPLE_TYPE_UC_MSC
|
|
} from '@/utils/sample-production-reception-fields'
|
|
|
|
export type StorageCertQcTypeKey = 'perinatal_hsc' | 'uc_msc'
|
|
|
|
export type StorageCertQcControl = 'text' | 'textarea' | 'select_yny'
|
|
|
|
export interface StorageCertQcField {
|
|
key: string
|
|
label: string
|
|
control?: StorageCertQcControl
|
|
span?: 1 | 2 | 3
|
|
}
|
|
|
|
export interface StorageCertQcGroup {
|
|
title: string
|
|
variant?: 'primary' | 'alt' | 'meta'
|
|
fields: StorageCertQcField[]
|
|
}
|
|
|
|
export function resolveStorageCertQcTypeKey(
|
|
sampleTypeName?: string | null
|
|
): StorageCertQcTypeKey | null {
|
|
const name = String(sampleTypeName || '').trim()
|
|
if (name === SAMPLE_TYPE_PERINATAL_HSC) return 'perinatal_hsc'
|
|
if (name === SAMPLE_TYPE_UC_MSC) return 'uc_msc'
|
|
return null
|
|
}
|
|
|
|
export function supportsStorageCertQc(sampleTypeName?: string | null): boolean {
|
|
return resolveStorageCertQcTypeKey(sampleTypeName) != null
|
|
}
|
|
|
|
const MOTHER_BLOOD: StorageCertQcField[] = [
|
|
{ key: 'mother_hbsag', label: '乙型肝炎病毒表面抗原(HBsAg)', control: 'select_yny' },
|
|
{ key: 'mother_hbv_dna', label: '乙型肝炎病毒核酸(HBV DNA)', control: 'select_yny' },
|
|
{ key: 'mother_anti_hcv', label: '丙型肝炎病毒抗体(抗HCV)', control: 'select_yny' },
|
|
{ key: 'mother_hcv_rna', label: '丙型肝炎病毒核酸(HCV RNA)', control: 'select_yny' },
|
|
{ key: 'mother_anti_tp', label: '梅毒螺旋体特异性抗体(抗TP)', control: 'select_yny' },
|
|
{ key: 'mother_cmv_igm', label: '巨细胞病毒 IgM 抗体 (CMV IgM)', control: 'select_yny' },
|
|
{ key: 'mother_anti_hiv', label: '人类免疫缺陷病毒抗体(抗HIV-1/2)', control: 'select_yny' },
|
|
{
|
|
key: 'mother_hiv1_rna',
|
|
label: '人类免疫缺陷病毒核酸(1型) (HIV-1RNA)',
|
|
control: 'select_yny'
|
|
}
|
|
]
|
|
|
|
export const STORAGE_CERT_QC_GROUPS: Record<StorageCertQcTypeKey, StorageCertQcGroup[]> = {
|
|
perinatal_hsc: [
|
|
{
|
|
title: '采集与运输',
|
|
variant: 'alt',
|
|
fields: [
|
|
{ key: 'collection_time', label: '造血干细胞采集时间' },
|
|
{ key: 'transport_temp_c', label: '运输温度 /℃' }
|
|
]
|
|
},
|
|
{
|
|
title: '造血干细胞检测报告',
|
|
variant: 'primary',
|
|
fields: [
|
|
{ key: 'receive_time', label: '造血干细胞接收时间' },
|
|
{ key: 'process_time', label: '处理时间' },
|
|
{ key: 'cryo_time', label: '冻存时间' },
|
|
{ key: 'weight_g', label: '造血干细胞重量/g' },
|
|
{ key: 'cryo_volume_ml', label: '造血干细胞冻存体积/mL' },
|
|
{ key: 'tnc_1e8', label: '有核细胞数 TNC / *10E8' },
|
|
{ key: 'cd34_count_1e6', label: 'CD34+ 细胞计数 / *10E6' },
|
|
{ key: 'cd34_cd45dim_1e5', label: 'CD34+ CD45dim 细胞计数 / *10E5' },
|
|
{ key: 'viability_pct', label: '细胞活性/%' },
|
|
{ key: 'bacteria_test', label: '细菌检测', control: 'select_yny' },
|
|
{ key: 'hbsag', label: '乙型肝炎病毒表面抗原(HBsAg)', control: 'select_yny' },
|
|
{ key: 'anti_hcv', label: '丙型肝炎病毒抗体(抗HCV)', control: 'select_yny' },
|
|
{ key: 'anti_tp', label: '梅毒螺旋体特异性抗体(抗TP)', control: 'select_yny' },
|
|
{
|
|
key: 'anti_hiv',
|
|
label: '人类免疫缺陷病毒抗体(抗HIV-1/2)',
|
|
control: 'select_yny'
|
|
},
|
|
{ key: 'cmv_igm', label: '巨细胞病毒 IgM 抗体 (CMV-IgM)', control: 'select_yny' }
|
|
]
|
|
},
|
|
{ title: '母亲血液检测报告', variant: 'primary', fields: MOTHER_BLOOD },
|
|
{
|
|
title: '储存证收尾信息',
|
|
variant: 'meta',
|
|
fields: [
|
|
{ key: 'hla_typing', label: 'HLA 分型', control: 'textarea', span: 3 },
|
|
{ key: 'storage_date', label: '储存日期' },
|
|
{ key: 'storage_years', label: '储存年限' },
|
|
{ key: 'result_comment', label: '检测结果评论' },
|
|
{ key: 'report_issue_date', label: '报告发出日期' }
|
|
]
|
|
}
|
|
],
|
|
uc_msc: [
|
|
{
|
|
title: '采集与运输 / 邮寄',
|
|
variant: 'alt',
|
|
fields: [
|
|
{ key: 'mail_flag', label: '是否邮寄' },
|
|
{ key: 'collection_time', label: '脐带采集时间' },
|
|
{ key: 'transport_temp_c', label: '运输温度 /℃' }
|
|
]
|
|
},
|
|
{
|
|
title: '脐带间充质干细胞检测报告',
|
|
variant: 'primary',
|
|
fields: [
|
|
{ key: 'receive_time', label: '脐带接收时间' },
|
|
{ key: 'process_time', label: '处理时间' },
|
|
{ key: 'cryo_time', label: '冻存时间' },
|
|
{ key: 'storage_tube_count', label: '储存总量(管)' },
|
|
{ key: 'available_cell_type', label: '可提供细胞类型' },
|
|
{ key: 'available_cell_count_1e7', label: '可提供细胞数量 / *10E7' },
|
|
{ key: 'available_viability_pct', label: '可提供细胞存活率 %' },
|
|
{ key: 'endotoxin_test', label: '内毒素检测', control: 'select_yny' },
|
|
{ key: 'bacteria_test', label: '细菌检测', control: 'select_yny' },
|
|
{ key: 'fungus_test', label: '真菌检测', control: 'select_yny' },
|
|
{ key: 'mycoplasma_test', label: '支原体检测', control: 'select_yny' },
|
|
{ key: 'available_cell_morphology', label: '可提供细胞形态' },
|
|
{
|
|
key: 'available_immunophenotype',
|
|
label: '可提供细胞免疫表型特征',
|
|
span: 2
|
|
}
|
|
]
|
|
},
|
|
{ title: '母亲血液检测报告', variant: 'primary', fields: MOTHER_BLOOD },
|
|
{
|
|
title: '储存证收尾信息',
|
|
variant: 'meta',
|
|
fields: [
|
|
{ key: 'result_judgment', label: '检测结果评判' },
|
|
{ key: 'report_issue_date', label: '报告发出日期' },
|
|
{ key: 'storage_date_p2', label: '储存日期 (P2冻存日期)' },
|
|
{ key: 'freeze_method', label: '冷冻方式' },
|
|
{ key: 'storage_temp', label: '储存温度' },
|
|
{ key: 'storage_years', label: '储存年限' }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
|
|
export const YNY_OPTIONS = [
|
|
{ label: '阴', value: '阴' },
|
|
{ label: '阳', value: '阳' },
|
|
{ label: '/', value: '/' }
|
|
]
|