csx 3 gadus atpakaļ
vecāks
revīzija
4729213c91

+ 81 - 0
controllers/his_hospital_api_controller.go Parādīt failu

@@ -28,6 +28,10 @@ func HisHospitalManagerApiRegistRouters() {
28 28
 	beego.Router("/api/hospital/inthopitaluncheck/get", &HisHospitalApiController{}, "get:GetZHInHospitalUnCheck")
29 29
 	beego.Router("/api/hospital/outhopitaluncheck/get", &HisHospitalApiController{}, "get:GetZHOutHospitalUnCheck")
30 30
 	beego.Router("/api/hospital/refund", &HisHospitalApiController{}, "get:ZHRefund")
31
+
32
+	beego.Router("/api/hospitaldetail/list", &HisHospitalApiController{}, "get:GetHisHospitalDetailPatientList")
33
+	beego.Router("/api/hospitaldetail/info", &HisHospitalApiController{}, "get:GetHisHospitalDetailInfo")
34
+
31 35
 }
32 36
 
33 37
 func (c *HisHospitalApiController) GetHisHospitalPatientList() {
@@ -671,3 +675,80 @@ func (this *HisHospitalApiController) GetZHInHospitalUnCheck() {
671 675
 	})
672 676
 
673 677
 }
678
+
679
+func (c *HisHospitalApiController) GetHisHospitalDetailPatientList() {
680
+	record_date := c.GetString("record_date")
681
+	timeLayout := "2006-01-02"
682
+	loc, _ := time.LoadLocation("Local")
683
+	theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_date+" 00:00:00", loc)
684
+	if err != nil {
685
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
686
+		return
687
+	}
688
+	recordDateTime := theTime.Unix()
689
+	adminInfo := c.GetAdminUserInfo()
690
+	UnUploadPrescriptionPatients, _ := service.GetHisHospitalUnUploadPrescriptionDetailPatientList(adminInfo.CurrentOrgId, recordDateTime)
691
+	UploadPrescriptionPatients, _ := service.GetHisHospitalUploadPrescriptionDetailPatientList(adminInfo.CurrentOrgId, recordDateTime)
692
+	//var patients []*models.HisHospitalCheckRecord
693
+	/*	for _, item := range tempPatients {
694
+		fmt.Println(item.ID)
695
+		if item.ID > 0 && item.InHospitalStatus == 1 && item.HisHospitalOrder.OrderStatus != 2 {
696
+			patients = append(patients, item)
697
+		}
698
+	}*/
699
+
700
+	c.ServeSuccessJSON(map[string]interface{}{
701
+		"list":          UnUploadPrescriptionPatients,
702
+		"list_two":      UploadPrescriptionPatients,
703
+		"upload_num":    len(UploadPrescriptionPatients),
704
+		"un_upload_num": len(UnUploadPrescriptionPatients),
705
+	})
706
+}
707
+func (c *HisHospitalApiController) GetHisHospitalDetailInfo() {
708
+	record_date := c.GetString("record_date")
709
+	id, _ := c.GetInt64("id")
710
+	is_upload, _ := c.GetInt64("is_upload")
711
+	patient_id, _ := c.GetInt64("patient_id")
712
+	start_time_str := c.GetString("start_time")
713
+	end_time_str := c.GetString("end_time")
714
+
715
+	record, _ := service.GetInHospitalRecord(id)
716
+	timeLayout := "2006-01-02"
717
+	loc, _ := time.LoadLocation("Local")
718
+	theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_date+" 00:00:00", loc)
719
+	if err != nil {
720
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
721
+		return
722
+	}
723
+	recordDateTime := theTime.Unix()
724
+	adminInfo := c.GetAdminUserInfo()
725
+	theStartTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time_str+" 00:00:00", loc)
726
+	if err != nil {
727
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
728
+		return
729
+	}
730
+	recordStartTime := theStartTime.Unix()
731
+	theEndTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time_str+" 00:00:00", loc)
732
+	if err != nil {
733
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
734
+		return
735
+	}
736
+	recordEndTime := theEndTime.Unix()
737
+	var prescriptions []*models.HisPrescription
738
+	if is_upload == 1 { //未上传
739
+		prescriptions, _ = service.GetUnUploadHisHospitalPrescription(adminInfo.CurrentOrgId, patient_id, recordDateTime)
740
+	} else if is_upload == 2 { //已上传
741
+		prescriptions, _ = service.GetUploadHisHospitalPrescription(adminInfo.CurrentOrgId, patient_id, recordDateTime)
742
+	}
743
+	var monthPrescriptions []*models.HisPrescription
744
+	if is_upload == 1 {
745
+		monthPrescriptions, _ = service.GetMonthUnUploadHisHospitalPrescription(adminInfo.CurrentOrgId, patient_id, recordStartTime, recordEndTime)
746
+	} else if is_upload == 2 {
747
+		monthPrescriptions, _ = service.GetMonthUploadHisHospitalPrescription(adminInfo.CurrentOrgId, patient_id, recordStartTime, recordEndTime)
748
+	}
749
+	c.ServeSuccessJSON(map[string]interface{}{
750
+		"prescription":        prescriptions,
751
+		"month_prescriptions": monthPrescriptions,
752
+		"his_info":            record,
753
+	})
754
+}

+ 80 - 0
service/his_hospital_service.go Parādīt failu

@@ -317,3 +317,83 @@ func GetSettleHisHospitalPrescription(org_id int64, patient_id int64, his_patien
317 317
 		Find(&prescription).Error
318 318
 	return
319 319
 }
320
+
321
+func GetHisHospitalUnUploadPrescriptionDetailPatientList(org_id int64, record_date int64) (patients []*models.HisHospitalCheckRecord, err error) {
322
+	db := readDb.Model(&models.HisHospitalCheckRecord{})
323
+	db = db.Joins("inner join his_prescription pre On pre.patient_id = his_hospital_check_record.patient_id and pre.record_date = ? AND pre.p_type = 1 AND pre.user_org_id = ? AND pre.order_status <> 4 AND pre.order_status <> 2", record_date, org_id)
324
+	db = db.Where("his_hospital_check_record.user_org_id = ? AND his_hospital_check_record.status = 1 AND his_hospital_check_record.in_hospital_status = 1", org_id)
325
+	err = db.Group("number").Find(&patients).Error
326
+	return
327
+}
328
+
329
+func GetHisHospitalUploadPrescriptionDetailPatientList(org_id int64, record_date int64) (patients []*models.HisHospitalCheckRecord, err error) {
330
+	db := readDb.Model(&models.HisHospitalCheckRecord{})
331
+	db = db.Joins("inner join his_prescription pre On pre.patient_id = his_hospital_check_record.patient_id and pre.record_date = ? AND pre.p_type = 1 AND pre.user_org_id = ? AND pre.order_status = 4", record_date, org_id)
332
+	db = db.Where("his_hospital_check_record.user_org_id = ? AND his_hospital_check_record.status = 1 AND his_hospital_check_record.in_hospital_status = 1", org_id)
333
+	err = db.Group("number").Find(&patients).Error
334
+	return
335
+}
336
+
337
+func GetUnUploadHisHospitalPrescription(org_id int64, patient_id int64, record_date int64) (prescription []*models.HisPrescription, err error) {
338
+	err = readDb.Model(&models.HisPrescription{}).
339
+		Preload("HisAdditionalCharge", func(db *gorm.DB) *gorm.DB {
340
+			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("XtHisAddtionConfig", "status=1")
341
+		}).
342
+		Preload("HisDoctorAdviceInfo", func(db *gorm.DB) *gorm.DB {
343
+			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("HisOrderInfo", "status = 1").Preload("Drug", "status=1")
344
+		}).
345
+		Preload("HisPrescriptionProject", func(db *gorm.DB) *gorm.DB {
346
+			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("HisOrderInfo", "status = 1").Preload("HisProject").Preload("GoodInfo", "status=1").Preload("XtHisProjectTeam", "status = 1")
347
+		}).
348
+		Where("user_org_id = ? AND status = 1 AND record_date = ? AND patient_id = ? AND order_status <> 2 AND order_status <> 3 AND order_status<> 4 AND p_type = 1", org_id, record_date, patient_id).
349
+		Find(&prescription).Error
350
+	return
351
+}
352
+
353
+func GetUploadHisHospitalPrescription(org_id int64, patient_id int64, record_date int64) (prescription []*models.HisPrescription, err error) {
354
+	err = readDb.Model(&models.HisPrescription{}).
355
+		Preload("HisAdditionalCharge", func(db *gorm.DB) *gorm.DB {
356
+			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("XtHisAddtionConfig", "status=1")
357
+		}).
358
+		Preload("HisDoctorAdviceInfo", func(db *gorm.DB) *gorm.DB {
359
+			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("HisOrderInfo", "status = 1").Preload("Drug", "status=1")
360
+		}).
361
+		Preload("HisPrescriptionProject", func(db *gorm.DB) *gorm.DB {
362
+			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("HisOrderInfo", "status = 1").Preload("HisProject").Preload("GoodInfo", "status=1").Preload("XtHisProjectTeam", "status = 1")
363
+		}).
364
+		Where("user_org_id = ? AND status = 1 AND record_date = ? AND patient_id = ? AND  order_status  <> 0 AND order_status <> 1 AND p_type = 1", org_id, record_date, patient_id).
365
+		Find(&prescription).Error
366
+	return
367
+}
368
+
369
+func GetMonthUnUploadHisHospitalPrescription(org_id int64, patient_id int64, start_time int64, end_time int64) (prescription []*models.HisPrescription, err error) {
370
+	err = readDb.Model(&models.HisPrescription{}).
371
+		Preload("HisAdditionalCharge", func(db *gorm.DB) *gorm.DB {
372
+			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("XtHisAddtionConfig", "status=1")
373
+		}).
374
+		Preload("HisDoctorAdviceInfo", func(db *gorm.DB) *gorm.DB {
375
+			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("HisOrderInfo", "status = 1").Preload("Drug", "status=1")
376
+		}).
377
+		Preload("HisPrescriptionProject", func(db *gorm.DB) *gorm.DB {
378
+			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("HisOrderInfo", "status = 1").Preload("HisProject").Preload("GoodInfo", "status=1").Preload("XtHisProjectTeam", "status = 1")
379
+		}).
380
+		Where("user_org_id = ? AND status = 1 AND patient_id = ? AND  record_date <= ? AND record_date >= ?  AND order_status <> 2 AND order_status <> 3 AND order_status<> 4 AND p_type = 1", org_id, patient_id, end_time, start_time).
381
+		Find(&prescription).Error
382
+	return
383
+}
384
+
385
+func GetMonthUploadHisHospitalPrescription(org_id int64, patient_id int64, start_time int64, end_time int64) (prescription []*models.HisPrescription, err error) {
386
+	err = readDb.Model(&models.HisPrescription{}).
387
+		Preload("HisAdditionalCharge", func(db *gorm.DB) *gorm.DB {
388
+			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("XtHisAddtionConfig", "status=1")
389
+		}).
390
+		Preload("HisDoctorAdviceInfo", func(db *gorm.DB) *gorm.DB {
391
+			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("HisOrderInfo", "status = 1").Preload("Drug", "status=1")
392
+		}).
393
+		Preload("HisPrescriptionProject", func(db *gorm.DB) *gorm.DB {
394
+			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("HisOrderInfo", "status = 1").Preload("HisProject").Preload("GoodInfo", "status=1").Preload("XtHisProjectTeam", "status = 1")
395
+		}).
396
+		Where("user_org_id = ? AND status = 1 AND patient_id = ? AND record_date <= ? AND  record_date >= ?  AND  order_status  <> 0 AND order_status <> 1 AND p_type = 1", org_id, patient_id, end_time, start_time).
397
+		Find(&prescription).Error
398
+	return
399
+}