sz_his_service.go 48KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403
  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. "strconv"
  11. "time"
  12. _ "unsafe"
  13. )
  14. func SzybMZ002(doctor string, doctor_code string, fixmedins_code string, dept_code string, account string, verify_code string, serial_number string, mz_number string, version_code string, custom_code string, project_name string, price float64) string {
  15. // 生成输入报文
  16. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, serial_number)
  17. inputData := make(map[string]interface{})
  18. inputMessage["transType"] = "MZ002" // 交易编码
  19. inputMessage["transVersion"] = version_code // 交易编码
  20. inputData["akc190"] = mz_number
  21. inputData["aaz500"] = account
  22. inputData["bzz269"] = "000000"
  23. inputData["aka130"] = "11"
  24. inputData["akf001"] = dept_code
  25. inputData["akc264"] = price
  26. inputData["bke384"] = inputMessage["serialNumber"]
  27. switch custom_code {
  28. case "110100002":
  29. inputData["bkc368"] = "1"
  30. break
  31. case "110200002-2":
  32. inputData["bkc368"] = "3"
  33. break
  34. case "110200002-3":
  35. inputData["bkc368"] = "2"
  36. break
  37. case "110200003":
  38. break
  39. case "110200002-1":
  40. inputData["bkc368"] = "5"
  41. break
  42. }
  43. if custom_code == "0" {
  44. inputData["bkc368"] = "4"
  45. inputData["listsize"] = 0
  46. inputMessage["transBody"] = inputData
  47. bytesData, err := json.Marshal(inputMessage)
  48. fmt.Println(string(bytesData))
  49. if err != nil {
  50. fmt.Println(err.Error())
  51. return err.Error()
  52. }
  53. reader := bytes.NewReader(bytesData)
  54. url := "http://192.168.1.228:17001/szsi-portal/transData"
  55. request, err := http.NewRequest("POST", url, reader)
  56. if err != nil {
  57. fmt.Println(err.Error())
  58. return err.Error()
  59. }
  60. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  61. client := http.Client{}
  62. resp, err := client.Do(request)
  63. if err != nil {
  64. fmt.Println(err.Error())
  65. return err.Error()
  66. }
  67. respBytes, err := ioutil.ReadAll(resp.Body)
  68. if err != nil {
  69. fmt.Println(err.Error())
  70. return err.Error()
  71. }
  72. fmt.Println(string(respBytes))
  73. str := string(respBytes)
  74. return str
  75. } else {
  76. inputData["listsize"] = 1
  77. timestamp := time.Now().Unix()
  78. tempTime := time.Unix(timestamp, 0)
  79. timeFormat := tempTime.Format("20060102150405")
  80. feedetail := make([]map[string]interface{}, 0)
  81. feedetailInfo := make(map[string]interface{})
  82. feedetailInfo["aae072"] = timeFormat
  83. feedetailInfo["bkf500"] = timeFormat
  84. feedetailInfo["ake001"] = custom_code
  85. feedetailInfo["ake005"] = custom_code
  86. feedetailInfo["ake006"] = project_name
  87. feedetailInfo["aae019"] = price
  88. feedetail = append(feedetail, feedetailInfo)
  89. inputData["inputlist"] = feedetail
  90. inputMessage["transBody"] = inputData
  91. bytesData, err := json.Marshal(inputMessage)
  92. fmt.Println(string(bytesData))
  93. if err != nil {
  94. fmt.Println(err.Error())
  95. return err.Error()
  96. }
  97. reader := bytes.NewReader(bytesData)
  98. url := "http://192.168.1.228:17001/szsi-portal/transData"
  99. request, err := http.NewRequest("POST", url, reader)
  100. if err != nil {
  101. fmt.Println(err.Error())
  102. return err.Error()
  103. }
  104. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  105. client := http.Client{}
  106. resp, err := client.Do(request)
  107. if err != nil {
  108. fmt.Println(err.Error())
  109. return err.Error()
  110. }
  111. respBytes, err := ioutil.ReadAll(resp.Body)
  112. if err != nil {
  113. fmt.Println(err.Error())
  114. return err.Error()
  115. }
  116. fmt.Println(string(respBytes))
  117. str := string(respBytes)
  118. return str
  119. }
  120. }
  121. func SzybFY001(doctor string, doctor_code string, fixmedins_code string, datas []*models.CustomDetail, verify_code string, serial_number string, mz_number string, version_code string, drug_doctor_code string) string {
  122. // 生成输入报文
  123. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, serial_number)
  124. inputData := make(map[string]interface{})
  125. inputMessage["transType"] = "FY001" // 交易编码
  126. inputMessage["transChannel"] = "10" // 交易编码
  127. inputMessage["transVersion"] = version_code // 交易编码
  128. inputData["akc190"] = mz_number
  129. inputData["bke384"] = serial_number
  130. inputData["listsize"] = len(datas)
  131. feedetail := make([]map[string]interface{}, 0)
  132. for _, item := range datas {
  133. feedetailInfo := make(map[string]interface{})
  134. feedetailInfo["aae072"] = item.PrescriptionNumber
  135. feedetailInfo["bkc369"] = item.OrderType
  136. feedetailInfo["bkf500"] = item.ChargeSerialNumber
  137. feedetailInfo["ake001"] = item.Code
  138. feedetailInfo["ake002"] = item.CodeName
  139. feedetailInfo["bkm017"] = item.Code
  140. feedetailInfo["aka070"] = item.DoseCode
  141. feedetailInfo["aka074"] = item.Spec
  142. feedetailInfo["aka064"] = 1
  143. feedetailInfo["ake005"] = item.Code
  144. feedetailInfo["ake006"] = item.CodeName
  145. feedetailInfo["akc225"] = item.Price
  146. feedetailInfo["akc226"] = item.Count
  147. feedetailInfo["akc264"] = item.Total
  148. feedetailInfo["aka067"] = "元"
  149. feedetailInfo["akc271"] = item.ChargeOrderDate
  150. feedetailInfo["bkc320"] = drug_doctor_code
  151. feedetail = append(feedetail, feedetailInfo)
  152. }
  153. inputData["inputlist"] = feedetail
  154. inputMessage["transBody"] = inputData
  155. fmt.Println(inputMessage)
  156. bytesData, err := json.Marshal(inputMessage)
  157. fmt.Println(string(bytesData))
  158. if err != nil {
  159. fmt.Println(err.Error())
  160. return err.Error()
  161. }
  162. reader := bytes.NewReader(bytesData)
  163. url := "http://192.168.1.228:17001/szsi-portal/transData"
  164. request, err := http.NewRequest("POST", url, reader)
  165. if err != nil {
  166. fmt.Println(err.Error())
  167. return err.Error()
  168. }
  169. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  170. client := http.Client{}
  171. resp, err := client.Do(request)
  172. if err != nil {
  173. fmt.Println(err.Error())
  174. return err.Error()
  175. }
  176. respBytes, err := ioutil.ReadAll(resp.Body)
  177. if err != nil {
  178. fmt.Println(err.Error())
  179. return err.Error()
  180. }
  181. fmt.Println(string(respBytes))
  182. str := string(respBytes)
  183. return str
  184. }
  185. func SzybFY002(doctor string, doctor_code string, fixmedins_code string, datas []*models.CustomDetail, verify_code string, serial_number string, mz_number string, version_code string) string {
  186. // 生成输入报文
  187. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, serial_number)
  188. inputData := make(map[string]interface{})
  189. inputMessage["transType"] = "FY002" // 交易编码
  190. inputMessage["transVersion"] = version_code // 交易编码
  191. inputData["akc190"] = mz_number
  192. inputData["bke384"] = serial_number
  193. inputData["listsize"] = len(datas)
  194. feedetail := make([]map[string]interface{}, 0)
  195. for _, item := range datas {
  196. feedetailInfo := make(map[string]interface{})
  197. feedetailInfo["aae072"] = item.PrescriptionNumber
  198. feedetailInfo["bkf500"] = item.ChargeSerialNumber
  199. feedetail = append(feedetail, feedetailInfo)
  200. }
  201. inputData["inputlist"] = feedetail
  202. inputMessage["transBody"] = inputData
  203. bytesData, err := json.Marshal(inputMessage)
  204. fmt.Println(string(bytesData))
  205. if err != nil {
  206. fmt.Println(err.Error())
  207. return err.Error()
  208. }
  209. reader := bytes.NewReader(bytesData)
  210. //url := "http://192.168.1.99:10000"
  211. url := "http://192.168.1.228:17001/szsi-portal/transData"
  212. request, err := http.NewRequest("POST", url, reader)
  213. if err != nil {
  214. fmt.Println(err.Error())
  215. return err.Error()
  216. }
  217. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  218. client := http.Client{}
  219. resp, err := client.Do(request)
  220. if err != nil {
  221. fmt.Println(err.Error())
  222. return err.Error()
  223. }
  224. respBytes, err := ioutil.ReadAll(resp.Body)
  225. if err != nil {
  226. fmt.Println(err.Error())
  227. return err.Error()
  228. }
  229. fmt.Println(string(respBytes))
  230. str := string(respBytes)
  231. return str
  232. }
  233. func SzybFY004(doctor string, doctor_code string, fixmedins_code string, total float64, verify_code string, serial_number string, mz_number string, version_code string, drug_doctor_code string, drug_doctor_name string) string {
  234. // 生成输入报文
  235. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, serial_number)
  236. inputData := make(map[string]interface{})
  237. inputMessage["transType"] = "FY004" // 交易编码
  238. inputMessage["transVersion"] = version_code // 交易编码
  239. inputData["akc190"] = mz_number
  240. inputData["aka130"] = "11"
  241. inputData["bkc320"] = drug_doctor_code
  242. inputData["ckc350"] = drug_doctor_name
  243. inputData["aka030"] = "12"
  244. inputData["akc264"] = total
  245. inputData["ckc601"] = "0"
  246. inputData["bke384"] = serial_number
  247. inputMessage["transBody"] = inputData
  248. bytesData, err := json.Marshal(inputMessage)
  249. fmt.Println(string(bytesData))
  250. if err != nil {
  251. fmt.Println(err.Error())
  252. return err.Error()
  253. }
  254. reader := bytes.NewReader(bytesData)
  255. //url := "http://192.168.1.99:10000"
  256. url := "http://192.168.1.228:17001/szsi-portal/transData"
  257. request, err := http.NewRequest("POST", url, reader)
  258. if err != nil {
  259. fmt.Println(err.Error())
  260. return err.Error()
  261. }
  262. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  263. client := http.Client{}
  264. resp, err := client.Do(request)
  265. if err != nil {
  266. fmt.Println(err.Error())
  267. return err.Error()
  268. }
  269. respBytes, err := ioutil.ReadAll(resp.Body)
  270. if err != nil {
  271. fmt.Println(err.Error())
  272. return err.Error()
  273. }
  274. fmt.Println(string(respBytes))
  275. str := string(respBytes)
  276. return str
  277. }
  278. func SzybFY005(doctor string, doctor_code string, fixmedins_code string, total float64, account string, verify_code string, serial_number string, mz_number string, version_code string, drug_doctor string, drug_doctor_name string) string {
  279. // 生成输入报文
  280. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, serial_number)
  281. inputData := make(map[string]interface{})
  282. inputMessage["transType"] = "FY005" // 交易编码
  283. inputMessage["transVersion"] = version_code // 交易编码
  284. inputData["aaz500"] = account
  285. inputData["bzz269"] = "000000"
  286. inputData["akc190"] = mz_number
  287. inputData["aka130"] = "11"
  288. inputData["bkc320"] = drug_doctor
  289. inputData["ckc350"] = drug_doctor_name
  290. inputData["aka030"] = "12"
  291. inputData["akc264"] = total
  292. inputData["ckc601"] = "0"
  293. inputData["bke384"] = serial_number
  294. inputMessage["transBody"] = inputData
  295. bytesData, err := json.Marshal(inputMessage)
  296. fmt.Println(string(bytesData))
  297. if err != nil {
  298. fmt.Println(err.Error())
  299. return err.Error()
  300. }
  301. reader := bytes.NewReader(bytesData)
  302. //url := "http://192.168.1.99:10000"
  303. url := "http://192.168.1.228:17001/szsi-portal/transData"
  304. request, err := http.NewRequest("POST", url, reader)
  305. if err != nil {
  306. fmt.Println(err.Error())
  307. return err.Error()
  308. }
  309. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  310. client := http.Client{}
  311. resp, err := client.Do(request)
  312. if err != nil {
  313. fmt.Println(err.Error())
  314. return err.Error()
  315. }
  316. respBytes, err := ioutil.ReadAll(resp.Body)
  317. if err != nil {
  318. fmt.Println(err.Error())
  319. return err.Error()
  320. }
  321. fmt.Println(string(respBytes))
  322. str := string(respBytes)
  323. return str
  324. }
  325. func SzybJY001(doctor string, doctor_code string, fixmedins_code string, setl_number string, mz_number string, verify_code string, version_code string) string {
  326. // 生成输入报文
  327. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, setl_number)
  328. inputData := make(map[string]interface{})
  329. inputMessage["transType"] = "JY001" // 交易编码
  330. inputMessage["transVersion"] = version_code // 交易编码
  331. inputData["akc190"] = mz_number
  332. inputData["bke384"] = setl_number
  333. inputMessage["transBody"] = inputData
  334. bytesData, err := json.Marshal(inputMessage)
  335. fmt.Println(string(bytesData))
  336. if err != nil {
  337. fmt.Println(err.Error())
  338. return err.Error()
  339. }
  340. reader := bytes.NewReader(bytesData)
  341. //url := "http://192.168.1.99:10000"
  342. url := "http://192.168.1.228:17001/szsi-portal/transData"
  343. request, err := http.NewRequest("POST", url, reader)
  344. if err != nil {
  345. fmt.Println(err.Error())
  346. return err.Error()
  347. }
  348. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  349. client := http.Client{}
  350. resp, err := client.Do(request)
  351. if err != nil {
  352. fmt.Println(err.Error())
  353. return err.Error()
  354. }
  355. respBytes, err := ioutil.ReadAll(resp.Body)
  356. if err != nil {
  357. fmt.Println(err.Error())
  358. return err.Error()
  359. }
  360. fmt.Println(string(respBytes))
  361. str := string(respBytes)
  362. return str
  363. }
  364. func SzybJY002(doctor string, doctor_code string, fixmedins_code string, setl_number string, mz_number string, verify_code string, new_setl_number string, version_code string) string {
  365. // 生成输入报文
  366. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, new_setl_number)
  367. inputData := make(map[string]interface{})
  368. inputMessage["transType"] = "JY002" // 交易编码
  369. inputMessage["transVersion"] = version_code // 交易编码
  370. inputData["akc190"] = mz_number
  371. inputData["bke384"] = setl_number
  372. inputMessage["transBody"] = inputData
  373. bytesData, err := json.Marshal(inputMessage)
  374. fmt.Println(string(bytesData))
  375. if err != nil {
  376. fmt.Println(err.Error())
  377. return err.Error()
  378. }
  379. reader := bytes.NewReader(bytesData)
  380. //url := "http://192.168.1.99:10000"
  381. url := "http://192.168.1.228:17001/szsi-portal/transData"
  382. request, err := http.NewRequest("POST", url, reader)
  383. if err != nil {
  384. fmt.Println(err.Error())
  385. return err.Error()
  386. }
  387. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  388. client := http.Client{}
  389. resp, err := client.Do(request)
  390. if err != nil {
  391. fmt.Println(err.Error())
  392. return err.Error()
  393. }
  394. respBytes, err := ioutil.ReadAll(resp.Body)
  395. if err != nil {
  396. fmt.Println(err.Error())
  397. return err.Error()
  398. }
  399. fmt.Println(string(respBytes))
  400. str := string(respBytes)
  401. return str
  402. }
  403. func SzybJY003(doctor string, doctor_code string, fixmedins_code string, setl_number string, mz_number string, verify_code string, version_code string) string {
  404. // 生成输入报文
  405. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, setl_number)
  406. inputData := make(map[string]interface{})
  407. inputMessage["transType"] = "JY003" // 交易编码
  408. inputMessage["transVersion"] = version_code // 交易编码
  409. inputData["akc190"] = mz_number
  410. inputData["bke384"] = setl_number
  411. inputMessage["transBody"] = inputData
  412. bytesData, err := json.Marshal(inputMessage)
  413. fmt.Println(string(bytesData))
  414. if err != nil {
  415. fmt.Println(err.Error())
  416. return err.Error()
  417. }
  418. reader := bytes.NewReader(bytesData)
  419. //url := "http://192.168.1.99:10000"
  420. url := "http://192.168.1.228:17001/szsi-portal/transData"
  421. request, err := http.NewRequest("POST", url, reader)
  422. if err != nil {
  423. fmt.Println(err.Error())
  424. return err.Error()
  425. }
  426. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  427. client := http.Client{}
  428. resp, err := client.Do(request)
  429. if err != nil {
  430. fmt.Println(err.Error())
  431. return err.Error()
  432. }
  433. respBytes, err := ioutil.ReadAll(resp.Body)
  434. if err != nil {
  435. fmt.Println(err.Error())
  436. return err.Error()
  437. }
  438. fmt.Println(string(respBytes))
  439. str := string(respBytes)
  440. return str
  441. }
  442. // 生成基础报文
  443. func SetSZInputMessage(doctor string, doctor_code string, fixmedins_code string, verify_code string, number string) map[string]interface{} {
  444. month := time.Unix(1557042972, 0).Format("1")
  445. year := time.Now().Format("2006")
  446. month = time.Now().Format("01")
  447. day := time.Now().Format("02")
  448. hour := time.Now().Format("15")
  449. min := time.Now().Format("04")
  450. sec := time.Now().Format("05")
  451. msec := time.Now().Format("000")
  452. // 生成输入报文
  453. inputMessage := make(map[string]interface{})
  454. //
  455. inputMessage["cardArea"] = "440300" // 发卡地行政区划代码
  456. inputMessage["extendDeviceId"] = ""
  457. inputMessage["extendSerialNumber"] = ""
  458. inputMessage["extendUserId"] = ""
  459. inputMessage["hospitalCode"] = fixmedins_code // 协议机构编码
  460. inputMessage["operatorCode"] = doctor_code // 操作员编码
  461. inputMessage["operatorName"] = doctor // 操作员名字
  462. inputMessage["operatorPass"] = "" // 定点协议机构操作人员编码
  463. inputMessage["serialNumber"] = number
  464. inputMessage["transReturnCode"] = "" //
  465. inputMessage["transReturnMessage"] = "" //
  466. inputMessage["transTime"] = year + month + day + hour + min + sec + ":" + msec //
  467. inputMessage["verifyCode"] = verify_code //
  468. inputMessage["transChannel"] = "10" //
  469. return inputMessage
  470. }
  471. func msToTime(ms int64) string {
  472. tm := time.Unix(0, ms*int64(time.Millisecond))
  473. return tm.Format("2006-02-01 15:04:05.000")
  474. }
  475. //
  476. //func SzybML008(doctor string, doctor_code string, fixmedins_code string, datas []*models.DrugDetail) string {
  477. // //生成输入报文
  478. // inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  479. //
  480. // inputData := make(map[string]interface{})
  481. // inputMessage["transType"] = "JY003" // 交易编码
  482. //
  483. // inputData["listsize"] = len(datas)
  484. // inputMessage["transType"] = "ML008" // 交易编码S
  485. // feedetail := make([]map[string]interface{}, 0)
  486. // //inputData["akc190"] = mz_number
  487. // //inputData["bke384"] = setl_number
  488. //
  489. // for _, item := range datas {
  490. //
  491. // feedetailInfo := make(map[string]interface{})
  492. // feedetailInfo["ake001"] = item.MedicalInsuranceNumber
  493. // feedetailInfo["bkm017"] = item.Code
  494. // feedetailInfo["ake005"] = item.Code
  495. // feedetailInfo["ake006"] = item.DrugName
  496. // feedetailInfo["aka074"] = item.DrugSpec
  497. // feedetailInfo["aka070"] = item.DrugDosageName
  498. // //feedetailInfo["aka070"] = "片"
  499. // feedetailInfo["aka067"] = item.MinUnit
  500. // feedetailInfo["bka053"] = item.ManufacturerName
  501. // feedetailInfo["aka064"] = "1"
  502. // feedetailInfo["bka505"] = item.LastPrice
  503. // feedetailInfo["bka506"] = item.RetailPrice
  504. // feedetailInfo["aae030"] = 20210406
  505. // feedetailInfo["aae013"] = item.LimitRemark
  506. // feedetail = append(feedetail, feedetailInfo)
  507. // }
  508. //
  509. // inputData["inputlist"] = feedetail
  510. // inputMessage["transBody"] = inputData
  511. //
  512. // bytesData, err := json.Marshal(inputMessage)
  513. // fmt.Println(string(bytesData))
  514. // if err != nil {
  515. // fmt.Println(err.Error())
  516. // return err.Error()
  517. // }
  518. // reader := bytes.NewReader(bytesData)
  519. // //url := "http://192.168.1.99:10000"
  520. // url := "http://192.168.1.228:17001/szsi-portal/transData"
  521. //
  522. // request, err := http.NewRequest("POST", url, reader)
  523. // if err != nil {
  524. // fmt.Println(err.Error())
  525. // return err.Error()
  526. // }
  527. //
  528. // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  529. //
  530. // client := http.Client{}
  531. // resp, err := client.Do(request)
  532. // if err != nil {
  533. // fmt.Println(err.Error())
  534. // return err.Error()
  535. // }
  536. // respBytes, err := ioutil.ReadAll(resp.Body)
  537. // if err != nil {
  538. // fmt.Println(err.Error())
  539. // return err.Error()
  540. // }
  541. // fmt.Println(string(respBytes))
  542. // str := string(respBytes)
  543. // return str
  544. //}
  545. func SzybML008(doctor string, doctor_code string, fixmedins_code string, basedrug *models.DrugDetail) string {
  546. //生成输入报文
  547. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  548. inputData := make(map[string]interface{})
  549. inputMessage["transType"] = "JY003" // 交易编码
  550. inputData["listsize"] = 1
  551. inputMessage["transType"] = "ML008" // 交易编码S
  552. feedetail := make([]map[string]interface{}, 0)
  553. feedetailInfo := make(map[string]interface{})
  554. feedetailInfo["ake001"] = basedrug.MedicalInsuranceNumber
  555. feedetailInfo["bkm017"] = basedrug.Code
  556. feedetailInfo["ake005"] = basedrug.Code
  557. feedetailInfo["ake006"] = basedrug.DrugName
  558. feedetailInfo["aka074"] = basedrug.DrugSpec
  559. feedetailInfo["aka070"] = basedrug.DrugDosageName
  560. //feedetailInfo["aka070"] = "片"
  561. feedetailInfo["aka067"] = basedrug.MinUnit
  562. feedetailInfo["bka053"] = basedrug.ManufacturerName
  563. feedetailInfo["aka064"] = "1"
  564. feedetailInfo["bka505"] = basedrug.LastPrice
  565. feedetailInfo["bka506"] = basedrug.RetailPrice
  566. feedetailInfo["aae030"] = 20210406
  567. feedetailInfo["aae013"] = basedrug.LimitRemark
  568. feedetail = append(feedetail, feedetailInfo)
  569. inputData["inputlist"] = feedetail
  570. inputMessage["transBody"] = inputData
  571. bytesData, err := json.Marshal(inputMessage)
  572. fmt.Println(string(bytesData))
  573. if err != nil {
  574. fmt.Println(err.Error())
  575. return err.Error()
  576. }
  577. reader := bytes.NewReader(bytesData)
  578. //url := "http://192.168.1.99:10000"
  579. url := "http://192.168.1.228:17001/szsi-portal/transData"
  580. request, err := http.NewRequest("POST", url, reader)
  581. if err != nil {
  582. fmt.Println(err.Error())
  583. return err.Error()
  584. }
  585. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  586. client := http.Client{}
  587. resp, err := client.Do(request)
  588. if err != nil {
  589. fmt.Println(err.Error())
  590. return err.Error()
  591. }
  592. respBytes, err := ioutil.ReadAll(resp.Body)
  593. if err != nil {
  594. fmt.Println(err.Error())
  595. return err.Error()
  596. }
  597. fmt.Println(string(respBytes))
  598. str := string(respBytes)
  599. return str
  600. }
  601. // 生成基础报文
  602. func SetSZDrugMessage(doctor string, doctor_code string, fixmedins_code string) map[string]interface{} {
  603. month := time.Unix(1557042972, 0).Format("1")
  604. year := time.Now().Format("2006")
  605. month = time.Now().Format("01")
  606. day := time.Now().Format("02")
  607. hour := time.Now().Format("15")
  608. min := time.Now().Format("04")
  609. sec := time.Now().Format("05")
  610. msec := time.Now().Format("000")
  611. //生成输入报文
  612. inputMessage := make(map[string]interface{})
  613. //
  614. inputMessage["cardArea"] = "440300" // 发卡地行政区划代码
  615. inputMessage["extendDeviceId"] = ""
  616. inputMessage["extendSerialNumber"] = ""
  617. inputMessage["extendUserId"] = ""
  618. inputMessage["hospitalCode"] = "G5540" // 协议机构编码
  619. inputMessage["operatorCode"] = doctor_code // 操作员编码
  620. inputMessage["operatorName"] = doctor // 操作员名字
  621. inputMessage["operatorPass"] = "" // 定点协议机构操作人员编码
  622. //inputMessage["serialNumber"] = "G5540" + year + month + day +
  623. // fmt.Sprintf("%07v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000000)) // 定点协议机构编码(5位)+日期(8位)+流水号(7位)
  624. inputMessage["serialNumber"] = "G554020210406" + fmt.Sprintf("%07v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000000)) // 定点协议机构编码(5位)+日期(8位)+流水号(7位)
  625. inputMessage["verifyCode"] = "000000|8ec5b7745a5cc45b631f23b4bf1e417e"
  626. inputMessage["transReturnCode"] = "" //
  627. inputMessage["transReturnMessage"] = "" //
  628. inputMessage["transTime"] = year + month + day + hour + min + sec + ":" + msec //
  629. inputMessage["transVersion"] = "V0.3" // //
  630. inputMessage["transChannel"] = "10" //
  631. return inputMessage
  632. }
  633. func SzybML009(doctor string, doctor_code string, fixmedins_code string, pro *models.MyHisProject) string {
  634. //生成输入报文
  635. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  636. inputData := make(map[string]interface{})
  637. inputMessage["transType"] = "ML009" // 交易编码
  638. feedetail := make([]map[string]interface{}, 0)
  639. feedetailInfo := make(map[string]interface{})
  640. feedetailInfo["ake001"] = pro.MedicalCode //社保目录编码
  641. feedetailInfo["ake005"] = pro.MedicalCode //协议机构内部目录编码
  642. feedetailInfo["ake006"] = pro.ProjectName // 协议机构内部目录名称
  643. feedetailInfo["bkf131"] = pro.Category //协议机构项目类别
  644. feedetailInfo["bkm062"] = "0" // 门诊特检项目标识
  645. feedetailInfo["bka506"] = pro.Price // 协议机构内部项目收费价格
  646. feedetailInfo["aae030"] = 20210407 // 备案日期
  647. feedetailInfo["aae013"] = pro.Remark // 备注
  648. feedetail = append(feedetail, feedetailInfo)
  649. fmt.Println("feeedDetal2333333333", feedetail)
  650. inputData["inputlist"] = feedetail
  651. inputMessage["transBody"] = inputData
  652. bytesData, err := json.Marshal(inputMessage)
  653. fmt.Println(string(bytesData))
  654. if err != nil {
  655. fmt.Println(err.Error())
  656. return err.Error()
  657. }
  658. reader := bytes.NewReader(bytesData)
  659. //url := "http://192.168.1.99:10000"
  660. url := "http://192.168.1.228:17001/szsi-portal/transData"
  661. request, err := http.NewRequest("POST", url, reader)
  662. if err != nil {
  663. fmt.Println(err.Error())
  664. return err.Error()
  665. }
  666. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  667. client := http.Client{}
  668. resp, err := client.Do(request)
  669. if err != nil {
  670. fmt.Println(err.Error())
  671. return err.Error()
  672. }
  673. respBytes, err := ioutil.ReadAll(resp.Body)
  674. if err != nil {
  675. fmt.Println(err.Error())
  676. return err.Error()
  677. }
  678. fmt.Println(string(respBytes))
  679. str := string(respBytes)
  680. return str
  681. }
  682. //func SzybML009(doctor string, doctor_code string, fixmedins_code string, datas []*models.ProjectDetail) string {
  683. // //生成输入报文
  684. // inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  685. //
  686. // inputData := make(map[string]interface{})
  687. //
  688. // inputData["listsize"] = len(datas)
  689. // inputMessage["transType"] = "ML009" // 交易编码
  690. // feedetail := make([]map[string]interface{}, 0)
  691. //
  692. // for _, item := range datas {
  693. // feedetailInfo := make(map[string]interface{})
  694. // feedetailInfo["ake001"] = item.SocialSecurityDirectoryCode //社保目录编码
  695. // feedetailInfo["ake005"] = item.SocialSecurityDirectoryCode //协议机构内部目录编码
  696. // feedetailInfo["ake006"] = item.ProjectName // 协议机构内部目录名称
  697. // feedetailInfo["bkf131"] = item.Category //协议机构项目类别
  698. // feedetailInfo["bkm062"] = "0" // 门诊特检项目标识
  699. // feedetailInfo["bka506"] = item.Price // 协议机构内部项目收费价格
  700. // feedetailInfo["aae030"] = 20210407 // 备案日期
  701. // feedetailInfo["aae013"] = item.Remark // 备注
  702. // feedetail = append(feedetail, feedetailInfo)
  703. // }
  704. // fmt.Println("feeedDetal2333333333", feedetail)
  705. // inputData["inputlist"] = feedetail
  706. // inputMessage["transBody"] = inputData
  707. //
  708. // bytesData, err := json.Marshal(inputMessage)
  709. // fmt.Println(string(bytesData))
  710. // if err != nil {
  711. // fmt.Println(err.Error())
  712. // return err.Error()
  713. // }
  714. // reader := bytes.NewReader(bytesData)
  715. // //url := "http://192.168.1.99:10000"
  716. // url := "http://192.168.1.228:17001/szsi-portal/transData"
  717. //
  718. // request, err := http.NewRequest("POST", url, reader)
  719. // if err != nil {
  720. // fmt.Println(err.Error())
  721. // return err.Error()
  722. // }
  723. //
  724. // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  725. //
  726. // client := http.Client{}
  727. // resp, err := client.Do(request)
  728. // if err != nil {
  729. // fmt.Println(err.Error())
  730. // return err.Error()
  731. // }
  732. // respBytes, err := ioutil.ReadAll(resp.Body)
  733. // if err != nil {
  734. // fmt.Println(err.Error())
  735. // return err.Error()
  736. // }
  737. // fmt.Println(string(respBytes))
  738. // str := string(respBytes)
  739. // return str
  740. //
  741. //}
  742. func SzybML010(doctor string, doctor_code string, fixmedins_code string, datas []*models.DrugDetail, typeId int64) string {
  743. //生成输入报文
  744. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  745. inputData := make(map[string]interface{})
  746. inputData["listsize"] = len(datas)
  747. inputMessage["transType"] = "ML010" // 交易编码
  748. feedetail := make([]map[string]interface{}, 0)
  749. for _, item := range datas {
  750. feedetailInfo := make(map[string]interface{})
  751. feedetailInfo["ake003"] = strconv.FormatInt(typeId, 10)
  752. feedetailInfo["ake001"] = item.SocialSecurityDirectoryCode //社保目录编码
  753. feedetailInfo["ake005"] = item.SocialSecurityDirectoryCode //协议机构内部目录编码
  754. feedetail = append(feedetail, feedetailInfo)
  755. }
  756. inputData["inputlist"] = feedetail
  757. inputMessage["transBody"] = inputData
  758. bytesData, err := json.Marshal(inputMessage)
  759. fmt.Println(string(bytesData))
  760. if err != nil {
  761. fmt.Println(err.Error())
  762. return err.Error()
  763. }
  764. reader := bytes.NewReader(bytesData)
  765. //url := "http://192.168.1.99:10000"
  766. url := "http://192.168.1.228:17001/szsi-portal/transData"
  767. request, err := http.NewRequest("POST", url, reader)
  768. if err != nil {
  769. fmt.Println(err.Error())
  770. return err.Error()
  771. }
  772. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  773. client := http.Client{}
  774. resp, err := client.Do(request)
  775. if err != nil {
  776. fmt.Println(err.Error())
  777. return err.Error()
  778. }
  779. respBytes, err := ioutil.ReadAll(resp.Body)
  780. if err != nil {
  781. fmt.Println(err.Error())
  782. return err.Error()
  783. }
  784. fmt.Println(string(respBytes))
  785. str := string(respBytes)
  786. return str
  787. }
  788. func SzybYS001(doctor string, doctor_code string, fixmedins_code string, doc *models.DocDetail) string {
  789. //生成输入报文
  790. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  791. inputData := make(map[string]interface{})
  792. inputData["listsize"] = 1
  793. inputMessage["transType"] = "YS001" // 交易编码
  794. feedetail := make([]map[string]interface{}, 0)
  795. feedetailInfo := make(map[string]interface{})
  796. feedetailInfo["aac003"] = doc.UserName //医护人员姓名
  797. feedetailInfo["bka633"] = "1" //医护人员类别
  798. feedetailInfo["aac004"] = doc.Sex //性别
  799. feedetailInfo["aac058"] = doc.CardType //证件类型
  800. feedetailInfo["aac147"] = doc.IdCard //证件号码
  801. feedetailInfo["aae005"] = doc.Phone //联系电话
  802. feedetailInfo["bkc322"] = doc.WorkMajorName //现从事专业名称
  803. feedetailInfo["aac005"] = doc.Nation //民族
  804. feedetailInfo["aac006"] = doc.BirthDay //出生日期
  805. feedetailInfo["aac007"] = doc.WorkTime //参加工作日期
  806. feedetailInfo["aac011"] = doc.Education //学历
  807. feedetailInfo["aac183"] = doc.StudyMajorName //所学的专业名称
  808. feedetailInfo["bkc323"] = doc.CertificateCode //医(药)师执业证书编码
  809. feedetailInfo["bke955"] = doc.MedicalCode //医(药)师资格证编码
  810. feedetailInfo["akc055"] = doc.MedicalRangeCode // 医师执业范围代码
  811. feedetailInfo["bcc950"] = doc.MedicalLevel //医生执业资格证中的医师级别
  812. feedetailInfo["bcc955"] = doc.TypeJob //医生执业资格证中的执业类别
  813. feedetailInfo["bka503"] = doc.DoctorNumber //医保医师编号
  814. feedetailInfo["bkc324"] = doc.Licensing //多点执业标志
  815. feedetailInfo["bkc326"] = doc.DoctorServiceStatus //医师医保服务资格状态
  816. feedetailInfo["bkc328"] = doc.MonitoringLevel //监控等级
  817. feedetailInfo["bkc329"] = doc.DrugPsychotropicSubstances //毒麻精神药品资格
  818. feedetailInfo["bke801"] = doc.HealthCareCode //母婴保健技术考核合格证书编号
  819. feedetailInfo["bkc330"] = doc.PlanningTechnicalServiceCode //bkc330 计划生育技术服务人员合格证编号
  820. feedetailInfo["bkc332"] = doc.PharmacistType //药师类别
  821. feedetailInfo["bkc333"] = doc.PharmacistPracticeCategory //药师执业类别
  822. feedetailInfo["bkc334"] = doc.PharmacistsLicensing //药师执业范围
  823. feedetailInfo["bkc335"] = doc.PharmacistRegistrationNumber //执业药师注册证编号
  824. feedetailInfo["akf001"] = doc.OfficeCode //所属科室编码
  825. feedetailInfo["acc501"] = doc.JobNumber //工号
  826. feedetailInfo["ahc451"] = doc.PostName //职务名称
  827. feedetailInfo["aaf009"] = doc.TechnicalJobLevelCode //专业技术职务级别编码
  828. feedetailInfo["bkc321"] = doc.IsActive //在职与否
  829. feedetailInfo["ckc302"] = doc.PrescriptionQualificationIdentification //处方资格标识
  830. feedetailInfo["bkc325"] = doc.IdentificationOutpatients //门诊大病医师 标识
  831. feedetailInfo["ckc304"] = doc.OutpatientIllnessCategory //门诊大病类别
  832. feedetailInfo["aae030"] = doc.StartTime //开始日期
  833. feedetail = append(feedetail, feedetailInfo)
  834. inputData["inputlist"] = feedetail
  835. inputMessage["transBody"] = inputData
  836. bytesData, err := json.Marshal(inputMessage)
  837. fmt.Println(string(bytesData))
  838. if err != nil {
  839. fmt.Println(err.Error())
  840. return err.Error()
  841. }
  842. reader := bytes.NewReader(bytesData)
  843. //url := "http://192.168.1.99:10000"
  844. url := "http://192.168.1.228:17001/szsi-portal/transData"
  845. request, err := http.NewRequest("POST", url, reader)
  846. if err != nil {
  847. fmt.Println(err.Error())
  848. return err.Error()
  849. }
  850. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  851. client := http.Client{}
  852. resp, err := client.Do(request)
  853. if err != nil {
  854. fmt.Println(err.Error())
  855. return err.Error()
  856. }
  857. respBytes, err := ioutil.ReadAll(resp.Body)
  858. if err != nil {
  859. fmt.Println(err.Error())
  860. return err.Error()
  861. }
  862. fmt.Println(string(respBytes))
  863. str := string(respBytes)
  864. return str
  865. }
  866. //func SzybYS001(doctor string, doctor_code string, fixmedins_code string, datas []*models.DocDetail) string {
  867. // //生成输入报文
  868. // inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  869. //
  870. // inputData := make(map[string]interface{})
  871. //
  872. // inputData["listsize"] = len(datas)
  873. // inputMessage["transType"] = "YS001" // 交易编码
  874. // feedetail := make([]map[string]interface{}, 0)
  875. //
  876. // for _, item := range datas {
  877. // fmt.Println("item222222", item.RoleId)
  878. // feedetailInfo := make(map[string]interface{})
  879. // feedetailInfo["aac003"] = item.UserName
  880. // feedetailInfo["bka633"] = "1"
  881. // feedetailInfo["aac004"] = item.Sex
  882. // feedetailInfo["aac058"] = item.CardType
  883. // feedetailInfo["aac147"] = item.IdCard
  884. // feedetailInfo["aae005"] = item.Phone
  885. // feedetailInfo["bkc322"] = item.WorkMajorName
  886. // feedetailInfo["aac005"] = item.Nation
  887. // feedetailInfo["aac006"] = item.BirthDay
  888. // feedetailInfo["aac007"] = item.WorkTime
  889. // feedetailInfo["aac011"] = item.Education
  890. // feedetailInfo["aac183"] = item.StudyMajorName
  891. // feedetailInfo["bkc323"] = item.CertificateCode
  892. // feedetailInfo["bke955"] = item.MedicalCode
  893. // feedetailInfo["akc055"] = item.MedicalRangeCode
  894. // feedetailInfo["bcc950"] = item.MedicalLevel
  895. // feedetailInfo["bcc955"] = item.TypeJob
  896. // feedetailInfo["bka503"] = item.DoctorNumber
  897. // feedetailInfo["bkc324"] = item.Licensing
  898. // feedetailInfo["bkc326"] = item.DoctorServiceStatus
  899. // feedetailInfo["bkc328"] = item.MonitoringLevel
  900. // feedetailInfo["bkc329"] = item.DrugPsychotropicSubstances
  901. // feedetailInfo["bke801"] = item.HealthCareCode
  902. // feedetailInfo["bkc330"] = item.PlanningTechnicalServiceCode
  903. // feedetailInfo["bkc332"] = item.PharmacistType
  904. // feedetailInfo["bkc333"] = item.PharmacistPracticeCategory
  905. // feedetailInfo["bkc334"] = item.PharmacistsLicensing
  906. // feedetailInfo["bkc335"] = item.PharmacistRegistrationNumber
  907. // feedetailInfo["akf001"] = item.OfficeCode
  908. // feedetailInfo["acc501"] = item.JobNumber
  909. // feedetailInfo["ahc451"] = item.PostName
  910. // feedetailInfo["aaf009"] = item.TechnicalJobLevelCode
  911. // feedetailInfo["bkc321"] = item.IsActive
  912. // feedetailInfo["ckc302"] = item.PrescriptionQualificationIdentification
  913. // feedetailInfo["bkc325"] = item.IdentificationOutpatients
  914. // feedetailInfo["ckc304"] = item.OutpatientIllnessCategory
  915. // feedetailInfo["aae030"] = item.StartTime
  916. // feedetail = append(feedetail, feedetailInfo)
  917. // }
  918. //
  919. // inputData["inputlist"] = feedetail
  920. // inputMessage["transBody"] = inputData
  921. //
  922. // bytesData, err := json.Marshal(inputMessage)
  923. // fmt.Println(string(bytesData))
  924. // if err != nil {
  925. // fmt.Println(err.Error())
  926. // return err.Error()
  927. // }
  928. // reader := bytes.NewReader(bytesData)
  929. // //url := "http://192.168.1.99:10000"
  930. // url := "http://192.168.1.228:17001/szsi-portal/transData"
  931. //
  932. // request, err := http.NewRequest("POST", url, reader)
  933. // if err != nil {
  934. // fmt.Println(err.Error())
  935. // return err.Error()
  936. // }
  937. //
  938. // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  939. //
  940. // client := http.Client{}
  941. // resp, err := client.Do(request)
  942. // if err != nil {
  943. // fmt.Println(err.Error())
  944. // return err.Error()
  945. // }
  946. // respBytes, err := ioutil.ReadAll(resp.Body)
  947. // if err != nil {
  948. // fmt.Println(err.Error())
  949. // return err.Error()
  950. // }
  951. // fmt.Println(string(respBytes))
  952. // str := string(respBytes)
  953. // return str
  954. //
  955. //}
  956. func SzybYS002(doctor string, doctor_code string, fixmedins_code string, datas *models.DocDetail) string {
  957. //生成输入报文
  958. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  959. inputData := make(map[string]interface{})
  960. inputData["listsize"] = 1
  961. inputMessage["transType"] = "YS002" // 交易编码
  962. feedetail := make([]map[string]interface{}, 0)
  963. feedetailInfo := make(map[string]interface{})
  964. feedetailInfo["bkc320"] = datas.DoctorNumber
  965. feedetailInfo["bke155"] = "4"
  966. feedetail = append(feedetail, feedetailInfo)
  967. inputData["inputlist"] = feedetail
  968. inputMessage["transBody"] = inputData
  969. bytesData, err := json.Marshal(inputMessage)
  970. fmt.Println(string(bytesData))
  971. if err != nil {
  972. fmt.Println(err.Error())
  973. return err.Error()
  974. }
  975. reader := bytes.NewReader(bytesData)
  976. //url := "http://192.168.1.99:10000"
  977. url := "http://192.168.1.228:17001/szsi-portal/transData"
  978. request, err := http.NewRequest("POST", url, reader)
  979. if err != nil {
  980. fmt.Println(err.Error())
  981. return err.Error()
  982. }
  983. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  984. client := http.Client{}
  985. resp, err := client.Do(request)
  986. if err != nil {
  987. fmt.Println(err.Error())
  988. return err.Error()
  989. }
  990. respBytes, err := ioutil.ReadAll(resp.Body)
  991. if err != nil {
  992. fmt.Println(err.Error())
  993. return err.Error()
  994. }
  995. fmt.Println(string(respBytes))
  996. str := string(respBytes)
  997. return str
  998. }
  999. func SzybYS003(doctor string, doctor_code string, fixmedins_code string, datas []*models.DocDetail) string {
  1000. //生成输入报文
  1001. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  1002. inputData := make(map[string]interface{})
  1003. inputData["listsize"] = len(datas)
  1004. inputMessage["transType"] = "YS003" // 交易编码
  1005. feedetail := make([]map[string]interface{}, 0)
  1006. for _, item := range datas {
  1007. feedetailInfo := make(map[string]interface{})
  1008. feedetailInfo["bkc320"] = item.StaffCode
  1009. feedetailInfo["aac003"] = item.UserName
  1010. feedetailInfo["bka633"] = item.RoleId
  1011. feedetailInfo["aac004"] = item.Sex
  1012. feedetailInfo["aac058"] = item.CardType
  1013. feedetailInfo["aac147"] = item.IdCard
  1014. feedetailInfo["aae005"] = item.Phone
  1015. feedetailInfo["bkc322"] = item.WorkMajorName
  1016. feedetailInfo["aac005"] = item.Nation
  1017. feedetailInfo["aac006"] = item.BirthDay
  1018. feedetailInfo["aac007"] = item.WorkTime
  1019. feedetailInfo["aac011"] = item.Education
  1020. feedetailInfo["aac183"] = item.StudyMajorName
  1021. feedetailInfo["bkc323"] = item.CertificateCode
  1022. feedetailInfo["bke955"] = item.MedicalCode
  1023. feedetailInfo["akc055"] = item.MedicalRangeCode
  1024. feedetailInfo["bcc950"] = item.MedicalLevel
  1025. feedetailInfo["bcc955"] = item.TypeJob
  1026. feedetailInfo["bka503"] = item.DoctorNumber
  1027. feedetailInfo["bkc324"] = item.Licensing
  1028. feedetailInfo["bkc326"] = item.DoctorServiceStatus
  1029. feedetailInfo["bkc328"] = item.MonitoringLevel
  1030. feedetailInfo["bkc329"] = item.DrugPsychotropicSubstances
  1031. feedetailInfo["bke801"] = item.HealthCareCode
  1032. feedetailInfo["bkc330"] = item.PlanningTechnicalServiceCode
  1033. feedetailInfo["bkc332"] = item.PharmacistType
  1034. feedetailInfo["bkc333"] = item.PharmacistPracticeCategory
  1035. feedetailInfo["bkc334"] = item.PharmacistsLicensing
  1036. feedetailInfo["bkc335"] = item.PharmacistRegistrationNumber
  1037. feedetailInfo["akf001"] = item.OfficeCode
  1038. feedetailInfo["acc501"] = item.JobNumber
  1039. feedetailInfo["ahc451"] = item.PostName
  1040. feedetailInfo["aaf009"] = item.TechnicalJobLevelCode
  1041. feedetailInfo["bkc321"] = item.IsActive
  1042. feedetailInfo["ckc302"] = item.PrescriptionQualificationIdentification
  1043. feedetailInfo["bkc325"] = item.IdentificationOutpatients
  1044. feedetailInfo["ckc304"] = item.OutpatientIllnessCategory
  1045. feedetailInfo["aae030"] = item.StartTime
  1046. feedetailInfo["aae031"] = item.EndTime
  1047. feedetail = append(feedetail, feedetailInfo)
  1048. }
  1049. inputData["inputlist"] = feedetail
  1050. inputMessage["transBody"] = inputData
  1051. bytesData, err := json.Marshal(inputMessage)
  1052. fmt.Println(string(bytesData))
  1053. if err != nil {
  1054. fmt.Println(err.Error())
  1055. return err.Error()
  1056. }
  1057. reader := bytes.NewReader(bytesData)
  1058. //url := "http://192.168.1.99:10000"
  1059. url := "http://192.168.1.228:17001/szsi-portal/transData"
  1060. request, err := http.NewRequest("POST", url, reader)
  1061. if err != nil {
  1062. fmt.Println(err.Error())
  1063. return err.Error()
  1064. }
  1065. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  1066. client := http.Client{}
  1067. resp, err := client.Do(request)
  1068. if err != nil {
  1069. fmt.Println(err.Error())
  1070. return err.Error()
  1071. }
  1072. respBytes, err := ioutil.ReadAll(resp.Body)
  1073. if err != nil {
  1074. fmt.Println(err.Error())
  1075. return err.Error()
  1076. }
  1077. fmt.Println(string(respBytes))
  1078. str := string(respBytes)
  1079. return str
  1080. }
  1081. func SzybYML007(doctor string, doctor_code string, fixmedins_code string, infor *models.XtGoodInformation) string {
  1082. //生成输入报文
  1083. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  1084. inputData := make(map[string]interface{})
  1085. inputData["listsize"] = 1
  1086. inputMessage["transType"] = "ML007" // 交易编码
  1087. feedetail := make([]map[string]interface{}, 0)
  1088. feedetailInfo := make(map[string]interface{})
  1089. feedetailInfo["ake001"] = infor.SocialSecurityDirectoryCode // 社保目录编码
  1090. feedetailInfo["ake005"] = infor.SocialSecurityDirectoryCode //协议机构内部目录编码
  1091. feedetailInfo["ake006"] = infor.GoodName //医药机构内部目录名称
  1092. feedetailInfo["bka053"] = infor.ManufacturerName //生产厂家
  1093. feedetailInfo["ake004"] = infor.ProductionType //生产地类别
  1094. feedetailInfo["ckf261"] = infor.SpecialMedical //特殊医用材料标识
  1095. feedetailInfo["aka067"] = "支" //计价单位
  1096. feedetailInfo["aka074"] = infor.SpecificationName //规格
  1097. feedetailInfo["bka505"] = infor.BuyPrice //进货价
  1098. feedetailInfo["bka506"] = infor.SellPrice // 收获价
  1099. feedetailInfo["aae013"] = infor.Remark //备注
  1100. feedetail = append(feedetail, feedetailInfo)
  1101. inputData["inputlist"] = feedetail
  1102. inputMessage["transBody"] = inputData
  1103. bytesData, err := json.Marshal(inputMessage)
  1104. fmt.Println(string(bytesData))
  1105. if err != nil {
  1106. fmt.Println(err.Error())
  1107. return err.Error()
  1108. }
  1109. reader := bytes.NewReader(bytesData)
  1110. //url := "http://192.168.1.99:10000"
  1111. url := "http://192.168.1.228:17001/szsi-portal/transData"
  1112. request, err := http.NewRequest("POST", url, reader)
  1113. if err != nil {
  1114. fmt.Println(err.Error())
  1115. return err.Error()
  1116. }
  1117. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  1118. client := http.Client{}
  1119. resp, err := client.Do(request)
  1120. if err != nil {
  1121. fmt.Println(err.Error())
  1122. return err.Error()
  1123. }
  1124. respBytes, err := ioutil.ReadAll(resp.Body)
  1125. if err != nil {
  1126. fmt.Println(err.Error())
  1127. return err.Error()
  1128. }
  1129. fmt.Println(string(respBytes))
  1130. str := string(respBytes)
  1131. return str
  1132. }
  1133. //func SzybYML007(doctor string, doctor_code string, fixmedins_code string, datas []*models.GoodDetail) string {
  1134. //
  1135. // //生成输入报文
  1136. // inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  1137. //
  1138. // inputData := make(map[string]interface{})
  1139. //
  1140. // inputData["listsize"] = len(datas)
  1141. // inputMessage["transType"] = "ML007" // 交易编码
  1142. // feedetail := make([]map[string]interface{}, 0)
  1143. //
  1144. // for _, item := range datas {
  1145. // fmt.Println("item222222222", item.BuyPrice)
  1146. // feedetailInfo := make(map[string]interface{})
  1147. // feedetailInfo["ake001"] = item.SocialSecurityDirectoryCode // 社保目录编码
  1148. // //feedetailInfo["ake001"] = "3333333333" // 社保目录编码
  1149. // feedetailInfo["ake005"] = item.SocialSecurityDirectoryCode //协议机构内部目录编码
  1150. // //feedetailInfo["ake006"] = item.GoodName //医药机构内部目录名称
  1151. // feedetailInfo["ake006"] = "222222" //医药机构内部目录名称
  1152. // feedetailInfo["bka053"] = item.ManufacturerName //生产厂家
  1153. // feedetailInfo["ake004"] = "1" //生产地类别
  1154. // feedetailInfo["ckf261"] = "1" //特殊医用材料标识
  1155. // feedetailInfo["aka067"] = "支" //计价单位
  1156. // feedetailInfo["aka074"] = "ftp" //规格
  1157. // feedetailInfo["bka505"] = item.BuyPrice //进货价
  1158. // feedetailInfo["bka506"] = item.SellPrice // 收获价
  1159. // feedetailInfo["aae013"] = item.Remark //备注
  1160. // feedetail = append(feedetail, feedetailInfo)
  1161. // }
  1162. //
  1163. // inputData["inputlist"] = feedetail
  1164. // inputMessage["transBody"] = inputData
  1165. //
  1166. // bytesData, err := json.Marshal(inputMessage)
  1167. // fmt.Println(string(bytesData))
  1168. // if err != nil {
  1169. // fmt.Println(err.Error())
  1170. // return err.Error()
  1171. // }
  1172. // reader := bytes.NewReader(bytesData)
  1173. // //url := "http://192.168.1.99:10000"
  1174. // url := "http://192.168.1.228:17001/szsi-portal/transData"
  1175. //
  1176. // request, err := http.NewRequest("POST", url, reader)
  1177. // if err != nil {
  1178. // fmt.Println(err.Error())
  1179. // return err.Error()
  1180. // }
  1181. //
  1182. // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  1183. //
  1184. // client := http.Client{}
  1185. // resp, err := client.Do(request)
  1186. // if err != nil {
  1187. // fmt.Println(err.Error())
  1188. // return err.Error()
  1189. // }
  1190. // respBytes, err := ioutil.ReadAll(resp.Body)
  1191. // if err != nil {
  1192. // fmt.Println(err.Error())
  1193. // return err.Error()
  1194. // }
  1195. // fmt.Println(string(respBytes))
  1196. // str := string(respBytes)
  1197. // return str
  1198. //}
  1199. func GetDoseCode(dose_id int64, user_org_id int64) (error, string) {
  1200. var data models.DictDataconfig
  1201. err := readDb.Model(&models.DictDataconfig{}).Where(" (org_id = ? Or org_id = 0) AND parent_id = 4 AND module = 'system' AND status = 1 AND value = ?", user_org_id, dose_id).First(&data).Error
  1202. return err, data.Code
  1203. }
  1204. func UpdataOrderStatusSZ(id int64, number string, user_org_id int64, his_mz_number string, his_number string) (err error) {
  1205. err = writeDb.Model(&models.HisOrder{}).Where("status = 1 AND id = ? AND user_org_id = ?", id, user_org_id).Updates(map[string]interface{}{"order_status": 3, "mtime": time.Now().Unix(), "status": 0}).Error
  1206. err = writeDb.Model(&models.HisPrescription{}).Where("status = 1 AND batch_number = ? AND user_org_id = ?", number, user_org_id).Updates(map[string]interface{}{"order_status": 1, "mtime": time.Now().Unix()}).Error
  1207. err = writeDb.Model(&models.HisPrescriptionInfo{}).Where("status = 1 AND batch_number = ? AND user_org_id = ?", number, user_org_id).Updates(map[string]interface{}{"prescription_status": 1, "mtime": time.Now().Unix()}).Error
  1208. err = writeDb.Model(&models.HisPatient{}).Where("status = 1 AND user_org_id = ? AND mz_number = ? AND number = ?", user_org_id, his_mz_number, his_number).Updates(map[string]interface{}{"status": 0, "mtime": time.Now().Unix()}).Error
  1209. return
  1210. }
  1211. func UpdataOrderlog(id int64, user_org_id int64, refund_log string) (err error) {
  1212. err = writeDb.Model(&models.HisOrder{}).Where("status = 1 AND id = ? AND user_org_id = ?", id, user_org_id).Updates(map[string]interface{}{"order_status": 3, "mtime": time.Now().Unix(), "status": 0, "refund_log": refund_log}).Error
  1213. return
  1214. }
  1215. func UpdateBaseDrugById(id int64) (models.XtBaseDrug, error) {
  1216. drug := models.XtBaseDrug{}
  1217. err := XTWriteDB().Model(&drug).Where("id = ?", id).Updates(map[string]interface{}{"is_mark": 1}).Error
  1218. return drug, err
  1219. }
  1220. func UpdateDrugByIdDetail(id int64) (models.XtBaseDrug, error) {
  1221. drug := models.XtBaseDrug{}
  1222. err := XTWriteDB().Model(&drug).Where("id = ?", id).Updates(map[string]interface{}{"is_mark": 0}).Error
  1223. return drug, err
  1224. }
  1225. func UpdateGoodInformaitonByDetail(id int64) (models.MyGoodInformation, error) {
  1226. information := models.MyGoodInformation{}
  1227. err := XTWriteDB().Model(&information).Where("id=?", id).Updates(map[string]interface{}{"is_mark": 1}).Error
  1228. return information, err
  1229. }
  1230. func UpdateGoodInfoById(id int64) (models.MyGoodInformation, error) {
  1231. information := models.MyGoodInformation{}
  1232. err := XTWriteDB().Model(&information).Where("id=?", id).Updates(map[string]interface{}{"is_mark": 0}).Error
  1233. return information, err
  1234. }
  1235. func UpdateProjectById(id int64) (models.MyHisProject, error) {
  1236. project := models.MyHisProject{}
  1237. err := XTWriteDB().Model(&project).Where("id = ?", id).Updates(map[string]interface{}{"is_mark": 1}).Error
  1238. return project, err
  1239. }
  1240. func UpdateMyProjectById(id int64) (models.MyHisProject, error) {
  1241. project := models.MyHisProject{}
  1242. err := XTWriteDB().Model(&project).Where("id = ?", id).Updates(map[string]interface{}{"is_mark": 0}).Error
  1243. return project, err
  1244. }
  1245. func UpdateAdminUserRoleById(id int64) (models.MySgjUserAdminRole, error) {
  1246. role := models.MySgjUserAdminRole{}
  1247. err = UserWriteDB().Model(&role).Where("admin_user_id = ?", id).Updates(map[string]interface{}{"is_mark = ?": 1}).Error
  1248. return role, err
  1249. }