sz_his_service.go 29KB

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