his_charge_api_controller.go 22KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702
  1. package controllers
  2. import (
  3. "XT_New/enums"
  4. "XT_New/models"
  5. "XT_New/service"
  6. "XT_New/utils"
  7. "bytes"
  8. "compress/gzip"
  9. "encoding/json"
  10. "github.com/astaxie/beego"
  11. "net/http"
  12. "time"
  13. )
  14. type HisChargeApiController struct {
  15. BaseAuthAPIController
  16. }
  17. func HisChargeApiRegistRouters() {
  18. beego.Router("/api/his/chargestatistics/detail", &HisChargeApiController{}, "get:GetChargeStatisticsDetail")
  19. beego.Router("/api/his/chargestatistics/settle", &HisChargeApiController{}, "get:GetChargeStatisticsSettle")
  20. //beego.InsertFilter("/api/his/chargestatistics/detail", beego.BeforeRouter, GzipFilter)
  21. beego.Router("/api/his/patient", &HisChargeApiController{}, "get:GetAllPatient")
  22. //beego.Router("/api/his/chargestatistics/settle", &HisChargeApiController{}, "get:GetChargeStatisticsSettle")
  23. beego.Router("/api/his/inspectionlist/get", &HisChargeApiController{}, "get:GetHisInspectionList")
  24. beego.Router("/api/his/inspectionlisttwo/get", &HisChargeApiController{}, "get:GetHisInspectionListTwo")
  25. beego.Router("/api/his/inspectioninfo/get", &HisChargeApiController{}, "get:GetHisInspectionInfo")
  26. //发票
  27. beego.Router("/api/fapiao/create", &HisChargeApiController{}, "post:CreateFaPiaoRecord")
  28. beego.Router("/api/fapiao/modify", &HisChargeApiController{}, "post:ModifyFaPiaoRecord")
  29. beego.Router("/api/fapiao/list", &HisChargeApiController{}, "get:GetFaPiaoRecordList")
  30. beego.Router("/api/fapiao/delete", &HisChargeApiController{}, "post:DeleteFaPiaoRecord")
  31. beego.Router("/api/fapiao", &HisChargeApiController{}, "get:GetFaPiaoRecord")
  32. beego.Router("/api/fapiao/is_use", &HisChargeApiController{}, "post:UpdateFaPiaoRecordIsUse")
  33. beego.Router("/api/his/getyidiclear", &HisChargeApiController{}, "get:GetHisYidiClearRecord")
  34. beego.Router("/api/his/getexportdata", &HisChargeApiController{}, "get:GetExportData")
  35. }
  36. func (c *HisChargeApiController) GetExportData() {
  37. start_time := c.GetString("start_time")
  38. end_time := c.GetString("end_time")
  39. adminUser := c.GetAdminUserInfo()
  40. timeLayout := "2006-01-02"
  41. loc, _ := time.LoadLocation("Local")
  42. startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
  43. if err != nil {
  44. }
  45. startRecordDateTime := startTime.Unix()
  46. endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
  47. if err != nil {
  48. }
  49. endRecordDateTime := endTime.Unix()
  50. chargePatient, err := service.GetAllChargeDetailsTwo(adminUser.CurrentOrgId, startRecordDateTime, endRecordDateTime)
  51. if err == nil {
  52. c.ServeSuccessJSON(map[string]interface{}{
  53. "patients": chargePatient,
  54. })
  55. return
  56. } else {
  57. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
  58. return
  59. }
  60. }
  61. func (c *HisChargeApiController) UpdateFaPiaoRecordIsUse() {
  62. id, _ := c.GetInt64("id", 0)
  63. is_use, _ := c.GetInt64("is_use")
  64. if id <= 0 {
  65. utils.ErrorLog("id == 0")
  66. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  67. return
  68. }
  69. record, _ := service.FindFapiaoById(id)
  70. adminUserInfo := c.GetAdminUserInfo()
  71. service.UpdateFapiaoIsUse(adminUserInfo.CurrentOrgId)
  72. records := models.HisFapiaoRecord{
  73. ID: id,
  74. FapiaoCode: record.FapiaoCode,
  75. FapiaoNumber: record.FapiaoNumber,
  76. Ctime: time.Now().Unix(),
  77. Mtime: time.Now().Unix(),
  78. UserOrgId: adminUserInfo.CurrentOrgId,
  79. Status: 1,
  80. IsUse: is_use,
  81. }
  82. err := service.ModifyFapiao(&records)
  83. if err == nil {
  84. c.ServeSuccessJSON(map[string]interface{}{
  85. "fapiao_record": records,
  86. })
  87. } else {
  88. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
  89. }
  90. }
  91. func (c *HisChargeApiController) CreateFaPiaoRecord() {
  92. fapiao_code := c.GetString("fapiao_code")
  93. fapiao_number := c.GetString("fapiao_number")
  94. if len(fapiao_code) <= 0 {
  95. utils.ErrorLog("len(fapiao_code) == 0")
  96. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  97. return
  98. }
  99. if len(fapiao_number) <= 0 {
  100. utils.ErrorLog("len(fapiao_number) == 0")
  101. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  102. return
  103. }
  104. adminUserInfo := c.GetAdminUserInfo()
  105. record := models.HisFapiaoRecord{
  106. FapiaoCode: fapiao_code,
  107. FapiaoNumber: fapiao_number,
  108. Ctime: time.Now().Unix(),
  109. Mtime: time.Now().Unix(),
  110. UserOrgId: adminUserInfo.CurrentOrgId,
  111. Status: 1,
  112. IsUse: 0,
  113. }
  114. err, records := service.AddSigleFapiaoRecord(&record)
  115. if err == nil {
  116. c.ServeSuccessJSON(map[string]interface{}{
  117. "fapiao_record": records,
  118. })
  119. } else {
  120. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
  121. }
  122. }
  123. func (c *HisChargeApiController) ModifyFaPiaoRecord() {
  124. id, _ := c.GetInt64("id", 0)
  125. fapiao_code := c.GetString("fapiao_code")
  126. fapiao_number := c.GetString("fapiao_number")
  127. if id <= 0 {
  128. utils.ErrorLog("id == 0")
  129. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  130. return
  131. }
  132. if len(fapiao_code) <= 0 {
  133. utils.ErrorLog("len(fapiao_code) == 0")
  134. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  135. return
  136. }
  137. if len(fapiao_number) <= 0 {
  138. utils.ErrorLog("len(fapiao_number) == 0")
  139. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  140. return
  141. }
  142. record, _ := service.FindFapiaoById(id)
  143. adminUserInfo := c.GetAdminUserInfo()
  144. records := models.HisFapiaoRecord{
  145. ID: id,
  146. FapiaoCode: fapiao_code,
  147. FapiaoNumber: fapiao_number,
  148. Ctime: time.Now().Unix(),
  149. Mtime: time.Now().Unix(),
  150. UserOrgId: adminUserInfo.CurrentOrgId,
  151. Status: 1,
  152. IsUse: record.IsUse,
  153. }
  154. err := service.ModifyFapiao(&records)
  155. if err == nil {
  156. c.ServeSuccessJSON(map[string]interface{}{
  157. "fapiao_record": records,
  158. })
  159. } else {
  160. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
  161. }
  162. }
  163. func (c *HisChargeApiController) GetFaPiaoRecordList() {
  164. page, _ := c.GetInt64("page", 1)
  165. limit, _ := c.GetInt64("limit", 7)
  166. adminUserInfo := c.GetAdminUserInfo()
  167. fapiaoRecord, total, err := service.FindAllFapiaoList(adminUserInfo.CurrentOrgId, page, limit)
  168. if err == nil {
  169. c.ServeSuccessJSON(map[string]interface{}{
  170. "fapiao_record": fapiaoRecord,
  171. "total": total,
  172. })
  173. } else {
  174. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
  175. }
  176. }
  177. func (c *HisChargeApiController) DeleteFaPiaoRecord() {
  178. id, _ := c.GetInt64("id", 0)
  179. err := service.DeleteFapiaoById(id)
  180. if err == nil {
  181. c.ServeSuccessJSON(map[string]interface{}{
  182. "msg": "删除成功",
  183. })
  184. } else {
  185. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
  186. }
  187. }
  188. func (c *HisChargeApiController) GetFaPiaoRecord() {
  189. id, _ := c.GetInt64("id", 0)
  190. fapiaoRecord, err := service.FindFapiaoById(id)
  191. if err == nil {
  192. c.ServeSuccessJSON(map[string]interface{}{
  193. "fapiao_record": fapiaoRecord,
  194. })
  195. } else {
  196. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
  197. }
  198. }
  199. func (c *HisChargeApiController) GetChargeStatisticsDetail() {
  200. //c.ServeSuccessJSON(map[string]interface{}{
  201. // "msg": "接口优化升级,如有数据需要,请联系客服!",
  202. //})
  203. //return
  204. start_time := c.GetString("start_time")
  205. end_time := c.GetString("end_time")
  206. time_type := c.GetString("time_type")
  207. keyword := c.GetString("keyword")
  208. item_type, _ := c.GetInt64("type")
  209. adminUser := c.GetAdminUserInfo()
  210. timeLayout := "2006-01-02"
  211. loc, _ := time.LoadLocation("Local")
  212. startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
  213. if err != nil {
  214. }
  215. startRecordDateTime := startTime.Unix()
  216. endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
  217. if err != nil {
  218. }
  219. endRecordDateTime := endTime.Unix()
  220. switch item_type {
  221. case 0:
  222. chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
  223. chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
  224. chargeDrug = append(chargeDrug, chargeProject...)
  225. b, _ := structToBytes(chargeDrug)
  226. //cd, _ := compressData(b)
  227. // 使用 Gzip 压缩数据
  228. var compressedData bytes.Buffer
  229. writer := gzip.NewWriter(&compressedData)
  230. _, err = writer.Write(b)
  231. if err != nil {
  232. c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
  233. c.Ctx.WriteString(err.Error())
  234. return
  235. }
  236. writer.Close()
  237. // 设置响应头,表明数据经过了 Gzip 压缩
  238. c.Ctx.Output.Header("Content-Encoding", "gzip")
  239. // 发送压缩后的数据
  240. c.Ctx.ResponseWriter.Write(compressedData.Bytes())
  241. break
  242. case 1:
  243. chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
  244. //chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
  245. //chargeDrug = append(chargeDrug, chargeProject...)
  246. b, _ := structToBytes(chargeDrug)
  247. //cd, _ := compressData(b)
  248. // 使用 Gzip 压缩数据
  249. var compressedData bytes.Buffer
  250. writer := gzip.NewWriter(&compressedData)
  251. _, err = writer.Write(b)
  252. if err != nil {
  253. c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
  254. c.Ctx.WriteString(err.Error())
  255. return
  256. }
  257. writer.Close()
  258. // 设置响应头,表明数据经过了 Gzip 压缩
  259. c.Ctx.Output.Header("Content-Encoding", "gzip")
  260. // 发送压缩后的数据
  261. c.Ctx.ResponseWriter.Write(compressedData.Bytes())
  262. break
  263. case 2:
  264. //chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
  265. chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
  266. //chargeDrug = append(chargeDrug, chargeProject...)
  267. b, _ := structToBytes(chargeProject)
  268. //cd, _ := compressData(b)
  269. // 使用 Gzip 压缩数据
  270. var compressedData bytes.Buffer
  271. writer := gzip.NewWriter(&compressedData)
  272. _, err = writer.Write(b)
  273. if err != nil {
  274. c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
  275. c.Ctx.WriteString(err.Error())
  276. return
  277. }
  278. writer.Close()
  279. // 设置响应头,表明数据经过了 Gzip 压缩
  280. c.Ctx.Output.Header("Content-Encoding", "gzip")
  281. // 发送压缩后的数据
  282. c.Ctx.ResponseWriter.Write(compressedData.Bytes())
  283. break
  284. case 3:
  285. //chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
  286. chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
  287. //chargeDrug = append(chargeDrug, chargeProject...)
  288. b, _ := structToBytes(chargeProject)
  289. //cd, _ := compressData(b)
  290. // 使用 Gzip 压缩数据
  291. var compressedData bytes.Buffer
  292. writer := gzip.NewWriter(&compressedData)
  293. _, err = writer.Write(b)
  294. if err != nil {
  295. c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
  296. c.Ctx.WriteString(err.Error())
  297. return
  298. }
  299. writer.Close()
  300. // 设置响应头,表明数据经过了 Gzip 压缩
  301. c.Ctx.Output.Header("Content-Encoding", "gzip")
  302. // 发送压缩后的数据
  303. c.Ctx.ResponseWriter.Write(compressedData.Bytes())
  304. break
  305. case 4:
  306. //chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
  307. chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
  308. //chargeDrug = append(chargeDrug, chargeProject...)
  309. b, _ := structToBytes(chargeProject)
  310. //cd, _ := compressData(b)
  311. // 使用 Gzip 压缩数据
  312. var compressedData bytes.Buffer
  313. writer := gzip.NewWriter(&compressedData)
  314. _, err = writer.Write(b)
  315. if err != nil {
  316. c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
  317. c.Ctx.WriteString(err.Error())
  318. return
  319. }
  320. writer.Close()
  321. // 设置响应头,表明数据经过了 Gzip 压缩
  322. c.Ctx.Output.Header("Content-Encoding", "gzip")
  323. // 发送压缩后的数据
  324. c.Ctx.ResponseWriter.Write(compressedData.Bytes())
  325. break
  326. case 5:
  327. //chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
  328. chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
  329. //chargeDrug = append(chargeDrug, chargeProject...)
  330. b, _ := structToBytes(chargeProject)
  331. //cd, _ := compressData(b)
  332. // 使用 Gzip 压缩数据
  333. var compressedData bytes.Buffer
  334. writer := gzip.NewWriter(&compressedData)
  335. _, err = writer.Write(b)
  336. if err != nil {
  337. c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
  338. c.Ctx.WriteString(err.Error())
  339. return
  340. }
  341. writer.Close()
  342. // 设置响应头,表明数据经过了 Gzip 压缩
  343. c.Ctx.Output.Header("Content-Encoding", "gzip")
  344. // 发送压缩后的数据
  345. c.Ctx.ResponseWriter.Write(compressedData.Bytes())
  346. break
  347. case 6:
  348. //chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
  349. chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
  350. //chargeDrug = append(chargeDrug, chargeProject...)
  351. b, _ := structToBytes(chargeProject)
  352. //cd, _ := compressData(b)
  353. // 使用 Gzip 压缩数据
  354. var compressedData bytes.Buffer
  355. writer := gzip.NewWriter(&compressedData)
  356. _, err = writer.Write(b)
  357. if err != nil {
  358. c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
  359. c.Ctx.WriteString(err.Error())
  360. return
  361. }
  362. writer.Close()
  363. // 设置响应头,表明数据经过了 Gzip 压缩
  364. c.Ctx.Output.Header("Content-Encoding", "gzip")
  365. // 发送压缩后的数据
  366. c.Ctx.ResponseWriter.Write(compressedData.Bytes())
  367. break
  368. case 7:
  369. //chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
  370. chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
  371. //chargeDrug = append(chargeDrug, chargeProject...)
  372. b, _ := structToBytes(chargeProject)
  373. //cd, _ := compressData(b)
  374. // 使用 Gzip 压缩数据
  375. var compressedData bytes.Buffer
  376. writer := gzip.NewWriter(&compressedData)
  377. _, err = writer.Write(b)
  378. if err != nil {
  379. c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
  380. c.Ctx.WriteString(err.Error())
  381. return
  382. }
  383. writer.Close()
  384. // 设置响应头,表明数据经过了 Gzip 压缩
  385. c.Ctx.Output.Header("Content-Encoding", "gzip")
  386. // 发送压缩后的数据
  387. c.Ctx.ResponseWriter.Write(compressedData.Bytes())
  388. break
  389. }
  390. }
  391. func structToBytes(p []*models.NewChargeDetail) ([]byte, error) {
  392. data, err := json.Marshal(p)
  393. if err != nil {
  394. return nil, err
  395. }
  396. return data, nil
  397. }
  398. func compressData(data []byte) ([]byte, error) {
  399. var compressedData bytes.Buffer
  400. writer := gzip.NewWriter(&compressedData)
  401. _, err := writer.Write(data)
  402. if err != nil {
  403. return nil, err
  404. }
  405. err = writer.Close()
  406. if err != nil {
  407. return nil, err
  408. }
  409. return compressedData.Bytes(), nil
  410. }
  411. func (c *HisChargeApiController) GetChargeStatisticsSettle() {
  412. start_time := c.GetString("start_time")
  413. end_time := c.GetString("end_time")
  414. keyword := c.GetString("keyword")
  415. item_type, _ := c.GetInt64("type")
  416. adminUser := c.GetAdminUserInfo()
  417. timeLayout := "2006-01-02"
  418. loc, _ := time.LoadLocation("Local")
  419. startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
  420. if err != nil {
  421. }
  422. startRecordDateTime := startTime.Unix()
  423. endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
  424. if err != nil {
  425. }
  426. endRecordDateTime := endTime.Unix()
  427. chargePatient, err := service.GetAllPatientChargeSettle(adminUser.CurrentOrgId, startRecordDateTime, endRecordDateTime, keyword, item_type)
  428. if err == nil {
  429. c.ServeSuccessJSON(map[string]interface{}{
  430. "patients": chargePatient,
  431. })
  432. return
  433. } else {
  434. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
  435. return
  436. }
  437. }
  438. func (c *HisChargeApiController) GetHisInspectionList() {
  439. record_date := c.GetString("record_date")
  440. keyword := c.GetString("keyword")
  441. is_print, _ := c.GetInt64("is_print")
  442. page, _ := c.GetInt64("page")
  443. limit, _ := c.GetInt64("limit")
  444. tube_color, _ := c.GetInt64("tube_color")
  445. adminUser := c.GetAdminUserInfo()
  446. timeLayout := "2006-01-02"
  447. loc, _ := time.LoadLocation("Local")
  448. startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_date+" 00:00:00", loc)
  449. if err != nil {
  450. }
  451. record_time := startTime.Unix()
  452. var labels []*models.HisLabelPrintInfo
  453. var labels_two []*models.HisLabelPrintInfo
  454. var total int64
  455. var total_two int64
  456. //var err error
  457. if tube_color == 0 {
  458. labels, total, err = service.GetLabelPrintList(page, limit, adminUser.CurrentOrgId, record_time, is_print, keyword, tube_color)
  459. } else {
  460. labels, total, err = service.GetLabelPrintList(page, limit, adminUser.CurrentOrgId, record_time, is_print, keyword, tube_color)
  461. labels_two, total_two, err = service.GetLabelPrintListTwo(page, limit, adminUser.CurrentOrgId, record_time, is_print, keyword, tube_color)
  462. total = total + total_two
  463. labels = append(labels, labels_two...)
  464. }
  465. if err == nil {
  466. c.ServeSuccessJSON(map[string]interface{}{
  467. "labels": labels,
  468. "total": total,
  469. })
  470. return
  471. } else {
  472. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
  473. return
  474. }
  475. }
  476. func (c *HisChargeApiController) GetHisInspectionListTwo() {
  477. record_date := c.GetString("record_date")
  478. keyword := c.GetString("keyword")
  479. is_print, _ := c.GetInt64("is_print")
  480. tube_color, _ := c.GetInt64("tube_color")
  481. adminUser := c.GetAdminUserInfo()
  482. timeLayout := "2006-01-02"
  483. loc, _ := time.LoadLocation("Local")
  484. startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_date+" 00:00:00", loc)
  485. if err != nil {
  486. }
  487. record_time := startTime.Unix()
  488. var labels []*models.HisLabelPrintInfo
  489. //var labels_two []*models.HisLabelPrintInfo
  490. //var total int64
  491. //var total_two int64
  492. labels, _, err = service.GetLabelPrintListThree(adminUser.CurrentOrgId, record_time, is_print, keyword, tube_color)
  493. //labels_two, total_two, err = service.GetLabelPrintListFour(adminUser.CurrentOrgId, record_time, is_print, keyword, tube_color)
  494. //total = total + total_two
  495. //labels = append(labels, labels_two...)
  496. if err == nil {
  497. c.ServeSuccessJSON(map[string]interface{}{
  498. "labels": labels,
  499. //"total": total,
  500. })
  501. return
  502. } else {
  503. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
  504. return
  505. }
  506. }
  507. func (c *HisChargeApiController) GetHisInspectionInfo() {
  508. id, _ := c.GetInt64("id")
  509. label, err := service.GetLabelPrintInfo(id)
  510. if err == nil {
  511. c.ServeSuccessJSON(map[string]interface{}{
  512. "label": label,
  513. })
  514. return
  515. } else {
  516. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
  517. return
  518. }
  519. }
  520. func (c *HisChargeApiController) GetHisYidiClearRecord() {
  521. records, err := service.FindHisYidiClearRecord(c.GetAdminUserInfo().CurrentOrgId)
  522. if err == nil {
  523. c.ServeSuccessJSON(map[string]interface{}{
  524. "list": records,
  525. })
  526. return
  527. } else {
  528. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
  529. return
  530. }
  531. }
  532. func (c *HisChargeApiController) GetAllPatient() {
  533. patients, err := service.GetAllPatientTwo(c.GetAdminUserInfo().CurrentOrgId)
  534. if err == nil {
  535. c.ServeSuccessJSON(map[string]interface{}{
  536. "list": patients,
  537. })
  538. return
  539. } else {
  540. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
  541. return
  542. }
  543. }
  544. func (c *HisChargeApiController) GetStatisticsDetail() {
  545. start_time := c.GetString("start_time")
  546. end_time := c.GetString("end_time")
  547. keyword := c.GetString("keyword")
  548. item_type, _ := c.GetInt64("type")
  549. p_type, _ := c.GetInt64("p_type")
  550. patinet_id, _ := c.GetInt64("patinet_id")
  551. adminUser := c.GetAdminUserInfo()
  552. timeLayout := "2006-01-02"
  553. loc, _ := time.LoadLocation("Local")
  554. startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
  555. if err != nil {
  556. }
  557. startRecordDateTime := startTime.Unix()
  558. endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
  559. if err != nil {
  560. }
  561. endRecordDateTime := endTime.Unix()
  562. chargePatient, err := service.GetPatientChargeDetails(patinet_id, adminUser.CurrentOrgId, startRecordDateTime, endRecordDateTime, keyword, item_type, p_type)
  563. if err == nil {
  564. c.ServeSuccessJSON(map[string]interface{}{
  565. "patients": chargePatient,
  566. })
  567. return
  568. } else {
  569. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
  570. return
  571. }
  572. }
  573. func (c *HisChargeApiController) GetStatisticsGather() {
  574. start_time := c.GetString("start_time")
  575. end_time := c.GetString("end_time")
  576. keyword := c.GetString("keyword")
  577. item_type, _ := c.GetInt64("type")
  578. adminUser := c.GetAdminUserInfo()
  579. timeLayout := "2006-01-02"
  580. loc, _ := time.LoadLocation("Local")
  581. startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
  582. if err != nil {
  583. }
  584. startRecordDateTime := startTime.Unix()
  585. endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
  586. if err != nil {
  587. }
  588. endRecordDateTime := endTime.Unix()
  589. chargePatient, err := service.GetAllPatientChargeDetails(adminUser.CurrentOrgId, startRecordDateTime, endRecordDateTime, keyword, item_type)
  590. if err == nil {
  591. c.ServeSuccessJSON(map[string]interface{}{
  592. "patients": chargePatient,
  593. })
  594. return
  595. } else {
  596. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
  597. return
  598. }
  599. }