sz_his_service.go 50KB

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