package models

type BoardPatients struct {
	ID                           int64   `gorm:"column:id" json:"id" form:"id"`
	UserOrgId                    int64   `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
	UserId                       int64   `gorm:"column:user_id" json:"user_id" form:"user_id"`
	Avatar                       string  `gorm:"column:avatar" json:"avatar" form:"avatar"`
	PatientType                  int64   `gorm:"column:patient_type" json:"patient_type" form:"patient_type"`
	DialysisNo                   string  `gorm:"column:dialysis_no" json:"dialysis_no" form:"dialysis_no"`
	AdmissionNumber              string  `gorm:"column:admission_number" json:"admission_number" form:"admission_number"`
	Source                       int64   `gorm:"column:source" json:"source" form:"source"`
	Lapseto                      int64   `gorm:"column:lapseto" json:"lapseto" form:"lapseto"`
	PartitionId                  int64   `gorm:"column:partition_id" json:"partition_id" form:"partition_id"`
	BedId                        int64   `gorm:"column:bed_id" json:"bed_id" form:"bed_id"`
	Name                         string  `gorm:"column:name" json:"name" form:"name"`
	Alias                        string  `gorm:"column:alias" json:"alias" form:"alias"`
	Gender                       int64   `gorm:"column:gender" json:"gender" form:"gender"`
	Nation                       string  `gorm:"column:nation" json:"nation" form:"nation"`
	NativePlace                  string  `gorm:"column:native_place" json:"native_place" form:"native_place"`
	MaritalStatus                int64   `gorm:"column:marital_status" json:"marital_status" form:"marital_status"`
	IdCardNo                     string  `gorm:"column:id_card_no" json:"id_card_no" form:"id_card_no"`
	Birthday                     int64   `gorm:"column:birthday" json:"birthday" form:"birthday"`
	ReimbursementWayId           int64   `gorm:"column:reimbursement_way_id" json:"reimbursement_way_id" form:"reimbursement_way_id"`
	HealthCareType               int64   `gorm:"column:health_care_type" json:"health_care_type" form:"health_care_type"`
	HealthCareNo                 string  `gorm:"column:health_care_no" json:"health_care_no" form:"health_care_no"`
	HealthCareDueDate            int64   `gorm:"column:health_care_due_date" json:"health_care_due_date" form:"health_care_due_date"`
	Height                       int64   `gorm:"column:height" json:"height" form:"height"`
	BloodType                    int64   `gorm:"column:blood_type" json:"blood_type" form:"blood_type"`
	Rh                           int64   `gorm:"column:rh" json:"rh" form:"rh"`
	HealthCareDueAlertDate       int64   `gorm:"column:health_care_due_alert_date" json:"health_care_due_alert_date" form:"health_care_due_alert_date"`
	EducationLevel               int64   `gorm:"column:education_level" json:"education_level" form:"education_level"`
	Profession                   int64   `gorm:"column:profession" json:"profession" form:"profession"`
	Phone                        string  `gorm:"column:phone" json:"phone" form:"phone"`
	HomeTelephone                string  `gorm:"column:home_telephone" json:"home_telephone" form:"home_telephone"`
	RelativePhone                string  `gorm:"column:relative_phone" json:"relative_phone" form:"relative_phone"`
	RelativeRelations            string  `gorm:"column:relative_relations" json:"relative_relations" form:"relative_relations"`
	HomeAddress                  string  `gorm:"column:home_address" json:"home_address" form:"home_address"`
	WorkUnit                     string  `gorm:"column:work_unit" json:"work_unit" form:"work_unit"`
	UnitAddress                  string  `gorm:"column:unit_address" json:"unit_address" form:"unit_address"`
	Children                     int64   `gorm:"column:children" json:"children" form:"children"`
	ReceivingDate                int64   `gorm:"column:receiving_date" json:"receiving_date" form:"receiving_date"`
	IsHospitalFirstDialysis      int64   `gorm:"column:is_hospital_first_dialysis" json:"is_hospital_first_dialysis" form:"is_hospital_first_dialysis"`
	FirstDialysisDate            int64   `gorm:"column:first_dialysis_date" json:"first_dialysis_date" form:"first_dialysis_date"`
	FirstDialysisHospital        string  `gorm:"column:first_dialysis_hospital" json:"first_dialysis_hospital" form:"first_dialysis_hospital"`
	PredialysisCondition         string  `gorm:"column:predialysis_condition" json:"predialysis_condition" form:"predialysis_condition"`
	PreHospitalDialysisFrequency string  `gorm:"column:pre_hospital_dialysis_frequency" json:"pre_hospital_dialysis_frequency" form:"pre_hospital_dialysis_frequency"`
	PreHospitalDialysisTimes     int64   `gorm:"column:pre_hospital_dialysis_times" json:"pre_hospital_dialysis_times" form:"pre_hospital_dialysis_times"`
	HospitalFirstDialysisDate    int64   `gorm:"column:hospital_first_dialysis_date" json:"hospital_first_dialysis_date" form:"hospital_first_dialysis_date"`
	InductionPeriod              int64   `gorm:"column:induction_period" json:"induction_period" form:"induction_period"`
	InitialDialysis              int64   `gorm:"column:initial_dialysis" json:"initial_dialysis" form:"initial_dialysis"`
	TotalDialysis                int64   `gorm:"column:total_dialysis" json:"total_dialysis" form:"total_dialysis"`
	AttendingDoctorId            int64   `gorm:"column:attending_doctor_id" json:"attending_doctor_id" form:"attending_doctor_id"`
	HeadNurseId                  int64   `gorm:"column:head_nurse_id" json:"head_nurse_id" form:"head_nurse_id"`
	Evaluate                     string  `gorm:"column:evaluate" json:"evaluate" form:"evaluate"`
	Diagnose                     string  `gorm:"column:diagnose" json:"diagnose" form:"diagnose"`
	Remark                       string  `gorm:"column:remark" json:"remark" form:"remark"`
	RegistrarsId                 int64   `gorm:"column:registrars_id" json:"registrars_id" form:"registrars_id"`
	Registrars                   string  `gorm:"column:registrars" json:"registrars" form:"registrars"`
	QrCode                       string  `gorm:"column:qr_code" json:"qr_code" form:"qr_code"`
	BindingState                 int64   `gorm:"column:binding_state" json:"binding_state" form:"binding_state"`
	PatientComplains             string  `gorm:"column:patient_complains" json:"patient_complains"` // 主诉
	PresentHistory               string  `gorm:"column:present_history" json:"present_history"`     // 现病史
	PastHistory                  string  `gorm:"column:past_history" json:"past_history"`           // 既往史
	Temperature                  float64 `gorm:"column:temperature" json:"temperature"`             // 体格检查-体温
	Pulse                        int64   `gorm:"column:pulse" json:"pulse"`                         // 体格检查-脉搏
	Respiratory                  int64   `gorm:"column:respiratory" json:"respiratory"`             // 体格检查-呼吸频率
	SBP                          int64   `gorm:"column:sbp" json:"sbp"`                             // 体格检查-收缩压
	DBP                          int64   `gorm:"column:dbp" json:"dbp"`                             // 体格检查-舒张压
	Status                       int64   `gorm:"column:status" json:"status" form:"status"`
	CreatedTime                  int64   `gorm:"column:created_time" json:"created_time" form:"created_time"`
	UpdatedTime                  int64   `gorm:"column:updated_time" json:"updated_time" form:"updated_time"`
	Age                          int64   `gorm:"column:age" json:"age"`
	IsOpenRemind                 int64   `gorm:"column:is_open_remind" json:"is_open_remind"`
	DialysisAge                  int64   `gorm:"column:dialysis_age" json:"dialysis_age" form:"dialysis_age"`
	ExpenseKind                  int64   `gorm:"column:expense_kind" json:"expense_kind" form:"expense_kind"`
	TellPhone                    string  `gorm:"column:tell_phone" json:"tell_phone" form:"tell_phone"`
	FirstTreatmentDate           int64   `gorm:"column:first_treatment_date" json:"first_treatment_date" form:"first_treatment_date"`
	ContactName                  string  `gorm:"column:contact_name" json:"contact_name" form:"contact_name"`
	UserSysBeforeCount           int64   `gorm:"column:user_sys_before_count" json:"user_sys_before_count" form:"user_sys_before_count"`
	SchRemark                    string  `gorm:"column:sch_remark" json:"sch_remark" form:"sch_remark"`
}

func (BoardPatients) TableName() string {
	return "xt_patients"
}

type NextSchedule struct {
	ID           int64 `gorm:"column:id" json:"id" form:"id"`
	UserOrgId    int64 `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
	PartitionId  int64 `gorm:"column:partition_id" json:"partition_id" form:"partition_id"`
	BedId        int64 `gorm:"column:bed_id" json:"bed_id" form:"bed_id"`
	PatientId    int64 `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
	ScheduleDate int64 `gorm:"column:schedule_date" json:"schedule_date" form:"schedule_date"`
	ScheduleType int64 `gorm:"column:schedule_type" json:"schedule_type" form:"schedule_type"`
	ScheduleWeek int64 `gorm:"column:schedule_week" json:"schedule_week" form:"schedule_week"`
	ModeId       int64 `gorm:"column:mode_id" json:"mode_id" form:"mode_id"`
	Status       int64 `gorm:"column:status" json:"status" form:"status"`
	CreatedTime  int64 `gorm:"column:created_time" json:"created_time" form:"created_time"`
	UpdatedTime  int64 `gorm:"column:updated_time" json:"updated_time" form:"updated_time"`
}

func (NextSchedule) TableName() string {
	return "xt_schedule"
}

type DialysisBoardVM struct {
	ID           int64 `gorm:"column:id" json:"id"`
	UserOrgId    int64 `gorm:"column:user_org_id" json:"user_org_id"`
	PartitionId  int64 `gorm:"column:partition_id" json:"partition_id"`
	BedId        int64 `gorm:"column:bed_id" json:"bed_id"`
	PatientId    int64 `gorm:"column:patient_id" json:"patient_id"`
	ScheduleDate int64 `gorm:"column:schedule_date" json:"schedule_date"`
	ScheduleType int64 `gorm:"column:schedule_type" json:"schedule_type"`
	ModeId       int64 `gorm:"column:mode_id" json:"mode_id"`
	Status       int64 `gorm:"column:status" json:"status"`

	NextSchedules  []*NextSchedule `gorm:"ForeignKey:PatientId;AssociationForeignKey:PatientId" json:"next_schedules"`
	Patient        *BoardPatients  `gorm:"ForeignKey:PatientId" json:"patient"`
	DeviceNumber   *DeviceNumber   `gorm:"ForeignKey:BedId" json:"device_number"`
	DeviceZone     *DeviceZone     `gorm:"ForeignKey:PartitionId" json:"device_zone"`
	DialysisOrder  *DialysisOrder  `gorm:"ForeignKey:DialysisDate,PatientId;AssociationForeignKey:ScheduleDate,PatientId" json:"dialysis_order"`
	SigninAndWeigh *SigninAndWeigh `gorm:"ForeignKey:RecordDate,PatientId;AssociationForeignKey:ScheduleDate,PatientId" json:"sign"`
}

func (DialysisBoardVM) TableName() string {
	return "xt_schedule"
}