using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using Shentun.Peis.Enums;
using Volo.Abp.Domain.Entities;
using Volo.Abp.Domain.Entities.Auditing;
namespace Shentun.Peis.Models
{
///
/// 登记检查单
///
[Table("register_check")]
[Index(nameof(CheckRequestNo), Name = "ix_register_check_1")]
public class RegisterCheck: AuditedEntity, IHasConcurrencyStamp
{
public RegisterCheck()
{
RegisterCheckAsbitems = new HashSet();
RegisterCheckItems = new HashSet();
RegisterCheckPictures = new HashSet();
RegisterCheckSuggestions = new HashSet();
RegisterCheckSummaries = new HashSet();
}
public RegisterCheck(Guid id):base(id)
{
RegisterCheckAsbitems = new HashSet();
RegisterCheckItems = new HashSet();
RegisterCheckPictures = new HashSet();
RegisterCheckSuggestions = new HashSet();
RegisterCheckSummaries = new HashSet();
IsLock = 'N';
CompleteFlag = RegisterCheckCompleteFlag.UnChecked;
CriticalValueFlag = '0';
CriticalValueProcessFlag = '0';
IsAudit = 'N';
}
///
/// 登记流水号
///
[Column("patient_register_id")]
public Guid PatientRegisterId { get; set; }
///
/// 检查单号
///
[Column("check_request_no")]
[StringLength(20)]
public string? CheckRequestNo { get; set; }
///
/// 第三方信息
///
[Column("third_info")]
[StringLength(80)]
public string? ThirdInfo { get; set; }
///
/// 是否锁住
///
[Column("is_lock")]
[MaxLength(1)]
public char IsLock { get; set; }
///
/// 完成标志 0(为未检), 1(已检), 2(弃检)
///
[Column("complete_flag")]
[MaxLength(1)]
public char CompleteFlag { get; set; }
///
/// 检查申请单打印次数
///
[Column("check_request_print_times")]
public short CheckRequestPrintTimes { get; set; }
///
/// 危急值
///
[Column("critical_value")]
[StringLength(100)]
public string? CriticalValue { get; set; }
///
/// 危急值标志
///
[Column("critical_value_flag")]
[MaxLength(1)]
public char? CriticalValueFlag { get; set; }
///
/// 危急值处理内容
///
[Column("critical_value_process_content")]
[StringLength(100)]
public string? CriticalValueProcessContent { get; set; }
///
/// 危急值处理标志
///
[Column("critical_value_process_flag")]
[MaxLength(1)]
public char? CriticalValueProcessFlag { get; set; }
///
/// 危急值处理医生
///
[Column("critical_value_process_doctor")]
[StringLength(16)]
public string? CriticalValueProcessDoctor { get; set; }
///
/// 危急值处理日期
///
[Column("critical_value_process_date")]
public DateTime? CriticalValueProcessDate { get; set; }
///
/// 危急值创建日期
///
[Column("critical_value_create_date")]
public DateTime? CriticalValueCreateDate { get; set; }
///
/// 检查医生(内部传ID,外部医生存名字)
///
[Column("check_doctor_id")]
[StringLength(50)]
public string? CheckDoctorId { get; set; }
///
/// 检查日期
///
[Column("check_date")]
public DateTime? CheckDate { get; set; }
///
/// 是否审核
///
[Column("is_audit")]
[MaxLength(1)]
public char IsAudit { get; set; }
///
/// 审核医生ID
///
[Column("auditor_user_id")]
public Guid? AuditorUserId { get; set; }
///
/// 审核时间
///
[Column("audit_time", TypeName = "timestamp without time zone")]
public DateTime? AuditTime { get; set; }
/////
///// 检查组合项目记录ID
/////
//[Column("register_asbitem_id")]
//public Guid RegisterAsbitemId { get; set; }
[Column("concurrency_stamp")]
public string ConcurrencyStamp { get; set; }
//[Column("last_modifier_id")]
//public Guid LastModifierId { get; set; }
//[Column("last_modification_time", TypeName = "timestamp without time zone")]
//public DateTime LastModificationTime { get; set; }
//[Column("check_doctor_name")]
//[StringLength(16)]
//public string? CheckDoctorName { get; set; }
//[Column("concurrency_stamp")]
//[StringLength(40)]
//public string ConcurrencyStamp { get; set; } = null!;
//[InverseProperty(nameof(RegisterAsbitem.RegisterCheck))]
//public virtual ICollection RegisterAsbitems { get; set; }
[InverseProperty(nameof(RegisterCheckItem.RegisterCheck))]
public virtual ICollection RegisterCheckItems { get; set; }
[InverseProperty(nameof(RegisterCheckPicture.RegisterCheck))]
public virtual ICollection RegisterCheckPictures { get; set; }
[InverseProperty(nameof(RegisterCheckSuggestion.RegisterCheck))]
public virtual ICollection RegisterCheckSuggestions { get; set; }
[InverseProperty(nameof(RegisterCheckSummary.RegisterCheck))]
public virtual ICollection RegisterCheckSummaries { get; set; }
[InverseProperty(nameof(RegisterCheckAsbitem.RegisterCheck))]
public virtual ICollection RegisterCheckAsbitems { get; set; }
//[ForeignKey(nameof(RegisterAsbitemId))]
//[InverseProperty("RegisterChecks")]
//public virtual RegisterAsbitem RegisterAsbitem { get; set; } = null!;
//public override object[] GetKeys()
//{
// return new object[] { RegisterCheckId };
//}
}
}