Browse Source

提交代码

陈少旭 1 month ago
parent
commit
0533535381

+ 3 - 1
controllers/new_stock_api_controller.go View File

@@ -164,6 +164,8 @@ func (this *NewStockApiController) GetHisDrugCodeQuery() {
164 164
 	start_time := this.GetString("start_time")
165 165
 	end_time := this.GetString("end_time")
166 166
 	limit, _ := this.GetInt64("limit")
167
+	keywords := this.GetString("keywords")
168
+
167 169
 	page, _ := this.GetInt64("page")
168 170
 	is_sale, _ := this.GetInt64("is_sale")
169 171
 	is_settle, _ := this.GetInt64("is_settle")
@@ -191,7 +193,7 @@ func (this *NewStockApiController) GetHisDrugCodeQuery() {
191 193
 		endTime = theTime.Unix()
192 194
 	}
193 195
 
194
-	list, total, _ := service.GetHisDrugCodeQuery(orgId, startTime, endTime, limit, page, is_sale, is_settle)
196
+	list, total, _ := service.GetHisDrugCodeQuery(orgId, startTime, endTime, limit, page, is_sale, is_settle, keywords)
195 197
 
196 198
 	drug, _ := service.GetAllDrugList(orgId)
197 199
 

+ 11 - 0
models/dialysis.go View File

@@ -1902,3 +1902,14 @@ type PatientTreatmentSummary struct {
1902 1902
 func (PatientTreatmentSummary) TableName() string {
1903 1903
 	return "xt_treatment_summary"
1904 1904
 }
1905
+
1906
+type TempDialysisOrder struct {
1907
+	ID           int64 `gorm:"column:id" json:"id"`
1908
+	DialysisDate int64 `gorm:"column:dialysis_date" json:"dialysis_date"`
1909
+	UserOrgId    int64 `gorm:"column:user_org_id" json:"user_org_id"`
1910
+	PatientId    int64 `gorm:"column:patient_id" json:"patient_id"`
1911
+}
1912
+
1913
+func (TempDialysisOrder) TableName() string {
1914
+	return "xt_dialysis_order"
1915
+}

+ 30 - 7
models/his_charge_models.go View File

@@ -80,14 +80,14 @@ func (ChargePatient) TableName() string {
80 80
 }
81 81
 
82 82
 type SettlePatient struct {
83
-	ID        int64  `gorm:"column:id" json:"id" form:"id"`
84
-	UserOrgId int64  `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
85
-	Name      string `gorm:"column:name" json:"name" form:"name"`
86
-	Lapseto   int64  `gorm:"column:lapseto" json:"lapseto" form:"lapseto"`
87
-	Status    int64  `gorm:"column:status" json:"status" form:"status"`
88
-	IdCardNo  string `gorm:"column:id_card_no" json:"id_card_no" form:"id_card_no"`
89
-
83
+	ID                   int64                   `gorm:"column:id" json:"id" form:"id"`
84
+	UserOrgId            int64                   `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
85
+	Name                 string                  `gorm:"column:name" json:"name" form:"name"`
86
+	Lapseto              int64                   `gorm:"column:lapseto" json:"lapseto" form:"lapseto"`
87
+	Status               int64                   `gorm:"column:status" json:"status" form:"status"`
88
+	IdCardNo             string                  `gorm:"column:id_card_no" json:"id_card_no" form:"id_card_no"`
90 89
 	HisChargeSettleOrder []*HisChargeSettleOrder `gorm:"ForeignKey:PatientID;AssociationForeignKey:ID" json:"orders"`
90
+	TempDialysisOrder    []*TempDialysisOrder    `gorm:"ForeignKey:PatientID;AssociationForeignKey:ID" json:"dis"`
91 91
 }
92 92
 
93 93
 func (SettlePatient) TableName() string {
@@ -214,6 +214,7 @@ type HisChargeSettleOrder struct {
214 214
 	CardDesc string `gorm:"card_desc" json:"card_desc" form:"card_desc"`
215 215
 
216 216
 	OrderHisPatient OrderHisPatient `gorm:"ForeignKey:Number;AssociationForeignKey:MdtrtId" json:"his"`
217
+	OrderSchedule   OrderSchedule   `gorm:"ForeignKey:PatientID,ScheduleDate;AssociationForeignKey:PatientID,SettleAccountsDate" json:"sch"`
217 218
 }
218 219
 
219 220
 func (HisChargeSettleOrder) TableName() string {
@@ -509,3 +510,25 @@ type NewPDetail struct {
509 510
 	MdtrtId      string  `gorm:"column:mdtrt_id" json:"mdtrt_id" form:"mdtrt_id"`
510 511
 	AdviceDoctor int64   `gorm:"column:advice_doctor" json:"advice_doctor" form:"advice_doctor"`
511 512
 }
513
+
514
+type OrderSchedule struct {
515
+	ID                  int64  `gorm:"column:id" json:"id" form:"id"`
516
+	UserOrgId           int64  `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
517
+	PartitionId         int64  `gorm:"column:partition_id" json:"partition_id" form:"partition_id"`
518
+	BedId               int64  `gorm:"column:bed_id" json:"bed_id" form:"bed_id"`
519
+	PatientId           int64  `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
520
+	ScheduleDate        int64  `gorm:"column:schedule_date" json:"schedule_date" form:"schedule_date"`
521
+	ScheduleType        int64  `gorm:"column:schedule_type" json:"schedule_type" form:"schedule_type"`
522
+	ScheduleWeek        int64  `gorm:"column:schedule_week" json:"schedule_week" form:"schedule_week"`
523
+	ModeId              int64  `gorm:"column:mode_id" json:"mode_id" form:"mode_id"`
524
+	Status              int64  `gorm:"column:status" json:"status" form:"status"`
525
+	CreatedTime         int64  `gorm:"column:created_time" json:"created_time" form:"created_time"`
526
+	UpdatedTime         int64  `gorm:"column:updated_time" json:"updated_time" form:"updated_time"`
527
+	IsExport            int64  `gorm:"column:is_export" json:"is_export" form:"is_export"`
528
+	Patient             string `gorm:"-" json:"patient" form:"patient"`
529
+	DialysisMachineName string `gorm:"column:dialysis_machine_name" json:"dialysis_machine_name" form:"dialysis_machine_name"`
530
+}
531
+
532
+func (OrderSchedule) TableName() string {
533
+	return "xt_schedule"
534
+}

+ 114 - 25
service/his_charge_service.go View File

@@ -589,48 +589,137 @@ func GetNewAllPatientProjectAndGoodChargeDetails(org_id int64, start_time_str st
589 589
 	return
590 590
 }
591 591
 
592
-func GetAllPatientChargeSettle(org_id int64, start_time int64, end_time int64, keyword string, item_type int64) (patients []*models.SettlePatient, err error) {
592
+func GetAllPatientChargeSettle(org_id int64, start_time int64, end_time int64, keyword string, item_type int64, limit int64, page int64) (patients []*models.SettlePatient, total int64, err error) {
593
+	offset := (page - 1) * limit
594
+
595
+	if len(keyword) == 0 {
596
+		switch item_type {
597
+		case 0:
598
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
599
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id).Order("ctime")
600
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group(" p.id").Count(&total).Offset(offset).Limit(limit).Find(&patients).Error
601
+
602
+			break
603
+		case 1:
604
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
605
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND is_medicine_insurance = 1 ", start_time, end_time, org_id).Order("ctime")
606
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group(" p.id").Count(&total).Offset(offset).Limit(limit).Find(&patients).Error
607
+
608
+			break
609
+		case 2:
610
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
611
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND is_medicine_insurance = 0", start_time, end_time, org_id).Order("ctime")
612
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group(" p.id").Count(&total).Offset(offset).Limit(limit).Find(&patients).Error
613
+
614
+			break
615
+		case 3:
616
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
617
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND med_type = 14", start_time, end_time, org_id).Order("ctime")
618
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("p.id").Count(&total).Offset(offset).Limit(limit).Find(&patients).Error
619
+
620
+			break
621
+		case 4:
622
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
623
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND med_type = 11", start_time, end_time, org_id).Order("ctime")
624
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("p.id").Count(&total).Offset(offset).Limit(limit).Find(&patients).Error
625
+
626
+			break
627
+		case 5:
628
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2 AND orders.insutype = 390", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
629
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 ", start_time, end_time, org_id).Order("ctime")
630
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("p.id").Count(&total).Offset(offset).Limit(limit).Find(&patients).Error
631
+
632
+			break
633
+		case 6:
634
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2 AND orders.insutype = 310 ", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
635
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id).Order("ctime")
636
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("p.id").Count(&total).Offset(offset).Limit(limit).Find(&patients).Error
637
+
638
+			break
639
+
640
+		}
641
+
642
+	} else {
643
+		keyword = "%" + keyword + "%"
644
+		switch item_type {
645
+		case 0:
646
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
647
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id).Order("ctime")
648
+			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Count(&total).Offset(offset).Limit(limit).Group("p.id").Find(&patients).Error
649
+
650
+			break
651
+		case 1:
652
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
653
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND is_medicine_insurance = 1 ", start_time, end_time, org_id).Order("ctime")
654
+			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Count(&total).Offset(offset).Limit(limit).Group("p.id").Find(&patients).Error
655
+
656
+			break
657
+		case 2:
658
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
659
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND is_medicine_insurance = 0", start_time, end_time, org_id).Order("ctime")
660
+			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Count(&total).Offset(offset).Limit(limit).Group("p.id").Find(&patients).Error
661
+
662
+			break
663
+		case 3:
664
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
665
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND med_type = 14", start_time, end_time, org_id).Order("ctime")
666
+			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Count(&total).Offset(offset).Limit(limit).Group("p.id").Find(&patients).Error
667
+
668
+			break
669
+		case 4:
670
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
671
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND med_type = 11", start_time, end_time, org_id).Order("ctime")
672
+			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Count(&total).Offset(offset).Limit(limit).Group("p.id").Find(&patients).Error
673
+			break
674
+
675
+		}
676
+	}
677
+
678
+	return
679
+}
680
+
681
+func GetAllPatientChargeSettleTwo(org_id int64, start_time int64, end_time int64, keyword string, item_type int64) (patients []*models.SettlePatient, err error) {
593 682
 	if len(keyword) == 0 {
594 683
 		switch item_type {
595 684
 		case 0:
596
-			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
597
-				return db.Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id).Order("ctime")
685
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
686
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id).Order("ctime")
598 687
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
599 688
 
600 689
 			break
601 690
 		case 1:
602
-			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
603
-				return db.Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND is_medicine_insurance = 1 ", start_time, end_time, org_id).Order("ctime")
691
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
692
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND is_medicine_insurance = 1 ", start_time, end_time, org_id).Order("ctime")
604 693
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
605 694
 
606 695
 			break
607 696
 		case 2:
608
-			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
609
-				return db.Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND is_medicine_insurance = 0", start_time, end_time, org_id).Order("ctime")
697
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
698
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND is_medicine_insurance = 0", start_time, end_time, org_id).Order("ctime")
610 699
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
611 700
 
612 701
 			break
613 702
 		case 3:
614
-			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
615
-				return db.Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND med_type = 14", start_time, end_time, org_id).Order("ctime")
703
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
704
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND med_type = 14", start_time, end_time, org_id).Order("ctime")
616 705
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
617 706
 
618 707
 			break
619 708
 		case 4:
620
-			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
621
-				return db.Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND med_type = 11", start_time, end_time, org_id).Order("ctime")
709
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
710
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND med_type = 11", start_time, end_time, org_id).Order("ctime")
622 711
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
623 712
 
624 713
 			break
625 714
 		case 5:
626
-			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2 AND orders.insutype = 390", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
627
-				return db.Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 ", start_time, end_time, org_id).Order("ctime")
715
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2 AND orders.insutype = 390", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
716
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 ", start_time, end_time, org_id).Order("ctime")
628 717
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
629 718
 
630 719
 			break
631 720
 		case 6:
632
-			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2 AND orders.insutype = 310 ", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
633
-				return db.Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id).Order("ctime")
721
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2 AND orders.insutype = 310 ", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
722
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id).Order("ctime")
634 723
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
635 724
 
636 725
 			break
@@ -641,32 +730,32 @@ func GetAllPatientChargeSettle(org_id int64, start_time int64, end_time int64, k
641 730
 		keyword = "%" + keyword + "%"
642 731
 		switch item_type {
643 732
 		case 0:
644
-			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
645
-				return db.Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id).Order("ctime")
733
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
734
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id).Order("ctime")
646 735
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
647 736
 
648 737
 			break
649 738
 		case 1:
650
-			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
651
-				return db.Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND is_medicine_insurance = 1 ", start_time, end_time, org_id).Order("ctime")
739
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
740
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND is_medicine_insurance = 1 ", start_time, end_time, org_id).Order("ctime")
652 741
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
653 742
 
654 743
 			break
655 744
 		case 2:
656
-			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
657
-				return db.Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND is_medicine_insurance = 0", start_time, end_time, org_id).Order("ctime")
745
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
746
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND is_medicine_insurance = 0", start_time, end_time, org_id).Order("ctime")
658 747
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
659 748
 
660 749
 			break
661 750
 		case 3:
662
-			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
663
-				return db.Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND med_type = 14", start_time, end_time, org_id).Order("ctime")
751
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
752
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND med_type = 14", start_time, end_time, org_id).Order("ctime")
664 753
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
665 754
 
666 755
 			break
667 756
 		case 4:
668
-			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
669
-				return db.Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND med_type = 11", start_time, end_time, org_id).Order("ctime")
757
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
758
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 AND med_type = 11", start_time, end_time, org_id).Order("ctime")
670 759
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
671 760
 
672 761
 			break

+ 7 - 1
service/stock_service.go View File

@@ -11019,7 +11019,7 @@ func SaveDrugOpen(open models.XtDrugCodeOpen) error {
11019 11019
 	return err
11020 11020
 }
11021 11021
 
11022
-func GetHisDrugCodeQuery(orgId int64, start_time int64, end_time int64, limit int64, page int64, is_sale int64, is_settle int64) (list []*models.NewHisDoctorAdviceInfo, total int64, err error) {
11022
+func GetHisDrugCodeQuery(orgId int64, start_time int64, end_time int64, limit int64, page int64, is_sale int64, is_settle int64, keywords string) (list []*models.NewHisDoctorAdviceInfo, total int64, err error) {
11023 11023
 
11024 11024
 	db := XTReadDB().Model(&models.NewHisDoctorAdviceInfo{}).Preload("NewHisPrescription", "status = 1").Where("his_doctor_advice_info.status=1")
11025 11025
 	if is_settle == 2 {
@@ -11029,6 +11029,12 @@ func GetHisDrugCodeQuery(orgId int64, start_time int64, end_time int64, limit in
11029 11029
 		db = db.Joins("join his_prescription on his_prescription.id = his_doctor_advice_info.prescription_id and his_prescription.order_status <> 2 and his_prescription.status = 1")
11030 11030
 	}
11031 11031
 
11032
+	if len(keywords) > 0 {
11033
+		keywords = "%" + keywords + "%"
11034
+		db = db.Joins("join xt_patients on xt_patients.id = his_doctor_advice_info.patient_id and xt_patients.user_org_id = ? and xt_patients.name like ?", orgId, keywords)
11035
+
11036
+	}
11037
+
11032 11038
 	if orgId > 0 {
11033 11039
 		db = db.Where("his_doctor_advice_info.user_org_id=?", orgId)
11034 11040
 	}