using Microsoft.EntityFrameworkCore;
using Shentun.Peis.CollectItemTypes;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Volo.Abp.Domain.Entities;
using Volo.Abp.Domain.Entities.Auditing;
namespace Shentun.Peis.Models
{
///
/// 组合项目
///
[Table("asbitem")]
[Index(nameof(DisplayName), Name = "ix_asbitem", IsUnique = true)]
public class Asbitem : AuditedEntity, IDisplayName, IDisplayOrder, IHasConcurrencyStamp
{
public Asbitem(Guid id):base(id) { }
public Asbitem()
{
AsbitemDetails = new HashSet();
ChargeAsbitems = new HashSet();
CustomerOrgGroupDetails = new HashSet();
MedicalPackageDetails = new HashSet();
RegisterCheckAsbitems = new HashSet();
RoomDetails = new HashSet();
}
///
/// 名称
///
[Column("display_name")]
[StringLength(30)]
public string DisplayName { get; set; }
///
/// 简称
///
[Column("short_name")]
[StringLength(20)]
public string ShortName { get; set; }
///
/// 适用性别,M-男,F-女,A-全部
///
[Column("for_sex_id")]
[MaxLength(1)]
public char ForSexId { get; set; }
///
/// 婚姻状况
///
[Column("marital_status_id")]
[MaxLength(1)]
public char MaritalStatusId { get; set; }
///
/// 项目类别
///
[Column("item_type_id")]
public Guid ItemTypeId { get; set; }
///
/// 价格
///
[Column("price")]
[Precision(8, 2)]
public decimal Price { get; set; }
///
/// 仪器类别
///
[Column("device_type_id")]
public Guid? DeviceTypeId { get; set; }
///
///// 发票类别
/////
//[Column("invoice_item_type_id")]
//public Guid InvoiceItemTypeId { get; set; }
///
/// 汇总项目类别ID
///
[Column("collect_item_type_id")]
public Guid CollectItemTypeId { get; set; }
///
/// 项目结果合并
///
[Column("is_item_result_merger")]
[MaxLength(1)]
public char IsItemResultMerger { get; set; }
///
/// 餐前项目
///
[Column("is_before_eat")]
[MaxLength(1)]
public char IsBeforeEat { get; set; }
///
/// 临床意义
///
[Column("clinical_meaning")]
[StringLength(500)]
public string ClinicalMeaning { get; set; }
///
/// 默认结果
///
[Column("default_result")]
[StringLength(100)]
public string DefaultResult { get; set; }
///
/// 候诊时间
///
[Column("queue_time")]
[Precision(3, 1)]
public decimal QueueTime { get; set; }
///
/// 启用诊断函数
///
[Column("is_diagnosis_function")]
[MaxLength(1)]
public char IsDiagnosisFunction { get; set; }
///
/// 诊断函数
///
[Column("diagnosis_function")]
[MaxLength(4000)]
public string DiagnosisFunction { get; set; }
///
/// 诊断函数处理完毕后继续处理
///
[Column("is_continue_process")]
[MaxLength(1)]
public char IsContinueProcess { get; set; }
///
/// 体检报告图片旋转90°
///
[Column("is_picture_rotate")]
[MaxLength(1)]
public char IsPictureRotate { get; set; }
///
/// 是否为检查项目
///
[Column("is_check")]
[MaxLength(1)]
public char IsCheck { get; set; }
///
/// 是否启用
///
[Column("is_active")]
[MaxLength(1)]
public char IsActive { get; set; }
[Column("simple_code")]
[StringLength(30)]
public string SimpleCode { get; set; } = null!;
[Column("display_order")]
public int DisplayOrder { get; set; }
///
/// 条码模式 0-使用项目类别设置,1-打印人员登记号,2-不打印,默认值是0
///
[Column("barcode_mode")]
[MaxLength(1)]
public char BarcodeMode { get; set; }
///
/// 是否支持网上预约
///
[Column("is_web_appoint")]
[MaxLength(1)]
public char IsWebAppoint { get; set; }
///
/// 疾病筛查类别
///
[Column("disease_screening_type_id")]
public Guid? DiseaseScreeningTypeId { get; set; }
///
/// 警告事项
///
[MaxLength(100)]
[Column("warn")]
public string Warn { get; set; }
///
/// 备孕期间禁止检查
///
[MaxLength(1)]
[Column("for_pregnant_flag")]
public char ForPregnantFlag { get; set; }
///
/// 是否启用危急值函数 Y N
///
[Column("is_critical_value_function")]
[MaxLength(1)]
public char IsCriticalValueFunction { get; set; }
///
/// 危急值函数
///
[Column("critical_value_function")]
public string CriticalValueFunction { get; set; }
///
/// 是否启用随访函数 Y N
///
[Column("is_follow_up_function")]
[MaxLength(1)]
public char IsFollowUpFunction { get; set; }
///
/// 随访函数
///
[Column("follow_up_function")]
public string FollowUpFunction { get; set; }
///
/// 是否隐私项目
///
[Column("is_privacy")]
public char IsPrivacy { get; set; }
///
/// 是否外检项目
///
[Column("is_outsend")]
public char IsOutsend { get; set; }
[Column("concurrency_stamp")]
public string ConcurrencyStamp { get; set; }
//[ForeignKey(nameof(InvoiceItemTypeId))]
//[InverseProperty("Asbitems")]
//public virtual InvoiceItemType InvoiceItemType { get; set; }
[ForeignKey(nameof(CollectItemTypeId))]
[InverseProperty("Asbitems")]
public virtual CollectItemType CollectItemType { get; set; }
[ForeignKey(nameof(ItemTypeId))]
[InverseProperty("Asbitems")]
public virtual ItemType ItemType { get; set; } = null!;
[InverseProperty("Asbitem")]
public virtual SampleGroupDetail SampleGroupDetail { get; set; } = null!;
[InverseProperty(nameof(AsbitemDetail.Asbitem))]
public virtual ICollection AsbitemDetails { get; set; }
[InverseProperty(nameof(ChargeAsbitem.Asbitem))]
public virtual ICollection ChargeAsbitems { get; set; }
[InverseProperty(nameof(ChargeRequestAsbitem.Asbitem))]
public virtual ICollection ChargeRequestAsbitems { get; set; }
[InverseProperty(nameof(CustomerOrgGroupDetail.Asbitem))]
public virtual ICollection CustomerOrgGroupDetails { get; set; }
[InverseProperty(nameof(MedicalPackageDetail.Asbitem))]
public virtual ICollection MedicalPackageDetails { get; set; }
[InverseProperty(nameof(RegisterCheckAsbitem.Asbitem))]
public virtual ICollection RegisterCheckAsbitems { get; set; }
[InverseProperty(nameof(RoomDetail.Asbitem))]
public virtual ICollection RoomDetails { get; set; }
#region 审计属性
//public DateTime CreationTime { get; set; }
//public Guid? CreatorId { get; set; }
//public Guid? LastModifierId { get; set; }
//public DateTime? LastModificationTime { get; set; }
//public Guid? DeleterId { get; set; }
//public DateTime? DeletionTime { get; set; }
//public bool IsDeleted { get; set; }
//public override object[] GetKeys()
//{
// return new object[] { AsbitemId };
//}
#endregion
}
}