Browse Source

医保对接

csx 3 years ago
parent
commit
bd652c8073

+ 4 - 8
service/common_service.go View File

@@ -621,7 +621,6 @@ func GetTreateInfo(orgID int64, startime int64, endtime int64, lapseto int64, li
621 621
 
622 622
 	db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status =  1")
623 623
 	sql := "from_unixtime(o.dialysis_date, '%Y%m%d') AS date"
624
-
625 624
 	if orgID > 0 {
626 625
 		db = db.Where("o.user_org_id = ?", orgID)
627 626
 	}
@@ -637,15 +636,12 @@ func GetTreateInfo(orgID int64, startime int64, endtime int64, lapseto int64, li
637 636
 	if lapseto > 0 {
638 637
 		db = db.Where("p.lapseto = ?", lapseto)
639 638
 	}
640
-	offset := (page - 1) * limit
641
-	err = db.Group("o.dialysis_date").Select(sql).Joins("join xt_dialysis_prescription as s on s.patient_id = o.patient_id").Joins("left join xt_patients as p on p.id = o.patient_id").Where("s.record_date = o.dialysis_date and s.status =1").Count(&total).Offset(offset).Limit(limit).Scan(&blood).Error
639
+	err = db.Group("o.dialysis_date").Select(sql).Joins("join xt_dialysis_prescription as s on s.patient_id = o.patient_id AND s.record_date = o.dialysis_date AND s.mode_id > 0").Joins("left join xt_patients as p on p.id = o.patient_id").Where("s.record_date = o.dialysis_date and s.status =1").Scan(&blood).Error
642 640
 	return blood, total, err
643 641
 
644 642
 }
645 643
 func GetTreatList(orgid int64, startime int64, endtime int64, lapseto int64) (ttd []*models.TreatTotalStruct, err error) {
646
-	db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status =  1")
647
-	table := XTReadDB().Table("xt_schedule as s")
648
-	fmt.Println(table)
644
+	db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status =  1 ")
649 645
 	p := XTReadDB().Table("xt_patients as p")
650 646
 	fmt.Println(p)
651 647
 	if orgid > 0 {
@@ -663,7 +659,7 @@ func GetTreatList(orgid int64, startime int64, endtime int64, lapseto int64) (tt
663 659
 	if lapseto > 0 {
664 660
 		db = db.Where("p.lapseto = ?", lapseto)
665 661
 	}
666
-	err = db.Select("s.mode_id, count(s.mode_id) as number").Joins("join xt_dialysis_prescription as s on s.patient_id = o.patient_id").Joins("left join xt_patients as p on p.id = o.patient_id").Where("s.record_date = o.dialysis_date and s.status = 1").Group("s.mode_id").Order("s.mode_id asc").Find(&ttd).Error
662
+	err = db.Select("s.mode_id, count(s.mode_id) as number").Joins("join xt_dialysis_prescription as s on s.patient_id = o.patient_id and s.record_date = o.dialysis_date and s.mode_id > 0").Joins("left join xt_patients as p on p.id = o.patient_id").Where("s.record_date = o.dialysis_date and s.status = 1").Group("s.mode_id").Order("s.mode_id asc").Find(&ttd).Error
667 663
 	return ttd, err
668 664
 }
669 665
 
@@ -672,7 +668,7 @@ func GetStatistics(orgID int64, startime int64, endtime int64, modeID int64) (dt
672 668
 	sql := "s.mode_id,from_unixtime(o.dialysis_date, '%Y%m%d') as date, count(o.dialysis_date) as number"
673 669
 	datesql := " o.dialysis_date as date"
674 670
 	group := "from_unixtime(o.dialysis_date, '%Y%m%d')"
675
-	db = db.Table(" xt_dialysis_order AS o").Joins("join xt_dialysis_prescription as s on o.patient_id = s.patient_id").Where("s.record_date = o.dialysis_date and s.status =1")
671
+	db = db.Table(" xt_dialysis_order AS o").Joins("join xt_dialysis_prescription as s on o.patient_id = s.patient_id AND s.mode_id > 0").Where("s.record_date = o.dialysis_date and s.status =1")
676 672
 	if orgID > 0 {
677 673
 		db = db.Where("o.user_org_id = ?", orgID)
678 674
 	}

+ 1 - 1
service/his_service.go View File

@@ -430,7 +430,7 @@ func GetHisPrescription(org_id int64, patient_id int64, record_date int64, p_typ
430 430
 			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("Drug", "status=1")
431 431
 		}).
432 432
 		Preload("HisPrescriptionProject", func(db *gorm.DB) *gorm.DB {
433
-			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("HisProject").Preload("GoodInfo", "status=1")
433
+			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("HisProject").Preload("GoodInfo", "status=1").Preload("XtHisProjectTeam", "status = 1")
434 434
 		}).
435 435
 		Where("user_org_id = ? AND status = 1 AND record_date = ? AND patient_id = ? AND p_type = ?", org_id, record_date, patient_id, p_type).
436 436
 		Find(&prescription).Error

+ 15 - 5
service/statistics_service/index_evaluation_service.go View File

@@ -1162,19 +1162,23 @@ func GetDoctorWorkloadChartData(user_org_id int64, start_time int64, end_time in
1162 1162
 	userDb := service.UserReadDB()
1163 1163
 	db := service.XTReadDB()
1164 1164
 	if admin_user_id == 0 {
1165
-		userDb.Raw("select admin_user_id, user_name,org_id  from sgj_user_admin_role  Where status = 1 AND org_id = ?  AND user_type = 2 ", user_org_id).Scan(&datas)
1165
+		userDb.Raw("select admin_user_id, user_name,org_id  from sgj_user_admin_role  Where status = 1 AND org_id = ? AND user_type = 2 ", user_org_id).Scan(&datas)
1166 1166
 	} else {
1167 1167
 		userDb.Raw("select admin_user_id, user_name,org_id  from sgj_user_admin_role  Where status = 1 AND org_id = ?  AND user_type = 2  AND admin_user_id = ?", user_org_id, admin_user_id).Scan(&datas)
1168 1168
 	}
1169
+	var sys_datas VMUserAdminRole
1170
+	sys_datas.AdminUserId = 0
1171
+	sys_datas.PCount = 0
1172
+	sys_datas.UserName = "系统"
1173
+	datas = append(datas, &sys_datas)
1169 1174
 
1170 1175
 	switch statistics_type {
1171 1176
 	case 1:
1172 1177
 		var Total int64
1173
-		db.Table("xt_dialysis_prescription as p").Joins("join xt_schedule sch On sch.schedule_date = p.record_date AND sch.patient_id = p.patient_id AND sch.user_org_id = ? AND sch.status = 1", user_org_id).Where("p.user_org_id = ? AND p.status = 1  AND p.record_date >= ? AND  p.record_date <= ? AND p.creater <> 0 ", user_org_id, start_time, end_time).Count(&Total)
1174
-
1178
+		db.Table("xt_dialysis_prescription as p").Joins("join xt_dialysis_order o On o.dialysis_date = p.record_date AND o.patient_id = p.patient_id  AND o.status = 1").Where("p.user_org_id = ? AND p.status = 1  AND p.record_date >= ? AND  p.record_date <= ? AND p.mode_id > 0 ", user_org_id, start_time, end_time).Count(&Total)
1175 1179
 		for _, item := range datas {
1176 1180
 			var total int64
1177
-			db.Table("xt_dialysis_prescription as p").Joins("join xt_schedule sch On sch.schedule_date = p.record_date AND sch.patient_id = p.patient_id AND sch.user_org_id = ? AND sch.status = 1", user_org_id).Where("p.user_org_id = ? AND p.status = 1 AND p.creater = ? AND p.record_date >= ? AND  p.record_date <= ?", user_org_id, item.AdminUserId, start_time, end_time).Count(&total)
1181
+			db.Table("xt_dialysis_prescription as p").Joins("join xt_dialysis_order o On o.dialysis_date = p.record_date AND o.patient_id = p.patient_id AND o.status = 1").Where("p.user_org_id = ? AND p.status = 1 AND p.creater = ? AND p.record_date >= ? AND  p.record_date <= ? AND p.mode_id > 0", user_org_id, item.AdminUserId, start_time, end_time).Count(&total)
1178 1182
 			item.PCount = total
1179 1183
 
1180 1184
 			if math.IsNaN(float64(item.PCount) / float64(Total)) {
@@ -1241,11 +1245,17 @@ func GetDoctorWorkloadTableData(user_org_id int64, start_time int64, end_time in
1241 1245
 	} else {
1242 1246
 		userDb.Raw("select admin_user_id, user_name,org_id  from sgj_user_admin_role  Where status = 1 AND org_id = ?  AND user_type = 2  AND admin_user_id = ?", user_org_id, admin_user_id).Scan(&datas)
1243 1247
 	}
1248
+	var sys_datas VMUserAdminRole
1249
+	sys_datas.AdminUserId = 0
1250
+	sys_datas.PCount = 0
1251
+	sys_datas.UserName = "系统"
1252
+	datas = append(datas, &sys_datas)
1253
+
1244 1254
 	for _, item := range datas {
1245 1255
 		var Total int64
1246 1256
 		var TotalOne int64
1247 1257
 		var TotalTwo int64
1248
-		db.Table("xt_dialysis_prescription as p").Joins("join xt_schedule sch On sch.schedule_date = p.record_date AND sch.patient_id = p.patient_id AND sch.user_org_id = ? AND sch.status = 1", user_org_id).Where("p.user_org_id = ? AND p.status = 1 AND p.creater = ?  AND p.record_date >= ? AND  p.record_date <= ?", user_org_id, item.AdminUserId, start_time, end_time).Count(&Total)
1258
+		db.Table("xt_dialysis_prescription as p").Joins("join xt_dialysis_order o On o.dialysis_date = p.record_date AND o.patient_id = p.patient_id AND o.user_org_id = ? AND o.status = 1", user_org_id).Where("p.user_org_id = ? AND p.status = 1 AND p.creater = ?  AND p.record_date >= ? AND  p.record_date <= ? AND p.mode_id > 0", user_org_id, item.AdminUserId, start_time, end_time).Count(&Total)
1249 1259
 		db.Table("xt_patient_course_of_disease as course").Where("org_id = ? AND status = 1 AND recorder = ? AND record_time >= ? AND record_time <= ?", user_org_id, item.AdminUserId, start_time, end_time).Count(&TotalOne)
1250 1260
 		db.Table("xt_patient_rescue_record as rescue").Where("org_id = ? AND status = 1 AND recorder = ? AND record_time >= ? AND record_time <= ?", user_org_id, item.AdminUserId, start_time, end_time).Count(&TotalTwo)
1251 1261
 		item.PCount = Total