gdyb_controller.go 17KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505
  1. package sg
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "gdyb/controllers"
  6. "gdyb/models"
  7. "gdyb/service"
  8. "gdyb/utils"
  9. "github.com/astaxie/beego"
  10. "io/ioutil"
  11. )
  12. type GdybController struct {
  13. controllers.BaseAuthAPIController
  14. }
  15. func GdybRegistRouters() {
  16. beego.Router("/gdyb/one", &GdybController{}, "get:PostOne")
  17. beego.Router("/gdyb/two", &GdybController{}, "get:PostTwo")
  18. beego.Router("/gdyb/three", &GdybController{}, "get:PostThree")
  19. beego.Router("/gdyb/four", &GdybController{}, "get:PostFour")
  20. beego.Router("/gdyb/five", &GdybController{}, "post:PostFive")
  21. beego.Router("/gdyb/six", &GdybController{}, "get:PostSix")
  22. beego.Router("/gdyb/seven", &GdybController{}, "get:PostSeven")
  23. beego.Router("/gdyb/eight", &GdybController{}, "get:PostEight")
  24. beego.Router("/gdyb/nine", &GdybController{}, "get:PostNine")
  25. beego.Router("/gdyb/ten", &GdybController{}, "get:PostTen")
  26. beego.Router("/gdyb/eleven", &GdybController{}, "get:PostEleven")
  27. beego.Router("/gdyb/twelve", &GdybController{}, "get:PostTwelve")
  28. }
  29. type Result struct {
  30. ErrMsg interface{} `json:"err_msg"`
  31. InfRefmsgid string `json:"inf_refmsgid"`
  32. Infcode int64 `json:"infcode"`
  33. Output struct {
  34. Baseinfo struct {
  35. Age float64 `json:"age"`
  36. Brdy string `json:"brdy"`
  37. Certno string `json:"certno"`
  38. Gend string `json:"gend"`
  39. Naty string `json:"naty"`
  40. PsnCertType string `json:"psn_cert_type"`
  41. PsnName string `json:"psn_name"`
  42. PsnNo string `json:"psn_no"`
  43. } `json:"baseinfo"`
  44. Idetinfo []interface{} `json:"idetinfo"`
  45. Iinfo []struct {
  46. Balc int64 `json:"balc"`
  47. CvlservFlag string `json:"cvlserv_flag"`
  48. EmpName string `json:"emp_name"`
  49. InsuplcAdmdvs string `json:"insuplc_admdvs"`
  50. Insutype string `json:"insutype"`
  51. PausInsuDansuplcAdmdvs string `json:"paus_insu_dansuplc_admdvs"`
  52. PausInsuDate interface{} `json:"paus_insu_date"`
  53. PsnInsuDate string `json:"psn_insu_date"`
  54. PsnInsuStas string `json:"psn_insu_stas"`
  55. PsnType string `json:"psn_type"`
  56. } `json:"iinfo"`
  57. } `json:"output"`
  58. RefmsgTime string `json:"refmsg_time"`
  59. RespondTime string `json:"respond_time"`
  60. Signtype interface{} `json:"signtype"`
  61. WarnInfo interface{} `json:"warn_info"`
  62. }
  63. func (c *GdybController) PostOne() {
  64. certNo := c.GetString("cert_no")
  65. org_name := c.GetString("org_name")
  66. doctor := c.GetString("doctor")
  67. fixmedins_code := c.GetString("fixmedins_code")
  68. insuplc_admdvs := c.GetString("insuplc_admdvs")
  69. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  70. secret_key := c.GetString("secret_key")
  71. id_card_type, _ := c.GetInt64("id_card_type")
  72. card_sn := c.GetString("card_sn")
  73. result := service.Gdyb1101(certNo, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, id_card_type, card_sn, "44022919620927046X")
  74. var dat map[string]interface{}
  75. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  76. } else {
  77. }
  78. c.ServeSuccessJSON(map[string]interface{}{
  79. "pre": dat,
  80. })
  81. }
  82. func (c *GdybController) PostTwo() {
  83. psnNo := c.GetString("psn_no")
  84. insutype := c.GetString("insutype")
  85. certNo := c.GetString("cert_no")
  86. org_name := c.GetString("org_name")
  87. doctor := c.GetString("doctor")
  88. ipt_otp_no := c.GetString("ipt_otp_no")
  89. dept := c.GetString("dept")
  90. fixmedins_code := c.GetString("fixmedins_code")
  91. dept_code := c.GetString("dept_code")
  92. doctor_id := c.GetString("doctor_id")
  93. insuplc_admdvs := c.GetString("insuplc_admdvs")
  94. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  95. secret_key := c.GetString("secret_key")
  96. id_card_type, _ := c.GetInt64("id_card_type")
  97. result := service.Gdyb2201(psnNo, insutype, certNo, org_name, doctor, ipt_otp_no, dept, fixmedins_code, dept_code, doctor_id, insuplc_admdvs, mdtrtarea_admvs, secret_key, id_card_type)
  98. var dat map[string]interface{}
  99. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  100. //fmt.Println(dat["status"])
  101. } else {
  102. }
  103. c.ServeSuccessJSON(map[string]interface{}{
  104. "pre": dat,
  105. })
  106. }
  107. func (c *GdybController) PostThree() {
  108. psnNo := c.GetString("psn_no")
  109. mdtrtId := c.GetString("mdtrt_id")
  110. iptOtpNo := c.GetString("ipt_otp_no")
  111. org_name := c.GetString("org_name")
  112. doctor := c.GetString("doctor")
  113. insuplc_admdvs := c.GetString("insuplc_admdvs")
  114. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  115. secret_key := c.GetString("secret_key")
  116. fixmedins_code := c.GetString("fixmedins_code")
  117. result := service.Gdyb2202(psnNo, mdtrtId, iptOtpNo, org_name, doctor, insuplc_admdvs, mdtrtarea_admvs, secret_key, fixmedins_code)
  118. c.ServeSuccessJSON(map[string]interface{}{
  119. "pre": result,
  120. })
  121. }
  122. func (c *GdybController) PostFour() {
  123. psnNo := c.GetString("psn_no")
  124. mdtrtId := c.GetString("mdtrt_id")
  125. doctor := c.GetString("doctor")
  126. department := c.GetString("department")
  127. diag := c.GetString("diag")
  128. org_name := c.GetString("org_name")
  129. med_type := c.GetString("med_type")
  130. doctor_id, _ := c.GetInt64("doctor_id", 0)
  131. fixmedins_code := c.GetString("fixmedins_code")
  132. diag_code := c.GetString("diag_code")
  133. sick_code := c.GetString("sick_code")
  134. sick_name := c.GetString("sick_name")
  135. fmt.Println(sick_code)
  136. fmt.Println(sick_name)
  137. insuplc_admdvs := c.GetString("insuplc_admdvs")
  138. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  139. secret_key := c.GetString("secret_key")
  140. result := service.Gdyb2203(psnNo, mdtrtId, doctor, department, diag, org_name, med_type, doctor_id, fixmedins_code, diag_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, sick_code, sick_name)
  141. var dat map[string]interface{}
  142. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  143. } else {
  144. }
  145. c.ServeSuccessJSON(map[string]interface{}{
  146. "pre": dat,
  147. })
  148. }
  149. type All struct {
  150. HisPrescription HisPrescription
  151. mdtrt_id string
  152. psn_no string
  153. }
  154. type HisPrescription struct {
  155. ID int64 `gorm:"column:id" json:"id" form:"id"`
  156. UserOrgId int64 `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
  157. RecordDate int64 `gorm:"column:record_date" json:"record_date" form:"record_date"`
  158. PatientId int64 `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
  159. HisPatientId int64 `gorm:"column:his_patient_id" json:"his_patient_id" form:"his_patient_id"`
  160. Status int64 `gorm:"column:status" json:"status" form:"status"`
  161. Ctime int64 `gorm:"column:ctime" json:"ctime" form:"ctime"`
  162. Mtime int64 `gorm:"column:mtime" json:"mtime" form:"mtime"`
  163. Number string `gorm:"column:number" json:"number" form:"number"`
  164. Type int64 `gorm:"column:type" json:"type" form:"type"`
  165. Doctor int64 `gorm:"column:doctor" json:"doctor" form:"doctor"`
  166. Creator int64 `gorm:"column:creator" json:"creator" form:"creator"`
  167. Modifier int64 `gorm:"column:modifier" json:"modifier" form:"modifier"`
  168. HisDoctorAdviceInfo []*models.HisDoctorAdviceInfo `gorm:"ForeignKey:PatientId,RecordDate,PrescriptionId;AssociationForeignKey:PatientId,RecordDate,ID" json:"advices"`
  169. HisPrescriptionProject []*models.HisPrescriptionProject `gorm:"ForeignKey:PatientId,RecordDate,PrescriptionId;AssociationForeignKey:PatientId,RecordDate,ID" json:"project"`
  170. }
  171. func (c *GdybController) PostFive() {
  172. body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
  173. var respJSON map[string]interface{}
  174. if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
  175. utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
  176. return
  177. }
  178. userJSONBytes, _ := json.Marshal(respJSON["pre"])
  179. var hp []*models.HisPrescription
  180. if err := json.Unmarshal(userJSONBytes, &hp); err != nil {
  181. utils.ErrorLog("解析失败:%v", err)
  182. return
  183. }
  184. fmt.Println(respJSON["psn_no"].(string))
  185. fmt.Println(respJSON["mdtrt_id"].(string))
  186. fmt.Println(respJSON["chrg_bchno"].(string))
  187. fmt.Println(respJSON["org_name"].(string))
  188. fmt.Println(respJSON["doctor"].(string))
  189. fmt.Println(respJSON["dept"].(string))
  190. fmt.Println(respJSON["fixmedins_code"].(string))
  191. fmt.Println(respJSON["dept_code"].(string))
  192. fmt.Println(respJSON["doctor_id"].(string))
  193. fmt.Println(respJSON["insuplc_admdvs"].(string))
  194. fmt.Println(respJSON["mdtrtarea_admvs"].(string))
  195. fmt.Println(respJSON["secret_key"].(string))
  196. result := service.Gdyb2204(respJSON["psn_no"].(string), respJSON["mdtrt_id"].(string), hp, respJSON["chrg_bchno"].(string), respJSON["org_name"].(string),
  197. respJSON["doctor"].(string), respJSON["dept"].(string), respJSON["fixmedins_code"].(string), respJSON["dept_code"].(string), respJSON["doctor_id"].(string), respJSON["insuplc_admdvs"].(string), respJSON["mdtrtarea_admvs"].(string), respJSON["secret_key"].(string))
  198. var dat map[string]interface{}
  199. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  200. fmt.Println(dat)
  201. } else {
  202. fmt.Println(err)
  203. }
  204. c.ServeSuccessJSON(map[string]interface{}{
  205. "pre": dat,
  206. })
  207. }
  208. func (c *GdybController) PostSix() {
  209. psnNo := c.GetString("psn_no")
  210. mdtrtId := c.GetString("mdtrt_id")
  211. chrgBchno := c.GetString("chrg_bchno")
  212. org_name := c.GetString("org_name")
  213. doctor := c.GetString("doctor")
  214. insuplc_admdvs := c.GetString("insuplc_admdvs")
  215. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  216. secret_key := c.GetString("secret_key")
  217. fixmedins_code := c.GetString("fixmedins_code")
  218. result := service.Gdyb2205(psnNo, mdtrtId, chrgBchno, org_name, doctor, insuplc_admdvs, mdtrtarea_admvs, secret_key, fixmedins_code)
  219. var dat map[string]interface{}
  220. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  221. fmt.Println(dat)
  222. } else {
  223. fmt.Println(err)
  224. }
  225. c.ServeSuccessJSON(map[string]interface{}{
  226. "pre": result,
  227. })
  228. }
  229. func (c *GdybController) PostSeven() {
  230. psnNo := c.GetString("psn_no")
  231. mdtrtId := c.GetString("mdtrt_id")
  232. chrgBchno := c.GetString("chrg_bchno")
  233. certNo := c.GetString("cert_no")
  234. insutype := c.GetString("insutype")
  235. total := c.GetString("total")
  236. org_name := c.GetString("org_name")
  237. doctor := c.GetString("doctor")
  238. fixmedins_code := c.GetString("fixmedins_code")
  239. insuplc_admdvs := c.GetString("insuplc_admdvs")
  240. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  241. secret_key := c.GetString("secret_key")
  242. med_type := c.GetString("med_type")
  243. id_card_type, _ := c.GetInt64("id_card_type")
  244. //result := service.Gdyb2206(psnNo/**/, mdtrtId, chrgBchno, certNo, insutype, total, org_name, doctor, secret_key)
  245. result := service.Gdyb2206(psnNo, mdtrtId, chrgBchno, certNo, insutype, total, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, med_type, id_card_type)
  246. var dat map[string]interface{}
  247. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  248. fmt.Println(dat)
  249. } else {
  250. fmt.Println(err)
  251. }
  252. c.ServeSuccessJSON(map[string]interface{}{
  253. "pre": dat,
  254. })
  255. }
  256. func (c *GdybController) PostEight() {
  257. psnNo := c.GetString("psn_no")
  258. mdtrtId := c.GetString("mdtrt_id")
  259. chrgBchno := c.GetString("chrg_bchno")
  260. certNo := c.GetString("cert_no")
  261. insutype := c.GetString("insutype")
  262. total := c.GetString("total")
  263. org_name := c.GetString("org_name")
  264. doctor := c.GetString("doctor")
  265. fixmedins_code := c.GetString("fixmedins_code")
  266. insuplc_admdvs := c.GetString("insuplc_admdvs")
  267. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  268. secret_key := c.GetString("secret_key")
  269. med_type := c.GetString("med_type")
  270. id_card_type, _ := c.GetInt64("id_card_type")
  271. fulamt_ownpay_amt, _ := c.GetFloat("fulamt_ownpay_amt")
  272. overlmt_selfpay, _ := c.GetFloat("overlmt_selfpay")
  273. preselfpay_amt, _ := c.GetFloat("preselfpay_amt")
  274. inscp_scp_amt, _ := c.GetFloat("inscp_scp_amt")
  275. result := service.Gdyb2207(psnNo, mdtrtId, chrgBchno, certNo, insutype, total, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, med_type, id_card_type, fulamt_ownpay_amt, overlmt_selfpay, preselfpay_amt, inscp_scp_amt)
  276. var dat map[string]interface{}
  277. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  278. fmt.Println(dat)
  279. } else {
  280. fmt.Println(err)
  281. }
  282. c.ServeSuccessJSON(map[string]interface{}{
  283. "pre": dat,
  284. })
  285. }
  286. func (c *GdybController) PostNine() {
  287. psnNo := c.GetString("psn_no")
  288. mdtrtId := c.GetString("mdtrt_id")
  289. setlId := c.GetString("setl_id")
  290. org_name := c.GetString("org_name")
  291. doctor := c.GetString("doctor")
  292. secret_key := c.GetString("secret_key")
  293. fixmedins_code := c.GetString("fixmedins_code")
  294. insuplc_admdvs := c.GetString("insuplc_admdvs")
  295. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  296. result := service.Gdyb2208(psnNo, mdtrtId, setlId, org_name, doctor, secret_key, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
  297. var dat map[string]interface{}
  298. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  299. fmt.Println(dat)
  300. } else {
  301. fmt.Println(err)
  302. }
  303. c.ServeSuccessJSON(map[string]interface{}{
  304. "pre": dat,
  305. })
  306. }
  307. func (c *GdybController) PostTen() {
  308. fmt.Println("11222333-----")
  309. insutype := c.GetString("insutype")
  310. clrType := c.GetString("clr_type")
  311. setlOptins := c.GetString("setl_optins")
  312. stmtBegndate := c.GetString("stmt_begndate")
  313. stmtEnddate := c.GetString("stm_enddate")
  314. medfeeSumamt, _ := c.GetFloat("medfee_sumamt", 0)
  315. fundPaySumamt, _ := c.GetFloat("fund_pay_sumamt", 0)
  316. acctPay, _ := c.GetFloat("acct_pay", 0)
  317. fixmedinsSetlCnt, _ := c.GetInt64("fixmedins_setl_cnt", 0)
  318. fixmedins_code := c.GetString("fixmedins_code")
  319. insuplc_admdvs := c.GetString("insuplc_admdvs")
  320. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  321. secret_key := c.GetString("secret_key")
  322. org_name := c.GetString("org_name")
  323. doctor := c.GetString("doctor")
  324. fmt.Println(insutype)
  325. fmt.Println(clrType)
  326. fmt.Println(setlOptins)
  327. fmt.Println(stmtBegndate)
  328. fmt.Println(stmtEnddate)
  329. fmt.Println(medfeeSumamt)
  330. baseParams := models.BaseParams{
  331. SecretKey: secret_key,
  332. FixmedinsCode: fixmedins_code,
  333. InsuplcAdmdvs: insuplc_admdvs,
  334. MdtrtareaAdmvs: mdtrtarea_admvs,
  335. OrgName: org_name,
  336. Doctor: doctor,
  337. }
  338. businessParams := models.BusinessParams{
  339. Insutype: insutype,
  340. ClrType: clrType,
  341. SetlOptins: setlOptins,
  342. StmtBegndate: stmtBegndate,
  343. StmtEnddate: stmtEnddate,
  344. MedfeeSumamt: medfeeSumamt,
  345. FundPaySumamt: fundPaySumamt,
  346. AcctPay: acctPay,
  347. FixmedinsSetlCnt: fixmedinsSetlCnt,
  348. }
  349. fmt.Println(baseParams)
  350. fmt.Println(businessParams)
  351. fmt.Println("11222333--33333---")
  352. result := service.Gdyb3201(baseParams, businessParams)
  353. fmt.Println("11222333--33333---555555")
  354. var dat map[string]interface{}
  355. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  356. fmt.Println(dat)
  357. } else {
  358. fmt.Println(err)
  359. }
  360. c.ServeSuccessJSON(map[string]interface{}{
  361. "pre": dat,
  362. })
  363. }
  364. func (c *GdybController) PostEleven() {
  365. //fmt.Println("777777666666-----")
  366. //
  367. //file_byte := c.GetString("file_byte")
  368. //file_name := c.GetString("file_name")
  369. //fixmedins_code := c.GetString("fixmedins_code")
  370. //insuplc_admdvs := c.GetString("insuplc_admdvs")
  371. //mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  372. //secret_key := c.GetString("secret_key")
  373. //org_name := c.GetString("org_name")
  374. //doctor := c.GetString("doctor")
  375. //
  376. //baseParams := models.BaseParams{
  377. // SecretKey: secret_key,
  378. // FixmedinsCode: fixmedins_code,
  379. // InsuplcAdmdvs: insuplc_admdvs,
  380. // MdtrtareaAdmvs: mdtrtarea_admvs,
  381. // OrgName: org_name,
  382. // Doctor: doctor,
  383. //}
  384. //x := (*[2]uintptr)(unsafe.Pointer(&file_byte))
  385. //h := [3]uintptr{x[0], x[1], x[1]}
  386. //bytes := *(*[]byte)(unsafe.Pointer(&h))
  387. //result := service.Gdyb9101(baseParams, file_name, []byte(file_byte))
  388. //var dat map[string]interface{}
  389. //if err := json.Unmarshal([]byte(result), &dat); err == nil {
  390. // fmt.Println(dat)
  391. //} else {
  392. // fmt.Println(err)
  393. //}
  394. //c.ServeSuccessJSON(map[string]interface{}{
  395. // "pre": dat,
  396. //})
  397. }
  398. func (c *GdybController) PostTwelve() {
  399. fileQuryNo := c.GetString("file_qury_no")
  400. setlOptins := c.GetString("setl_optins")
  401. stmtBegndate := c.GetString("stmt_begndate")
  402. stmtEnddate := c.GetString("stm_enddate")
  403. medfeeSumamt, _ := c.GetFloat("medfee_sumamt", 0)
  404. fundPaySumamt, _ := c.GetFloat("fund_pay_sumamt", 0)
  405. fixmedinsSetlCnt, _ := c.GetInt64("fixmedins_setl_cnt", 0)
  406. fixmedins_code := c.GetString("fixmedins_code")
  407. insuplc_admdvs := c.GetString("insuplc_admdvs")
  408. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  409. secret_key := c.GetString("secret_key")
  410. org_name := c.GetString("org_name")
  411. doctor := c.GetString("doctor")
  412. cashPayamt, _ := c.GetFloat("cash_payamt", 0)
  413. baseParams := models.BaseParams{
  414. SecretKey: secret_key,
  415. FixmedinsCode: fixmedins_code,
  416. InsuplcAdmdvs: insuplc_admdvs,
  417. MdtrtareaAdmvs: mdtrtarea_admvs,
  418. OrgName: org_name,
  419. Doctor: doctor,
  420. }
  421. businessParams := models.BusinessParams{
  422. FileQuryNo: fileQuryNo,
  423. SetlOptins: setlOptins,
  424. StmtBegndate: stmtBegndate,
  425. StmtEnddate: stmtEnddate,
  426. MedfeeSumamt: medfeeSumamt,
  427. FundPaySumamt: fundPaySumamt,
  428. FixmedinsSetlCnt: fixmedinsSetlCnt,
  429. CashPayamt: cashPayamt,
  430. }
  431. result := service.Gdyb3202(baseParams, businessParams)
  432. var dat map[string]interface{}
  433. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  434. fmt.Println(dat)
  435. } else {
  436. fmt.Println(err)
  437. }
  438. c.ServeSuccessJSON(map[string]interface{}{
  439. "pre": dat,
  440. })
  441. }