package controllers

import (
	"XT_New/enums"
	"XT_New/service"
	"fmt"
	"github.com/astaxie/beego"
	"time"
)

type HisSummaryApiController struct {
	BaseAuthAPIController
}

func HisSummaryApiRegistRouters() {

	beego.Router("/api/gethissummarydetaillist", &HisSummaryApiController{}, "Get:GetHisSummaryDetailList")
	beego.Router("/api/his/getgatherdetailist", &HisSummaryApiController{}, "Get:GetGatherDetaiList")
	beego.Router("/api/his/getdetailpatients", &HisSummaryApiController{}, "Get:GetDetailPatients")

	beego.Router("/api/his/gethisorderlist", &HisSummaryApiController{}, "Get:GetHisOrderList")
	beego.Router("/api/his/gethisadviceorderlist", &HisSummaryApiController{}, "Get:GetHisAdviceOrderList")
}

func (this *HisSummaryApiController) GetHisSummaryDetailList() {

	start_time := this.GetString("start_time")
	end_time := this.GetString("end_time")
	keyword := this.GetString("keyword")
	item_type, _ := this.GetInt64("type")
	patient_id, _ := this.GetInt64("patient_id")
	adminUser := this.GetAdminUserInfo()

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
	if err != nil {

	}
	startRecordDateTime := startTime.Unix()

	endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
	if err != nil {

	}
	endRecordDateTime := endTime.Unix()

	list, err := service.GetHisSummaryDetailList(keyword, item_type, patient_id, adminUser.CurrentOrgId, startRecordDateTime, endRecordDateTime)
	patient, _ := service.GetPatientByID(adminUser.CurrentOrgId, patient_id)

	his_patient, _ := service.GetHisSummaryPatientInfo(adminUser.CurrentOrgId, patient_id, startRecordDateTime, endRecordDateTime)

	order, _ := service.GetHisLastOrder(adminUser.CurrentOrgId, patient_id, startRecordDateTime, endRecordDateTime)

	his_record_patient, _ := service.GetHisSummaryPatientInfoSix(adminUser.CurrentOrgId, patient_id, startRecordDateTime, endRecordDateTime)

	//获取所有的科室
	hisDepatment, _ := service.GetHisDepatment(adminUser.CurrentOrgId)

	//获取个人支付总额
	orderList, _ := service.GetAllHisOrderList(adminUser.CurrentOrgId, patient_id, startRecordDateTime, endRecordDateTime)
	if err == nil {
		this.ServeSuccessJSON(map[string]interface{}{
			"list":               list,
			"patient":            patient,
			"his_patient":        his_patient,
			"hisDepatment":       hisDepatment,
			"order":              order,
			"his_record_patient": his_record_patient,
			"orderList":          orderList,
		})
		return
	} else {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
		return

	}
}

func (this *HisSummaryApiController) GetGatherDetaiList() {

	start_time := this.GetString("start_time")
	end_time := this.GetString("end_time")
	keyword := this.GetString("keyword")
	item_type, _ := this.GetInt64("type")
	patient_id, _ := this.GetInt64("patient_id")
	adminUser := this.GetAdminUserInfo()

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
	if err != nil {

	}
	startRecordDateTime := startTime.Unix()

	endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
	if err != nil {

	}
	endRecordDateTime := endTime.Unix()

	list, err := service.GetHisSummaryDetailList(keyword, item_type, patient_id, adminUser.CurrentOrgId, startRecordDateTime, endRecordDateTime)
	patient, _ := service.GetPatientByID(adminUser.CurrentOrgId, patient_id)

	his_patient, _ := service.GetHisSummaryPatientInfo(adminUser.CurrentOrgId, patient_id, startRecordDateTime, endRecordDateTime)

	order, _ := service.GetHisLastOrder(adminUser.CurrentOrgId, patient_id, startRecordDateTime, endRecordDateTime)

	his_record_patient, _ := service.GetHisSummaryPatientInfoSix(adminUser.CurrentOrgId, patient_id, startRecordDateTime, endRecordDateTime)

	//获取所有的科室
	hisDepatment, _ := service.GetHisDepatment(adminUser.CurrentOrgId)

	var medicalInsuranceLevel = "医保等级"
	medicalInsuranceLevelParent, _ := service.GetDrugDataConfig(0, medicalInsuranceLevel)
	medicalInsuranceLevelList, _ := service.GetParentDataConfig(medicalInsuranceLevelParent.ID, adminUser.CurrentOrgId)
	var drugType = "药品类型"
	drugTypeParent, _ := service.GetDrugDataConfig(0, drugType)
	drugTypeList, _ := service.GetParentDataConfig(drugTypeParent.ID, adminUser.CurrentOrgId)
	var costClassify = "费用类别"
	costClassifyParent, _ := service.GetDrugDataConfig(0, costClassify)
	costClassifyList, _ := service.GetParentDataConfig(costClassifyParent.ID, adminUser.CurrentOrgId)
	doctorlist, _ := service.GetAllDoctorSix(adminUser.CurrentOrgId, adminUser.CurrentAppId)

	//获取最后一次排班
	schedule, _ := service.GetHisSchedule(patient_id, adminUser.CurrentOrgId, startRecordDateTime, endRecordDateTime)
	bedNumber, _ := service.GetAllBedNumberSix(adminUser.CurrentOrgId)
	orderInfo, _ := service.GetHisLastOrder(adminUser.CurrentOrgId, patient_id, startRecordDateTime, endRecordDateTime)

	//获取个人支付总额
	orderList, _ := service.GetAllHisOrderList(adminUser.CurrentOrgId, patient_id, startRecordDateTime, endRecordDateTime)

	if err == nil {
		this.ServeSuccessJSON(map[string]interface{}{
			"list":                      list,
			"patient":                   patient,
			"his_patient":               his_patient,
			"hisDepatment":              hisDepatment,
			"order":                     order,
			"his_record_patient":        his_record_patient,
			"medicalInsuranceLevelList": medicalInsuranceLevelList,
			"drugTypeList":              drugTypeList,
			"costClassifyList":          costClassifyList,
			"doctorlist":                doctorlist,
			"schedule":                  schedule,
			"bedNumber":                 bedNumber,
			"orderInfo":                 orderInfo,
			"orderList":                 orderList,
		})
		return
	} else {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
		return

	}
}

//func (this *HisSummaryApiController) GetGatherDetaiList() {
//
//	start_time := this.GetString("start_time")
//	end_time := this.GetString("end_time")
//	keyword := this.GetString("keyword")
//	item_type, _ := this.GetInt64("type")
//	patient_id, _ := this.GetInt64("patient_id")
//	adminUser := this.GetAdminUserInfo()
//
//	timeLayout := "2006-01-02"
//	loc, _ := time.LoadLocation("Local")
//	startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
//	if err != nil {
//
//	}
//	startRecordDateTime := startTime.Unix()
//
//	endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
//	if err != nil {
//
//	}
//	endRecordDateTime := endTime.Unix()
//
//	//查询该病人这段时间的记录单号
//	orderInfo, _ := service.GetGatherHisOrder(keyword, item_type, patient_id, adminUser.CurrentOrgId, startRecordDateTime, endRecordDateTime)
//
//	org_id := this.GetAdminUserInfo().CurrentOrgId
//	appid := this.GetAdminUserInfo().CurrentAppId
//	var order_info []*service.HisOrderInfo
//
//	var MdtrtId string
//
//	patient, _ := service.GetPatientByID(org_id, patient_id)
//	for _, item := range orderInfo {
//		orderinfo, _ := service.GetHisOrderDetailByNumber(item.Number, org_id)
//		MdtrtId = item.MdtrtId
//		for _, it := range orderinfo {
//
//			order_info = append(order_info, it)
//		}
//	}
//	his, _ := service.GetHisPatientInfoFive(org_id, patient_id, startRecordDateTime, endRecordDateTime)
//
//	record, _ := service.GetInHospitalRecordByNumber(MdtrtId)
//
//	//获取所有客户
//	adminInfo, _ := service.GetAllDoctorSix(org_id, appid)
//
//	//获取最后一次排班
//	schedule, _ := service.GetHisSchedule(patient_id, org_id, startRecordDateTime, endRecordDateTime)
//
//	bedNumber, _ := service.GetAllBedNumberSix(org_id)
//	var bedCostTotal float64 = 0 //床位总费
//
//	var operationCostTotal float64 = 0 //手术费
//
//	var otherCostTotal float64 = 0 //其他费用
//
//	var materialCostTotal float64 = 0 //材料费
//
//	var westernMedicineCostTotal float64 = 0 //西药费
//
//	var chineseTraditionalMedicineCostTotal float64 = 0 //中成药
//
//	var checkCostTotal float64 = 0 //检查费
//
//	var laboratoryCostTotal float64 = 0 //化验费
//
//	var treatCostTotal float64 = 0 //治疗费用
//
//	var zhenChaCostTotal float64 = 0 //其他费用
//
//	decimal.DivisionPrecision = 2
//	var BalanceAccountsType int64
//	if his.ID > 0 {
//		BalanceAccountsType = his.BalanceAccountsType
//	} else {
//		BalanceAccountsType = record.BalanceAccountsType
//	}
//
//	his_patient, _ := service.GetHisSummaryPatientInfo(adminUser.CurrentOrgId, patient_id, startRecordDateTime, endRecordDateTime)
//
//	//获取所有的科室
//	hisDepatment, _ := service.GetHisDepatment(adminUser.CurrentOrgId)
//
//	//统计
//	prescription, _ := service.GetHisPrescriptionTenty(adminUser.CurrentOrgId, patient_id, startRecordDateTime, endRecordDateTime, keyword, item_type)
//
//	//orderlist, _ := service.GetHisChargeOrder(adminUser.CurrentOrgId, patient_id, startRecordDateTime, endRecordDateTime, keyword, item_type)
//
//	var medicalInsuranceLevel = "医保等级"
//	medicalInsuranceLevelParent, _ := service.GetDrugDataConfig(0, medicalInsuranceLevel)
//	medicalInsuranceLevelList, _ := service.GetParentDataConfig(medicalInsuranceLevelParent.ID, adminUser.CurrentOrgId)
//	if BalanceAccountsType != 2 && BalanceAccountsType > 0 {
//		for _, item := range order_info {
//			if org_id == 10215 {
//				if item.MedChrgitmType == "01" { //床位费
//					bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//				if item.MedChrgitmType == "02" { //诊察费
//					zhenChaCostTotal, _ = decimal.NewFromFloat(zhenChaCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//
//				}
//				if item.MedChrgitmType == "03" { //检查费
//					checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//
//				}
//
//				if item.MedChrgitmType == "04" { //化验费
//					laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "05" || item.MedChrgitmType == "1402" || item.MedChrgitmType == "1403" { //治疗费
//					treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//
//				}
//
//				if item.MedChrgitmType == "06" { //手术费
//					operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "08" { //材料费
//					materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "09" { //西药费
//					westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "11" { //中成费
//					chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "14" || item.MedChrgitmType == "0" || item.MedChrgitmType == "12" { //其他费
//					otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//			} else if org_id == 10188 || org_id == 10217 {
//				if item.MedChrgitmType == "01" { //床位费
//					bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//
//				}
//				if item.MedChrgitmType == "02" { //诊察费
//					zhenChaCostTotal, _ = decimal.NewFromFloat(zhenChaCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//				if item.MedChrgitmType == "03" { //检查费
//					laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "04" { //化验费
//					laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "05" || item.MedChrgitmType == "1402" || item.MedChrgitmType == "1403" { //治疗费
//					treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "06" { //手术费
//					operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "08" { //材料费
//					materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "09" { //西药费
//					westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "11" { //中成费
//					chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "14" || item.MedChrgitmType == "0" || item.MedChrgitmType == "12" { //其他费
//					otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//			} else {
//
//				if item.MedChrgitmType == "01" { //床位费
//					bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//
//				}
//
//				if item.MedChrgitmType == "03" { //检查费
//					checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "04" { //化验费
//					laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//
//				}
//
//				if item.MedChrgitmType == "05" || item.MedChrgitmType == "1402" || item.MedChrgitmType == "1403" { //治疗费
//					treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "06" { //手术费
//					operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "08" { //材料费
//					materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "09" { //西药费
//					westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "11" { //中成费
//					chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "14" || item.MedChrgitmType == "0" || item.MedChrgitmType == "12" || item.MedChrgitmType == "02" { //其他费
//					otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//
//				}
//
//			}
//		}
//		this.ServeSuccessJSON(map[string]interface{}{
//			"order":                               orderInfo,
//			"order_info":                          order_info,
//			"patient":                             patient,
//			"admin_info":                          adminInfo,
//			"his_hospital":                        record,
//			"bedCostTotal":                        bedCostTotal,
//			"operationCostTotal":                  operationCostTotal,
//			"otherCostTotal":                      otherCostTotal,
//			"materialCostTotal":                   materialCostTotal,
//			"westernMedicineCostTotal":            westernMedicineCostTotal,
//			"chineseTraditionalMedicineCostTotal": chineseTraditionalMedicineCostTotal,
//			"checkCostTotal":                      checkCostTotal,
//			"zhenChaCostTotal":                    zhenChaCostTotal,
//			"laboratoryCostTotal":                 laboratoryCostTotal,
//			"treatCostTotal":                      treatCostTotal,
//			"his_patient":                         his_patient,
//			"hisDepatment":                        hisDepatment,
//			"prescription":                        prescription,
//			"schedule":                            schedule,
//			"bedNumber":                           bedNumber,
//		})
//	} else {
//		for _, item := range order_info {
//
//			item.FulamtOwnpayAmt = item.DetItemFeeSumamt
//			if item.HisDoctorAdviceInfo.ID > 0 && item.HisPrescriptionProject.ID == 0 { //药品
//				item.MedChrgitmType = "09"
//			}
//			if item.HisPrescriptionProject.ID > 0 && item.HisDoctorAdviceInfo.ID == 0 {
//				if item.HisPrescriptionProject.Type == 2 {
//					if this.GetAdminUserInfo().CurrentOrgId == 10215 {
//						switch item.HisPrescriptionProject.VMHisProject.CostClassify {
//						case 0:
//							item.MedChrgitmType = "0"
//							break
//						case 1:
//							item.MedChrgitmType = "14"
//							break
//						case 2:
//							item.MedChrgitmType = "05"
//
//							break
//						case 3:
//							item.MedChrgitmType = "03"
//
//							break
//						case 4:
//							item.MedChrgitmType = "03"
//
//							break
//						case 5:
//							item.MedChrgitmType = "08"
//
//							break
//						case 6:
//							item.MedChrgitmType = "14"
//
//							break
//						case 7:
//							item.MedChrgitmType = "14"
//
//							break
//						case 8:
//							item.MedChrgitmType = "03"
//							break
//						case 9:
//							item.MedChrgitmType = "14"
//							break
//						case 10:
//							item.MedChrgitmType = "14"
//							break
//						case 11:
//							item.MedChrgitmType = "06"
//							break
//						case 12:
//							item.MedChrgitmType = "12"
//							break
//						case 13:
//							item.MedChrgitmType = "01"
//							break
//						case 14:
//							item.MedChrgitmType = "04"
//							break
//						case 15:
//							item.MedChrgitmType = "14"
//							break
//
//						}
//
//					} else {
//						switch item.HisPrescriptionProject.VMHisProject.CostClassify {
//
//						case 1:
//							item.MedChrgitmType = "14"
//							break
//						case 2:
//							item.MedChrgitmType = "05"
//
//							break
//						case 3:
//							item.MedChrgitmType = "04"
//
//							break
//						case 4:
//							item.MedChrgitmType = "14"
//
//							break
//						case 5:
//							item.MedChrgitmType = "08"
//
//							break
//						case 6:
//							item.MedChrgitmType = "14"
//
//							break
//						case 7:
//							item.MedChrgitmType = "14"
//
//							break
//						case 8:
//							item.MedChrgitmType = "03"
//							break
//						case 9:
//							item.MedChrgitmType = "14"
//							break
//						}
//					}
//				} else if item.HisPrescriptionProject.Type == 3 {
//					item.MedChrgitmType = "08"
//				}
//			}
//		}
//
//		for _, item := range order_info {
//			if org_id == 10215 {
//				if item.MedChrgitmType == "01" { //床位费
//					bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//				if item.MedChrgitmType == "02" { //诊察费
//					zhenChaCostTotal, _ = decimal.NewFromFloat(zhenChaCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "03" { //检查费
//					checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "04" { //化验费
//					laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "05" || item.MedChrgitmType == "1402" || item.MedChrgitmType == "1403" { //治疗费
//					treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "06" { //手术费
//					operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "08" { //材料费
//					materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "09" { //西药费
//					westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "11" { //中成费
//					chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "14" || item.MedChrgitmType == "0" || item.MedChrgitmType == "12" { //其他费
//					otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//			} else {
//
//				if item.MedChrgitmType == "01" { //床位费
//					bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "03" { //检查费
//					checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "04" { //化验费
//					laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "05" || item.MedChrgitmType == "1402" || item.MedChrgitmType == "1403" { //治疗费
//					treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "06" { //手术费
//					operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "08" { //材料费
//					materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "09" { //西药费
//					westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "11" { //中成费
//					chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//				if item.MedChrgitmType == "14" || item.MedChrgitmType == "0" || item.MedChrgitmType == "12" || item.MedChrgitmType == "02" { //其他费
//					otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
//				}
//
//			}
//
//		}
//
//		this.ServeSuccessJSON(map[string]interface{}{
//			"order":                               orderInfo,
//			"order_info":                          order_info,
//			"patient":                             patient,
//			"admin_info":                          adminInfo,
//			"his_hospital":                        record,
//			"bedCostTotal":                        bedCostTotal,
//			"operationCostTotal":                  operationCostTotal,
//			"otherCostTotal":                      otherCostTotal,
//			"materialCostTotal":                   materialCostTotal,
//			"westernMedicineCostTotal":            westernMedicineCostTotal,
//			"chineseTraditionalMedicineCostTotal": chineseTraditionalMedicineCostTotal,
//			"checkCostTotal":                      checkCostTotal,
//			"zhenChaCostTotal":                    zhenChaCostTotal,
//			"laboratoryCostTotal":                 laboratoryCostTotal,
//			"treatCostTotal":                      treatCostTotal,
//			"his_patient":                         his_patient,
//			"hisDepatment":                        hisDepatment,
//			"prescription":                        prescription,
//			"balanceAccountsType":                 BalanceAccountsType,
//			"medicalInsuranceLevelList":           medicalInsuranceLevelList,
//			"schedule":                            schedule,
//			"bedNumber":                           bedNumber,
//		})
//
//	}
//}

func (this *HisSummaryApiController) GetDetailPatients() {

	keyword := this.GetString("keyword")
	orgId := this.GetAdminUserInfo().CurrentOrgId
	patients, err := service.GetDetailPatients(keyword, orgId)
	if err == nil {
		this.ServeSuccessJSON(map[string]interface{}{
			"patient": patients,
		})
		return
	} else {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
		return

	}
}

func (this *HisSummaryApiController) GetHisOrderList() {

	patient_id, _ := this.GetInt64("patient_id")
	start_time := this.GetString("start_time")
	end_time := this.GetString("end_time")
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
	if err != nil {

	}
	startRecordDateTime := startTime.Unix()

	endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
	if err != nil {

	}
	endRecordDateTime := endTime.Unix()
	orgId := this.GetAdminUserInfo().CurrentOrgId
	groupList, _ := service.GetOrderInfoList(patient_id, startRecordDateTime, endRecordDateTime, orgId)
	fmt.Println("groupList32332323232232332322323", groupList)
	//list, err := service.GetHisOrderListTwenty(patient_id, startRecordDateTime, endRecordDateTime, orgId)
	if err == nil {
		this.ServeSuccessJSON(map[string]interface{}{
			"groupList": groupList,
			//   "list": list,

		})
		return
	} else {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
		return

	}
}

func (this *HisSummaryApiController) GetHisAdviceOrderList() {

	patient_id, _ := this.GetInt64("patient_id")
	start_time := this.GetString("start_time")
	end_time := this.GetString("end_time")
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
	if err != nil {

	}
	startRecordDateTime := startTime.Unix()

	endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
	if err != nil {

	}
	endRecordDateTime := endTime.Unix()
	orgId := this.GetAdminUserInfo().CurrentOrgId

	list, err := service.GetOrderInfoList(patient_id, startRecordDateTime, endRecordDateTime, orgId)

	//drugList, err := service.GetAllDrugLibList(orgId)
	//
	//goodList, err := service.GetAllGoodList(orgId)

	if err == nil {
		this.ServeSuccessJSON(map[string]interface{}{
			"list": list,
			//"drugList":drugList,
			//"goodList":goodList,
		})
		return
	} else {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
		return

	}
}
