self_drug_service.go 21KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496
  1. package service
  2. import (
  3. "XT_New/models"
  4. "fmt"
  5. "github.com/jinzhu/gorm"
  6. )
  7. func GetCurrentPatient(orgid int64) (patients []*models.DrugPatients, err error) {
  8. err = XTReadDB().Where("user_org_id = ? and status = 1", orgid).Find(&patients).Error
  9. return patients, err
  10. }
  11. func GetAllDrugName(orgid int64) (baseDrug []*models.XtBaseDrug, err error) {
  12. err = XTReadDB().Group("drug_name").Where("org_id = ? and status = 1 and find_in_set('停用',drug_status) = 0", orgid).Find(&baseDrug).Error
  13. return baseDrug, err
  14. }
  15. func GetDrugName(drugname string, orgid int64) (*models.XtDrugName, error) {
  16. drugName := models.XtDrugName{}
  17. err := XTReadDB().Model(&drugName).Where("drug_name = ? and user_org_id = ? and status =1", drugname, orgid).Find(&drugName).Error
  18. if err == gorm.ErrRecordNotFound {
  19. return nil, err
  20. }
  21. if err != nil {
  22. return nil, err
  23. }
  24. return &drugName, nil
  25. }
  26. func SaveDrugName(drugname *models.XtDrugName) error {
  27. err := XTWriteDB().Create(&drugname).Error
  28. return err
  29. }
  30. func GetDrugNameList(orgid int64) (druname []*models.XtDrugName, err error) {
  31. err = XTReadDB().Model(&druname).Where("user_org_id = ? and status = 1", orgid).Find(&druname).Error
  32. return druname, err
  33. }
  34. func GetRulleName(orgid int64, name string) (baseDrug []*models.XtBaseDrug, err error) {
  35. err = XTReadDB().Model(&baseDrug).Where("org_id = ? and drug_name = ? and status = 1", orgid, name).Find(&baseDrug).Error
  36. return baseDrug, err
  37. }
  38. func GetRulleList(orgid int64, name string) (rulleName []*models.XtStandName, err error) {
  39. err = XTReadDB().Model(&rulleName).Where("user_org_id = ? and drug_name = ? and status = 1", orgid, name).Find(&rulleName).Error
  40. return rulleName, err
  41. }
  42. func GetUnitByBaseId(id int64) (models.XtBaseDrug, error) {
  43. drug := models.XtBaseDrug{}
  44. err := XTReadDB().Model(&drug).Where("id = ? and status = 1", id).Find(&drug).Error
  45. return drug, err
  46. }
  47. func SaveRulleName(rullName *models.XtStandName) error {
  48. err := XTWriteDB().Model(&rullName).Create(&rullName).Error
  49. return err
  50. }
  51. func GetRullerNameDetail(id int64) (models.XtStandName, error) {
  52. rullerName := models.XtStandName{}
  53. err := XTReadDB().Model(&rullerName).Where("id= ? and status = 1", id).Find(&rullerName).Error
  54. return rullerName, err
  55. }
  56. func UpdatedRullerName(id int64, re *models.XtStandName) error {
  57. err := XTWriteDB().Model(&re).Where("id=?", id).Update(map[string]interface{}{"drug_spec": re.DrugSpec, "min_unit": re.MinUnit, "price": re.Price, "drug_stock_limit": re.DrugStockLimit, "drug_name": re.DrugName, "drug_name_id": re.DrugNameId}).Error
  58. return err
  59. }
  60. func GetAllDrugNameList(orgid int64) (rullername []*models.XtStandName, err error) {
  61. err = XTReadDB().Group("drug_name").Model(&rullername).Where("user_org_id = ? and status = 1", orgid).Find(&rullername).Error
  62. return rullername, err
  63. }
  64. func GetRullerListByDrugName(drugname string, orgid int64) (rullername []*models.XtStandName, err error) {
  65. err = XTReadDB().Model(&rullername).Where("drug_name = ? and user_org_id = ? and status = 1", drugname, orgid).Find(&rullername).Error
  66. return rullername, err
  67. }
  68. func GetBaseDrugMedical(id int64) (models.XtBaseDrug, error) {
  69. drug := models.XtBaseDrug{}
  70. err := XTReadDB().Model(&drug).Where("id = ? and status = 1", id).Find(&drug).Error
  71. return drug, err
  72. }
  73. func GetSelfMedicalByDrugName(drugname string, drug_spec string, patientid int64) (*models.XtSelfMedical, error) {
  74. medical := models.XtSelfMedical{}
  75. err := XTReadDB().Model(&medical).Where("drug_name = ? and drug_spec = ? and patient_id = ? and status = 1", drugname, drug_spec, patientid).Find(&medical).Error
  76. if err == gorm.ErrRecordNotFound {
  77. return nil, err
  78. }
  79. if err != nil {
  80. return nil, err
  81. }
  82. return &medical, err
  83. }
  84. func CreateSelfMedical(medical *models.XtSelfMedical) error {
  85. err = XTWriteDB().Model(&medical).Create(&medical).Error
  86. return err
  87. }
  88. func GetCurrentOrgAllStaff(orgid int64, app int64) (role []*models.SgjUserAdminRole, err error) {
  89. err = UserReadDB().Model(&role).Where("org_id = ? and app_id = ? and status = 1", orgid, app).Find(&role).Error
  90. return role, err
  91. }
  92. func CreateStock(stock *models.XtSelfStock) error {
  93. err := XTWriteDB().Model(&stock).Create(&stock).Error
  94. return err
  95. }
  96. func CreateOutStock(stock *models.XtSelfOutStock) error {
  97. err := XTWriteDB().Model(&stock).Create(&stock).Error
  98. return err
  99. }
  100. func GetStandDrugByDrugName(drugname string, orgid int64) (*models.XtStandName, error) {
  101. standname := models.XtStandName{}
  102. err := XTReadDB().Model(&standname).Where("drug_name = ? and user_org_id = ? and status = 1", drugname, orgid).Find(&standname).Error
  103. if err == gorm.ErrRecordNotFound {
  104. return nil, err
  105. }
  106. if err != nil {
  107. return nil, err
  108. }
  109. return &standname, nil
  110. }
  111. func DeleteDrugName(id int64) (models.XtSelfMedical, error) {
  112. standName := models.XtSelfMedical{}
  113. err := XTWriteDB().Model(&standName).Where("id = ?", id).Update(map[string]interface{}{"status": 0}).Error
  114. return standName, err
  115. }
  116. func GetDrugSetByUserOrgId(orgid int64) (*models.XtDrugSet, error) {
  117. set := models.XtDrugSet{}
  118. err := XTReadDB().Model(&set).Where("user_org_id = ? and status = 1", orgid).Find(&set).Error
  119. if err == gorm.ErrRecordNotFound {
  120. return nil, err
  121. }
  122. if err != nil {
  123. return nil, err
  124. }
  125. return &set, nil
  126. }
  127. func SaveRadio(drugSet *models.XtDrugSet) error {
  128. err := XTWriteDB().Model(&drugSet).Create(&drugSet).Error
  129. return err
  130. }
  131. func UpdateDrugSet(set *models.XtDrugSet, orgid int64) error {
  132. err := XTWriteDB().Model(&set).Where("user_org_id = ?", orgid).Update(map[string]interface{}{"drug_start": set.DrugStart}).Error
  133. return err
  134. }
  135. func DeleteDrugStand(id int64) error {
  136. standName := models.XtStandName{}
  137. err := XTWriteDB().Model(&standName).Where("id =?", id).Update(map[string]interface{}{"status": 0}).Error
  138. return err
  139. }
  140. //func GetStockList(patientid int64, startime int64, keyword string) (stock []*models.SelfStocks, err error) {
  141. // db := XTReadDB().Table("xt_self_stock as x").Where("x.status = 1")
  142. // likeKey := "%" + keyword + "%"
  143. // table := XTReadDB().Table("xt_patients as s")
  144. // fmt.Println(table)
  145. // if patientid > 0 {
  146. // db = db.Where("x.patient_id = ?", patientid)
  147. // }
  148. // if startime > 0 {
  149. // db = db.Where("x.storck_time <= ?", startime)
  150. // }
  151. // err = db.Group("x.drug_name,x.drug_spec").Select("x.id,x.drug_name,x.drug_name_id,x.drug_spec,x.remarks,x.store_number,x.admin_user_id,x.storck_time,x.user_org_id,x.stock_in_number,x.patient_id,x.min_unit,sum(x.store_number) as total").Joins("left join xt_patients as s on s.id = x.patient_id").Where("s.name like ? or s.dialysis_no like ?", likeKey, likeKey).Scan(&stock).Error
  152. // return stock, err
  153. //}
  154. func GetStockList(patientid int64, startime int64, keyword string, orgid int64) (stock []*models.XtSelfMedicals, err error) {
  155. likeKey := "%" + keyword + "%"
  156. db := XTReadDB().Table("xt_self_medical as x").Where("x.status = 1")
  157. if patientid > 0 {
  158. db = db.Where("x.patient_id = ?", patientid)
  159. }
  160. if orgid > 0 {
  161. db = db.Where("x.user_org_id = ?", orgid)
  162. }
  163. err = db.Group("x.drug_name,x.drug_spec").Select("x.id,x.drug_name,x.drug_name_id,x.drug_spec,x.min_unit,sum(t.store_number) as total,t.remarks,x.patient_id,t.stock_in_number,t.storck_time,t.admin_user_id,t.medic_id").Joins("left join xt_self_stock as t on t.medic_id = x.id").Where("t.storck_time<=?", startime).Joins("left join xt_patients as s on s.id = x.patient_id").Where("s.name like ? or s.dialysis_no like ?", likeKey, likeKey).Scan(&stock).Error
  164. return stock, err
  165. }
  166. func GetOutStockList(patientid int64, startime int64, keyword string, orgid int64) (outStock []*models.SelfOutStock, err error) {
  167. likeKey := "%" + keyword + "%"
  168. db := XTReadDB().Table("xt_self_medical as x").Where("x.status = 1")
  169. if patientid > 0 {
  170. db = db.Where("x.patient_id = ?", patientid)
  171. }
  172. if orgid > 0 {
  173. db = db.Where("x.user_org_id = ?", orgid)
  174. }
  175. err = db.Group("x.drug_name,x.drug_spec").Select("x.id,x.drug_name,x.drug_name_id,x.drug_spec,x.min_unit,sum(t.outstore_number) as count,t.remarks,x.patient_id,t.stock_out_number,t.storck_time,t.admin_user_id,t.medic_id").Joins("left join xt_self_out_stock as t on t.medic_id = x.id").Where("t.storck_time<=?", startime).Joins("left join xt_patients as s on s.id = x.patient_id").Where("s.name like ? or s.dialysis_no like ?", likeKey, likeKey).Scan(&outStock).Error
  176. return outStock, err
  177. }
  178. //func GetOutStockList(patientid int64, startime int64, keyword string) (outStock []*models.XtSelfOutStocks, err error) {
  179. // db := XTReadDB().Table("xt_self_out_stock as x").Where("x.status = 1")
  180. // likeKey := "%" + keyword + "%"
  181. // table := XTReadDB().Table("xt_patients as s")
  182. // fmt.Println(table)
  183. // if patientid > 0 {
  184. // db = db.Where("x.patient_id = ?", patientid)
  185. // }
  186. // if startime > 0 {
  187. // db = db.Where("x.storck_time <= ?", startime)
  188. // }
  189. // err = db.Group("x.drug_name,x.drug_spec").Select("x.drug_name,x.drug_spec,x.patient_id,x.stock_out_number,sum(x.outstore_number) as count").Joins("left join xt_patients as s on s.id = x.patient_id").Where("s.name like ? or s.dialysis_no like ?", likeKey, likeKey).Scan(&outStock).Error
  190. // return outStock, err
  191. //}
  192. func GetMedicalList(patientid int64, orgid int64, keyword string) (medical []*models.XtSelfMedicals, err error) {
  193. likeKey := "%" + keyword + "%"
  194. db := XTReadDB().Table("xt_self_medical as x").Where("x.status = 1")
  195. if patientid > 0 {
  196. db = db.Where("x.patient_id = ?", patientid)
  197. }
  198. if orgid > 0 {
  199. db = db.Where("x.user_org_id = ?", orgid)
  200. }
  201. err = db.Select("x.drug_name,x.id,x.drug_spec,x.patient_id,x.min_unit").Joins("left join xt_patients as s on s.id = x.patient_id").Where("s.name like ? or s.dialysis_no like ?", likeKey, likeKey).Group("x.drug_name,x.drug_spec").Scan(&medical).Error
  202. //err = XTReadDB().Model(&medical).Where("patient_id = ? and user_org_id = ? and status = 1", patientid, orgid).Group("drug_name,drug_spec").Find(&medical).Error
  203. return medical, err
  204. }
  205. func GetStockOutDetail(durgname string, patientid int64) (stock []*models.XtSelfOutStock, err error) {
  206. err = XTReadDB().Model(&stock).Where("drug_name = ? and patient_id = ? and status = 1", durgname, patientid).Find(&stock).Error
  207. return stock, err
  208. }
  209. func DeleteDrugStockNumber(drugname string, patientid int64) (models.XtSelfStock, error) {
  210. stock := models.XtSelfStock{}
  211. err := XTWriteDB().Model(&stock).Where("drug_name = ? and patient_id = ?", drugname, patientid).Update(map[string]interface{}{"status": 0}).Error
  212. return stock, err
  213. }
  214. func GetStockDetail(drugname string, drugspec string, startime int64, endtime int64, patientid int64, orgid int64) (stock []*models.XtSelfStock, err error) {
  215. err = XTReadDB().Model(&stock).Where("drug_name = ? and drug_spec = ? and patient_id =? and user_org_id = ? and status = 1 and storck_time>=? and storck_time<=?", drugname, drugspec, patientid, orgid, startime, endtime).Order("storck_time asc").Find(&stock).Error
  216. return stock, err
  217. }
  218. func GetOutStockDetail(drugname string, drugspec string, startime int64, endtime int64, patientid int64, orgid int64) (outStock []*models.XtSelfOutStock, err error) {
  219. err = XTReadDB().Model(&outStock).Where("drug_name = ? and drug_spec=? and patient_id = ? and user_org_id = ? and status = 1 and storck_time>=? and storck_time<=?", drugname, drugspec, patientid, orgid, startime, endtime).Order("storck_time asc").Find(&outStock).Error
  220. return outStock, err
  221. }
  222. func GetAllPatientStockList(drug_name string, drug_spec string, startime int64, endtime int64, keyword string, orgid int64) (stocks []*models.SelfStocks, err error) {
  223. db := XTReadDB().Table("xt_self_stock as x").Where("x.status = 1")
  224. likeKey := "%" + keyword + "%"
  225. table := XTReadDB().Table("xt_patients as s")
  226. fmt.Println(table)
  227. if len(drug_name) > 0 {
  228. db = db.Where("x.drug_name = ?", drug_name)
  229. }
  230. if len(drug_spec) > 0 {
  231. db = db.Where("x.drug_spec = ?", drug_spec)
  232. }
  233. if startime > 0 {
  234. db = db.Where("x.storck_time >= ?", startime)
  235. }
  236. if endtime > 0 {
  237. db = db.Where("x.storck_time <= ?", endtime)
  238. }
  239. if orgid > 0 {
  240. db = db.Where("x.user_org_id = ?", orgid)
  241. }
  242. err = db.Group("x.patient_id,x.drug_name,x.drug_spec").Select("x.drug_name,x.drug_spec,x.patient_id,x.store_number,sum(x.store_number) as total,s.name,s.dialysis_no,x.min_unit").Joins("left join xt_patients as s on s.id = x.patient_id").Where("s.name like ? or s.dialysis_no like ?", likeKey, likeKey).Scan(&stocks).Error
  243. return stocks, err
  244. }
  245. func GetAllPatientOutStockList(drug_name string, drug_spec string, startime int64, endtime int64, keyword string, orgid int64) (outStock []*models.XtSelfOutStocks, err error) {
  246. db := XTReadDB().Table("xt_self_out_stock as x").Where("x.status = 1")
  247. likeKey := "%" + keyword + "%"
  248. table := XTReadDB().Table("xt_patients as s")
  249. fmt.Println(table)
  250. if len(drug_name) > 0 {
  251. db = db.Where("x.drug_name = ?", drug_name)
  252. }
  253. if len(drug_spec) > 0 {
  254. db = db.Where("x.drug_spec=?", drug_spec)
  255. }
  256. if startime > 0 {
  257. db = db.Where("x.storck_time >= ?", startime)
  258. }
  259. if endtime > 0 {
  260. db = db.Where("x.storck_time<=?", endtime)
  261. }
  262. if orgid > 0 {
  263. db = db.Where("x.user_org_id = ?", orgid)
  264. }
  265. err = db.Group("x.patient_id,x.drug_name,x.drug_spec").Select("x.drug_name,x.drug_spec,x.patient_id,x.stock_out_number,sum(x.outstore_number) as count").Joins("left join xt_patients as s on s.id = x.patient_id").Where("s.name like ? or s.dialysis_no like ?", likeKey, likeKey).Scan(&outStock).Error
  266. return outStock, err
  267. }
  268. func GetDrugDataByPatientId(patientid int64) (selfMedical []*models.XtSelfMedical, err error) {
  269. err = XTReadDB().Group("drug_name,drug_spec").Model(&selfMedical).Where("patient_id = ? and status = 1", patientid).Find(&selfMedical).Error
  270. return selfMedical, err
  271. }
  272. func GetSetSelfMedical(orgid int64) (models.XtDrugSet, error) {
  273. medical := models.XtDrugSet{}
  274. err := XTReadDB().Model(&medical).Where("user_org_id = ? and status = 1", orgid).Find(&medical).Error
  275. return medical, err
  276. }
  277. func GetSelfMedicalList(patientid int64) (selfmedical []*models.XtSelfMedical, err error) {
  278. err = XTReadDB().Group("drug_name").Model(&selfmedical).Where("patient_id = ? and status = 1", patientid).Find(&selfmedical).Error
  279. return selfmedical, err
  280. }
  281. func GetDrugDescByDrugName(drugname string, patient_id int64, orgid int64) (selfMedical []*models.XtSelfMedical, err error) {
  282. err = XTReadDB().Model(&selfMedical).Where("drug_name = ? and patient_id = ? and user_org_id = ? and status = 1", drugname, patient_id, orgid).Find(&selfMedical).Error
  283. return selfMedical, err
  284. }
  285. func GetBaseMedcal(drugname string, orgid int64) (baseDrug []*models.XtBaseDrug, err error) {
  286. err = XTReadDB().Model(&baseDrug).Where("drug_name = ? and org_id = ? and status = 1", drugname, orgid).Find(&baseDrug).Error
  287. return baseDrug, err
  288. }
  289. func GetTotalBaseMedicalCount(drug_id int64, orgid int64) (drugInfo []*models.DrugWarehousingInfo, err error) {
  290. db := XTReadDB().Table("xt_drug_warehouse_info as x").Where("x.status = 1")
  291. err = db.Select("x.drug_id,sum(x.warehousing_count) as count").Where("drug_id = ? and org_id = ?", drug_id, orgid).Scan(&drugInfo).Error
  292. return drugInfo, err
  293. }
  294. func GetTotalBaseMedicalCountOut(drug_id int64, orgid int64) (drugOut []*models.DrugWarehousingInfo, err error) {
  295. db := XTReadDB().Table("xt_drug_warehouse_out_info as x").Where("x.status = 1")
  296. err = db.Select("x.drug_id,sum(x.count) as count").Where("drug_id = ? and org_id = ?", drug_id, orgid).Scan(&drugOut).Error
  297. return drugOut, err
  298. }
  299. func GetDrugWareseOut(startime int64, orgid int64) (*models.XtDrugWarehouse, error) {
  300. warehouse := models.XtDrugWarehouse{}
  301. err := XTReadDB().Model(&warehouse).Where("warehousing_time = ? and org_id = ? and status = 1", startime, orgid).Find(&warehouse).Error
  302. if err == gorm.ErrRecordNotFound {
  303. return nil, err
  304. }
  305. if err != nil {
  306. return nil, err
  307. }
  308. return &warehouse, nil
  309. }
  310. func GetManufacturer(id int64) (models.XtBaseDrug, error) {
  311. drug := models.XtBaseDrug{}
  312. err := XTReadDB().Model(&drug).Where("id = ? and status = 1", id).Find(&drug).Error
  313. return drug, err
  314. }
  315. func CreateDrugWarehoue(warehouse *models.XtDrugWarehouse) error {
  316. err := XTWriteDB().Model(&warehouse).Create(&warehouse).Error
  317. return err
  318. }
  319. func GetTodayWareHousringOrder(startime int64, orgid int64) (models.XtDrugWarehouseOut, error) {
  320. warehouse := models.XtDrugWarehouseOut{}
  321. err := XTReadDB().Model(&warehouse).Where("warehouse_out_time = ? and org_id = ? and status = 1", startime, orgid).Find(&warehouse).Error
  322. return warehouse, err
  323. }
  324. func CreateDrugWareHouseOut(out *models.XtDrugWarehouseOut) error {
  325. err := XTWriteDB().Model(&out).Create(&out).Error
  326. return err
  327. }
  328. func CreateWareHouseOutInfo(info *models.XtDrugWarehouseOutInfo) error {
  329. err := XTWriteDB().Model(&info).Create(&info).Error
  330. return err
  331. }
  332. func CreateAotoMaticReduceDetail(detail *models.XtDrugAutomaticReduceDetail) error {
  333. err := XTWriteDB().Model(&detail).Create(&detail).Error
  334. return err
  335. }
  336. func GetDrugStockConfig(orgid int64) (models.XtDrugStockConfig, error) {
  337. config := models.XtDrugStockConfig{}
  338. err := XTReadDB().Model(&config).Where("org_id =? and status = 1", orgid).Find(&orgid).Error
  339. return config, err
  340. }
  341. func GetDrugSet(orgid int64) (models.XtDrugSet, error) {
  342. drugSet := models.XtDrugSet{}
  343. err := XTReadDB().Model(&drugSet).Where("user_org_id =? and status = 1", orgid).Find(&drugSet).Error
  344. return drugSet, err
  345. }
  346. type Drugs struct {
  347. ID int64 `gorm:"column:id" json:"id" form:"id"`
  348. DrugName string `gorm:"column:drug_name" json:"drug_name" form:"drug_name"`
  349. Pinyin string `gorm:"column:pinyin" json:"pinyin" form:"pinyin"`
  350. Wubi string `gorm:"column:wubi" json:"wubi" form:"wubi"`
  351. DrugAlias string `gorm:"column:drug_alias" json:"drug_alias" form:"drug_alias"`
  352. DrugAliasPinyin string `gorm:"column:drug_alias_pinyin" json:"drug_alias_pinyin" form:"drug_alias_pinyin"`
  353. DrugAliasWubi string `gorm:"column:drug_alias_wubi" json:"drug_alias_wubi" form:"drug_alias_wubi"`
  354. DrugCategory int64 `gorm:"column:drug_category" json:"drug_category" form:"drug_category"`
  355. DrugSpec float64 `gorm:"column:drug_spec" json:"drug_spec" form:"drug_spec"`
  356. DrugType int64 `gorm:"column:drug_type" json:"drug_type" form:"drug_type"`
  357. DrugStockLimit string `gorm:"column:drug_stock_limit" json:"drug_stock_limit" form:"drug_stock_limit"`
  358. DrugStatus string `gorm:"column:drug_status" json:"drug_status" form:"drug_status"`
  359. DeliveryWay string `gorm:"column:delivery_way" json:"delivery_way" form:"delivery_way"`
  360. ExecutionFrequency string `gorm:"column:execution_frequency" json:"execution_frequency" form:"execution_frequency"`
  361. SingleDose float64 `gorm:"column:single_dose" json:"single_dose" form:"single_dose"`
  362. PrescribingNumber float64 `gorm:"column:prescribing_number" json:"prescribing_number" form:"prescribing_number"`
  363. Status int64 `gorm:"column:status" json:"status" form:"status"`
  364. OrgId int64 `gorm:"column:org_id" json:"org_id" form:"org_id"`
  365. Drugs []*Drugs `gorm:"ForeignKey:DrugName;AssociationForeignKey:DrugName" json:"drug_specs"`
  366. }
  367. func (Drugs) TableName() string {
  368. return "xt_base_drug"
  369. }
  370. func GetAllBaseDrugLibList(org_id int64) (drugs []*Drugs, err error) {
  371. db := readDb.Model(&models.BaseDrugLib{}).Preload("Drugs", "status = 1 AND org_id = ? AND find_in_set('停用',drug_status) = 0", org_id).Where("org_id = ? AND status = 1 AND find_in_set('停用',drug_status) = 0", org_id).Group("drug_name")
  372. err = db.Find(&drugs).Error
  373. return
  374. }
  375. type PrivateDrug struct {
  376. DrugName string `gorm:"column:drug_name" json:"drug_name" form:"drug_name"`
  377. ID int64 `gorm:"column:id" json:"id" form:"id"`
  378. DrugSpec string `gorm:"column:drug_spec" json:"drug_spec" form:"drug_spec"`
  379. PatientId int64 `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
  380. DrugNameId int64 `gorm:"column:drug_name_id" json:"drug_name_id" form:"drug_name_id"`
  381. Status int64 `gorm:"column:status" json:"status" form:"status"`
  382. UserOrgId int64 `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
  383. CreatedTime int64 `gorm:"column:created_time" json:"created_time" form:"created_time"`
  384. UpdatedTime int64 `gorm:"column:updated_time" json:"updated_time" form:"updated_time"`
  385. MinUnit string `gorm:"column:min_unit" json:"min_unit" form:"min_unit"`
  386. ExecutionFrequency string `gorm:"column:execution_frequency" json:"execution_frequency" form:"execution_frequency"`
  387. PrescribingNumber float64 `gorm:"column:prescribing_number" json:"prescribing_number" form:"prescribing_number"`
  388. DeliveryWay string `gorm:"column:delivery_way" json:"delivery_way" form:"delivery_way"`
  389. SingleDose float64 `gorm:"column:single_dose" json:"single_dose" form:"single_dose"`
  390. PrivateDrug []*PrivateDrug `gorm:"ForeignKey:DrugName;AssociationForeignKey:DrugName" json:"drug_specs"`
  391. }
  392. func (PrivateDrug) TableName() string {
  393. return "xt_self_medical"
  394. }
  395. func GetPrivateDrugList(patient_id int64, org_id int64) (pds []*PrivateDrug, err error) {
  396. err = XTReadDB().Model(&PrivateDrug{}).Preload("PrivateDrug", "status = 1 AND user_org_id = ? AND patient_id = ? ", org_id, patient_id).Where("patient_id = ? and status = 1 AND user_org_id = ?", patient_id, org_id).Group("drug_name").Find(&pds).Error
  397. return
  398. }