Browse Source

医保对接

csx 3 years ago
parent
commit
f756b34a8c

+ 2 - 2
controllers/his_api_controller.go View File

@@ -1879,7 +1879,7 @@ func (c *HisApiController) setProjectWithJSONTwo(project *models.HisPrescription
1879 1879
 
1880 1880
 	if json["total"] != nil && reflect.TypeOf(json["total"]).String() == "string" {
1881 1881
 		total, _ := json["total"].(string)
1882
-		totals, _ := strconv.ParseFloat(total, 64)
1882
+		totals, _ := strconv.ParseInt(total, 10, 64)
1883 1883
 		project.Count = totals
1884 1884
 	}
1885 1885
 
@@ -2253,7 +2253,7 @@ func (c *HisApiController) setProjectWithJSON(project *models.HisPrescriptionPro
2253 2253
 
2254 2254
 	if json["total"] != nil && reflect.TypeOf(json["total"]).String() == "string" {
2255 2255
 		total, _ := json["total"].(string)
2256
-		totals, _ := strconv.ParseFloat(total, 64)
2256
+		totals, _ := strconv.ParseInt(total, 10, 64)
2257 2257
 		project.Count = totals
2258 2258
 	}
2259 2259
 

+ 7 - 2
controllers/his_charge_api_controller.go View File

@@ -20,6 +20,9 @@ func HisChargeApiRegistRouters() {
20 20
 func (c *HisChargeApiController) GetChargeStatisticsDetail() {
21 21
 	start_time := c.GetString("start_time")
22 22
 	end_time := c.GetString("end_time")
23
+	keyword := c.GetString("keyword")
24
+	item_type, _ := c.GetInt64("type")
25
+
23 26
 	adminUser := c.GetAdminUserInfo()
24 27
 
25 28
 	timeLayout := "2006-01-02"
@@ -36,7 +39,7 @@ func (c *HisChargeApiController) GetChargeStatisticsDetail() {
36 39
 	}
37 40
 	endRecordDateTime := endTime.Unix()
38 41
 
39
-	chargePatient, err := service.GetAllPatientChargeDetails(adminUser.CurrentOrgId, startRecordDateTime, endRecordDateTime)
42
+	chargePatient, err := service.GetAllPatientChargeDetails(adminUser.CurrentOrgId, startRecordDateTime, endRecordDateTime, keyword, item_type)
40 43
 
41 44
 	if err == nil {
42 45
 		c.ServeSuccessJSON(map[string]interface{}{
@@ -54,6 +57,8 @@ func (c *HisChargeApiController) GetChargeStatisticsDetail() {
54 57
 func (c *HisChargeApiController) GetChargeStatisticsSettle() {
55 58
 	start_time := c.GetString("start_time")
56 59
 	end_time := c.GetString("end_time")
60
+	keyword := c.GetString("keyword")
61
+	item_type, _ := c.GetInt64("type")
57 62
 	adminUser := c.GetAdminUserInfo()
58 63
 
59 64
 	timeLayout := "2006-01-02"
@@ -69,7 +74,7 @@ func (c *HisChargeApiController) GetChargeStatisticsSettle() {
69 74
 
70 75
 	}
71 76
 	endRecordDateTime := endTime.Unix()
72
-	chargePatient, err := service.GetAllPatientChargeSettle(adminUser.CurrentOrgId, startRecordDateTime, endRecordDateTime)
77
+	chargePatient, err := service.GetAllPatientChargeSettle(adminUser.CurrentOrgId, startRecordDateTime, endRecordDateTime, keyword, item_type)
73 78
 	if err == nil {
74 79
 		c.ServeSuccessJSON(map[string]interface{}{
75 80
 			"patients": chargePatient,

+ 1 - 1
controllers/new_mobile_api_controllers/mobile_his_api_controller.go View File

@@ -1086,7 +1086,7 @@ func (c *MobileHisApiController) setProjectWithJSON(project *models.HisPrescript
1086 1086
 
1087 1087
 	if json["total"] != nil && reflect.TypeOf(json["total"]).String() == "string" {
1088 1088
 		total, _ := json["total"].(string)
1089
-		totals, _ := strconv.ParseFloat(total, 64)
1089
+		totals, _ := strconv.ParseInt(total, 10, 64)
1090 1090
 		project.Count = totals
1091 1091
 	}
1092 1092
 

+ 12 - 11
models/his_charge_models.go View File

@@ -1,14 +1,14 @@
1 1
 package models
2 2
 
3 3
 type HisChargePrescriptionProject struct {
4
-	ID         int64   `gorm:"column:id" json:"id" form:"id"`
5
-	ProjectId  int64   `gorm:"column:project_id" json:"project_id" form:"project_id"`
6
-	UserOrgId  int64   `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
7
-	Status     int64   `gorm:"column:status" json:"status" form:"status"`
8
-	PatientId  int64   `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
9
-	RecordDate int64   `gorm:"column:record_date" json:"record_date" form:"record_date"`
10
-	Count      float64 `gorm:"column:count" json:"count" form:"count"`
11
-	Type       int64   `gorm:"column:type" json:"type" form:"type"`
4
+	ID         int64 `gorm:"column:id" json:"id" form:"id"`
5
+	ProjectId  int64 `gorm:"column:project_id" json:"project_id" form:"project_id"`
6
+	UserOrgId  int64 `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
7
+	Status     int64 `gorm:"column:status" json:"status" form:"status"`
8
+	PatientId  int64 `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
9
+	RecordDate int64 `gorm:"column:record_date" json:"record_date" form:"record_date"`
10
+	Count      int64 `gorm:"column:count" json:"count" form:"count"`
11
+	Type       int64 `gorm:"column:type" json:"type" form:"type"`
12 12
 
13 13
 	HisChargeProject  HisChargeProject  `gorm:"ForeignKey:ProjectId;AssociationForeignKey:ID" json:"project"`
14 14
 	HisChargeGoodInfo HisChargeGoodInfo `gorm:"ForeignKey:ProjectId;AssociationForeignKey:ID" json:"good_info"`
@@ -167,9 +167,10 @@ func (HisChargeProject) TableName() string {
167 167
 }
168 168
 
169 169
 type HisChargeGoodInfo struct {
170
-	ID       int64  `gorm:"column:id" json:"id" form:"id"`
171
-	GoodName string `gorm:"column:good_name" json:"good_name" form:"good_name"`
172
-	GoodUnit int64  `gorm:"column:good_unit" json:"good_unit"`
170
+	ID                 int64  `gorm:"column:id" json:"id" form:"id"`
171
+	GoodName           string `gorm:"column:good_name" json:"good_name" form:"good_name"`
172
+	GoodUnit           int64  `gorm:"column:good_unit" json:"good_unit"`
173
+	SpecificationnName string `gorm:"column:specification_name" json:"specification_name" form:"specification_name"`
173 174
 }
174 175
 
175 176
 func (HisChargeGoodInfo) TableName() string {

+ 1 - 1
models/his_models.go View File

@@ -749,7 +749,7 @@ type HisPrescriptionProject struct {
749 749
 	HisPatientId       int64      `gorm:"column:his_patient_id" json:"his_patient_id" form:"his_patient_id"`
750 750
 	RecordDate         int64      `gorm:"column:record_date" json:"record_date" form:"record_date"`
751 751
 	PrescriptionId     int64      `gorm:"column:prescription_id" json:"prescription_id" form:"prescription_id"`
752
-	Count              float64    `gorm:"column:count" json:"count" form:"count"`
752
+	Count              int64      `gorm:"column:count" json:"count" form:"count"`
753 753
 	FeedetlSn          string     `gorm:"column:feedetl_sn" json:"feedetl_sn" form:"feedetl_sn"`
754 754
 	MedListCodg        string     `gorm:"column:med_list_codg" json:"med_list_codg" form:"med_list_codg"`
755 755
 	SingleDose         string     `gorm:"column:single_dose" json:"single_dose" form:"single_dose"`

+ 1 - 0
routers/router.go View File

@@ -54,6 +54,7 @@ func init() {
54 54
 	controllers.DrugStockManagerApiRegistRouters()
55 55
 	controllers.HisManagerApiRegistRouters()
56 56
 	controllers.HisConfigApiRegistRouters()
57
+	controllers.HisChargeApiRegistRouters()
57 58
 
58 59
 	controllers.HisHospitalManagerApiRegistRouters()
59 60
 

+ 124 - 17
service/his_charge_service.go View File

@@ -5,25 +5,132 @@ import (
5 5
 	"github.com/jinzhu/gorm"
6 6
 )
7 7
 
8
-func GetAllPatientChargeDetails(org_id int64, start_time int64, end_time int64) (patients []*models.ChargePatient, err error) {
9
-	err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeOrder", func(db *gorm.DB) *gorm.DB {
10
-		return db.Select("id,user_org_id,his_patient_id,settle_accounts_date,status,number,order_status,mdtrt_id,patient_id").
11
-			Preload("HisChargeOrderInfo", func(db *gorm.DB) *gorm.DB {
12
-				return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Preload("HisChargeDoctorAdviceInfo", "status = 1").Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
13
-					return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeProject", func(db *gorm.DB) *gorm.DB {
14
-						return db.Select("id,project_name,unit").Where("status = 1 ")
15
-					}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
16
-						return db.Select("id,good_name,good_unit").Where("status = 1 ")
17
-					}).Where("status = 1 ")
18
-				})
19
-			}).Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
20
-	}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
8
+func GetAllPatientChargeDetails(org_id int64, start_time int64, end_time int64, keyword string, item_type int64) (patients []*models.ChargePatient, err error) {
9
+	if len(keyword) == 0 {
10
+		switch item_type {
11
+		case 0:
12
+			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeOrder", func(db *gorm.DB) *gorm.DB {
13
+				return db.Select("id,user_org_id,his_patient_id,settle_accounts_date,status,number,order_status,mdtrt_id,patient_id").
14
+					Preload("HisChargeOrderInfo", func(db *gorm.DB) *gorm.DB {
15
+						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Preload("HisChargeDoctorAdviceInfo", "status = 1").Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
16
+							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeProject", func(db *gorm.DB) *gorm.DB {
17
+								return db.Select("id,project_name,unit").Where("status = 1 ")
18
+							}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
19
+								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
20
+							}).Where("status = 1 ")
21
+						})
22
+					}).Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
23
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
24
+
25
+			break
26
+		case 1:
27
+			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeOrder", func(db *gorm.DB) *gorm.DB {
28
+				return db.Select("id,user_org_id,his_patient_id,settle_accounts_date,status,number,order_status,mdtrt_id,patient_id").
29
+					Preload("HisChargeOrderInfo", func(db *gorm.DB) *gorm.DB {
30
+						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Where("advice_id > 0 AND project_id = 0").Preload("HisChargeDoctorAdviceInfo", "status = 1").Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
31
+							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeProject", func(db *gorm.DB) *gorm.DB {
32
+								return db.Select("id,project_name,unit").Where("status = 1 ")
33
+							}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
34
+								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
35
+							}).Where("status = 1 ")
36
+						})
37
+					}).Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
38
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
39
+
40
+			break
41
+		case 2:
42
+			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeOrder", func(db *gorm.DB) *gorm.DB {
43
+				return db.Select("id,user_org_id,his_patient_id,settle_accounts_date,status,number,order_status,mdtrt_id,patient_id").
44
+					Preload("HisChargeOrderInfo", func(db *gorm.DB) *gorm.DB {
45
+						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Where("advice_id = 0 AND project_id > 0").Preload("HisChargeDoctorAdviceInfo", "status = 1").Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
46
+							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeProject", func(db *gorm.DB) *gorm.DB {
47
+								return db.Select("id,project_name,unit").Where("status = 1 ")
48
+							}).Where("status = 1 ")
49
+						})
50
+					}).Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
51
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
52
+
53
+			break
54
+		case 3:
55
+			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeOrder", func(db *gorm.DB) *gorm.DB {
56
+				return db.Select("id,user_org_id,his_patient_id,settle_accounts_date,status,number,order_status,mdtrt_id,patient_id").
57
+					Preload("HisChargeOrderInfo", func(db *gorm.DB) *gorm.DB {
58
+						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Where("advice_id = 0 AND project_id > 0").Preload("HisChargeDoctorAdviceInfo", "status = 1").Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
59
+							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
60
+								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
61
+							}).Where("status = 1 ")
62
+						})
63
+					}).Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
64
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
65
+
66
+			break
67
+
68
+		}
69
+
70
+	} else {
71
+		keyword = "%" + keyword + "%"
72
+		err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeOrder", func(db *gorm.DB) *gorm.DB {
73
+			return db.Select("id,user_org_id,his_patient_id,settle_accounts_date,status,number,order_status,mdtrt_id,patient_id").
74
+				Preload("HisChargeOrderInfo", func(db *gorm.DB) *gorm.DB {
75
+					return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Preload("HisChargeDoctorAdviceInfo", "status = 1").Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
76
+						return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeProject", func(db *gorm.DB) *gorm.DB {
77
+							return db.Select("id,project_name,unit").Where("status = 1 ")
78
+						}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
79
+							return db.Select("id,good_name,good_unit").Where("status = 1 ")
80
+						}).Where("status = 1 ")
81
+					})
82
+				}).Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
83
+		}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
84
+
85
+	}
86
+
21 87
 	return
22 88
 }
23 89
 
24
-func GetAllPatientChargeSettle(org_id int64, start_time int64, end_time int64) (patients []*models.SettlePatient, err error) {
25
-	err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
26
-		return db.Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
27
-	}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
90
+func GetAllPatientChargeSettle(org_id int64, start_time int64, end_time int64, keyword string, item_type int64) (patients []*models.SettlePatient, err error) {
91
+	if len(keyword) == 0 {
92
+		switch item_type {
93
+		case 0:
94
+			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
95
+				return db.Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
96
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
97
+
98
+			break
99
+		case 1:
100
+			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
101
+				return db.Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2 AND is_medicine_insurance = 1 ", start_time, end_time, org_id)
102
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
103
+
104
+			break
105
+		case 2:
106
+			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
107
+				return db.Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2 AND is_medicine_insurance = 0", start_time, end_time, org_id)
108
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
109
+
110
+			break
111
+		case 3:
112
+			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
113
+				return db.Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2 AND med_type = 14", start_time, end_time, org_id)
114
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
115
+
116
+			break
117
+		case 4:
118
+			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
119
+				return db.Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2 AND med_type = 11", start_time, end_time, org_id)
120
+			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
121
+
122
+			break
123
+
124
+		}
125
+
126
+	} else {
127
+		keyword = "%" + keyword + "%"
128
+
129
+		err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
130
+			return db.Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
131
+		}).Where("p.status = 1  AND p.user_org_id = ? AND p.name Like ?", org_id, keyword).Group("id").Find(&patients).Error
132
+
133
+	}
134
+
28 135
 	return
29 136
 }

+ 1 - 1
service/his_service.go View File

@@ -1513,7 +1513,7 @@ type HisPrescriptionProject struct {
1513 1513
 	HisPatientId       int64        `gorm:"column:his_patient_id" json:"his_patient_id" form:"his_patient_id"`
1514 1514
 	RecordDate         int64        `gorm:"column:record_date" json:"record_date" form:"record_date"`
1515 1515
 	PrescriptionId     int64        `gorm:"column:prescription_id" json:"prescription_id" form:"prescription_id"`
1516
-	Count              float64      `gorm:"column:count" json:"count" form:"count"`
1516
+	Count              int64        `gorm:"column:count" json:"count" form:"count"`
1517 1517
 	FeedetlSn          string       `gorm:"column:feedetl_sn" json:"feedetl_sn" form:"feedetl_sn"`
1518 1518
 	MedListCodg        string       `gorm:"column:med_list_codg" json:"med_list_codg" form:"med_list_codg"`
1519 1519
 	SingleDose         string       `gorm:"column:single_dose" json:"single_dose" form:"single_dose"`