sz_his_service.go 28KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893
  1. package service
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "fmt"
  6. "gdyb/models"
  7. "io/ioutil"
  8. "math/rand"
  9. "net/http"
  10. "time"
  11. _ "unsafe"
  12. )
  13. func SzybMZ002(doctor string, doctor_code string, fixmedins_code string, dept_code string, account string, verify_code string, serial_number string) string {
  14. // 生成输入报文
  15. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, serial_number)
  16. inputData := make(map[string]interface{})
  17. inputMessage["transType"] = "MZ002" // 交易编码
  18. inputData["akc190"] = serial_number
  19. inputData["aaz500"] = account
  20. inputData["bzz269"] = "000000"
  21. inputData["aka130"] = "11"
  22. inputData["akf001"] = dept_code
  23. inputData["bkc368"] = "2"
  24. inputData["akc264"] = 10.00
  25. inputData["listsize"] = 1
  26. feedetail := make([]map[string]interface{}, 0)
  27. feedetailInfo := make(map[string]interface{})
  28. feedetailInfo["aae072"] = "202123242526272829"
  29. feedetailInfo["bkf500"] = "202123242526272829"
  30. feedetailInfo["ake001"] = "110100002"
  31. feedetailInfo["ake005"] = "110100002"
  32. feedetailInfo["ake006"] = "普通门诊诊查费"
  33. feedetailInfo["aae019"] = "10.00"
  34. feedetail = append(feedetail, feedetailInfo)
  35. inputData["inputlist"] = feedetail
  36. inputData["bke384"] = inputMessage["serialNumber"]
  37. inputMessage["transBody"] = inputData
  38. bytesData, err := json.Marshal(inputMessage)
  39. fmt.Println(string(bytesData))
  40. if err != nil {
  41. fmt.Println(err.Error())
  42. return err.Error()
  43. }
  44. reader := bytes.NewReader(bytesData)
  45. url := "http://192.168.1.228:17001/szsi-portal/transData"
  46. request, err := http.NewRequest("POST", url, reader)
  47. if err != nil {
  48. fmt.Println(err.Error())
  49. return err.Error()
  50. }
  51. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  52. client := http.Client{}
  53. resp, err := client.Do(request)
  54. if err != nil {
  55. fmt.Println(err.Error())
  56. return err.Error()
  57. }
  58. respBytes, err := ioutil.ReadAll(resp.Body)
  59. if err != nil {
  60. fmt.Println(err.Error())
  61. return err.Error()
  62. }
  63. fmt.Println(string(respBytes))
  64. str := string(respBytes)
  65. return str
  66. }
  67. func SzybFY001(doctor string, doctor_code string, fixmedins_code string, datas []*models.CustomDetail, verify_code string, serial_number string) string {
  68. // 生成输入报文
  69. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, serial_number)
  70. inputData := make(map[string]interface{})
  71. inputMessage["transType"] = "FY001" // 交易编码
  72. inputMessage["transChannel"] = "10" // 交易编码
  73. inputData["akc190"] = "G554020210305"
  74. inputData["bke384"] = "G5540202103316180298"
  75. inputData["listsize"] = len(datas)
  76. feedetail := make([]map[string]interface{}, 0)
  77. for _, item := range datas {
  78. feedetailInfo := make(map[string]interface{})
  79. feedetailInfo["aae072"] = item.PrescriptionNumber
  80. feedetailInfo["bkc369"] = item.OrderType
  81. feedetailInfo["bkf500"] = item.ChargeSerialNumber
  82. feedetailInfo["ake001"] = item.Code
  83. feedetailInfo["ake002"] = item.CodeName
  84. feedetailInfo["bkm017"] = item.Code
  85. feedetailInfo["aka070"] = item.DoseCode
  86. feedetailInfo["aka074"] = item.Spec
  87. feedetailInfo["aka064"] = 0
  88. feedetailInfo["ake005"] = item.Code
  89. feedetailInfo["ake006"] = item.CodeName
  90. feedetailInfo["akc225"] = item.Price
  91. feedetailInfo["akc226"] = item.Count
  92. feedetailInfo["aka067"] = "元"
  93. feedetailInfo["akc271"] = item.ChargeOrderDate
  94. feedetailInfo["bkc320"] = "H24962918"
  95. feedetailInfo["akc264"] = item.Total
  96. feedetail = append(feedetail, feedetailInfo)
  97. }
  98. inputData["inputlist"] = feedetail
  99. inputMessage["transBody"] = inputData
  100. fmt.Println(inputMessage)
  101. bytesData, err := json.Marshal(inputMessage)
  102. fmt.Println(string(bytesData))
  103. if err != nil {
  104. fmt.Println(err.Error())
  105. return err.Error()
  106. }
  107. reader := bytes.NewReader(bytesData)
  108. url := "http://192.168.1.228:17001/szsi-portal/transData"
  109. request, err := http.NewRequest("POST", url, reader)
  110. if err != nil {
  111. fmt.Println(err.Error())
  112. return err.Error()
  113. }
  114. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  115. client := http.Client{}
  116. resp, err := client.Do(request)
  117. if err != nil {
  118. fmt.Println(err.Error())
  119. return err.Error()
  120. }
  121. respBytes, err := ioutil.ReadAll(resp.Body)
  122. if err != nil {
  123. fmt.Println(err.Error())
  124. return err.Error()
  125. }
  126. fmt.Println(string(respBytes))
  127. str := string(respBytes)
  128. return str
  129. }
  130. func SzybFY002(doctor string, doctor_code string, fixmedins_code string, datas []*models.CustomDetail, verify_code string, serial_number string) string {
  131. // 生成输入报文
  132. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, serial_number)
  133. inputData := make(map[string]interface{})
  134. inputMessage["transType"] = "FY002" // 交易编码
  135. inputData["akc190"] = "G554020210305"
  136. inputData["bke384"] = serial_number
  137. inputData["listsize"] = len(datas)
  138. feedetail := make([]map[string]interface{}, 0)
  139. for _, item := range datas {
  140. feedetailInfo := make(map[string]interface{})
  141. feedetailInfo["aae072"] = item.PrescriptionNumber
  142. feedetailInfo["bkf500"] = item.ChargeSerialNumber
  143. feedetail = append(feedetail, feedetailInfo)
  144. }
  145. inputData["inputlist"] = feedetail
  146. inputMessage["transBody"] = inputData
  147. bytesData, err := json.Marshal(inputMessage)
  148. fmt.Println(string(bytesData))
  149. if err != nil {
  150. fmt.Println(err.Error())
  151. return err.Error()
  152. }
  153. reader := bytes.NewReader(bytesData)
  154. //url := "http://192.168.1.99:10000"
  155. url := "http://192.168.1.228:17001/szsi-portal/transData"
  156. request, err := http.NewRequest("POST", url, reader)
  157. if err != nil {
  158. fmt.Println(err.Error())
  159. return err.Error()
  160. }
  161. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  162. client := http.Client{}
  163. resp, err := client.Do(request)
  164. if err != nil {
  165. fmt.Println(err.Error())
  166. return err.Error()
  167. }
  168. respBytes, err := ioutil.ReadAll(resp.Body)
  169. if err != nil {
  170. fmt.Println(err.Error())
  171. return err.Error()
  172. }
  173. fmt.Println(string(respBytes))
  174. str := string(respBytes)
  175. return str
  176. }
  177. func SzybFY004(doctor string, doctor_code string, fixmedins_code string, dept_code string, total float64, number string, verify_code string, serial_number string) string {
  178. // 生成输入报文
  179. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, number)
  180. inputData := make(map[string]interface{})
  181. inputMessage["transType"] = "FY004" // 交易编码
  182. inputData["akc190"] = "G554020210305"
  183. inputData["aka130"] = "11"
  184. inputData["bkc320"] = doctor_code
  185. inputData["ckc350"] = doctor
  186. inputData["aka030"] = "12"
  187. inputData["akc264"] = total
  188. inputData["ckc601"] = "0"
  189. inputData["bke384"] = serial_number
  190. inputMessage["transBody"] = inputData
  191. bytesData, err := json.Marshal(inputMessage)
  192. fmt.Println(string(bytesData))
  193. if err != nil {
  194. fmt.Println(err.Error())
  195. return err.Error()
  196. }
  197. reader := bytes.NewReader(bytesData)
  198. //url := "http://192.168.1.99:10000"
  199. url := "http://192.168.1.228:17001/szsi-portal/transData"
  200. request, err := http.NewRequest("POST", url, reader)
  201. if err != nil {
  202. fmt.Println(err.Error())
  203. return err.Error()
  204. }
  205. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  206. client := http.Client{}
  207. resp, err := client.Do(request)
  208. if err != nil {
  209. fmt.Println(err.Error())
  210. return err.Error()
  211. }
  212. respBytes, err := ioutil.ReadAll(resp.Body)
  213. if err != nil {
  214. fmt.Println(err.Error())
  215. return err.Error()
  216. }
  217. fmt.Println(string(respBytes))
  218. str := string(respBytes)
  219. return str
  220. }
  221. func SzybFY005(doctor string, doctor_code string, fixmedins_code string, dept_code string, total float64, account string, verify_code string, serial_number string) string {
  222. // 生成输入报文
  223. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, serial_number)
  224. inputData := make(map[string]interface{})
  225. inputMessage["transType"] = "FY005" // 交易编码
  226. inputData["aaz500"] = account
  227. inputData["bzz269"] = "000000"
  228. inputData["akc190"] = "G554020210305"
  229. inputData["aka130"] = "11"
  230. inputData["bkc320"] = doctor_code
  231. inputData["ckc350"] = doctor
  232. inputData["aka030"] = "12"
  233. inputData["akc264"] = total
  234. inputData["ckc601"] = "0"
  235. inputData["bke384"] = serial_number
  236. inputMessage["transBody"] = inputData
  237. bytesData, err := json.Marshal(inputMessage)
  238. fmt.Println(string(bytesData))
  239. if err != nil {
  240. fmt.Println(err.Error())
  241. return err.Error()
  242. }
  243. reader := bytes.NewReader(bytesData)
  244. //url := "http://192.168.1.99:10000"
  245. url := "http://192.168.1.228:17001/szsi-portal/transData"
  246. request, err := http.NewRequest("POST", url, reader)
  247. if err != nil {
  248. fmt.Println(err.Error())
  249. return err.Error()
  250. }
  251. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  252. client := http.Client{}
  253. resp, err := client.Do(request)
  254. if err != nil {
  255. fmt.Println(err.Error())
  256. return err.Error()
  257. }
  258. respBytes, err := ioutil.ReadAll(resp.Body)
  259. if err != nil {
  260. fmt.Println(err.Error())
  261. return err.Error()
  262. }
  263. fmt.Println(string(respBytes))
  264. str := string(respBytes)
  265. return str
  266. }
  267. //func SzybJY002(doctor string, doctor_code string, fixmedins_code string, dept_code string, number string, verify_code string) string {
  268. // // 生成输入报文
  269. // inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code)
  270. // inputData := make(map[string]interface{})
  271. // inputMessage["transType"] = "JY002" // 交易编码
  272. //
  273. // inputData["akc190"] = "2021033012131415"
  274. // inputData["bke384"] = number
  275. //
  276. // inputMessage["transBody"] = inputData
  277. // bytesData, err := json.Marshal(inputMessage)
  278. // fmt.Println(string(bytesData))
  279. // if err != nil {
  280. // fmt.Println(err.Error())
  281. // return err.Error()
  282. // }
  283. // reader := bytes.NewReader(bytesData)
  284. // //url := "http://192.168.1.99:10000"
  285. // url := "http://192.168.1.228:17001/szsi-portal/transData"
  286. //
  287. // request, err := http.NewRequest("POST", url, reader)
  288. // if err != nil {
  289. // fmt.Println(err.Error())
  290. // return err.Error()
  291. // }
  292. //
  293. // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  294. //
  295. // client := http.Client{}
  296. // resp, err := client.Do(request)
  297. // if err != nil {
  298. // fmt.Println(err.Error())
  299. // return err.Error()
  300. // }
  301. // respBytes, err := ioutil.ReadAll(resp.Body)
  302. // if err != nil {
  303. // fmt.Println(err.Error())
  304. // return err.Error()
  305. // }
  306. // fmt.Println(string(respBytes))
  307. // str := string(respBytes)
  308. // return str
  309. //}
  310. //func SzybJY003(doctor string, doctor_code string, fixmedins_code string, dept_code string, number string, verify_code string) string {
  311. // // 生成输入报文
  312. // inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code)
  313. // inputData := make(map[string]interface{})
  314. // inputMessage["transType"] = "JY002" // 交易编码
  315. //
  316. // inputData["akc190"] = "2021033012131415"
  317. // inputData["bke384"] = number
  318. //
  319. // inputMessage["transBody"] = inputData
  320. // bytesData, err := json.Marshal(inputMessage)
  321. // fmt.Println(string(bytesData))
  322. // if err != nil {
  323. // fmt.Println(err.Error())
  324. // return err.Error()
  325. // }
  326. // reader := bytes.NewReader(bytesData)
  327. // //url := "http://192.168.1.99:10000"
  328. // url := "http://192.168.1.228:17001/szsi-portal/transData"
  329. //
  330. // request, err := http.NewRequest("POST", url, reader)
  331. // if err != nil {
  332. // fmt.Println(err.Error())
  333. // return err.Error()
  334. // }
  335. //
  336. // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  337. //
  338. // client := http.Client{}
  339. // resp, err := client.Do(request)
  340. // if err != nil {
  341. // fmt.Println(err.Error())
  342. // return err.Error()
  343. // }
  344. // respBytes, err := ioutil.ReadAll(resp.Body)
  345. // if err != nil {
  346. // fmt.Println(err.Error())
  347. // return err.Error()
  348. // }
  349. // fmt.Println(string(respBytes))
  350. // str := string(respBytes)
  351. // return str
  352. //}
  353. func SzybML008(doctor string, doctor_code string, fixmedins_code string, datas []*models.DrugDetail) string {
  354. //生成输入报文
  355. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  356. inputData := make(map[string]interface{})
  357. inputData["listsize"] = len(datas)
  358. inputMessage["transType"] = "ML008" // 交易编码
  359. feedetail := make([]map[string]interface{}, 0)
  360. for _, item := range datas {
  361. fmt.Println("中国222222", item.DrugDosageName)
  362. feedetailInfo := make(map[string]interface{})
  363. feedetailInfo["ake001"] = item.MedicalInsuranceNumber
  364. feedetailInfo["bkm017"] = item.Code
  365. feedetailInfo["ake005"] = "110100002"
  366. feedetailInfo["ake006"] = item.DrugName
  367. feedetailInfo["aka074"] = item.DrugSpec
  368. feedetailInfo["aka070"] = item.DrugDosageName
  369. //feedetailInfo["aka070"] = "片"
  370. feedetailInfo["aka067"] = item.MinUnit
  371. feedetailInfo["bka053"] = item.ManufacturerName
  372. feedetailInfo["aka064"] = "1"
  373. feedetailInfo["bka505"] = item.LastPrice
  374. feedetailInfo["bka506"] = item.RetailPrice
  375. feedetailInfo["aae030"] = 20210406
  376. feedetailInfo["aae013"] = item.LimitRemark
  377. feedetail = append(feedetail, feedetailInfo)
  378. }
  379. inputData["inputlist"] = feedetail
  380. inputMessage["transBody"] = inputData
  381. bytesData, err := json.Marshal(inputMessage)
  382. fmt.Println(string(bytesData))
  383. if err != nil {
  384. fmt.Println(err.Error())
  385. return err.Error()
  386. }
  387. reader := bytes.NewReader(bytesData)
  388. //url := "http://192.168.1.99:10000"
  389. url := "http://192.168.1.228:17001/szsi-portal/transData"
  390. request, err := http.NewRequest("POST", url, reader)
  391. if err != nil {
  392. fmt.Println(err.Error())
  393. return err.Error()
  394. }
  395. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  396. client := http.Client{}
  397. resp, err := client.Do(request)
  398. if err != nil {
  399. fmt.Println(err.Error())
  400. return err.Error()
  401. }
  402. respBytes, err := ioutil.ReadAll(resp.Body)
  403. if err != nil {
  404. fmt.Println(err.Error())
  405. return err.Error()
  406. }
  407. fmt.Println(string(respBytes))
  408. str := string(respBytes)
  409. return str
  410. }
  411. // 生成基础报文
  412. func SetSZInputMessage(doctor string, doctor_code string, fixmedins_code string, verify_code string, number string) map[string]interface{} {
  413. month := time.Unix(1557042972, 0).Format("1")
  414. year := time.Now().Format("2006")
  415. month = time.Now().Format("01")
  416. day := time.Now().Format("02")
  417. hour := time.Now().Format("15")
  418. min := time.Now().Format("04")
  419. sec := time.Now().Format("05")
  420. msec := time.Now().Format("000")
  421. //生成输入报文
  422. inputMessage := make(map[string]interface{})
  423. //
  424. inputMessage["cardArea"] = "440300" // 发卡地行政区划代码
  425. inputMessage["extendDeviceId"] = ""
  426. inputMessage["extendSerialNumber"] = ""
  427. inputMessage["extendUserId"] = ""
  428. inputMessage["hospitalCode"] = fixmedins_code // 协议机构编码
  429. inputMessage["operatorCode"] = doctor_code // 操作员编码
  430. inputMessage["operatorName"] = doctor // 操作员名字
  431. inputMessage["operatorPass"] = "" // 定点协议机构操作人员编码
  432. inputMessage["serialNumber"] = fixmedins_code + year + month + day +
  433. fmt.Sprintf("%07v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000000)) // 定点协议机构编码(5位)+日期(8位)+流水号(7位)
  434. inputMessage["serialNumber"] = number
  435. inputMessage["transReturnCode"] = "" //
  436. inputMessage["transReturnMessage"] = "" //
  437. inputMessage["transTime"] = year + month + day + hour + min + sec + ":" + msec //
  438. inputMessage["transVersion"] = "V0.3" //
  439. inputMessage["verifyCode"] = verify_code //
  440. inputMessage["transChannel"] = "10" //
  441. return inputMessage
  442. }
  443. func msToTime(ms int64) string {
  444. tm := time.Unix(0, ms*int64(time.Millisecond))
  445. return tm.Format("2006-02-01 15:04:05.000")
  446. }
  447. // 生成基础报文
  448. func SetSZDrugMessage(doctor string, doctor_code string, fixmedins_code string) map[string]interface{} {
  449. month := time.Unix(1557042972, 0).Format("1")
  450. year := time.Now().Format("2006")
  451. month = time.Now().Format("01")
  452. day := time.Now().Format("02")
  453. hour := time.Now().Format("15")
  454. min := time.Now().Format("04")
  455. sec := time.Now().Format("05")
  456. msec := time.Now().Format("000")
  457. //生成输入报文
  458. inputMessage := make(map[string]interface{})
  459. //
  460. inputMessage["cardArea"] = "440300" // 发卡地行政区划代码
  461. inputMessage["extendDeviceId"] = ""
  462. inputMessage["extendSerialNumber"] = ""
  463. inputMessage["extendUserId"] = ""
  464. inputMessage["hospitalCode"] = "G5540" // 协议机构编码
  465. inputMessage["operatorCode"] = doctor_code // 操作员编码
  466. inputMessage["operatorName"] = doctor // 操作员名字
  467. inputMessage["operatorPass"] = "" // 定点协议机构操作人员编码
  468. //inputMessage["serialNumber"] = "G5540" + year + month + day +
  469. // fmt.Sprintf("%07v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000000)) // 定点协议机构编码(5位)+日期(8位)+流水号(7位)
  470. inputMessage["serialNumber"] = "G554020210406" + fmt.Sprintf("%07v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000000)) // 定点协议机构编码(5位)+日期(8位)+流水号(7位)
  471. inputMessage["verifyCode"] = "000000|8ec5b7745a5cc45b631f23b4bf1e417e"
  472. inputMessage["transReturnCode"] = "" //
  473. inputMessage["transReturnMessage"] = "" //
  474. inputMessage["transTime"] = year + month + day + hour + min + sec + ":" + msec //
  475. inputMessage["transVersion"] = "V0.3" // //
  476. inputMessage["transChannel"] = "10" //
  477. return inputMessage
  478. }
  479. func SzybML009(doctor string, doctor_code string, fixmedins_code string, datas []*models.DrugDetail) string {
  480. //生成输入报文
  481. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  482. inputData := make(map[string]interface{})
  483. inputData["listsize"] = len(datas)
  484. inputMessage["transType"] = "ML009" // 交易编码
  485. feedetail := make([]map[string]interface{}, 0)
  486. for _, item := range datas {
  487. feedetailInfo := make(map[string]interface{})
  488. feedetailInfo["ake001"] = item.MedicalInsuranceNumber //社保目录编码
  489. feedetailInfo["ake005"] = "110100002" //协议机构内部目录编码
  490. feedetailInfo["ake006"] = item.DrugName // 协议机构内部目录名称
  491. feedetailInfo["bkf131"] = "4" //协议机构项目类别
  492. feedetailInfo["bkm062"] = "0" // 门诊特检项目标识
  493. feedetailInfo["bka506"] = item.RetailPrice // 协议机构内部项目收费价格
  494. feedetailInfo["aae030"] = 20210407 // 备案日期
  495. feedetailInfo["aae013"] = item.LimitRemark // 备注
  496. feedetail = append(feedetail, feedetailInfo)
  497. }
  498. fmt.Println("feeedDetal2333333333", feedetail)
  499. inputData["inputlist"] = feedetail
  500. inputMessage["transBody"] = inputData
  501. bytesData, err := json.Marshal(inputMessage)
  502. fmt.Println(string(bytesData))
  503. if err != nil {
  504. fmt.Println(err.Error())
  505. return err.Error()
  506. }
  507. reader := bytes.NewReader(bytesData)
  508. //url := "http://192.168.1.99:10000"
  509. url := "http://192.168.1.228:17001/szsi-portal/transData"
  510. request, err := http.NewRequest("POST", url, reader)
  511. if err != nil {
  512. fmt.Println(err.Error())
  513. return err.Error()
  514. }
  515. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  516. client := http.Client{}
  517. resp, err := client.Do(request)
  518. if err != nil {
  519. fmt.Println(err.Error())
  520. return err.Error()
  521. }
  522. respBytes, err := ioutil.ReadAll(resp.Body)
  523. if err != nil {
  524. fmt.Println(err.Error())
  525. return err.Error()
  526. }
  527. fmt.Println(string(respBytes))
  528. str := string(respBytes)
  529. return str
  530. }
  531. func SzybML010(doctor string, doctor_code string, fixmedins_code string, datas []*models.DrugDetail) string {
  532. //生成输入报文
  533. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  534. inputData := make(map[string]interface{})
  535. inputData["listsize"] = len(datas)
  536. inputMessage["transType"] = "ML010" // 交易编码
  537. feedetail := make([]map[string]interface{}, 0)
  538. for _, item := range datas {
  539. feedetailInfo := make(map[string]interface{})
  540. feedetailInfo["ake003"] = "1"
  541. feedetailInfo["ake001"] = item.MedicalInsuranceNumber //社保目录编码
  542. feedetailInfo["ake005"] = "110100002" //协议机构内部目录编码
  543. feedetail = append(feedetail, feedetailInfo)
  544. }
  545. inputData["inputlist"] = feedetail
  546. inputMessage["transBody"] = inputData
  547. bytesData, err := json.Marshal(inputMessage)
  548. fmt.Println(string(bytesData))
  549. if err != nil {
  550. fmt.Println(err.Error())
  551. return err.Error()
  552. }
  553. reader := bytes.NewReader(bytesData)
  554. //url := "http://192.168.1.99:10000"
  555. url := "http://192.168.1.228:17001/szsi-portal/transData"
  556. request, err := http.NewRequest("POST", url, reader)
  557. if err != nil {
  558. fmt.Println(err.Error())
  559. return err.Error()
  560. }
  561. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  562. client := http.Client{}
  563. resp, err := client.Do(request)
  564. if err != nil {
  565. fmt.Println(err.Error())
  566. return err.Error()
  567. }
  568. respBytes, err := ioutil.ReadAll(resp.Body)
  569. if err != nil {
  570. fmt.Println(err.Error())
  571. return err.Error()
  572. }
  573. fmt.Println(string(respBytes))
  574. str := string(respBytes)
  575. return str
  576. }
  577. func SzybYS001(doctor string, doctor_code string, fixmedins_code string, datas []*models.DocDetail) string {
  578. //生成输入报文
  579. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  580. inputData := make(map[string]interface{})
  581. inputData["listsize"] = len(datas)
  582. inputMessage["transType"] = "ML010" // 交易编码
  583. feedetail := make([]map[string]interface{}, 0)
  584. for _, item := range datas {
  585. feedetailInfo := make(map[string]interface{})
  586. feedetailInfo["aac003"] = item.UserName
  587. feedetailInfo["bka633"] = item.RoleId
  588. feedetailInfo["aac004"] = item.Sex
  589. feedetailInfo["aac058"] = item.CardType
  590. feedetailInfo["aac147"] = item.IdCard
  591. feedetailInfo["aae005"] = item.Phone
  592. feedetailInfo["bkc322"] = item.WorkMajorName
  593. feedetailInfo["aac005"] = item.Nation
  594. feedetailInfo["aac006"] = item.BirthDay
  595. feedetailInfo["aac007"] = item.WorkTime
  596. feedetailInfo["aac011"] = item.Education
  597. feedetailInfo["aac183"] = item.StudyMajorName
  598. feedetailInfo["bkc323"] = item.CertificateCode
  599. feedetailInfo["bke955"] = item.MedicalCode
  600. feedetailInfo["akc055"] = item.MedicalRangeCode
  601. feedetailInfo["bcc950"] = item.MedicalLevel
  602. feedetailInfo["bcc955"] = item.TypeJob
  603. feedetailInfo["bka503"] = item.DoctorNumber
  604. feedetailInfo["bkc324"] = item.Licensing
  605. feedetailInfo["bkc326"] = item.DoctorServiceStatus
  606. feedetailInfo["bkc328"] = item.MonitoringLevel
  607. feedetailInfo["bkc329"] = item.DrugPsychotropicSubstances
  608. feedetailInfo["bke801"] = item.HealthCareCode
  609. feedetailInfo["bkc330"] = item.PlanningTechnicalServiceCode
  610. feedetailInfo["bkc332"] = item.PharmacistType
  611. feedetailInfo["bkc333"] = item.PharmacistPracticeCategory
  612. feedetailInfo["bkc334"] = item.PharmacistsLicensing
  613. feedetailInfo["bkc335"] = item.PharmacistRegistrationNumber
  614. feedetailInfo["akf001"] = item.OfficeCode
  615. feedetailInfo["acc501"] = item.JobNumber
  616. feedetailInfo["ahc451"] = item.PostName
  617. feedetailInfo["aaf009"] = item.TechnicalJobLevelCode
  618. feedetailInfo["bkc321"] = item.IsActive
  619. feedetailInfo["ckc302"] = item.PrescriptionQualificationIdentification
  620. feedetailInfo["bkc325"] = item.IdentificationOutpatients
  621. feedetailInfo["ckc304"] = item.OutpatientIllnessCategory
  622. feedetailInfo["aae030"] = item.StartTime
  623. feedetail = append(feedetail, feedetailInfo)
  624. }
  625. inputData["inputlist"] = feedetail
  626. inputMessage["transBody"] = inputData
  627. bytesData, err := json.Marshal(inputMessage)
  628. fmt.Println(string(bytesData))
  629. if err != nil {
  630. fmt.Println(err.Error())
  631. return err.Error()
  632. }
  633. reader := bytes.NewReader(bytesData)
  634. //url := "http://192.168.1.99:10000"
  635. url := "http://192.168.1.228:17001/szsi-portal/transData"
  636. request, err := http.NewRequest("POST", url, reader)
  637. if err != nil {
  638. fmt.Println(err.Error())
  639. return err.Error()
  640. }
  641. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  642. client := http.Client{}
  643. resp, err := client.Do(request)
  644. if err != nil {
  645. fmt.Println(err.Error())
  646. return err.Error()
  647. }
  648. respBytes, err := ioutil.ReadAll(resp.Body)
  649. if err != nil {
  650. fmt.Println(err.Error())
  651. return err.Error()
  652. }
  653. fmt.Println(string(respBytes))
  654. str := string(respBytes)
  655. return str
  656. }
  657. func SzybYS002(doctor string, doctor_code string, fixmedins_code string, datas []*models.DocDetail) string {
  658. //生成输入报文
  659. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  660. inputData := make(map[string]interface{})
  661. inputData["listsize"] = len(datas)
  662. inputMessage["transType"] = "ML010" // 交易编码
  663. feedetail := make([]map[string]interface{}, 0)
  664. for _, item := range datas {
  665. fmt.Println("item2222", item)
  666. feedetailInfo := make(map[string]interface{})
  667. feedetailInfo["bkc320"] = 1111
  668. feedetailInfo["bke155"] = ""
  669. feedetail = append(feedetail, feedetailInfo)
  670. }
  671. inputData["inputlist"] = feedetail
  672. inputMessage["transBody"] = inputData
  673. bytesData, err := json.Marshal(inputMessage)
  674. fmt.Println(string(bytesData))
  675. if err != nil {
  676. fmt.Println(err.Error())
  677. return err.Error()
  678. }
  679. reader := bytes.NewReader(bytesData)
  680. //url := "http://192.168.1.99:10000"
  681. url := "http://192.168.1.228:17001/szsi-portal/transData"
  682. request, err := http.NewRequest("POST", url, reader)
  683. if err != nil {
  684. fmt.Println(err.Error())
  685. return err.Error()
  686. }
  687. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  688. client := http.Client{}
  689. resp, err := client.Do(request)
  690. if err != nil {
  691. fmt.Println(err.Error())
  692. return err.Error()
  693. }
  694. respBytes, err := ioutil.ReadAll(resp.Body)
  695. if err != nil {
  696. fmt.Println(err.Error())
  697. return err.Error()
  698. }
  699. fmt.Println(string(respBytes))
  700. str := string(respBytes)
  701. return str
  702. }
  703. func SzybYS003(doctor string, doctor_code string, fixmedins_code string, datas []*models.DocDetail) string {
  704. //生成输入报文
  705. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  706. inputData := make(map[string]interface{})
  707. inputData["listsize"] = len(datas)
  708. inputMessage["transType"] = "ML010" // 交易编码
  709. feedetail := make([]map[string]interface{}, 0)
  710. for _, item := range datas {
  711. feedetailInfo := make(map[string]interface{})
  712. feedetailInfo["bkc320"] = ""
  713. feedetailInfo["aac003"] = item.UserName
  714. feedetailInfo["bka633"] = item.RoleId
  715. feedetailInfo["aac004"] = item.Sex
  716. feedetailInfo["aac058"] = item.CardType
  717. feedetailInfo["aac147"] = item.IdCard
  718. feedetailInfo["aae005"] = item.Phone
  719. feedetailInfo["bkc322"] = item.WorkMajorName
  720. feedetailInfo["aac005"] = item.Nation
  721. feedetailInfo["aac006"] = item.BirthDay
  722. feedetailInfo["aac007"] = item.WorkTime
  723. feedetailInfo["aac011"] = item.Education
  724. feedetailInfo["aac183"] = item.StudyMajorName
  725. feedetailInfo["bkc323"] = item.CertificateCode
  726. feedetailInfo["bke955"] = item.MedicalCode
  727. feedetailInfo["akc055"] = item.MedicalRangeCode
  728. feedetailInfo["bcc950"] = item.MedicalLevel
  729. feedetailInfo["bcc955"] = item.TypeJob
  730. feedetailInfo["bka503"] = item.DoctorNumber
  731. feedetailInfo["bkc324"] = item.Licensing
  732. feedetailInfo["bkc326"] = item.DoctorServiceStatus
  733. feedetailInfo["bkc328"] = item.MonitoringLevel
  734. feedetailInfo["bkc329"] = item.DrugPsychotropicSubstances
  735. feedetailInfo["bke801"] = item.HealthCareCode
  736. feedetailInfo["bkc330"] = item.PlanningTechnicalServiceCode
  737. feedetailInfo["bkc332"] = item.PharmacistType
  738. feedetailInfo["bkc333"] = item.PharmacistPracticeCategory
  739. feedetailInfo["bkc334"] = item.PharmacistsLicensing
  740. feedetailInfo["bkc335"] = item.PharmacistRegistrationNumber
  741. feedetailInfo["akf001"] = item.OfficeCode
  742. feedetailInfo["acc501"] = item.JobNumber
  743. feedetailInfo["ahc451"] = item.PostName
  744. feedetailInfo["aaf009"] = item.TechnicalJobLevelCode
  745. feedetailInfo["bkc321"] = item.IsActive
  746. feedetailInfo["ckc302"] = item.PrescriptionQualificationIdentification
  747. feedetailInfo["bkc325"] = item.IdentificationOutpatients
  748. feedetailInfo["ckc304"] = item.OutpatientIllnessCategory
  749. feedetailInfo["aae030"] = item.StartTime
  750. feedetailInfo["aae031"] = item.EndTime
  751. feedetail = append(feedetail, feedetailInfo)
  752. }
  753. inputData["inputlist"] = feedetail
  754. inputMessage["transBody"] = inputData
  755. bytesData, err := json.Marshal(inputMessage)
  756. fmt.Println(string(bytesData))
  757. if err != nil {
  758. fmt.Println(err.Error())
  759. return err.Error()
  760. }
  761. reader := bytes.NewReader(bytesData)
  762. //url := "http://192.168.1.99:10000"
  763. url := "http://192.168.1.228:17001/szsi-portal/transData"
  764. request, err := http.NewRequest("POST", url, reader)
  765. if err != nil {
  766. fmt.Println(err.Error())
  767. return err.Error()
  768. }
  769. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  770. client := http.Client{}
  771. resp, err := client.Do(request)
  772. if err != nil {
  773. fmt.Println(err.Error())
  774. return err.Error()
  775. }
  776. respBytes, err := ioutil.ReadAll(resp.Body)
  777. if err != nil {
  778. fmt.Println(err.Error())
  779. return err.Error()
  780. }
  781. fmt.Println(string(respBytes))
  782. str := string(respBytes)
  783. return str
  784. }