"""科研捐赠管理 — 数据模型""" from datetime import datetime from sqlalchemy import Column, Date, DateTime, Integer, Numeric, SmallInteger, String from app.models.base import Base class BizResearchDonation(Base): """科研捐赠主表 biz_research_donation""" __tablename__ = "biz_research_donation" id = Column(String(64), primary_key=True, comment="主键ID") donation_no = Column(String(64), nullable=False, comment="捐赠协议编号") donation_status = Column(String(16), nullable=False, default="dsx", comment="状态 dsx/sxz/ygq/yzf/sdfq/zckc") donation_date = Column(String(8), nullable=True, comment="捐赠日期YYYYMMDD") source_type = Column(String(20), nullable=False, default="direct", comment="来源类型 direct/from_storage") source_protocol_id = Column(String(64), nullable=True, comment="来源协议ID") consent_form_urls = Column(String(4000), nullable=True, comment="知情同意书附件URL(逗号分隔)") attachment_urls = Column(String(4000), nullable=True, comment="其他附件URL(逗号分隔)") infectious_disease_report_urls = Column( String(4000), nullable=True, comment="传染病检测报告附件URL(逗号分隔)" ) collector_user_id = Column(String(64), nullable=True, comment="采集专员用户ID") effective_time = Column(DateTime, nullable=True, comment="生效时间") effective_desc = Column(String(512), nullable=True, comment="生效描述") expire_time = Column(DateTime, nullable=True, comment="过期时间") expire_desc = Column(String(512), nullable=True, comment="过期描述") void_time = Column(DateTime, nullable=True, comment="作废时间") void_desc = Column(String(512), nullable=True, comment="作废描述") void_type = Column(String(32), nullable=True, comment="作废类型(字典 xyzflx)") to_storage_time = Column(DateTime, nullable=True, comment="转存储时间") to_storage_desc = Column(String(512), nullable=True, comment="转存储描述") tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号") order_num = Column(Integer, nullable=True, comment="排序号") remark = Column(String(512), nullable=True, comment="备注信息") create_by = Column(String(64), nullable=True, comment="创建人id") create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID") create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间") update_by = Column(String(64), nullable=True, comment="更新人id") update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间") del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记") class BizResearchDonationAudit(Base): """科研捐赠审核记录 biz_research_donation_audit""" __tablename__ = "biz_research_donation_audit" id = Column(String(64), primary_key=True, comment="主键ID") research_donation_id = Column(String(64), nullable=False, comment="科研捐赠ID") auditor_user_id = Column(String(64), nullable=True, comment="审核人") audit_remark = Column(String(1000), nullable=True, comment="审核备注") audit_status = Column(String(16), nullable=False, comment="审核状态 shtg/shth") tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号") order_num = Column(Integer, nullable=True, comment="排序号") remark = Column(String(512), nullable=True, comment="备注") create_by = Column(String(64), nullable=True, comment="创建人id") create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID") create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间") update_by = Column(String(64), nullable=True, comment="更新人id") update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间") del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记") class BizResearchDonationParty(Base): """科研捐赠当事人信息 biz_research_donation_party""" __tablename__ = "biz_research_donation_party" id = Column(String(64), primary_key=True, comment="主键ID") research_donation_id = Column(String(64), nullable=False, comment="科研捐赠ID") customer_id = Column(String(64), nullable=True, comment="客户ID") mother_name = Column(String(100), nullable=True, comment="母亲姓名") mother_phone = Column(String(32), nullable=True, comment="母亲电话") mother_id_card = Column(String(32), nullable=True, comment="母亲身份证号") mother_birth_ym = Column(String(6), nullable=True, comment="母亲出生年月YYYYMM") mother_ethnic = Column(String(32), nullable=True, comment="母亲民族") mother_email = Column(String(128), nullable=True, comment="母亲邮箱") mother_address = Column(String(512), nullable=True, comment="母亲地址") father_name = Column(String(100), nullable=True, comment="父亲姓名") father_phone = Column(String(32), nullable=True, comment="父亲电话") father_id_card = Column(String(32), nullable=True, comment="父亲身份证号") newborn_name = Column(String(100), nullable=True, comment="新生儿姓名") newborn_id_card = Column(String(32), nullable=True, comment="新生儿身份证号") expected_delivery_date = Column(Date, nullable=True, comment="预产期") newborn_delivery_time = Column(DateTime, nullable=True, comment="新生儿分娩时间") newborn_sex = Column(String(1), nullable=True, comment="新生儿性别") delivery_mode = Column(String(16), nullable=True, comment="分娩方式") birth_order = Column(Integer, nullable=True, comment="出生顺序") newborn_weight_gram = Column(Integer, nullable=True, comment="新生儿体重(克)") apgar_1min = Column(Numeric(4, 1), nullable=True, comment="Apgar 1分钟评分") apgar_5min = Column(Numeric(4, 1), nullable=True, comment="Apgar 5分钟评分") collector_user_id = Column(String(64), nullable=True, comment="采集专员用户ID") tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号") order_num = Column(Integer, nullable=True, comment="排序号") remark = Column(String(512), nullable=True, comment="备注") create_by = Column(String(64), nullable=True, comment="创建人id") create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID") create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间") update_by = Column(String(64), nullable=True, comment="更新人id") update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间") del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记") class BizResearchDonationCollection(Base): """科研捐赠采集信息 biz_research_donation_collection""" __tablename__ = "biz_research_donation_collection" id = Column(String(64), primary_key=True, comment="主键ID") research_donation_id = Column(String(64), nullable=False, comment="科研捐赠ID") region_id = Column(String(64), nullable=True, comment="区域ID") hospital_id = Column(String(64), nullable=True, comment="医院ID") medical_staff = Column(String(200), nullable=True, comment="医护人员") sales_user_id = Column(String(64), nullable=True, comment="销售人员用户ID") sample_collect_time = Column(DateTime, nullable=True, comment="样本采集时间") maternal_blood_collect_time = Column(DateTime, nullable=True, comment="母血采集时间") tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号") order_num = Column(Integer, nullable=True, comment="排序号") remark = Column(String(512), nullable=True, comment="备注") create_by = Column(String(64), nullable=True, comment="创建人id") create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID") create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间") update_by = Column(String(64), nullable=True, comment="更新人id") update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间") del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记") class BizResearchDonationSample(Base): """科研捐赠样本信息 biz_research_donation_sample(无金额字段)""" __tablename__ = "biz_research_donation_sample" id = Column(String(64), primary_key=True, comment="主键ID") research_donation_id = Column(String(64), nullable=False, comment="科研捐赠ID") sample_type_id = Column(String(64), nullable=True, comment="样本类型ID") sample_code_id = Column(String(64), nullable=True, comment="样本编码ID") sample_code = Column(String(32), nullable=True, comment="样本编码") collect_amount = Column(Numeric(18, 4), nullable=True, comment="采集量") unit_id = Column(String(64), nullable=True, comment="单位ID") storage_years = Column(Integer, nullable=True, comment="存储年限") sample_status = Column(String(16), nullable=True, comment="样本状态") storage_in_date = Column(String(8), nullable=True, comment="入库日期YYYYMMDD") detect_start_date = Column(String(8), nullable=True, comment="检测开始日期YYYYMMDD") void_date = Column(String(8), nullable=True, comment="作废日期YYYYMMDD") storage_expire_date = Column(String(8), nullable=True, comment="存储到期日期YYYYMMDD") is_special = Column(SmallInteger, nullable=False, default=0, comment="是否特殊样本:0否 1是") special_remark = Column(String(256), nullable=True, comment="特殊说明") tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号") order_num = Column(Integer, nullable=True, comment="排序号") remark = Column(String(512), nullable=True, comment="备注") create_by = Column(String(64), nullable=True, comment="创建人id") create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID") create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间") update_by = Column(String(64), nullable=True, comment="更新人id") update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间") del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记") class BizResearchDonationSampleTransport(Base): """科研捐赠样本运输 biz_research_donation_sample_transport""" __tablename__ = "biz_research_donation_sample_transport" id = Column(String(64), primary_key=True, comment="主键ID") research_donation_id = Column(String(64), nullable=False, comment="科研捐赠ID") sample_id = Column(String(64), nullable=False, comment="样本ID") sample_code = Column(String(32), nullable=True, comment="样本编码快照") transport_type = Column(String(16), nullable=False, comment="kdys快递运输 ryxd人员携带") express_company_id = Column(String(64), nullable=True, comment="快递公司ID") waybill_no = Column(String(128), nullable=True, comment="快递单号") dest_site_id = Column(String(64), nullable=True, comment="目的站点ID") express_fee = Column(Numeric(18, 2), nullable=True, comment="快递费用(元)") eta_time = Column(DateTime, nullable=True, comment="预计到达时间") carrier_name = Column(String(100), nullable=True, comment="携带人员姓名") carrier_phone = Column(String(32), nullable=True, comment="携带人员联系电话") tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号") order_num = Column(Integer, nullable=True, comment="排序号") remark = Column(String(512), nullable=True, comment="备注") create_by = Column(String(64), nullable=True, comment="创建人id") create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID") create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间") update_by = Column(String(64), nullable=True, comment="更新人id") update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间") del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记") class BizProtocolDonationConvert(Base): """细胞存储协议与科研捐赠转移关联 biz_protocol_donation_convert""" __tablename__ = "biz_protocol_donation_convert" id = Column(String(64), primary_key=True, comment="主键ID") convert_type = Column(String(32), nullable=False, comment="storage_to_research/research_to_storage") protocol_id = Column(String(64), nullable=False, comment="采集协议单ID") research_donation_id = Column(String(64), nullable=False, comment="科研捐赠单ID") biz_no = Column(String(64), nullable=False, comment="转移完成时共用编号快照") tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号") order_num = Column(Integer, nullable=True, comment="排序号") remark = Column(String(512), nullable=True, comment="备注") create_by = Column(String(64), nullable=True, comment="创建人id") create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID") create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间") update_by = Column(String(64), nullable=True, comment="更新人id") update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间") del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")