self_drug_api_congtroller.go 23KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730
  1. package controllers
  2. import (
  3. "XT_New/enums"
  4. "XT_New/models"
  5. "XT_New/service"
  6. "encoding/json"
  7. "fmt"
  8. "github.com/astaxie/beego"
  9. "github.com/jinzhu/gorm"
  10. "strconv"
  11. "strings"
  12. "time"
  13. )
  14. type SelfDrugApiController struct {
  15. BaseAuthAPIController
  16. }
  17. func SelfDrugRouters() {
  18. beego.Router("/api/drug/getcurrentpatient", &SelfDrugApiController{}, "Get:GetCurrentPatient")
  19. beego.Router("/api/drug/getalldrugname", &SelfDrugApiController{}, "Get:GetAllDrugName")
  20. beego.Router("/api/drug/savedrugname", &SelfDrugApiController{}, "Get:SaveDrugName")
  21. beego.Router("/api/drug/getdrugnamelist", &SelfDrugApiController{}, "Get:GetDrugNameList")
  22. beego.Router("/api/drug/getrullename", &SelfDrugApiController{}, "Get:GetRulleName")
  23. beego.Router("/api/drug/getunitbybaseid", &SelfDrugApiController{}, "Get:GetUnitByBaseId")
  24. beego.Router("/api/drug/saverullename", &SelfDrugApiController{}, "Get:SaveRulleName")
  25. beego.Router("/api/drug/editrullername", &SelfDrugApiController{}, "Get:EditRullerName")
  26. beego.Router("/api/drug/updatedrullername", &SelfDrugApiController{}, "Get:UpdatedRullerName")
  27. beego.Router("/api/drug/getalldrugnamelist", &SelfDrugApiController{}, "Get:GetAllDrugNameList")
  28. beego.Router("/api/drug/getrulllistbydrugname", &SelfDrugApiController{}, "Get:GetRullerListByDrugName")
  29. beego.Router("/api/drug/saveselfmedicines", &SelfDrugApiController{}, "Post:SaveSelfMedicines")
  30. beego.Router("/api/drug/getcurrentorgallstaff", &SelfDrugApiController{}, "Get:GetCurrentOrgAllStaff")
  31. beego.Router("/api/drug/savestock", &SelfDrugApiController{}, "Post:SaveStock")
  32. beego.Router("/api/drug/saveoutstock", &SelfDrugApiController{}, "Post:SaveOutStock")
  33. beego.Router("/api/drug/deletedrugbyid", &SelfDrugApiController{}, "Get:DeleteDrugById")
  34. beego.Router("/api/drug/saveradio", &SelfDrugApiController{}, "Get:SaveRadio")
  35. beego.Router("/api/drug/deletedrugstand", &SelfDrugApiController{}, "Get:DeleteDrugStand")
  36. beego.Router("/api/drug/getstocklist", &SelfDrugApiController{}, "Get:GetStockList")
  37. beego.Router("/api/drug/deletedrugname", &SelfDrugApiController{}, "Get:DeleteDrugName")
  38. beego.Router("/api/drug/getdrugdetail", &SelfDrugApiController{}, "Get:GetDrugDetail")
  39. beego.Router("/api/drug/getallpatientstocklist", &SelfDrugApiController{}, "Get:GetAllPatientStockList")
  40. beego.Router("/api/drug/getdrugdatabypatientid", &SelfDrugApiController{}, "Get:GetDrugDataByPatientId")
  41. beego.Router("/api/drug/getselfmedicallist", &SelfDrugApiController{}, "Get:GetSelfMedicalList")
  42. beego.Router("/api/drug/getdrugdescbydrugname", &SelfDrugApiController{}, "Get:GetDrugDescByDrugName")
  43. beego.Router("/api/drug/getdrugset", &SelfDrugApiController{}, "Get:GetDrugSet")
  44. }
  45. func (this *SelfDrugApiController) GetCurrentPatient() {
  46. adminUserInfo := this.GetAdminUserInfo()
  47. orgId := adminUserInfo.CurrentOrgId
  48. patient, err := service.GetCurrentPatient(orgId)
  49. if err != nil {
  50. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  51. return
  52. }
  53. this.ServeSuccessJSON(map[string]interface{}{
  54. "patient": patient,
  55. })
  56. }
  57. func (this *SelfDrugApiController) GetAllDrugName() {
  58. adminUserInfo := this.GetAdminUserInfo()
  59. orgId := adminUserInfo.CurrentOrgId
  60. //查询药品库是否开启
  61. //configStock, _ := service.GetDrugStockConfig(orgId)
  62. //if configStock.IsOpen == 1 {
  63. //
  64. //}
  65. drugName, err := service.GetAllDrugName(orgId)
  66. if err != nil {
  67. this.ServeFailJsonSend(enums.ErrorCodeDataException, "查寻成功")
  68. return
  69. }
  70. this.ServeSuccessJSON(map[string]interface{}{
  71. "drugName": drugName,
  72. })
  73. }
  74. func (this *SelfDrugApiController) SaveDrugName() {
  75. adminUserInfo := this.GetAdminUserInfo()
  76. orgId := adminUserInfo.CurrentOrgId
  77. drug_name := this.GetString("drug_name")
  78. id, _ := this.GetInt64("id")
  79. //fmt.Println("drug_name", drug_name)
  80. drugName := models.XtDrugName{
  81. UserOrgId: orgId,
  82. DrugName: drug_name,
  83. Status: 1,
  84. CreatedTime: time.Now().Unix(),
  85. DrugId: id,
  86. }
  87. _, errcode := service.GetDrugName(drug_name, orgId)
  88. if errcode == gorm.ErrRecordNotFound {
  89. err := service.SaveDrugName(&drugName)
  90. if err != nil {
  91. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  92. return
  93. }
  94. this.ServeSuccessJSON(map[string]interface{}{
  95. "drugName": drugName,
  96. })
  97. } else {
  98. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist)
  99. return
  100. }
  101. }
  102. func (this *SelfDrugApiController) GetDrugNameList() {
  103. adminUserInfo := this.GetAdminUserInfo()
  104. orgId := adminUserInfo.CurrentOrgId
  105. list, err := service.GetDrugNameList(orgId)
  106. if err != nil {
  107. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  108. return
  109. }
  110. this.ServeSuccessJSON(map[string]interface{}{
  111. "list": list,
  112. })
  113. }
  114. func (this *SelfDrugApiController) GetRulleName() {
  115. adminUserInfo := this.GetAdminUserInfo()
  116. orgId := adminUserInfo.CurrentOrgId
  117. name := this.GetString("name")
  118. rulleName, err := service.GetRulleName(orgId, name)
  119. rullerList, err := service.GetRulleList(orgId, name)
  120. if err != nil {
  121. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  122. return
  123. }
  124. this.ServeSuccessJSON(map[string]interface{}{
  125. "rulleName": rulleName,
  126. "rullerList": rullerList,
  127. })
  128. }
  129. func (this *SelfDrugApiController) GetUnitByBaseId() {
  130. id, _ := this.GetInt64("id")
  131. baseList, err := service.GetUnitByBaseId(id)
  132. if err != nil {
  133. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  134. return
  135. }
  136. this.ServeSuccessJSON(map[string]interface{}{
  137. "baseList": baseList,
  138. })
  139. }
  140. func (this *SelfDrugApiController) SaveRulleName() {
  141. drug_name := this.GetString("drug_name")
  142. drug_spec := this.GetString("drug_spec")
  143. drug_stock_limit := this.GetString("drug_stock_limit")
  144. drug_name_id, _ := this.GetInt64("drug_name_id")
  145. price, _ := this.GetInt64("price")
  146. prices := strconv.FormatInt(price, 10)
  147. durg_price, _ := strconv.ParseFloat(prices, 64)
  148. unit := this.GetString("unit")
  149. adminUserInfo := this.GetAdminUserInfo()
  150. orgId := adminUserInfo.CurrentOrgId
  151. fmt.Println(drug_name, drug_stock_limit, unit, price, drug_spec, orgId)
  152. drugSpecName := models.XtStandName{
  153. DrugName: drug_name,
  154. DrugSpec: drug_spec,
  155. DrugStockLimit: drug_stock_limit,
  156. DrugNameId: drug_name_id,
  157. Price: durg_price,
  158. MinUnit: unit,
  159. UserOrgId: orgId,
  160. Status: 1,
  161. CreatedTime: time.Now().Unix(),
  162. }
  163. err := service.SaveRulleName(&drugSpecName)
  164. if err != nil {
  165. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  166. return
  167. }
  168. this.ServeSuccessJSON(map[string]interface{}{
  169. "RullerName": drugSpecName,
  170. })
  171. }
  172. func (this *SelfDrugApiController) EditRullerName() {
  173. id, _ := this.GetInt64("id")
  174. rullerDetail, err := service.GetRullerNameDetail(id)
  175. if err != nil {
  176. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  177. return
  178. }
  179. this.ServeSuccessJSON(map[string]interface{}{
  180. "rullerDetail": rullerDetail,
  181. })
  182. }
  183. func (this *SelfDrugApiController) UpdatedRullerName() {
  184. id, _ := this.GetInt64("id")
  185. drug_name := this.GetString("drug_name")
  186. drug_stock_limit := this.GetString("drug_stock_limit")
  187. price, _ := this.GetInt64("price")
  188. prices := strconv.FormatInt(price, 10)
  189. durg_price, _ := strconv.ParseFloat(prices, 64)
  190. drug_spec := this.GetString("drug_spec")
  191. unit := this.GetString("unit")
  192. drug_name_id, _ := this.GetInt64("drug_name_id")
  193. RullerName := models.XtStandName{
  194. DrugName: drug_name,
  195. DrugStockLimit: drug_stock_limit,
  196. Price: durg_price,
  197. DrugSpec: drug_spec,
  198. MinUnit: unit,
  199. DrugNameId: drug_name_id,
  200. }
  201. err := service.UpdatedRullerName(id, &RullerName)
  202. if err != nil {
  203. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  204. return
  205. }
  206. this.ServeSuccessJSON(map[string]interface{}{
  207. "RullerName": RullerName,
  208. })
  209. }
  210. func (this *SelfDrugApiController) GetAllDrugNameList() {
  211. adminUserInfo := this.GetAdminUserInfo()
  212. orgId := adminUserInfo.CurrentOrgId
  213. rullerName, err := service.GetAllDrugNameList(orgId)
  214. if err != nil {
  215. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  216. return
  217. }
  218. this.ServeSuccessJSON(map[string]interface{}{
  219. "rullerName": rullerName,
  220. })
  221. }
  222. func (this *SelfDrugApiController) GetRullerListByDrugName() {
  223. drug_name := this.GetString("drug_name")
  224. fmt.Println(drug_name)
  225. adminUserInfo := this.GetAdminUserInfo()
  226. orgId := adminUserInfo.CurrentOrgId
  227. fmt.Println("orgid", orgId)
  228. drugName, err := service.GetRullerListByDrugName(drug_name, orgId)
  229. if err != nil {
  230. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  231. return
  232. }
  233. this.ServeSuccessJSON(map[string]interface{}{
  234. "drugName": drugName,
  235. })
  236. }
  237. func (this *SelfDrugApiController) SaveSelfMedicines() {
  238. dataBody := make(map[string]interface{}, 0)
  239. err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
  240. fmt.Println(err)
  241. patient_id := int64(dataBody["patient_id"].(float64))
  242. medicineData, _ := dataBody["medicineData"].([]interface{})
  243. adminUserInfo := this.GetAdminUserInfo()
  244. orgId := adminUserInfo.CurrentOrgId
  245. for _, item := range medicineData {
  246. items := item.(map[string]interface{})
  247. drug_name := items["drug_name"].(string)
  248. drug_name_id := int64(items["drug_name_id"].(float64))
  249. drug_spec := items["drug_spec"].(string)
  250. min_unit := items["min_unit"].(string)
  251. //根据drug_id
  252. drugMedical, _ := service.GetBaseDrugMedical(drug_name_id)
  253. medical := models.XtSelfMedical{
  254. DrugName: drug_name,
  255. DrugNameId: drug_name_id,
  256. DrugSpec: drug_spec,
  257. CreatedTime: time.Now().Unix(),
  258. Status: 1,
  259. UserOrgId: orgId,
  260. PatientId: patient_id,
  261. MinUnit: min_unit,
  262. ExecutionFrequency: drugMedical.ExecutionFrequency,
  263. PrescribingNumber: drugMedical.PrescribingNumber,
  264. DeliveryWay: drugMedical.DeliveryWay,
  265. SingleDose: drugMedical.SingleDose,
  266. }
  267. //查询同个病人同个药品同个规格是否已存在
  268. _, errcode := service.GetSelfMedicalByDrugName(drug_name, drug_spec, patient_id)
  269. if errcode == gorm.ErrRecordNotFound {
  270. err := service.CreateSelfMedical(&medical)
  271. fmt.Println(err)
  272. } else if errcode == nil {
  273. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist)
  274. return
  275. }
  276. }
  277. returnData := make(map[string]interface{}, 0)
  278. returnData["msg"] = "ok"
  279. this.ServeSuccessJSON(returnData)
  280. return
  281. }
  282. func (this *SelfDrugApiController) GetCurrentOrgAllStaff() {
  283. adminUserInfo := this.GetAdminUserInfo()
  284. orgid := adminUserInfo.CurrentOrgId
  285. //fmt.Println(orgid)
  286. appId := adminUserInfo.CurrentAppId
  287. staff, err := service.GetCurrentOrgAllStaff(orgid, appId)
  288. if err != nil {
  289. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  290. return
  291. }
  292. this.ServeSuccessJSON(map[string]interface{}{
  293. "staff": staff,
  294. })
  295. }
  296. func (this *SelfDrugApiController) SaveStock() {
  297. timeLayout := "2006-01-02"
  298. loc, _ := time.LoadLocation("Local")
  299. start_time := this.GetString("start_time")
  300. fmt.Println("start_time", start_time)
  301. admin_user_id, _ := this.GetInt64("admin_user_id")
  302. fmt.Println("admin_user_id", admin_user_id)
  303. patient_id, _ := this.GetInt64("patient_id")
  304. dataBody := make(map[string]interface{}, 0)
  305. err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
  306. fmt.Println(err)
  307. stocks, _ := dataBody["stocks"].([]interface{})
  308. adminUserInfo := this.GetAdminUserInfo()
  309. orgId := adminUserInfo.CurrentOrgId
  310. for _, item := range stocks {
  311. items := item.(map[string]interface{})
  312. drug_name := items["drug_name"].(string)
  313. fmt.Println("drug_name", drug_name)
  314. drug_name_id := int64(items["drug_name_id"].(float64))
  315. fmt.Println("parient_id", drug_name_id)
  316. drug_spec := items["drug_spec"].(string)
  317. store_number := items["store_number"].(string)
  318. fmt.Println("store_number", store_number)
  319. storeNumber, _ := strconv.ParseInt(store_number, 10, 64)
  320. remarks := items["remarks"].(string)
  321. min_unit := items["min_unit"].(string)
  322. medic_id := int64(items["id"].(float64))
  323. timeStr := time.Now().Format("2006-01-02")
  324. timeArr := strings.Split(timeStr, "-")
  325. total, _ := service.FindAllWarehouseOut(adminUserInfo.CurrentOrgId)
  326. total = total + 1
  327. warehousing_in_order := strconv.FormatInt(adminUserInfo.CurrentOrgId, 10) + timeArr[0] + timeArr[1] + timeArr[2] + "000"
  328. number, _ := strconv.ParseInt(warehousing_in_order, 10, 64)
  329. number = number + total
  330. warehousing_in_order = "RKD" + strconv.FormatInt(number, 10)
  331. theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
  332. stock := models.XtSelfStock{
  333. DrugName: drug_name,
  334. DrugNameId: drug_name_id,
  335. DrugSpec: drug_spec,
  336. StoreNumber: storeNumber,
  337. Remarks: remarks,
  338. AdminUserId: admin_user_id,
  339. StorckTime: theTime.Unix(),
  340. CreatedTime: time.Now().Unix(),
  341. Status: 1,
  342. UserOrgId: orgId,
  343. StockInNumber: warehousing_in_order,
  344. PatientId: patient_id,
  345. MinUnit: min_unit,
  346. StorageMode: 1,
  347. MedicId: medic_id,
  348. }
  349. err := service.CreateStock(&stock)
  350. fmt.Println("err", err)
  351. }
  352. returnData := make(map[string]interface{}, 0)
  353. returnData["msg"] = "ok"
  354. this.ServeSuccessJSON(returnData)
  355. return
  356. }
  357. func (this *SelfDrugApiController) SaveOutStock() {
  358. timeLayout := "2006-01-02"
  359. loc, _ := time.LoadLocation("Local")
  360. start_time := this.GetString("start_time")
  361. admin_user_id, _ := this.GetInt64("admin_user_id")
  362. patient_id, _ := this.GetInt64("patient_id")
  363. dataBody := make(map[string]interface{}, 0)
  364. err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
  365. fmt.Println(err)
  366. outStocks, _ := dataBody["outStocks"].([]interface{})
  367. adminUserInfo := this.GetAdminUserInfo()
  368. orgId := adminUserInfo.CurrentOrgId
  369. for _, item := range outStocks {
  370. items := item.(map[string]interface{})
  371. drug_name := items["drug_name"].(string)
  372. drug_name_id := int64(items["drug_name_id"].(float64))
  373. drug_spec := items["drug_spec"].(string)
  374. outstore_number := items["outstore_number"].(string)
  375. outStoreNumber, _ := strconv.ParseInt(outstore_number, 10, 64)
  376. remarks := items["remarks"].(string)
  377. medic_id := int64(items["id"].(float64))
  378. timeStr := time.Now().Format("2006-01-02")
  379. timeArr := strings.Split(timeStr, "-")
  380. total, _ := service.FindAllWarehouseOut(adminUserInfo.CurrentOrgId)
  381. total = total + 1
  382. warehousing_out_order := strconv.FormatInt(adminUserInfo.CurrentOrgId, 10) + timeArr[0] + timeArr[1] + timeArr[2] + "000"
  383. number, _ := strconv.ParseInt(warehousing_out_order, 10, 64)
  384. number = number + total
  385. warehousing_out_order = "CKD" + strconv.FormatInt(number, 10)
  386. fmt.Println(remarks)
  387. fmt.Println(items)
  388. theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
  389. stock := models.XtSelfOutStock{
  390. DrugName: drug_name,
  391. DrugNameId: drug_name_id,
  392. DrugSpec: drug_spec,
  393. OutstoreNumber: outStoreNumber,
  394. Remarks: remarks,
  395. AdminUserId: admin_user_id,
  396. StorckTime: theTime.Unix(),
  397. CreatedTime: time.Now().Unix(),
  398. Status: 1,
  399. UserOrgId: orgId,
  400. StockOutNumber: warehousing_out_order,
  401. PatientId: patient_id,
  402. ExitMode: 1,
  403. MedicId: medic_id,
  404. }
  405. err := service.CreateOutStock(&stock)
  406. fmt.Println("err", err)
  407. }
  408. returnData := make(map[string]interface{}, 0)
  409. returnData["msg"] = "ok"
  410. this.ServeSuccessJSON(returnData)
  411. return
  412. }
  413. func (this *SelfDrugApiController) DeleteDrugById() {
  414. id, _ := this.GetInt64("id")
  415. drug_name := this.GetString("drug_name")
  416. fmt.Println("drug_name", drug_name)
  417. adminUserInfo := this.GetAdminUserInfo()
  418. orgId := adminUserInfo.CurrentOrgId
  419. _, errcode := service.GetStandDrugByDrugName(drug_name, orgId)
  420. fmt.Println("errcode2222222222222", errcode)
  421. if errcode == gorm.ErrRecordNotFound {
  422. service.DeleteDrugName(id)
  423. returnData := make(map[string]interface{}, 0)
  424. returnData["msg"] = "ok"
  425. this.ServeSuccessJSON(returnData)
  426. } else if errcode == nil {
  427. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist)
  428. return
  429. }
  430. }
  431. func (this *SelfDrugApiController) SaveRadio() {
  432. radio, _ := this.GetInt64("radio")
  433. adminUserInfo := this.GetAdminUserInfo()
  434. orgId := adminUserInfo.CurrentOrgId
  435. drugSet := models.XtDrugSet{
  436. DrugStart: radio,
  437. UserOrgId: orgId,
  438. Status: 1,
  439. CreatedTime: time.Now().Unix(),
  440. }
  441. _, errcode := service.GetDrugSetByUserOrgId(orgId)
  442. if errcode == gorm.ErrRecordNotFound {
  443. err := service.SaveRadio(&drugSet)
  444. if err != nil {
  445. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  446. return
  447. }
  448. this.ServeSuccessJSON(map[string]interface{}{
  449. "drugSet": drugSet,
  450. })
  451. } else if errcode == nil {
  452. err := service.UpdateDrugSet(&drugSet, orgId)
  453. if err != nil {
  454. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  455. return
  456. }
  457. this.ServeSuccessJSON(map[string]interface{}{
  458. "drugSet": drugSet,
  459. })
  460. }
  461. }
  462. func (this *SelfDrugApiController) DeleteDrugStand() {
  463. id, _ := this.GetInt64("id")
  464. err := service.DeleteDrugStand(id)
  465. fmt.Println(err)
  466. returnData := make(map[string]interface{}, 0)
  467. returnData["msg"] = "ok"
  468. this.ServeSuccessJSON(returnData)
  469. }
  470. func (this *SelfDrugApiController) GetStockList() {
  471. patientid, _ := this.GetInt64("id")
  472. start_time := this.GetString("start_time")
  473. fmt.Println("开始时间", start_time)
  474. timeLayout := "2006-01-02"
  475. loc, _ := time.LoadLocation("Local")
  476. theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
  477. startimeUnix := theTime.Unix()
  478. keyword := this.GetString("keyword")
  479. fmt.Println("keyword", keyword)
  480. adminUserInfo := this.GetAdminUserInfo()
  481. orgId := adminUserInfo.CurrentOrgId
  482. //获取
  483. medicalList, _ := service.GetMedicalList(patientid, orgId, keyword)
  484. //统计总数量
  485. stocklist, err := service.GetStockList(patientid, startimeUnix, keyword, orgId)
  486. //统计出库数量
  487. outStocklist, err := service.GetOutStockList(patientid, startimeUnix, keyword, orgId)
  488. if err != nil {
  489. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  490. return
  491. }
  492. this.ServeSuccessJSON(map[string]interface{}{
  493. "medicalList": medicalList,
  494. "stocklist": stocklist,
  495. "outStocklist": outStocklist,
  496. })
  497. }
  498. func (this *SelfDrugApiController) DeleteDrugName() {
  499. drug_name := this.GetString("drugname")
  500. patient_id, _ := this.GetInt64("patientid")
  501. //查询该药品是否出库
  502. stocklist, _ := service.GetStockOutDetail(drug_name, patient_id)
  503. if len(stocklist) == 0 {
  504. //删除该药品
  505. service.DeleteDrugStockNumber(drug_name, patient_id)
  506. returnData := make(map[string]interface{}, 0)
  507. returnData["msg"] = "ok"
  508. this.ServeSuccessJSON(returnData)
  509. } else {
  510. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist)
  511. return
  512. }
  513. }
  514. func (this *SelfDrugApiController) GetDrugDetail() {
  515. timeLayout := "2006-01-02"
  516. loc, _ := time.LoadLocation("Local")
  517. drug_name := this.GetString("drug_name")
  518. drug_spec := this.GetString("drug_spec")
  519. start_time := this.GetString("start_time")
  520. startTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
  521. end_time := this.GetString("end_time")
  522. endTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 00:00:00", loc)
  523. patient_id, _ := this.GetInt64("patient_id")
  524. adminUserInfo := this.GetAdminUserInfo()
  525. orgId := adminUserInfo.CurrentOrgId
  526. //查询入库明细
  527. stockDetail, err := service.GetStockDetail(drug_name, drug_spec, startTime.Unix(), endTime.Unix(), patient_id, orgId)
  528. //查询出库明细
  529. outStockDetail, err := service.GetOutStockDetail(drug_name, drug_spec, startTime.Unix(), endTime.Unix(), patient_id, orgId)
  530. if err != nil {
  531. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  532. return
  533. }
  534. this.ServeSuccessJSON(map[string]interface{}{
  535. "stockDetail": stockDetail,
  536. "outStockDetail": outStockDetail,
  537. })
  538. }
  539. func (this *SelfDrugApiController) GetAllPatientStockList() {
  540. timeLayout := "2006-01-02"
  541. loc, _ := time.LoadLocation("Local")
  542. drug_name := this.GetString("drug_name")
  543. drug_spec := this.GetString("drug_spec")
  544. start_time := this.GetString("start_time")
  545. theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
  546. startUnix := theTime.Unix()
  547. end_time := this.GetString("end_time")
  548. endTimes, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 00:00:00", loc)
  549. endTimeUnix := endTimes.Unix()
  550. keywords := this.GetString("search_input")
  551. adminUserInfo := this.GetAdminUserInfo()
  552. orgId := adminUserInfo.CurrentOrgId
  553. //入库
  554. stocklist, err := service.GetAllPatientStockList(drug_name, drug_spec, startUnix, endTimeUnix, keywords, orgId)
  555. //出库
  556. outStockList, err := service.GetAllPatientOutStockList(drug_name, drug_spec, startUnix, endTimeUnix, keywords, orgId)
  557. if err != nil {
  558. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  559. return
  560. }
  561. this.ServeSuccessJSON(map[string]interface{}{
  562. "stocklist": stocklist,
  563. "outStockList": outStockList,
  564. })
  565. }
  566. func (this *SelfDrugApiController) GetDrugDataByPatientId() {
  567. patient_id, _ := this.GetInt64("patient_id")
  568. fmt.Println("patient_id", patient_id)
  569. medicalList, err := service.GetDrugDataByPatientId(patient_id)
  570. if err != nil {
  571. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  572. return
  573. }
  574. this.ServeSuccessJSON(map[string]interface{}{
  575. "medicalList": medicalList,
  576. })
  577. }
  578. func (this *SelfDrugApiController) GetSelfMedicalList() {
  579. patient_id, _ := this.GetInt64("patient_id")
  580. adminUserInfo := this.GetAdminUserInfo()
  581. orgId := adminUserInfo.CurrentOrgId
  582. //查询该机构是否开启自备药
  583. medical, _ := service.GetSetSelfMedical(orgId)
  584. //查询该机构下的药品库
  585. drugName, _ := service.GetAllDrugName(orgId)
  586. //开启
  587. if medical.DrugStart == 1 {
  588. list, err := service.GetSelfMedicalList(patient_id)
  589. if err != nil {
  590. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  591. return
  592. }
  593. this.ServeSuccessJSON(map[string]interface{}{
  594. "medicalList": list,
  595. "drugName": drugName,
  596. })
  597. } else {
  598. this.ServeSuccessJSON(map[string]interface{}{
  599. "drugName": drugName,
  600. })
  601. }
  602. }
  603. func (this *SelfDrugApiController) GetDrugDescByDrugName() {
  604. drug_name := this.GetString("drug_name")
  605. patient_id, _ := this.GetInt64("patient_id")
  606. way, _ := this.GetInt64("way")
  607. adminUserInfo := this.GetAdminUserInfo()
  608. orgId := adminUserInfo.CurrentOrgId
  609. drug_id, _ := this.GetInt64("id")
  610. //从基础库查询
  611. if way == 1 {
  612. //查询基础库数据
  613. medcal, err := service.GetBaseMedcal(drug_name, orgId)
  614. //统计入库数量
  615. countInfo, err := service.GetTotalBaseMedicalCount(drug_id, orgId)
  616. //统计出库数量
  617. countout, err := service.GetTotalBaseMedicalCountOut(drug_id, orgId)
  618. if err != nil {
  619. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  620. return
  621. }
  622. this.ServeSuccessJSON(map[string]interface{}{
  623. "drugspec": medcal,
  624. "countInfo": countInfo,
  625. "countout": countout,
  626. })
  627. }
  628. //从自备药库查询
  629. if way == 2 {
  630. drugspec, err := service.GetDrugDescByDrugName(drug_name, patient_id, orgId)
  631. if err != nil {
  632. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  633. return
  634. }
  635. this.ServeSuccessJSON(map[string]interface{}{
  636. "drugspec": drugspec,
  637. })
  638. }
  639. }
  640. func (this *SelfDrugApiController) GetDrugSet() {
  641. adminUserInfo := this.GetAdminUserInfo()
  642. orgId := adminUserInfo.CurrentOrgId
  643. drugSet, err := service.GetDrugSet(orgId)
  644. if err != nil {
  645. this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
  646. return
  647. }
  648. this.ServeSuccessJSON(map[string]interface{}{
  649. "drugSet": drugSet,
  650. })
  651. }