yh_api_controller.go 31KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061
  1. package controllers
  2. //
  3. //import (
  4. // "XT_New/models"
  5. // "XT_New/service"
  6. // "bytes"
  7. // "encoding/json"
  8. // "fmt"
  9. // "io"
  10. // "net/http"
  11. // "strconv"
  12. // "strings"
  13. // "time"
  14. //)
  15. //
  16. //func UploadAllPatient(org_id int64) error {
  17. // //syncLastInfo, _ := service.GetSyncTimeByOrgId(org_id, 10)
  18. // //var sync_time int64
  19. // //if syncLastInfo.ID > 0 {
  20. // // sync_time = syncLastInfo.SyncTime
  21. // //} else {
  22. // // sync_time = 0
  23. // //}
  24. // patients := service.GetAllPatients(org_id)
  25. // var hdreq models.HDRequest
  26. // hdreq.Infno = "Z9609"
  27. //
  28. // var yhps []models.PatientInfo
  29. // for _, item := range patients {
  30. // var yhp models.PatientInfo
  31. // str := strconv.Itoa(int(item.ID))
  32. // yhp.PatnID = str
  33. // yhp.PatnName = item.Name
  34. // yhp.IptOtpNo = item.DialysisNo
  35. // yhp.HdNo = item.DialysisNo
  36. // yhp.Insutype = "390"
  37. // if item.ReimbursementWayId == 1 {
  38. // yhp.Insutype = "310"
  39. // } else if item.ReimbursementWayId == 2 {
  40. // yhp.Insutype = "390"
  41. // }
  42. // yhp.CertType = "1"
  43. // yhp.Certno = item.IdCardNo
  44. // str2 := strconv.Itoa(int(item.Gender))
  45. // yhp.Gend = str2
  46. // yhp.Brdy = ""
  47. // yhp.FstHdDate = ""
  48. // yhp.Tel = item.Phone
  49. // yhp.FmTel = ""
  50. // yhp.Empr = ""
  51. // yhp.FmAddr = item.HomeAddress
  52. // yhp.IfetDiseName = ""
  53. // yhp.DiagName = "慢性肾脏病5期"
  54. // yhp.DiagCode = "N18.500"
  55. // yhp.Cop = ""
  56. // yhp.Algs = ""
  57. // yhp.Tmor = ""
  58. // yhp.DiagDrName = ""
  59. // yhp.RhabDate = ""
  60. // yhp.RecDate = ""
  61. // yhps = append(yhps, yhp)
  62. // }
  63. //
  64. // // 构建请求数据
  65. // requestData := map[string]interface{}{
  66. // "data": map[string]interface{}{
  67. // "hd_data_type": "patn", // 患者信息类型
  68. // "hd_data": yhps,
  69. // },
  70. // }
  71. //
  72. // // 转换为 JSON
  73. // jsonData, err := json.Marshal(requestData)
  74. // if err != nil {
  75. // return fmt.Errorf("JSON 编码失败: %v", err)
  76. // }
  77. //
  78. // // 创建 HTTP 请求
  79. // req, err := http.NewRequest("POST", "https://ggfw.scyb.org.cn/ims/his/outside/api/scen/twoDecisions/hdDataUpload", bytes.NewBuffer(jsonData))
  80. // if err != nil {
  81. // return fmt.Errorf("创建请求失败: %v", err)
  82. // }
  83. //
  84. // // 设置请求头
  85. // req.Header.Set("Content-Type", "application/json")
  86. // // 根据实际需要添加其他请求头,如认证信息等
  87. // // req.Header.Set("Authorization", "Bearer your_token")
  88. //
  89. // // 发送请求
  90. // client := &http.Client{}
  91. // resp, err := client.Do(req)
  92. // if err != nil {
  93. // return fmt.Errorf("请求发送失败: %v", err)
  94. // }
  95. // defer resp.Body.Close()
  96. //
  97. // // 读取响应
  98. // body, err := io.ReadAll(resp.Body)
  99. // if err != nil {
  100. // return fmt.Errorf("读取响应失败: %v", err)
  101. // }
  102. //
  103. // // 检查响应状态
  104. // if resp.StatusCode != http.StatusOK {
  105. // return fmt.Errorf("请求失败,状态码: %d, 响应: %s", resp.StatusCode, string(body))
  106. // }
  107. //
  108. // // 处理响应数据
  109. // fmt.Printf("上传成功,响应: %s\n", string(body))
  110. //
  111. // return nil
  112. //}
  113. //func UploadDiase(org_id int64) error {
  114. // patients := service.GetAllPatients(org_id)
  115. // var hdreq models.HDRequest
  116. // hdreq.Infno = "Z9609"
  117. // var diags []models.DiseaseDiagnosis
  118. // for _, item := range patients {
  119. // //var yhp models.DiseaseDiagnosis
  120. // str := strconv.Itoa(int(item.ID))
  121. // Diagnose_str_arr := strings.Split(item.Diagnose, ",")
  122. // for _, subitem := range Diagnose_str_arr {
  123. // var yhp models.DiseaseDiagnosis
  124. // yhp.PatnID = str
  125. // yhp.DiagID = subitem
  126. // yhp.HdNo = item.DialysisNo
  127. // t := time.Unix(item.CreatedTime, 0)
  128. // yhp.DiagDate = t.Format("2006-01-02")
  129. // yhp.DiagType = "1"
  130. // yhp.DiagName = subitem
  131. // yhp.DiagAttr = ""
  132. // yhp.DrName = "谢虎"
  133. // yhp.RhabDate = ""
  134. // diags = append(diags, yhp)
  135. // }
  136. //
  137. // }
  138. //
  139. // // 构建请求数据
  140. // requestData := map[string]interface{}{
  141. // "data": map[string]interface{}{
  142. // "hd_data_type": "diseDiag", // 患者信息类型
  143. // "hd_data": diags,
  144. // },
  145. // }
  146. //
  147. // // 转换为 JSON
  148. // jsonData, err := json.Marshal(requestData)
  149. // if err != nil {
  150. // return fmt.Errorf("JSON 编码失败: %v", err)
  151. // }
  152. //
  153. // // 创建 HTTP 请求
  154. // req, err := http.NewRequest("POST", "https://ggfw.scyb.org.cn/ims/his/outside/api/scen/twoDecisions/hdDataUpload", bytes.NewBuffer(jsonData))
  155. // if err != nil {
  156. // return fmt.Errorf("创建请求失败: %v", err)
  157. // }
  158. //
  159. // // 设置请求头
  160. // req.Header.Set("Content-Type", "application/json")
  161. // // 根据实际需要添加其他请求头,如认证信息等
  162. // // req.Header.Set("Authorization", "Bearer your_token")
  163. //
  164. // // 发送请求
  165. // client := &http.Client{}
  166. // resp, err := client.Do(req)
  167. // if err != nil {
  168. // return fmt.Errorf("请求发送失败: %v", err)
  169. // }
  170. // defer resp.Body.Close()
  171. //
  172. // // 读取响应
  173. // body, err := io.ReadAll(resp.Body)
  174. // if err != nil {
  175. // return fmt.Errorf("读取响应失败: %v", err)
  176. // }
  177. //
  178. // // 检查响应状态
  179. // if resp.StatusCode != http.StatusOK {
  180. // return fmt.Errorf("请求失败,状态码: %d, 响应: %s", resp.StatusCode, string(body))
  181. // }
  182. //
  183. // // 处理响应数据
  184. // fmt.Printf("上传成功,响应: %s\n", string(body))
  185. //
  186. // return nil
  187. //}
  188. //func UploadZhuanGui(org_id int64) error {
  189. // //syncLastInfo, _ := service.GetSyncTimeByOrgId(org_id, 10)
  190. // //var sync_time int64
  191. // //if syncLastInfo.ID > 0 {
  192. // // sync_time = syncLastInfo.SyncTime
  193. // //} else {
  194. // // sync_time = 0
  195. // //}
  196. //
  197. // patients := service.GetAllPatientLaspse(org_id)
  198. // var hdreq models.HDRequest
  199. // hdreq.Infno = "Z9609"
  200. // var diags []models.PatientOutcome
  201. // for _, item := range patients {
  202. // var yhp models.PatientOutcome
  203. // str := strconv.Itoa(int(item.PatientId))
  204. // str2 := strconv.Itoa(int(item.ID))
  205. // p, _ := service.GetPatientByID(org_id, item.PatientId)
  206. // //Diagnose_str_arr := strings.Split(item.Diagnose, ",")
  207. // yhp.PatnID = str
  208. // yhp.OutComeID = str2
  209. // yhp.HdNo = p.DialysisNo
  210. // if item.LapseType == 1 { //留治
  211. // yhp.OutComeType = "1"
  212. // yhp.OutComeCate = "留治" //转归分类
  213. //
  214. // } else if item.LapseType == 2 { //转出
  215. //
  216. // yhp.OutComeType = "2"
  217. // yhp.OutComeCate = "转出" //转归分类
  218. //
  219. // } else if item.LapseType == 3 { //死亡
  220. // yhp.OutComeType = "3"
  221. // yhp.OutComeCate = "死亡" //转归分类
  222. //
  223. // }
  224. // yhp.OutComeRea = ""
  225. // t := time.Unix(item.LapseDate, 0)
  226. // yhp.OutComeDate = t.Format("2006-01-02")
  227. // yhp.Remark = ""
  228. // yhp.Memo = ""
  229. // }
  230. //
  231. // // 构建请求数据
  232. // requestData := map[string]interface{}{
  233. // "data": map[string]interface{}{
  234. // "hd_data_type": "outCome", // 患者信息类型
  235. // "hd_data": diags,
  236. // },
  237. // }
  238. //
  239. // // 转换为 JSON
  240. // jsonData, err := json.Marshal(requestData)
  241. // if err != nil {
  242. // return fmt.Errorf("JSON 编码失败: %v", err)
  243. // }
  244. //
  245. // // 创建 HTTP 请求
  246. // req, err := http.NewRequest("POST", "https://ggfw.scyb.org.cn/ims/his/outside/api/scen/twoDecisions/hdDataUpload", bytes.NewBuffer(jsonData))
  247. // if err != nil {
  248. // return fmt.Errorf("创建请求失败: %v", err)
  249. // }
  250. //
  251. // // 设置请求头
  252. // req.Header.Set("Content-Type", "application/json")
  253. // // 根据实际需要添加其他请求头,如认证信息等
  254. // // req.Header.Set("Authorization", "Bearer your_token")
  255. //
  256. // // 发送请求
  257. // client := &http.Client{}
  258. // resp, err := client.Do(req)
  259. // if err != nil {
  260. // return fmt.Errorf("请求发送失败: %v", err)
  261. // }
  262. // defer resp.Body.Close()
  263. //
  264. // // 读取响应
  265. // body, err := io.ReadAll(resp.Body)
  266. // if err != nil {
  267. // return fmt.Errorf("读取响应失败: %v", err)
  268. // }
  269. //
  270. // // 检查响应状态
  271. // if resp.StatusCode != http.StatusOK {
  272. // return fmt.Errorf("请求失败,状态码: %d, 响应: %s", resp.StatusCode, string(body))
  273. // }
  274. //
  275. // // 处理响应数据
  276. // fmt.Printf("上传成功,响应: %s\n", string(body))
  277. //
  278. // return nil
  279. //}
  280. //func UploadTrtPlan(org_id int64) error {
  281. // //syncLastInfo, _ := service.GetSyncTimeByOrgId(org_id, 10)
  282. // //var sync_time int64
  283. // //if syncLastInfo.ID > 0 {
  284. // // sync_time = syncLastInfo.SyncTime
  285. // //} else {
  286. // // sync_time = 0
  287. // //}
  288. // patients := service.GetAllPatientPre(org_id)
  289. // var hdreq models.HDRequest
  290. // hdreq.Infno = "Z9609"
  291. // var plans []models.TreatmentPlan
  292. // for _, item := range patients {
  293. // var yhp models.TreatmentPlan
  294. // str := strconv.Itoa(int(item.PatientID))
  295. // str2 := strconv.Itoa(int(item.ID))
  296. // p, _ := service.GetPatientByID(org_id, item.PatientID)
  297. // //Diagnose_str_arr := strings.Split(item.Diagnose, ",")
  298. // yhp.PatnID = str
  299. // yhp.HdID = str2
  300. // yhp.HdNo = p.DialysisNo
  301. // if item.ModeId == 1 {
  302. // yhp.HdMode = "HD"
  303. // yhp.Hd = item.DialysisDialyszers
  304. // yhp.Hf = item.DialysisStrainer
  305. // yhp.Hp = item.DialysisIrrigation
  306. // } else if item.ModeId == 2 {
  307. // yhp.HdMode = "HDF"
  308. // yhp.Hd = item.DialysisDialyszers
  309. // yhp.Hf = item.DialysisStrainer
  310. // yhp.Hp = item.DialysisIrrigation
  311. // } else if item.ModeId == 3 {
  312. // yhp.HdMode = "HP"
  313. // yhp.Hd = item.DialysisDialyszers
  314. // yhp.Hf = item.DialysisStrainer
  315. // yhp.Hp = item.DialysisIrrigation
  316. // }
  317. // yhp.HdFrqu = "1w:3c"
  318. // yhp.HdDura = item.DialysisDuration
  319. // yhp.MedcInfo = ""
  320. // yhp.BloVal = item.BloodFlowVolume
  321. // yhp.DsVal = item.DialysateFlow
  322. // s1 := fmt.Sprintf("%f", item.Kalium)
  323. // s2 := fmt.Sprintf("%f", item.Sodium)
  324. // s3 := fmt.Sprintf("%f", item.Bicarbonate)
  325. // s4 := fmt.Sprintf("%f", item.Glucose)
  326. // yhp.K = s1
  327. // yhp.FmlNa = s2
  328. // yhp.RxNa = s2
  329. // yhp.Hco3 = s3
  330. // yhp.Gs = s4
  331. // yhp.Acgl = ""
  332. // yhp.AcglFoml = ""
  333. // plans = append(plans, yhp)
  334. // }
  335. //
  336. // // 构建请求数据
  337. // requestData := map[string]interface{}{
  338. // "data": map[string]interface{}{
  339. // "hd_data_type": "trtPlan", // 患者信息类型
  340. // "hd_data": plans,
  341. // },
  342. // }
  343. //
  344. // // 转换为 JSON
  345. // jsonData, err := json.Marshal(requestData)
  346. // if err != nil {
  347. // return fmt.Errorf("JSON 编码失败: %v", err)
  348. // }
  349. //
  350. // // 创建 HTTP 请求
  351. // req, err := http.NewRequest("POST", "https://ggfw.scyb.org.cn/ims/his/outside/api/scen/twoDecisions/hdDataUpload", bytes.NewBuffer(jsonData))
  352. // if err != nil {
  353. // return fmt.Errorf("创建请求失败: %v", err)
  354. // }
  355. //
  356. // // 设置请求头
  357. // req.Header.Set("Content-Type", "application/json")
  358. // // 根据实际需要添加其他请求头,如认证信息等
  359. // // req.Header.Set("Authorization", "Bearer your_token")
  360. //
  361. // // 发送请求
  362. // client := &http.Client{}
  363. // resp, err := client.Do(req)
  364. // if err != nil {
  365. // return fmt.Errorf("请求发送失败: %v", err)
  366. // }
  367. // defer resp.Body.Close()
  368. //
  369. // // 读取响应
  370. // body, err := io.ReadAll(resp.Body)
  371. // if err != nil {
  372. // return fmt.Errorf("读取响应失败: %v", err)
  373. // }
  374. //
  375. // // 检查响应状态
  376. // if resp.StatusCode != http.StatusOK {
  377. // return fmt.Errorf("请求失败,状态码: %d, 响应: %s", resp.StatusCode, string(body))
  378. // }
  379. //
  380. // // 处理响应数据
  381. // fmt.Printf("上传成功,响应: %s\n", string(body))
  382. //
  383. // return nil
  384. //}
  385. //func UploadSch(org_id int64) error {
  386. // //syncLastInfo, _ := service.GetSyncTimeByOrgId(org_id, 10)
  387. // //var sync_time int64
  388. // //if syncLastInfo.ID > 0 {
  389. // // sync_time = syncLastInfo.SyncTime
  390. // //} else {
  391. // // sync_time = 0
  392. // //}
  393. // schedules := service.GetAllPatientSch(org_id)
  394. // var hdreq models.HDRequest
  395. // hdreq.Infno = "Z9609"
  396. // var schs []models.YHSchedule
  397. // for _, item := range schedules {
  398. // var yhp models.YHSchedule
  399. // str := strconv.Itoa(int(item.PatientId))
  400. // str2 := strconv.Itoa(int(item.ID))
  401. // str3 := strconv.Itoa(int(item.ScheduleWeek))
  402. // str4 := strconv.Itoa(int(item.ScheduleType))
  403. //
  404. // yhp.PatnID = str
  405. // yhp.ScheduleID = str2
  406. // yhp.IfetDiseName = ""
  407. // yhp.PatnSouc = "1"
  408. // t := time.Unix(item.ScheduleDate, 0)
  409. // yhp.HdDate = t.Format("2006-01-02")
  410. // yhp.Week = str3
  411. // yhp.ClssNo = str4
  412. // yhp.BlngPrtn = ""
  413. //
  414. // de, _ := service.GetBedNumberById(item.BedId, org_id)
  415. // yhp.MchNo = de.Number
  416. // if item.ModeId == 1 {
  417. // yhp.HdMode = "HD"
  418. // } else if item.ModeId == 2 {
  419. // yhp.HdMode = "HDF"
  420. // } else if item.ModeId == 3 {
  421. // yhp.HdMode = "HP"
  422. // }
  423. // schs = append(schs, yhp)
  424. // }
  425. //
  426. // // 构建请求数据
  427. // requestData := map[string]interface{}{
  428. // "data": map[string]interface{}{
  429. // "hd_data_type": "schedule", // 患者信息类型
  430. // "hd_data": schs,
  431. // },
  432. // }
  433. //
  434. // // 转换为 JSON
  435. // jsonData, err := json.Marshal(requestData)
  436. // if err != nil {
  437. // return fmt.Errorf("JSON 编码失败: %v", err)
  438. // }
  439. //
  440. // // 创建 HTTP 请求
  441. // req, err := http.NewRequest("POST", "https://ggfw.scyb.org.cn/ims/his/outside/api/scen/twoDecisions/hdDataUpload", bytes.NewBuffer(jsonData))
  442. // if err != nil {
  443. // return fmt.Errorf("创建请求失败: %v", err)
  444. // }
  445. //
  446. // // 设置请求头
  447. // req.Header.Set("Content-Type", "application/json")
  448. // // 根据实际需要添加其他请求头,如认证信息等
  449. // // req.Header.Set("Authorization", "Bearer your_token")
  450. //
  451. // // 发送请求
  452. // client := &http.Client{}
  453. // resp, err := client.Do(req)
  454. // if err != nil {
  455. // return fmt.Errorf("请求发送失败: %v", err)
  456. // }
  457. // defer resp.Body.Close()
  458. //
  459. // // 读取响应
  460. // body, err := io.ReadAll(resp.Body)
  461. // if err != nil {
  462. // return fmt.Errorf("读取响应失败: %v", err)
  463. // }
  464. //
  465. // // 检查响应状态
  466. // if resp.StatusCode != http.StatusOK {
  467. // return fmt.Errorf("请求失败,状态码: %d, 响应: %s", resp.StatusCode, string(body))
  468. // }
  469. //
  470. // // 处理响应数据
  471. // fmt.Printf("上传成功,响应: %s\n", string(body))
  472. //
  473. // return nil
  474. //}
  475. //func UploadOrder(org_id int64) error {
  476. // syncLastInfo, _ := service.GetSyncTimeByOrgId(org_id, 10)
  477. // var sync_time int64
  478. // if syncLastInfo.ID > 0 {
  479. // sync_time = syncLastInfo.SyncTime
  480. // } else {
  481. // sync_time = 0
  482. // }
  483. //
  484. // ps := service.GetAllDialysisRecord(org_id, sync_time)
  485. //
  486. // var drs []models.DialysisRecord
  487. //
  488. // for _, item := range ps {
  489. // var dr models.DialysisRecord
  490. // order := service.GetAllPatientDialysisRecord(org_id, item.DialysisDate, item.PatientId)
  491. // sch, _ := service.GetScheduleByPatient(item.PatientId, item.DialysisDate, org_id)
  492. // p, _ := service.GetPatientByID(org_id, item.PatientId)
  493. // pre, _ := service.GetDialysisPrescribe(org_id, item.PatientId, item.DialysisDate)
  494. // str := strconv.Itoa(int(order.PatientId))
  495. // str2 := strconv.Itoa(int(sch.ID))
  496. //
  497. // dr.PatnID = str
  498. // dr.BtchID = str2
  499. // t := time.Unix(item.DialysisDate, 0)
  500. // dr.HdDate = t.Format("2006-01-02")
  501. // dr.HdNo = p.DialysisNo
  502. // dr.IndeptWay = ""
  503. //
  504. // if sch.ModeId == 1 {
  505. // dr.HdMode = "HD"
  506. // } else if sch.ModeId == 2 {
  507. // dr.HdMode = "HDF"
  508. // } else if sch.ModeId == 3 {
  509. // dr.HdMode = "HP"
  510. // }
  511. // s1 := fmt.Sprintf("%f", order.KyyPredialysisEvaluation.DryWeight)
  512. // dr.DryWt = s1
  513. // dr.Ivap = ""
  514. // dr.Hd = ""
  515. // dr.Hf = ""
  516. // dr.Hp = ""
  517. // dr.HdDura = pre.DialysisDuration
  518. // hours := order.KyyAssessmentAfterDislysis.ActualTreatmentMinute / 60
  519. // dr.ActTrtDura = float64(order.KyyAssessmentAfterDislysis.ActualTreatmentHour + hours)
  520. // dr.MchNo = order.DeviceNumber.Number
  521. // drs = append(drs, dr)
  522. // }
  523. // // 构建请求数据
  524. // requestData := map[string]interface{}{
  525. // "data": map[string]interface{}{
  526. // "hd_data_type": "hdInfo", // 患者信息类型
  527. // "hd_data": drs,
  528. // },
  529. // }
  530. //
  531. // // 转换为 JSON
  532. // jsonData, err := json.Marshal(requestData)
  533. // if err != nil {
  534. // return fmt.Errorf("JSON 编码失败: %v", err)
  535. // }
  536. //
  537. // // 创建 HTTP 请求
  538. // req, err := http.NewRequest("POST", "https://ggfw.scyb.org.cn/ims/his/outside/api/scen/twoDecisions/hdDataUpload", bytes.NewBuffer(jsonData))
  539. // if err != nil {
  540. // return fmt.Errorf("创建请求失败: %v", err)
  541. // }
  542. //
  543. // // 设置请求头
  544. // req.Header.Set("Content-Type", "application/json")
  545. // // 根据实际需要添加其他请求头,如认证信息等
  546. // // req.Header.Set("Authorization", "Bearer your_token")
  547. //
  548. // // 发送请求
  549. // client := &http.Client{}
  550. // resp, err := client.Do(req)
  551. // if err != nil {
  552. // return fmt.Errorf("请求发送失败: %v", err)
  553. // }
  554. // defer resp.Body.Close()
  555. //
  556. // // 读取响应
  557. // body, err := io.ReadAll(resp.Body)
  558. // if err != nil {
  559. // return fmt.Errorf("读取响应失败: %v", err)
  560. // }
  561. //
  562. // // 检查响应状态
  563. // if resp.StatusCode != http.StatusOK {
  564. // return fmt.Errorf("请求失败,状态码: %d, 响应: %s", resp.StatusCode, string(body))
  565. // }
  566. //
  567. // // 处理响应数据
  568. // fmt.Printf("上传成功,响应: %s\n", string(body))
  569. //
  570. // return nil
  571. //}
  572. //func Uploadbf(org_id int64) error {
  573. // syncLastInfo, _ := service.GetSyncTimeByOrgId(org_id, 10)
  574. // var sync_time int64
  575. // if syncLastInfo.ID > 0 {
  576. // sync_time = syncLastInfo.SyncTime
  577. // } else {
  578. // sync_time = 0
  579. // }
  580. //
  581. // ps := service.GetAllDialysisRecord(org_id, sync_time)
  582. //
  583. // var drs []models.PreDialysisRecord
  584. // for _, item := range ps {
  585. // var dr models.PreDialysisRecord
  586. // order := service.GetAllPatientDialysisRecord(org_id, item.DialysisDate, item.PatientId)
  587. // sch, _ := service.GetScheduleByPatient(item.PatientId, item.DialysisDate, org_id)
  588. // pre, _ := service.GetDialysisPrescribe(org_id, item.PatientId, item.DialysisDate)
  589. // str2 := strconv.Itoa(int(sch.ID))
  590. // dr.TagtWaterVal = pre.TargetUltrafiltration
  591. // dr.BtchID = str2
  592. // dr.RxWateVal = pre.PrescriptionDewatering
  593. // s1 := fmt.Sprintf("%f", order.KyyPredialysisEvaluation.WeightBefore)
  594. // dr.BfWt = s1
  595. // drs = append(drs, dr)
  596. // }
  597. // // 构建请求数据
  598. // requestData := map[string]interface{}{
  599. // "data": map[string]interface{}{
  600. // "hd_data_type": "bfHd", // 患者信息类型
  601. // "hd_data": drs,
  602. // },
  603. // }
  604. //
  605. // // 转换为 JSON
  606. // jsonData, err := json.Marshal(requestData)
  607. // if err != nil {
  608. // return fmt.Errorf("JSON 编码失败: %v", err)
  609. // }
  610. //
  611. // // 创建 HTTP 请求
  612. // req, err := http.NewRequest("POST", "https://ggfw.scyb.org.cn/ims/his/outside/api/scen/twoDecisions/hdDataUpload", bytes.NewBuffer(jsonData))
  613. // if err != nil {
  614. // return fmt.Errorf("创建请求失败: %v", err)
  615. // }
  616. //
  617. // // 设置请求头
  618. // req.Header.Set("Content-Type", "application/json")
  619. // // 根据实际需要添加其他请求头,如认证信息等
  620. // // req.Header.Set("Authorization", "Bearer your_token")
  621. //
  622. // // 发送请求
  623. // client := &http.Client{}
  624. // resp, err := client.Do(req)
  625. // if err != nil {
  626. // return fmt.Errorf("请求发送失败: %v", err)
  627. // }
  628. // defer resp.Body.Close()
  629. //
  630. // // 读取响应
  631. // body, err := io.ReadAll(resp.Body)
  632. // if err != nil {
  633. // return fmt.Errorf("读取响应失败: %v", err)
  634. // }
  635. //
  636. // // 检查响应状态
  637. // if resp.StatusCode != http.StatusOK {
  638. // return fmt.Errorf("请求失败,状态码: %d, 响应: %s", resp.StatusCode, string(body))
  639. // }
  640. //
  641. // // 处理响应数据
  642. // fmt.Printf("上传成功,响应: %s\n", string(body))
  643. //
  644. // return nil
  645. //}
  646. //func Uploadhdbf(org_id int64) error {
  647. // syncLastInfo, _ := service.GetSyncTimeByOrgId(org_id, 10)
  648. // var sync_time int64
  649. // if syncLastInfo.ID > 0 {
  650. // sync_time = syncLastInfo.SyncTime
  651. // } else {
  652. // sync_time = 0
  653. // }
  654. //
  655. // ps := service.GetAllDialysisRecord(org_id, sync_time)
  656. //
  657. // var drs []models.DialysisRecord
  658. //
  659. // for _, item := range ps {
  660. // var dr models.DialysisRecord
  661. // order := service.GetAllPatientDialysisRecord(org_id, item.DialysisDate, item.PatientId)
  662. // sch, _ := service.GetScheduleByPatient(item.PatientId, item.DialysisDate, org_id)
  663. // p, _ := service.GetPatientByID(org_id, item.PatientId)
  664. // pre, _ := service.GetDialysisPrescribe(org_id, item.PatientId, item.DialysisDate)
  665. // str := strconv.Itoa(int(order.PatientId))
  666. // str2 := strconv.Itoa(int(sch.ID))
  667. //
  668. // dr.PatnID = str
  669. // dr.BtchID = str2
  670. // t := time.Unix(item.DialysisDate, 0)
  671. // dr.HdDate = t.Format("2006-01-02")
  672. // dr.HdNo = p.DialysisNo
  673. // dr.IndeptWay = ""
  674. //
  675. // if sch.ModeId == 1 {
  676. // dr.HdMode = "HD"
  677. // } else if sch.ModeId == 2 {
  678. // dr.HdMode = "HDF"
  679. // } else if sch.ModeId == 3 {
  680. // dr.HdMode = "HP"
  681. // }
  682. // s1 := fmt.Sprintf("%f", order.KyyPredialysisEvaluation.DryWeight)
  683. // dr.DryWt = s1
  684. // dr.Ivap = ""
  685. // dr.Hd = ""
  686. // dr.Hf = ""
  687. // dr.Hp = ""
  688. // dr.HdDura = pre.DialysisDuration
  689. // hours := order.KyyAssessmentAfterDislysis.ActualTreatmentMinute / 60
  690. // dr.ActTrtDura = float64(order.KyyAssessmentAfterDislysis.ActualTreatmentHour + hours)
  691. // dr.MchNo = order.DeviceNumber.Number
  692. // drs = append(drs, dr)
  693. // }
  694. // // 构建请求数据
  695. // requestData := map[string]interface{}{
  696. // "data": map[string]interface{}{
  697. // "hd_data_type": "hdInfo", // 患者信息类型
  698. // "hd_data": drs,
  699. // },
  700. // }
  701. //
  702. // // 转换为 JSON
  703. // jsonData, err := json.Marshal(requestData)
  704. // if err != nil {
  705. // return fmt.Errorf("JSON 编码失败: %v", err)
  706. // }
  707. //
  708. // // 创建 HTTP 请求
  709. // req, err := http.NewRequest("POST", "https://ggfw.scyb.org.cn/ims/his/outside/api/scen/twoDecisions/hdDataUpload", bytes.NewBuffer(jsonData))
  710. // if err != nil {
  711. // return fmt.Errorf("创建请求失败: %v", err)
  712. // }
  713. //
  714. // // 设置请求头
  715. // req.Header.Set("Content-Type", "application/json")
  716. // // 根据实际需要添加其他请求头,如认证信息等
  717. // // req.Header.Set("Authorization", "Bearer your_token")
  718. //
  719. // // 发送请求
  720. // client := &http.Client{}
  721. // resp, err := client.Do(req)
  722. // if err != nil {
  723. // return fmt.Errorf("请求发送失败: %v", err)
  724. // }
  725. // defer resp.Body.Close()
  726. //
  727. // // 读取响应
  728. // body, err := io.ReadAll(resp.Body)
  729. // if err != nil {
  730. // return fmt.Errorf("读取响应失败: %v", err)
  731. // }
  732. //
  733. // // 检查响应状态
  734. // if resp.StatusCode != http.StatusOK {
  735. // return fmt.Errorf("请求失败,状态码: %d, 响应: %s", resp.StatusCode, string(body))
  736. // }
  737. //
  738. // // 处理响应数据
  739. // fmt.Printf("上传成功,响应: %s\n", string(body))
  740. //
  741. // return nil
  742. //}
  743. //func Uploadmo(org_id int64) error {
  744. // syncLastInfo, _ := service.GetSyncTimeByOrgId(org_id, 10)
  745. // var sync_time int64
  746. // if syncLastInfo.ID > 0 {
  747. // sync_time = syncLastInfo.SyncTime
  748. // } else {
  749. // sync_time = 0
  750. // }
  751. //
  752. // ps := service.GetAllDialysisRecord(org_id, sync_time)
  753. //
  754. // var drs []models.DialysisMonitoring
  755. //
  756. // for _, item := range ps {
  757. // order := service.GetAllPatientDialysisRecord(org_id, item.DialysisDate, item.PatientId)
  758. // sch, _ := service.GetScheduleByPatient(item.PatientId, item.DialysisDate, org_id)
  759. // for _, subitem := range order.KyyMonitoringRecord {
  760. // var dr models.DialysisMonitoring
  761. // t := time.Unix(subitem.MonitoringDate, 0)
  762. // dr.MnitTime = t.Format("2006-01-02") + " " + subitem.MonitoringTime
  763. // dr.DsTprt = ""
  764. // s1 := fmt.Sprintf("%f", subitem.PulseFrequency)
  765. // dr.Pule = s1
  766. // dr.BratFrqu = subitem.BreathingRate
  767. // s2 := fmt.Sprintf("%f", subitem.SystolicBloodPressure)
  768. // s3 := fmt.Sprintf("%f", subitem.DiastolicBloodPressure)
  769. // s4 := fmt.Sprintf("%f", subitem.ArterialPressure)
  770. // s5 := fmt.Sprintf("%f", subitem.VenousPressure)
  771. // s6 := fmt.Sprintf("%f", subitem.Temperature)
  772. // s7 := fmt.Sprintf("%f", sch.ID)
  773. // s8 := fmt.Sprintf("%f", subitem.ID)
  774. // dr.Bp = s2 + "/" + s3
  775. // dr.BloVal = subitem.BloodFlowVolume
  776. // dr.Abp = s4
  777. // dr.Vp = s5
  778. // dr.Tmp = s6
  779. // dr.OverFitrCnt = subitem.UltrafiltrationVolume
  780. // dr.CondChng = ""
  781. // dr.BtchID = s7
  782. // dr.HdMidID = s8
  783. // dr.ExchVal = ""
  784. // drs = append(drs, dr)
  785. // }
  786. //
  787. // }
  788. // // 构建请求数据
  789. // requestData := map[string]interface{}{
  790. // "data": map[string]interface{}{
  791. // "hd_data_type": "hdNnit", // 患者信息类型
  792. // "hd_data": drs,
  793. // },
  794. // }
  795. //
  796. // // 转换为 JSON
  797. // jsonData, err := json.Marshal(requestData)
  798. // if err != nil {
  799. // return fmt.Errorf("JSON 编码失败: %v", err)
  800. // }
  801. //
  802. // // 创建 HTTP 请求
  803. // req, err := http.NewRequest("POST", "https://ggfw.scyb.org.cn/ims/his/outside/api/scen/twoDecisions/hdDataUpload", bytes.NewBuffer(jsonData))
  804. // if err != nil {
  805. // return fmt.Errorf("创建请求失败: %v", err)
  806. // }
  807. //
  808. // // 设置请求头
  809. // req.Header.Set("Content-Type", "application/json")
  810. // // 根据实际需要添加其他请求头,如认证信息等
  811. // // req.Header.Set("Authorization", "Bearer your_token")
  812. //
  813. // // 发送请求
  814. // client := &http.Client{}
  815. // resp, err := client.Do(req)
  816. // if err != nil {
  817. // return fmt.Errorf("请求发送失败: %v", err)
  818. // }
  819. // defer resp.Body.Close()
  820. //
  821. // // 读取响应
  822. // body, err := io.ReadAll(resp.Body)
  823. // if err != nil {
  824. // return fmt.Errorf("读取响应失败: %v", err)
  825. // }
  826. //
  827. // // 检查响应状态
  828. // if resp.StatusCode != http.StatusOK {
  829. // return fmt.Errorf("请求失败,状态码: %d, 响应: %s", resp.StatusCode, string(body))
  830. // }
  831. //
  832. // // 处理响应数据
  833. // fmt.Printf("上传成功,响应: %s\n", string(body))
  834. //
  835. // return nil
  836. //}
  837. //func Uploadaf(org_id int64) error {
  838. // syncLastInfo, _ := service.GetSyncTimeByOrgId(org_id, 10)
  839. // var sync_time int64
  840. // if syncLastInfo.ID > 0 {
  841. // sync_time = syncLastInfo.SyncTime
  842. // } else {
  843. // sync_time = 0
  844. // }
  845. //
  846. // ps := service.GetAllDialysisRecord(org_id, sync_time)
  847. //
  848. // var drs []models.PostDialysisRecord
  849. // for _, item := range ps {
  850. // var dr models.PostDialysisRecord
  851. // order := service.GetAllPatientDialysisRecord(org_id, item.DialysisDate, item.PatientId)
  852. // sch, _ := service.GetScheduleByPatient(item.PatientId, item.DialysisDate, org_id)
  853. // str2 := strconv.Itoa(int(sch.ID))
  854. // dr.AfSymp = order.KyyAssessmentAfterDislysis.SymptomAfterDialysis
  855. // dr.ClotDeg = str2
  856. // dr.ImptStas = order.KyyAssessmentAfterDislysis.InternalFistula
  857. // s2 := fmt.Sprintf("%f", order.KyyAssessmentAfterDislysis.WeightAfter)
  858. // s3 := fmt.Sprintf("%f", sch.ID)
  859. // dr.AfWt = s2
  860. // dr.ActFitrCnt = order.KyyAssessmentAfterDislysis.ActualUltrafiltration
  861. // dr.BtchID = s3
  862. // drs = append(drs, dr)
  863. // }
  864. // // 构建请求数据
  865. // requestData := map[string]interface{}{
  866. // "data": map[string]interface{}{
  867. // "hd_data_type": "afHd", // 患者信息类型
  868. // "hd_data": drs,
  869. // },
  870. // }
  871. //
  872. // // 转换为 JSON
  873. // jsonData, err := json.Marshal(requestData)
  874. // if err != nil {
  875. // return fmt.Errorf("JSON 编码失败: %v", err)
  876. // }
  877. //
  878. // // 创建 HTTP 请求
  879. // req, err := http.NewRequest("POST", "https://ggfw.scyb.org.cn/ims/his/outside/api/scen/twoDecisions/hdDataUpload", bytes.NewBuffer(jsonData))
  880. // if err != nil {
  881. // return fmt.Errorf("创建请求失败: %v", err)
  882. // }
  883. //
  884. // // 设置请求头
  885. // req.Header.Set("Content-Type", "application/json")
  886. // // 根据实际需要添加其他请求头,如认证信息等
  887. // // req.Header.Set("Authorization", "Bearer your_token")
  888. //
  889. // // 发送请求
  890. // client := &http.Client{}
  891. // resp, err := client.Do(req)
  892. // if err != nil {
  893. // return fmt.Errorf("请求发送失败: %v", err)
  894. // }
  895. // defer resp.Body.Close()
  896. //
  897. // // 读取响应
  898. // body, err := io.ReadAll(resp.Body)
  899. // if err != nil {
  900. // return fmt.Errorf("读取响应失败: %v", err)
  901. // }
  902. //
  903. // // 检查响应状态
  904. // if resp.StatusCode != http.StatusOK {
  905. // return fmt.Errorf("请求失败,状态码: %d, 响应: %s", resp.StatusCode, string(body))
  906. // }
  907. //
  908. // // 处理响应数据
  909. // fmt.Printf("上传成功,响应: %s\n", string(body))
  910. //
  911. // return nil
  912. //}
  913. //func Uploadtrt(org_id int64) error {
  914. // syncLastInfo, _ := service.GetSyncTimeByOrgId(org_id, 10)
  915. // var sync_time int64
  916. // if syncLastInfo.ID > 0 {
  917. // sync_time = syncLastInfo.SyncTime
  918. // } else {
  919. // sync_time = 0
  920. // }
  921. //
  922. // ps := service.GetAllDialysisRecord(org_id, sync_time)
  923. //
  924. // var drs []models.YHTreatmentSummary
  925. // for _, item := range ps {
  926. // var dr models.YHTreatmentSummary
  927. // order := service.GetAllPatientDialysisRecord(org_id, item.DialysisDate, item.PatientId)
  928. // sch, _ := service.GetScheduleByPatient(item.PatientId, item.DialysisDate, org_id)
  929. // str2 := strconv.Itoa(int(sch.ID))
  930. // PunctureRole, _ := service.GetAdminUserRoleTwo(order.KyyTreatmentSummary.Puncture, org_id)
  931. // ZlRole, _ := service.GetAdminUserRole(order.KyyTreatmentSummary.ZlNurse, org_id)
  932. // FinishRole, _ := service.GetAdminUserRole(order.FinishNurse, org_id)
  933. // PrescriptionDoctor, _ := service.GetAdminUserRole(order.KYYPrescriptionVM.PrescriptionDoctor, org_id)
  934. // dr.PncrNurs = PunctureRole.UserName
  935. // dr.TrtNurs = ZlRole.UserName
  936. // dr.Chker = ""
  937. // dr.OffMchNurs = FinishRole.UserName
  938. // dr.TrtDr = PrescriptionDoctor.UserName
  939. // dr.BtchID = str2
  940. // dr.RsltCont = order.KyyTreatmentSummary.DialysisSummary
  941. // drs = append(drs, dr)
  942. // }
  943. // // 构建请求数据
  944. // requestData := map[string]interface{}{
  945. // "data": map[string]interface{}{
  946. // "hd_data_type": "trtRslt", // 患者信息类型
  947. // "hd_data": drs,
  948. // },
  949. // }
  950. //
  951. // // 转换为 JSON
  952. // jsonData, err := json.Marshal(requestData)
  953. // if err != nil {
  954. // return fmt.Errorf("JSON 编码失败: %v", err)
  955. // }
  956. // // 创建 HTTP 请求
  957. // req, err := http.NewRequest("POST", "https://ggfw.scyb.org.cn/ims/his/outside/api/scen/twoDecisions/hdDataUpload", bytes.NewBuffer(jsonData))
  958. // if err != nil {
  959. // return fmt.Errorf("创建请求失败: %v", err)
  960. // }
  961. // // 设置请求头
  962. // req.Header.Set("Content-Type", "application/json")
  963. // // 发送请求
  964. // client := &http.Client{}
  965. // resp, err := client.Do(req)
  966. // if err != nil {
  967. // return fmt.Errorf("请求发送失败: %v", err)
  968. // }
  969. // defer resp.Body.Close()
  970. //
  971. // // 读取响应
  972. // body, err := io.ReadAll(resp.Body)
  973. // if err != nil {
  974. // return fmt.Errorf("读取响应失败: %v", err)
  975. // }
  976. //
  977. // // 检查响应状态
  978. // if resp.StatusCode != http.StatusOK {
  979. // return fmt.Errorf("请求失败,状态码: %d, 响应: %s", resp.StatusCode, string(body))
  980. // }
  981. //
  982. // // 处理响应数据
  983. // fmt.Printf("上传成功,响应: %s\n", string(body))
  984. //
  985. // return nil
  986. //}
  987. //
  988. //func UploadDoc(org_id int64) error {
  989. //
  990. // syncLastInfo, _ := service.GetSyncTimeByOrgId(org_id, 10)
  991. // var sync_time int64
  992. // if syncLastInfo.ID > 0 {
  993. // sync_time = syncLastInfo.SyncTime
  994. // } else {
  995. // sync_time = 0
  996. // }
  997. // ps := service.GetAllDialysisRecord(org_id, sync_time)
  998. //
  999. // var drs []models.YHDialysisOrder
  1000. // for _, item := range ps {
  1001. // var dr models.YHDialysisOrder
  1002. // order := service.GetAllPatientDialysisRecord(org_id, item.DialysisDate, item.PatientId)
  1003. // sch, _ := service.GetScheduleByPatient(item.PatientId, item.DialysisDate, org_id)
  1004. // str2 := strconv.Itoa(int(sch.ID))
  1005. // PunctureRole, _ := service.GetAdminUserRoleTwo(order.KyyTreatmentSummary.Puncture, org_id)
  1006. // ZlRole, _ := service.GetAdminUserRole(order.KyyTreatmentSummary.ZlNurse, org_id)
  1007. // FinishRole, _ := service.GetAdminUserRole(order.FinishNurse, org_id)
  1008. // PrescriptionDoctor, _ := service.GetAdminUserRole(order.KYYPrescriptionVM.PrescriptionDoctor, org_id)
  1009. // dr.PncrNurs = PunctureRole.UserName
  1010. // dr.TrtNurs = ZlRole.UserName
  1011. // dr.Chker = ""
  1012. // dr.OffMchNurs = FinishRole.UserName
  1013. // dr.TrtDr = PrescriptionDoctor.UserName
  1014. // dr.BtchID = str2
  1015. // dr.RsltCont = order.KyyTreatmentSummary.DialysisSummary
  1016. // drs = append(drs, dr)
  1017. // }
  1018. //
  1019. // // 转换为 JSON
  1020. // jsonData, err := json.Marshal(requestData)
  1021. // if err != nil {
  1022. // return fmt.Errorf("JSON 编码失败: %v", err)
  1023. // }
  1024. //
  1025. // // 创建 HTTP 请求
  1026. // req, err := http.NewRequest("POST", "https://ggfw.scyb.org.cn/ims/his/outside/api/scen/twoDecisions/hdDataUpload", bytes.NewBuffer(jsonData))
  1027. // if err != nil {
  1028. // return fmt.Errorf("创建请求失败: %v", err)
  1029. // }
  1030. //
  1031. // // 设置请求头
  1032. // req.Header.Set("Content-Type", "application/json")
  1033. // // 根据实际需要添加其他请求头,如认证信息等
  1034. // // req.Header.Set("Authorization", "Bearer your_token")
  1035. //
  1036. // // 发送请求
  1037. // client := &http.Client{}
  1038. // resp, err := client.Do(req)
  1039. // if err != nil {
  1040. // return fmt.Errorf("请求发送失败: %v", err)
  1041. // }
  1042. // defer resp.Body.Close()
  1043. //
  1044. // // 读取响应
  1045. // body, err := io.ReadAll(resp.Body)
  1046. // if err != nil {
  1047. // return fmt.Errorf("读取响应失败: %v", err)
  1048. // }
  1049. //
  1050. // // 检查响应状态
  1051. // if resp.StatusCode != http.StatusOK {
  1052. // return fmt.Errorf("请求失败,状态码: %d, 响应: %s", resp.StatusCode, string(body))
  1053. // }
  1054. //
  1055. // // 处理响应数据
  1056. // fmt.Printf("上传成功,响应: %s\n", string(body))
  1057. //
  1058. // return nil
  1059. //}