export_data_service.go 20KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. package service
  2. import (
  3. "XT_New/models"
  4. "github.com/jinzhu/gorm"
  5. )
  6. type ExportPatient struct {
  7. ID int64 `gorm:"column:id" json:"id" form:"id"`
  8. UserOrgId int64 `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
  9. Name string `gorm:"column:name" json:"name" form:"name"`
  10. Lapseto int64 `gorm:"column:lapseto" json:"lapseto" form:"lapseto"`
  11. Status int64 `gorm:"column:status" json:"status" form:"status"`
  12. IdCardNo string `gorm:"column:id_card_no" json:"id_card_no" form:"id_card_no"`
  13. XtCount int64 `gorm:"column:-" json:"xt_count" form:"xt_count"`
  14. SettleOrder []*SettleOrder `gorm:"ForeignKey:PatientID;AssociationForeignKey:ID" json:"orders"`
  15. }
  16. func (ExportPatient) TableName() string {
  17. return "xt_patients"
  18. }
  19. type SettleOrder struct {
  20. ID int64 `gorm:"column:id" json:"id" form:"id"`
  21. UserOrgId int64 `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
  22. Status int64 `gorm:"column:status" json:"status" form:"status"`
  23. PatientId int64 `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
  24. OrderStatus int64 `gorm:"column:order_status" json:"order_status" form:"order_status"`
  25. MdtrtId string `gorm:"column:mdtrt_id" json:"mdtrt_id" form:"mdtrt_id"`
  26. Number string `gorm:"column:number" json:"number" form:"number"`
  27. SetlId string `gorm:"column:setl_id" json:"setl_id" form:"setl_id"`
  28. Insutype string `gorm:"column:insutype" json:"insutype" form:"insutype"`
  29. SetlTime string `gorm:"column:setl_time" json:"setl_time" form:"setl_time"`
  30. MedfeeSumamt float64 `gorm:"column:medfee_sumamt" json:"medfee_sumamt" form:"medfee_sumamt"`
  31. FulamtOwnpayAmt float64 `gorm:"column:fulamt_ownpay_amt" json:"fulamt_ownpay_amt" form:"fulamt_ownpay_amt"`
  32. OverlmtSelfPay float64 `gorm:"column:overlmt_self_pay" json:"overlmt_self_pay" form:"overlmt_self_pay"`
  33. PreselfpayAmt float64 `gorm:"column:preselfpay_amt" json:"preselfpay_amt" form:"preselfpay_amt"`
  34. InscpScpAmt float64 `gorm:"column:inscp_scp_amt" json:"inscp_scp_amt" form:"inscp_scp_amt"`
  35. ActPayDedc float64 `gorm:"column:act_pay_dedc" json:"act_pay_dedc" form:"act_pay_dedc"`
  36. HifpPay float64 `gorm:"column:hifp_pay" json:"hifp_pay" form:"hifp_pay"`
  37. CvlservPay float64 `gorm:"column:cvlserv_pay" json:"cvlserv_pay" form:"cvlserv_pay"`
  38. PoolPropSelfpay float64 `gorm:"column:pool_prop_selfpay" json:"pool_prop_selfpay" form:"pool_prop_selfpay"`
  39. HifesPay float64 `gorm:"column:hifes_pay" json:"hifes_pay" form:"hifes_pay"`
  40. HifmiPay float64 `gorm:"column:hifmi_pay" json:"hifmi_pay" form:"hifmi_pay"`
  41. HifobPay float64 `gorm:"column:hifob_pay" json:"hifob_pay" form:"hifob_pay"`
  42. MafPay float64 `gorm:"column:maf_pay" json:"maf_pay" form:"maf_pay"`
  43. OthPay float64 `gorm:"column:oth_pay" json:"oth_pay" form:"oth_pay"`
  44. FundPaySumamt float64 `gorm:"column:fund_pay_sumamt" json:"fund_pay_sumamt" form:"fund_pay_sumamt"`
  45. PsnPartAmt float64 `gorm:"column:psn_part_amt" json:"psn_part_amt" form:"psn_part_amt"`
  46. AcctPay float64 `gorm:"column:acct_pay" json:"acct_pay" form:"acct_pay"`
  47. PsnCashPay float64 `gorm:"column:psn_cash_pay" json:"psn_cash_pay" form:"psn_cash_pay"`
  48. HospPartAmt float64 `gorm:"column:hosp_part_amt" json:"hosp_part_amt" form:"hosp_part_amt"`
  49. IsMedicineInsurance int64 `gorm:"column:is_medicine_insurance" json:"is_medicine_insurance" form:"is_medicine_insurance"`
  50. OrderInfo9919 []*OrderInfo9919 `gorm:"ForeignKey:OrderNumber;AssociationForeignKey:Number" json:"info"`
  51. }
  52. func (SettleOrder) TableName() string {
  53. return "his_order"
  54. }
  55. type OrderInfo9919 struct {
  56. ID int64 `gorm:"column:id" json:"id" form:"id"`
  57. OrderNumber string `gorm:"column:order_number" json:"order_number" form:"order_number"`
  58. UploadDate int64 `gorm:"column:upload_date" json:"upload_date" form:"upload_date"`
  59. AdviceId int64 `gorm:"column:advice_id" json:"advice_id" form:"advice_id"`
  60. DetItemFeeSumamt float64 `gorm:"column:det_item_fee_sumamt" json:"det_item_fee_sumamt" form:"det_item_fee_sumamt"`
  61. Cnt float64 `gorm:"column:cnt" json:"cnt" form:"cnt"`
  62. Pric float64 `gorm:"column:pric" json:"pric" form:"pric"`
  63. PatientId int64 `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
  64. PricUplmtAmt float64 `gorm:"column:pric_uplmt_amt" json:"pric_uplmt_amt" form:"pric_uplmt_amt"`
  65. SelfpayProp float64 `gorm:"column:selfpay_prop" json:"selfpay_prop" form:"selfpay_prop"`
  66. FulamtOwnpayAmt float64 `gorm:"column:fulamt_ownpay_amt" json:"fulamt_ownpay_amt" form:"fulamt_ownpay_amt"`
  67. OverlmtAmt float64 `gorm:"column:overlmt_amt" json:"overlmt_amt" form:"overlmt_amt"`
  68. PreselfpayAmt float64 `gorm:"column:preselfpay_amt" json:"preselfpay_amt" form:"preselfpay_amt"`
  69. BasMednFlag string `gorm:"column:bas_medn_flag" json:"bas_medn_flag" form:"bas_medn_flag"`
  70. MedChrgitmType string `gorm:"column:med_chrgitm_type" json:"med_chrgitm_type" form:"med_chrgitm_type"`
  71. HiNegoDrugFlag string `gorm:"column:hi_nego_drug_flag" json:"hi_nego_drug_flag" form:"hi_nego_drug_flag"`
  72. Status int64 `gorm:"column:status" json:"status" form:"status"`
  73. Memo string `gorm:"column:memo" json:"memo" form:"memo"`
  74. FeedetlSn string `gorm:"column:feedetl_sn" json:"feedetl_sn" form:"feedetl_sn"`
  75. Mtime int64 `gorm:"column:mtime" json:"mtime" form:"mtime"`
  76. InscpScpAmt float64 `gorm:"column:inscp_scp_amt" json:"inscp_scp_amt" form:"inscp_scp_amt"`
  77. DrtReimFlag string `gorm:"column:drt_reim_flag" json:"drt_reim_flag" form:"drt_reim_flag"`
  78. Ctime int64 `gorm:"column:ctime" json:"ctime" form:"ctime"`
  79. ListSpItemFlag string `gorm:"column:list_sp_item_flag" json:"list_sp_item_flag" form:"list_sp_item_flag"`
  80. ChldMedcFlag string `gorm:"column:chld_medc_flag" json:"chld_medc_flag" form:"chld_medc_flag"`
  81. LmtUsedFlag string `gorm:"column:lmt_used_flag" json:"lmt_used_flag" form:"lmt_used_flag"`
  82. ChrgitmLv string `gorm:"column:chrgitm_lv" json:"chrgitm_lv" form:"chrgitm_lv"`
  83. UserOrgId int64 `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
  84. HisPatientId int64 `gorm:"column:his_patient_id" json:"his_patient_id" form:"his_patient_id"`
  85. OrderId int64 `gorm:"column:order_id" json:"order_id" form:"order_id"`
  86. ProjectId int64 `gorm:"column:project_id" json:"project_id" form:"project_id"`
  87. Type int64 `gorm:"column:type" json:"type" form:"type"`
  88. ItemId int64 `gorm:"column:item_id" json:"item_id" form:"item_id"`
  89. SettleType int64 `gorm:"column:settle_type" json:"settle_type" form:"settle_type"`
  90. }
  91. func (OrderInfo9919) TableName() string {
  92. return "his_order_info"
  93. }
  94. func GetHisOrderDetailFor310(start_time string, end_time string, org_id int64) (patients []*ExportPatient, err error) {
  95. 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 FROM_UNIXTIME(orders.ctime) >= ? AND FROM_UNIXTIME(orders.ctime) <= ? AND orders.user_org_id = ? AND orders.order_status = 2 and orders.insutype = 310", start_time, end_time, org_id).Preload("SettleOrder", func(db *gorm.DB) *gorm.DB {
  96. return db.Where("status = 1 AND setl_time >= ? AND setl_time <= ? AND user_org_id = ? AND order_status = 2 and insutype = 310", start_time, end_time, org_id).Preload("OrderInfo9919", "status = 1").Order("ctime")
  97. }).Where("p.status = 1 AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
  98. for _, item := range patients {
  99. var total int64
  100. readDb.Model(&models.DialysisOrder{}).Where("patient_id = ? AND status = 1 AND stage = 2 AND FROM_UNIXTIME(dialysis_date) <= ? AND FROM_UNIXTIME(dialysis_date) >= ?", item.ID, end_time, start_time).Count(&total)
  101. item.XtCount = total
  102. }
  103. return
  104. }
  105. func GetHisOrderDetailFor390(start_time string, end_time string, org_id int64) (patients []*ExportPatient, err error) {
  106. 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 FROM_UNIXTIME(orders.ctime) >= ? AND FROM_UNIXTIME(orders.ctime) <= ? AND orders.user_org_id = ? AND orders.order_status = 2 and orders.insutype = 390", start_time, end_time, org_id).Preload("SettleOrder", func(db *gorm.DB) *gorm.DB {
  107. return db.Where("status = 1 AND setl_time >= ? AND setl_time <= ? AND user_org_id = ? AND order_status = 2 and insutype = 390", start_time, end_time, org_id).Preload("OrderInfo9919", "status = 1").Order("ctime")
  108. }).Where("p.status = 1 AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
  109. for _, item := range patients {
  110. var total int64
  111. readDb.Model(&models.DialysisOrder{}).Where("patient_id = ? AND status = 1 AND stage = 2 AND FROM_UNIXTIME(dialysis_date) <= ? AND FROM_UNIXTIME(dialysis_date) >= ?", item.ID, end_time, start_time).Count(&total)
  112. item.XtCount = total
  113. }
  114. return
  115. }
  116. func GetHisOrderByTime(patient_id int64, start_time string, end_time string) (order []models.HisOrder, err error) {
  117. err = readDb.Model(&models.HisOrder{}).Where("patient_id = ? AND status = 1 and order_status = 2 and FROM_UNIXTIME(settle_accounts_date) >= ? and FROM_UNIXTIME(settle_accounts_date) <= ?", patient_id, start_time+" 00:00:00", end_time+" 23:59:00").Find(&order).Error
  118. return
  119. }
  120. func GetBatchHisOrderInfoByNumber(order_number string) (order []models.BatchHisOrderInfo, err error) {
  121. err = readDb.Model(&models.BatchHisOrderInfo{}).Where("order_number = ? and status = 1", order_number).Find(&order).Error
  122. return
  123. }
  124. type Results struct {
  125. SerialNo string `gorm:"column:序号"`
  126. MedicalArea string `gorm:"column:医疗区划"`
  127. CertNo string `gorm:"column:证件号码"`
  128. PsnName string `gorm:"column:姓名"`
  129. Gender string `gorm:"column:性别"`
  130. Occupation string `gorm:"column:职业"`
  131. MedicalType string `gorm:"column:医疗类别"`
  132. AdmissionTime string `gorm:"column:入院时间"`
  133. DischargeTime string `gorm:"column:出院时间"`
  134. SettlementTime string `gorm:"column:结算时间"`
  135. DischargeDiagnosis string `gorm:"column:出院诊断"`
  136. InpatientDays int `gorm:"column:住院天数"`
  137. MedicalFeeTotal float64 `gorm:"column:医疗费总额"`
  138. HifpPay float64 `gorm:"column:统筹支付金额"`
  139. ActPayDedc float64 `gorm:"column:起付线"`
  140. HifobPay float64 `gorm:"column:职工大额基金支付"`
  141. HifmiPay float64 `gorm:"column:居民大病基金支出"`
  142. HifesPay float64 `gorm:"column:企业补充"`
  143. CvlservPay float64 `gorm:"column:公务员补助"`
  144. MafPay float64 `gorm:"column:医疗救助"`
  145. OthPay float64 `gorm:"column:其他支付"`
  146. HospPartAmt float64 `gorm:"column:医院负担"`
  147. AcctPay float64 `gorm:"column:个账支付"`
  148. AcctMulaidPay float64 `gorm:"column:共济支付"`
  149. FundPaySumamt float64 `gorm:"column:基金支付金额"`
  150. PsnCashPay float64 `gorm:"column:现金支付"`
  151. }
  152. type SummaryResults struct {
  153. InsuranceType string `gorm:"column:险种类型"` // 险种类型
  154. MedicalArea string `gorm:"column:统筹区"` // 统筹区
  155. SettlementCategory string `gorm:"column:清算类别"` // 清算类别
  156. PeopleCount int `gorm:"column:人数"` // 人数
  157. VisitCount int `gorm:"column:人次"` // 人次
  158. TotalMedicalFee float64 `gorm:"column:医保费用合计"` // 医保费用合计
  159. PoolFundPay float64 `gorm:"column:统筹支付金额"` // 统筹支付金额
  160. BigDiseaseFundPay float64 `gorm:"column:大病基金支付"` // 大病基金支付
  161. PublicServantPay float64 `gorm:"column:公务员补助"` // 公务员补助
  162. MedicalAssistance float64 `gorm:"column:医疗救助"` // 医疗救助
  163. OtherPay float64 `gorm:"column:其他支付"` // 其他支付
  164. AcctPay float64 `gorm:"column:个账支付"` // 个账支付
  165. MutualAidPay float64 `gorm:"column:共济支付"` // 共济支付
  166. CashPay float64 `gorm:"column:现金支付"` // 现金支付
  167. }
  168. func GetHisOrderBy10726Detail(start_time string, end_time string) ([]Results, error) {
  169. //err = readDb.Model(&models.HisOrder10726{}).Select("").Where("setl_time >= ? and setl_time <= ? AND status = 1 and order_status = 2 and user_org_id = 10721", start_time+" 00:00:00", end_time+" 23:59:00").Find(&order).Error
  170. var result []Results
  171. readDb.Table("his_order").Select(`
  172. '' AS 序号,
  173. '乐安县' AS 医疗区划,
  174. certno AS 证件号码,
  175. psn_name AS 姓名,
  176. CASE
  177. WHEN gend = '1' THEN '男'
  178. WHEN gend = '2' THEN '女'
  179. END AS 性别,
  180. CASE
  181. WHEN psn_type IN ('14', '15') THEN '居民(成年)'
  182. END AS 职业,
  183. CASE
  184. WHEN med_type = '990101' THEN '单病种门诊'
  185. WHEN med_type = '14' THEN '门诊慢特病'
  186. END AS 医疗类别,
  187. setl_time AS 入院时间,
  188. setl_time AS 出院时间,
  189. setl_time AS 结算时间,
  190. CASE
  191. WHEN med_type = '990101' THEN '尿毒症(免费透析)'
  192. WHEN med_type = '14' THEN '尿毒症期'
  193. END AS 出院诊断,
  194. 1 AS 住院天数,
  195. medfee_sumamt AS 医疗费总额,
  196. hifp_pay AS 统筹支付金额,
  197. act_pay_dedc AS 起付线,
  198. hifob_pay AS 职工大额基金支付,
  199. hifmi_pay AS 居民大病基金支出,
  200. hifes_pay AS 企业补充,
  201. cvlserv_pay AS 公务员补助,
  202. maf_pay AS 医疗救助,
  203. oth_pay AS 其他支付,
  204. hosp_part_amt AS 医院负担,
  205. acct_pay AS 个账支付,
  206. acct_mulaid_pay AS 共济支付,
  207. fund_pay_sumamt AS 基金支付金额,
  208. psn_cash_pay AS 现金支付
  209. `).Where("user_org_id = ?", 10726).
  210. Where("order_status = ?", 2).
  211. Where("setl_time >= ?", start_time).
  212. Where("setl_time <= ?", end_time).
  213. Where("is_medicine_insurance = ?", 1).
  214. Where("status = ?", 1).
  215. Scan(&result)
  216. return result, err
  217. }
  218. func GetHisOrderBy10726Summary(start_time string, end_time string) ([]SummaryResults, error) {
  219. var result []SummaryResults
  220. err = readDb.Table("his_order").
  221. Select(`
  222. CASE
  223. WHEN insutype = "390" THEN "城乡居民"
  224. WHEN insutype = "310" THEN "职工"
  225. END AS "险种类型",
  226. "乐安县" AS 统筹区,
  227. "门诊" AS 清算类别,
  228. COUNT(DISTINCT patient_id) AS 人数,
  229. COUNT(id) AS 人次,
  230. SUM(medfee_sumamt) AS 医保费用合计,
  231. SUM(hifp_pay) AS 统筹支付金额,
  232. SUM(hifmi_pay) AS 大病基金支付,
  233. SUM(cvlserv_pay) AS 公务员补助,
  234. SUM(maf_pay) AS 医疗救助,
  235. SUM(oth_pay) AS 其他支付,
  236. SUM(acct_pay) AS 个账支付,
  237. SUM(acct_mulaid_pay) AS 共济支付,
  238. SUM(psn_cash_pay) AS 现金支付
  239. `).
  240. Where("user_org_id = ? AND order_status = ? AND setl_time >= ? AND setl_time <= ? AND is_medicine_insurance = ? AND status = ?",
  241. 10726, 2, start_time, end_time, 1, 1).
  242. Group("insutype").
  243. Scan(&result).Error
  244. return result, err
  245. }
  246. type MedicalCharges struct {
  247. SerialNo string `gorm:"column:编号"` // 编号
  248. MedicalInsuranceNo string `gorm:"column:医疗保险号"` // 医疗保险号
  249. PsnName string `gorm:"column:姓名"` // 姓名
  250. BedsFee float64 `gorm:"column:床位费"` // 床位费
  251. ConsultationFee float64 `gorm:"column:诊察费"` // 诊察费
  252. ExaminationFee float64 `gorm:"column:检查费"` // 检查费
  253. LaboratoryFee float64 `gorm:"column:化验费"` // 化验费
  254. TreatmentFee float64 `gorm:"column:治疗费"` // 治疗费
  255. NursingFee float64 `gorm:"column:护理费"` // 护理费
  256. HealthMaterialsFee float64 `gorm:"column:卫生材料费"` // 卫生材料费
  257. WesternMedicineFee float64 `gorm:"column:西药费"` // 西药费
  258. ChineseMedicineFee float64 `gorm:"column:中药饮片费"` // 中药饮片费
  259. ChinesePatentMedicineFee float64 `gorm:"column:中成药费"` // 中成药费
  260. GeneralTreatmentFee float64 `gorm:"column:一般诊疗费"` // 一般诊疗费
  261. RegistrationFee float64 `gorm:"column:挂号费"` // 挂号费
  262. OtherFee float64 `gorm:"column:其他费"` // 其他费
  263. TotalMedicalFee float64 `gorm:"column:医疗费总额"` // 医疗费总额
  264. SelfPay float64 `gorm:"column:个人自付金额"` // 个人自付金额
  265. AcctPay float64 `gorm:"column:基本账户支付"` // 基本账户支付
  266. MutualAidAcctPay float64 `gorm:"column:共济账户支付"` // 共济账户支付
  267. PublicServantPay float64 `gorm:"column:公务员补助"` // 公务员补助
  268. PoolFundPay float64 `gorm:"column:统筹支付金额"` // 统筹支付金额
  269. MedicalAssistance float64 `gorm:"column:医疗救助"` // 医疗救助
  270. BigDiseasePay float64 `gorm:"column:大病支付"` // 大病支付
  271. EnterpriseSupplement float64 `gorm:"column:企业补充支付"` // 企业补充支付
  272. MajorDiseaseSupplement float64 `gorm:"column:重大疾病补充"` // 重大疾病补充 (Empty in SQL, will be left blank in Go)
  273. OtherPayment float64 `gorm:"column:其它支付"` // 其它支付
  274. }
  275. func GetHisOrderBy10697Summary(start_time string, end_time string, ins string) (results []MedicalCharges, err error) {
  276. err = readDb.Table("his_order").
  277. Select(`
  278. "" AS 编号,
  279. his_order.certno AS 医疗保险号,
  280. his_order.psn_name AS 姓名,
  281. SUM(CASE WHEN i.med_chrgitm_type = '01' THEN i.det_item_fee_sumamt ELSE 0 END) AS 床位费,
  282. SUM(CASE WHEN i.med_chrgitm_type = '02' THEN i.det_item_fee_sumamt ELSE 0 END) AS 诊察费,
  283. SUM(CASE WHEN i.med_chrgitm_type = '03' THEN i.det_item_fee_sumamt ELSE 0 END) AS 检查费,
  284. SUM(CASE WHEN i.med_chrgitm_type = '04' THEN i.det_item_fee_sumamt ELSE 0 END) AS 化验费,
  285. SUM(CASE WHEN i.med_chrgitm_type = '05' THEN i.det_item_fee_sumamt ELSE 0 END) AS 治疗费,
  286. SUM(CASE WHEN i.med_chrgitm_type = '07' THEN i.det_item_fee_sumamt ELSE 0 END) AS 护理费,
  287. SUM(CASE WHEN i.med_chrgitm_type = '08' THEN i.det_item_fee_sumamt ELSE 0 END) AS 卫生材料费,
  288. SUM(CASE WHEN i.med_chrgitm_type = '09' THEN i.det_item_fee_sumamt ELSE 0 END) AS 西药费,
  289. SUM(CASE WHEN i.med_chrgitm_type = '10' THEN i.det_item_fee_sumamt ELSE 0 END) AS 中药饮片费,
  290. SUM(CASE WHEN i.med_chrgitm_type = '11' THEN i.det_item_fee_sumamt ELSE 0 END) AS 中成药费,
  291. SUM(CASE WHEN i.med_chrgitm_type = '12' THEN i.det_item_fee_sumamt ELSE 0 END) AS 一般诊疗费,
  292. SUM(CASE WHEN i.med_chrgitm_type = '13' THEN i.det_item_fee_sumamt ELSE 0 END) AS 挂号费,
  293. SUM(CASE WHEN i.med_chrgitm_type = '14' THEN i.det_item_fee_sumamt ELSE 0 END) AS 其他费,
  294. SUM(his_order.medfee_sumamt) AS 医疗费总额,
  295. SUM(his_order.psn_cash_pay) AS 个人自付金额,
  296. SUM(his_order.acct_pay) AS 基本账户支付,
  297. SUM(his_order.acct_mulaid_pay) AS 共济账户支付,
  298. SUM(his_order.cvlserv_pay) AS 公务员补助,
  299. SUM(his_order.hifp_pay) AS 统筹支付金额,
  300. SUM(his_order.maf_pay) AS 医疗救助,
  301. SUM(his_order.hifmi_pay) AS 大病支付,
  302. SUM(his_order.hifes_pay) AS 企业补充支付,
  303. "" AS 重大疾病补充,
  304. SUM(his_order.oth_pay) AS 其它支付
  305. `).
  306. Joins("JOIN his_order_info i ON his_order.number = i.order_number").
  307. Where("his_order.user_org_id = ? AND his_order.order_status = ? AND his_order.setl_time >= ? AND his_order.setl_time <= ? AND his_order.is_medicine_insurance = ? AND his_order.insutype = ? AND his_order.STATUS = ?",
  308. 10697, 2, start_time+" 00:00:00", end_time+" 23:59:59", 1, ins, 1).
  309. Group("his_order.patient_id").
  310. Scan(&results).Error
  311. return
  312. }