Преглед изворни кода

Merge branch '20230223_xt_api_new_branch' of http://git.shengws.com/csx/XT_New into 20230223_xt_api_new_branch

28169 пре 2 месеци
родитељ
комит
b6274543d8

+ 3 - 1
controllers/new_stock_api_controller.go Прегледај датотеку

164
 	start_time := this.GetString("start_time")
164
 	start_time := this.GetString("start_time")
165
 	end_time := this.GetString("end_time")
165
 	end_time := this.GetString("end_time")
166
 	limit, _ := this.GetInt64("limit")
166
 	limit, _ := this.GetInt64("limit")
167
+	keywords := this.GetString("keywords")
168
+
167
 	page, _ := this.GetInt64("page")
169
 	page, _ := this.GetInt64("page")
168
 	is_sale, _ := this.GetInt64("is_sale")
170
 	is_sale, _ := this.GetInt64("is_sale")
169
 	is_settle, _ := this.GetInt64("is_settle")
171
 	is_settle, _ := this.GetInt64("is_settle")
191
 		endTime = theTime.Unix()
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
 	drug, _ := service.GetAllDrugList(orgId)
198
 	drug, _ := service.GetAllDrugList(orgId)
197
 
199
 

+ 11 - 0
models/dialysis.go Прегледај датотеку

1902
 func (PatientTreatmentSummary) TableName() string {
1902
 func (PatientTreatmentSummary) TableName() string {
1903
 	return "xt_treatment_summary"
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 Прегледај датотеку

80
 }
80
 }
81
 
81
 
82
 type SettlePatient struct {
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
 	HisChargeSettleOrder []*HisChargeSettleOrder `gorm:"ForeignKey:PatientID;AssociationForeignKey:ID" json:"orders"`
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
 func (SettlePatient) TableName() string {
93
 func (SettlePatient) TableName() string {
214
 	CardDesc string `gorm:"card_desc" json:"card_desc" form:"card_desc"`
214
 	CardDesc string `gorm:"card_desc" json:"card_desc" form:"card_desc"`
215
 
215
 
216
 	OrderHisPatient OrderHisPatient `gorm:"ForeignKey:Number;AssociationForeignKey:MdtrtId" json:"his"`
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
 func (HisChargeSettleOrder) TableName() string {
220
 func (HisChargeSettleOrder) TableName() string {
509
 	MdtrtId      string  `gorm:"column:mdtrt_id" json:"mdtrt_id" form:"mdtrt_id"`
510
 	MdtrtId      string  `gorm:"column:mdtrt_id" json:"mdtrt_id" form:"mdtrt_id"`
510
 	AdviceDoctor int64   `gorm:"column:advice_doctor" json:"advice_doctor" form:"advice_doctor"`
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 Прегледај датотеку

589
 	return
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
 	if len(keyword) == 0 {
682
 	if len(keyword) == 0 {
594
 		switch item_type {
683
 		switch item_type {
595
 		case 0:
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
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
687
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
599
 
688
 
600
 			break
689
 			break
601
 		case 1:
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
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
693
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
605
 
694
 
606
 			break
695
 			break
607
 		case 2:
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
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
699
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
611
 
700
 
612
 			break
701
 			break
613
 		case 3:
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
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
705
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
617
 
706
 
618
 			break
707
 			break
619
 		case 4:
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
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
711
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
623
 
712
 
624
 			break
713
 			break
625
 		case 5:
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
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
717
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
629
 
718
 
630
 			break
719
 			break
631
 		case 6:
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
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
723
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
635
 
724
 
636
 			break
725
 			break
641
 		keyword = "%" + keyword + "%"
730
 		keyword = "%" + keyword + "%"
642
 		switch item_type {
731
 		switch item_type {
643
 		case 0:
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
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
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
 			break
737
 			break
649
 		case 1:
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
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
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
 			break
743
 			break
655
 		case 2:
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
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
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
 			break
749
 			break
661
 		case 3:
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
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
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
 			break
755
 			break
667
 		case 4:
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
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
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
 			break
761
 			break

+ 7 - 1
service/stock_service.go Прегледај датотеку

11019
 	return err
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
 	db := XTReadDB().Model(&models.NewHisDoctorAdviceInfo{}).Preload("NewHisPrescription", "status = 1").Where("his_doctor_advice_info.status=1")
11024
 	db := XTReadDB().Model(&models.NewHisDoctorAdviceInfo{}).Preload("NewHisPrescription", "status = 1").Where("his_doctor_advice_info.status=1")
11025
 	if is_settle == 2 {
11025
 	if is_settle == 2 {
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")
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
 	if orgId > 0 {
11038
 	if orgId > 0 {
11033
 		db = db.Where("his_doctor_advice_info.user_org_id=?", orgId)
11039
 		db = db.Where("his_doctor_advice_info.user_org_id=?", orgId)
11034
 	}
11040
 	}