소스 검색

医保对接

csx 4 년 전
부모
커밋
f908e681b6
4개의 변경된 파일342개의 추가작업 그리고 6개의 파일을 삭제
  1. 282 5
      controllers/his_api_controller.go
  2. 3 0
      models/his_models.go
  3. 51 0
      service/gdyb_service.go
  4. 6 1
      service/his_service.go

+ 282 - 5
controllers/his_api_controller.go 파일 보기

@@ -56,9 +56,13 @@ func HisManagerApiRegistRouters() {
56 56
 	beego.Router("/api/register/get", &HisApiController{}, "get:GetRegisterInfo")
57 57
 	beego.Router("/api/upload/get", &HisApiController{}, "get:GetUploadInfo")
58 58
 
59
+	beego.Router("/api/settle/query", &HisApiController{}, "get:GetSettleAccounts")
60
+
59 61
 	beego.Router("/api/checkaccount/get", &HisApiController{}, "get:GetCheckAccount")
60 62
 	beego.Router("/api/checkdetailaccount/get", &HisApiController{}, "get:GetCheckDetailAccount")
61 63
 
64
+	beego.Router("/api/checkdetailaccount/get", &HisApiController{}, "get:GetCheckDetailAccount")
65
+
62 66
 	beego.Router("/api/refund/post", &HisApiController{}, "get:Refund")
63 67
 
64 68
 	beego.Router("/api/medicalinsurance/config", &HisApiController{}, "get:GetMedicalInsuranceConfig")
@@ -1296,6 +1300,54 @@ type ResultTen struct {
1296 1300
 	WarnMsg     interface{} `json:"warn_msg"`
1297 1301
 }
1298 1302
 
1303
+type ResultEleven struct {
1304
+	Cainfo      string `json:"cainfo"`
1305
+	ErrMsg      string `json:"err_msg"`
1306
+	InfRefmsgid string `json:"inf_refmsgid"`
1307
+	Infcode     int64  `json:"infcode"`
1308
+	Output      struct {
1309
+		Setlinfo struct {
1310
+			FixmedinsName   string  `json:"fixmedins_name"`
1311
+			FixmedinsCode   string  `json:"fixmedins_code"`
1312
+			PsnNo           string  `json:"psn_no"`
1313
+			Name            string  `json:"name"`
1314
+			Gend            string  `json:"gend"`
1315
+			Brdy            string  `json:"brdy"`
1316
+			PsnCertType     string  `json:"psn_cert_type"`
1317
+			PsnType         string  `json:"psn_type"`
1318
+			EmpName         string  `json:"emp_name"`
1319
+			Certno          string  `json:"certno"`
1320
+			Insutype        string  `json:"insutype"`
1321
+			MedfeeSumamt    float64 `json:"medfee_sumamt"`
1322
+			FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"`
1323
+			OverlmtSelfpay  float64 `json:"overlmt_selfpay"`
1324
+			PreselfpayAmt   float64 `json:"preselfpay_amt"`
1325
+			InscpScpAmt     float64 `json:"inscp_scp_amt"`
1326
+			ActPayDedc      float64 `json:"act_pay_dedc"`
1327
+			HifpPay         float64 `json:"hifp_pay"`
1328
+			PoolPropSelfpay float64 `json:"pool_prop_selfpay"`
1329
+			CvlservPay      float64 `json:"cvlserv_pay"`
1330
+			HifesPay        float64 `json:"hifes_pay"`
1331
+			HifmiPay        float64 `json:"hifmi_pay"`
1332
+			MafPay          float64 `json:"maf_pay"`
1333
+			OthPay          float64 `json:"oth_pay"`
1334
+			FundPaySumamt   float64 `json:"fund_pay_sumamt"`
1335
+			PsnPay          float64 `json:"psn_pay"`
1336
+			AcctPay         float64 `json:"acct_pay"`
1337
+			CashPayamt      float64 `json:"cash_payamt"`
1338
+			Balc            float64 `json:"balc"`
1339
+			AcctMulaidPay   float64 `json:"acct_mulaid_pay"`
1340
+			MedinsSetlId    string  `json:"medins_setl_id"`
1341
+			RefdSetlFlag    string  `json:"refd_setl_flag"`
1342
+			SetlTime        string  `json:"setl_time"`
1343
+		} `json:"setlinfo"`
1344
+	} `json:"output"`
1345
+	RefmsgTime  string      `json:"refmsg_time"`
1346
+	RespondTime string      `json:"respond_time"`
1347
+	Signtype    interface{} `json:"signtype"`
1348
+	WarnMsg     interface{} `json:"warn_msg"`
1349
+}
1350
+
1299 1351
 type Custom struct {
1300 1352
 	DetItemFeeSumamt string
1301 1353
 	Cut              string
@@ -1584,9 +1636,7 @@ func (c *HisApiController) GetRegisterInfo() {
1584 1636
 		c.ServeSuccessJSON(map[string]interface{}{
1585 1637
 			"his_info": hisPatient,
1586 1638
 		})
1587
-
1588 1639
 	}
1589
-
1590 1640
 }
1591 1641
 
1592 1642
 //上传明细----结算
@@ -2173,6 +2223,7 @@ func (c *HisApiController) Refund() {
2173 2223
 	}
2174 2224
 }
2175 2225
 
2226
+//对账
2176 2227
 func (c *HisApiController) GetCheckAccount() {
2177 2228
 	start_time := c.GetString("start_time")
2178 2229
 	end_time := c.GetString("end_time")
@@ -2199,6 +2250,15 @@ func (c *HisApiController) GetCheckAccount() {
2199 2250
 		medfee_sumamt, _ = decimal.NewFromFloat(medfee_sumamt).Add(decimal.NewFromFloat(item.MedfeeSumamt)).Float64()
2200 2251
 		acct_pay, _ = decimal.NewFromFloat(acct_pay).Add(decimal.NewFromFloat(item.AcctPay)).Float64()
2201 2252
 		fund_pay_sumamt, _ = decimal.NewFromFloat(fund_pay_sumamt).Add(decimal.NewFromFloat(item.FundPaySumamt)).Float64()
2253
+
2254
+	}
2255
+
2256
+	var user_name string
2257
+	role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, adminUser.AdminUser.Id)
2258
+	if role.ID == 0 {
2259
+		user_name = "xxx"
2260
+	} else {
2261
+		user_name = role.UserName
2202 2262
 	}
2203 2263
 
2204 2264
 	if config.IsOpen == 1 {
@@ -2217,7 +2277,7 @@ func (c *HisApiController) GetCheckAccount() {
2217 2277
 			"&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
2218 2278
 			"&secret_key=" + miConfig.SecretKey +
2219 2279
 			"&org_name=" + miConfig.OrgName +
2220
-			"&doctor=某人"
2280
+			"&doctor=" + user_name
2221 2281
 
2222 2282
 		fmt.Println(api)
2223 2283
 		resp, requestErr := http.Get(api)
@@ -2258,6 +2318,8 @@ func (c *HisApiController) GetCheckAccount() {
2258 2318
 		}
2259 2319
 	}
2260 2320
 }
2321
+
2322
+//对账明细
2261 2323
 func (c *HisApiController) GetCheckDetailAccount() {
2262 2324
 	start_time := c.GetString("start_time")
2263 2325
 	end_time := c.GetString("end_time")
@@ -2321,13 +2383,21 @@ func (c *HisApiController) GetCheckDetailAccount() {
2321 2383
 
2322 2384
 	if config.IsOpen == 1 {
2323 2385
 
2386
+		var user_name string
2387
+		role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, adminUser.AdminUser.Id)
2388
+		if role.ID == 0 {
2389
+			user_name = "xxx"
2390
+		} else {
2391
+			user_name = role.UserName
2392
+		}
2393
+
2324 2394
 		baseParams := models.BaseParams{
2325 2395
 			SecretKey:      miConfig.SecretKey,
2326 2396
 			FixmedinsCode:  miConfig.Code,
2327 2397
 			InsuplcAdmdvs:  miConfig.InsuplcAdmdvs,
2328 2398
 			MdtrtareaAdmvs: miConfig.MdtrtareaAdmvs,
2329 2399
 			OrgName:        miConfig.OrgName,
2330
-			Doctor:         "某人",
2400
+			Doctor:         user_name,
2331 2401
 		}
2332 2402
 
2333 2403
 		result := service.Gdyb9101(baseParams, zip_name, ReadFile(zip_path))
@@ -2362,7 +2432,7 @@ func (c *HisApiController) GetCheckDetailAccount() {
2362 2432
 				"&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
2363 2433
 				"&secret_key=" + miConfig.SecretKey +
2364 2434
 				"&org_name=" + miConfig.OrgName +
2365
-				"&doctor=某人"
2435
+				"&doctor=" + user_name
2366 2436
 			resp, requestErr := http.Get(api)
2367 2437
 			if requestErr != nil {
2368 2438
 				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
@@ -2403,6 +2473,213 @@ func (c *HisApiController) GetCheckDetailAccount() {
2403 2473
 	}
2404 2474
 }
2405 2475
 
2476
+func (c *HisApiController) GetSettleAccounts() {
2477
+	//id, _ := c.GetInt64("id")
2478
+	//record_time := c.GetString("record_time")
2479
+	order_id, _ := c.GetInt64("order_id")
2480
+
2481
+	//timeLayout := "2006-01-02"
2482
+	//loc, _ := time.LoadLocation("Local")
2483
+	//
2484
+	//theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc)
2485
+	//if err != nil {
2486
+	//	c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
2487
+	//	return
2488
+	//}
2489
+	//recordDateTime := theTime.Unix()
2490
+	adminUser := c.GetAdminUserInfo()
2491
+	//his, _ := service.GetVMHisPatientInfo(adminUser.CurrentOrgId, id, recordDateTime)
2492
+	order, _ := service.GetHisOrderByID(order_id)
2493
+	orderInfos, _ := service.GetHisOrderInfoByNumber(order.Number)
2494
+
2495
+	var bedCostTotal float64 = 0         //床位总费
2496
+	var bedCostSelfTotal float64 = 0     //床位自费
2497
+	var bedCostPartSelfTotal float64 = 0 //床位部分项目自费
2498
+
2499
+	var operationCostTotal float64 = 0         //手术费
2500
+	var operationCostSelfTotal float64 = 0     //手术费
2501
+	var operationCostPartSelfTotal float64 = 0 //手术费
2502
+
2503
+	var otherCostTotal float64 = 0         //其他费用
2504
+	var otherCostSelfTotal float64 = 0     //其他费用
2505
+	var otherCostPartSelfTotal float64 = 0 //其他费用
2506
+
2507
+	var materialCostTotal float64 = 0         //材料费
2508
+	var materialCostSelfTotal float64 = 0     //材料费
2509
+	var materialCostPartSelfTotal float64 = 0 //材料费
2510
+
2511
+	var westernMedicineCostTotal float64 = 0         //西药费
2512
+	var westernMedicineCostSelfTotal float64 = 0     //西药费
2513
+	var westernMedicineCostPartSelfTotal float64 = 0 //西药费
2514
+
2515
+	var chineseTraditionalMedicineCostTotal float64 = 0         //中成药
2516
+	var chineseTraditionalMedicineCostSelfTotal float64 = 0     //中成药
2517
+	var chineseTraditionalMedicineCostPartSelfTotal float64 = 0 //中成药
2518
+
2519
+	var checkCostTotal float64 = 0         //检查费
2520
+	var checkCostSelfTotal float64 = 0     //检查费
2521
+	var checkCostPartSelfTotal float64 = 0 //检查费
2522
+
2523
+	var laboratoryCostTotal float64 = 0         //化验费
2524
+	var laboratoryCostSelfTotal float64 = 0     //化验费
2525
+	var laboratoryCostPartSelfTotal float64 = 0 //化验费
2526
+
2527
+	var treatCostTotal float64 = 0         //治疗费用
2528
+	var treatCostSelfTotal float64 = 0     //治疗费用
2529
+	var treatCostPartSelfTotal float64 = 0 //治疗费用
2530
+
2531
+	decimal.DivisionPrecision = 2
2532
+
2533
+	for _, item := range orderInfos {
2534
+		if item.MedChrgitmType == "01" { //床位费
2535
+
2536
+			bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
2537
+			bedCostSelfTotal, _ = decimal.NewFromFloat(bedCostSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2538
+			bedCostPartSelfTotal, _ = decimal.NewFromFloat(bedCostPartSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2539
+
2540
+		}
2541
+
2542
+		if item.MedChrgitmType == "03" { //检查费
2543
+
2544
+			checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
2545
+			checkCostSelfTotal, _ = decimal.NewFromFloat(checkCostSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2546
+			checkCostPartSelfTotal, _ = decimal.NewFromFloat(checkCostPartSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2547
+
2548
+		}
2549
+
2550
+		if item.MedChrgitmType == "04" { //化验费
2551
+
2552
+			laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
2553
+			laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2554
+			laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2555
+
2556
+		}
2557
+
2558
+		if item.MedChrgitmType == "05" { //治疗费
2559
+
2560
+			treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
2561
+			treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2562
+			treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2563
+
2564
+		}
2565
+
2566
+		if item.MedChrgitmType == "06" { //手术费
2567
+
2568
+			operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
2569
+			operationCostSelfTotal, _ = decimal.NewFromFloat(operationCostSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2570
+			operationCostPartSelfTotal, _ = decimal.NewFromFloat(operationCostPartSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2571
+
2572
+		}
2573
+
2574
+		if item.MedChrgitmType == "08" { //材料费
2575
+
2576
+			materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
2577
+			materialCostSelfTotal, _ = decimal.NewFromFloat(materialCostSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2578
+			materialCostPartSelfTotal, _ = decimal.NewFromFloat(materialCostPartSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2579
+
2580
+		}
2581
+
2582
+		if item.MedChrgitmType == "09" { //西药费
2583
+
2584
+			westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
2585
+			westernMedicineCostSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2586
+			westernMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2587
+
2588
+		}
2589
+
2590
+		if item.MedChrgitmType == "11" { //中成费
2591
+
2592
+			chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
2593
+			chineseTraditionalMedicineCostSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2594
+			chineseTraditionalMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2595
+
2596
+		}
2597
+
2598
+		if item.MedChrgitmType == "14" { //其他费
2599
+			otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
2600
+			otherCostSelfTotal, _ = decimal.NewFromFloat(otherCostSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2601
+			otherCostPartSelfTotal, _ = decimal.NewFromFloat(otherCostPartSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
2602
+		}
2603
+
2604
+	}
2605
+
2606
+	miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
2607
+	config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
2608
+
2609
+	var user_name string
2610
+	role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, adminUser.AdminUser.Id)
2611
+	if role.ID == 0 {
2612
+		user_name = "xxx"
2613
+	} else {
2614
+		user_name = role.UserName
2615
+	}
2616
+
2617
+	baseParams := models.BaseParams{
2618
+		SecretKey:      miConfig.SecretKey,
2619
+		FixmedinsCode:  miConfig.Code,
2620
+		InsuplcAdmdvs:  miConfig.InsuplcAdmdvs,
2621
+		MdtrtareaAdmvs: miConfig.MdtrtareaAdmvs,
2622
+		OrgName:        miConfig.OrgName,
2623
+		Doctor:         user_name,
2624
+	}
2625
+
2626
+	businessParams := models.BusinessParams{
2627
+		PsnNo:   order.PsnNo,
2628
+		MdtrtId: order.MdtrtId,
2629
+		SetlId:  order.SetlId,
2630
+	}
2631
+
2632
+	if config.IsOpen == 1 {
2633
+		result := service.Gdyb5203(baseParams, businessParams)
2634
+		var dat map[string]interface{}
2635
+		if err := json.Unmarshal([]byte(result), &dat); err == nil {
2636
+			fmt.Println(dat)
2637
+		} else {
2638
+			fmt.Println(err)
2639
+		}
2640
+		userJSONBytes, _ := json.Marshal(dat)
2641
+		var res ResultEleven
2642
+		if err := json.Unmarshal(userJSONBytes, &res); err != nil {
2643
+			utils.ErrorLog("解析失败:%v", err)
2644
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2645
+			return
2646
+		}
2647
+		if res.Infcode == 0 {
2648
+			c.ServeSuccessJSON(map[string]interface{}{
2649
+				"info":                                        res.Output.Setlinfo,
2650
+				"bedCostTotal":                                bedCostTotal,
2651
+				"bedCostSelfTotal":                            bedCostSelfTotal,
2652
+				"bedCostPartSelfTotal":                        bedCostPartSelfTotal,
2653
+				"operationCostTotal":                          operationCostTotal,
2654
+				"operationCostSelfTotal":                      operationCostSelfTotal,
2655
+				"operationCostPartSelfTotal":                  operationCostPartSelfTotal,
2656
+				"otherCostTotal":                              otherCostTotal,
2657
+				"otherCostSelfTotal":                          otherCostSelfTotal,
2658
+				"otherCostPartSelfTotal":                      otherCostPartSelfTotal,
2659
+				"materialCostTotal":                           materialCostTotal,
2660
+				"materialCostSelfTotal":                       materialCostSelfTotal,
2661
+				"materialCostPartSelfTotal":                   materialCostPartSelfTotal,
2662
+				"westernMedicineCostTotal":                    westernMedicineCostTotal,
2663
+				"westernMedicineCostSelfTotal":                westernMedicineCostSelfTotal,
2664
+				"westernMedicineCostPartSelfTotal":            westernMedicineCostPartSelfTotal,
2665
+				"chineseTraditionalMedicineCostTotal":         chineseTraditionalMedicineCostTotal,
2666
+				"chineseTraditionalMedicineCostSelfTotal":     chineseTraditionalMedicineCostSelfTotal,
2667
+				"chineseTraditionalMedicineCostPartSelfTotal": chineseTraditionalMedicineCostPartSelfTotal,
2668
+				"checkCostTotal":                              checkCostTotal,
2669
+				"checkCostSelfTotal":                          checkCostSelfTotal,
2670
+				"checkCostPartSelfTotal":                      checkCostPartSelfTotal,
2671
+				"laboratoryCostTotal":                         laboratoryCostTotal,
2672
+				"laboratoryCostSelfTotal":                     laboratoryCostSelfTotal,
2673
+				"laboratoryCostPartSelfTotal":                 laboratoryCostPartSelfTotal,
2674
+				"treatCostTotal":                              treatCostTotal,
2675
+				"treatCostSelfTotal":                          treatCostSelfTotal,
2676
+				"treatCostPartSelfTotal":                      treatCostPartSelfTotal,
2677
+			})
2678
+		}
2679
+	}
2680
+
2681
+}
2682
+
2406 2683
 func (this *HisApiController) AdditionalCharge() {
2407 2684
 
2408 2685
 	dataBody := make(map[string]interface{}, 0)

+ 3 - 0
models/his_models.go 파일 보기

@@ -943,4 +943,7 @@ type BusinessParams struct {
943 943
 	FixmedinsSetlCnt int64
944 944
 	FileQuryNo       string
945 945
 	CashPayamt       float64
946
+	PsnNo            string
947
+	MdtrtId          string
948
+	SetlId           string
946 949
 }

+ 51 - 0
service/gdyb_service.go 파일 보기

@@ -977,6 +977,57 @@ func Gdyb3202(baseParams models.BaseParams, businessParams models.BusinessParams
977 977
 	return str
978 978
 }
979 979
 
980
+func Gdyb5203(baseParams models.BaseParams, businessParams models.BusinessParams) string {
981
+	// 生成签名
982
+	nonce := GetRandomString(32)
983
+	timestamp := time.Now().Unix()
984
+	signature := setSignature(timestamp, nonce, baseParams.SecretKey)
985
+
986
+	// 生成输入报文
987
+	inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
988
+	input := make(map[string]interface{})
989
+	inputData := make(map[string]interface{})
990
+	inputMessage["infno"] = "5203" // 交易编码
991
+	inputData["psn_no"] = businessParams.PsnNo
992
+	inputData["setl_id"] = businessParams.SetlId
993
+	inputData["mdtrt_id"] = businessParams.MdtrtId
994
+	input["data"] = inputData
995
+	inputMessage["input"] = input //交易输入
996
+	bytesData, err := json.Marshal(inputMessage)
997
+	fmt.Println(string(bytesData))
998
+	if err != nil {
999
+		fmt.Println(err.Error())
1000
+		return err.Error()
1001
+	}
1002
+	reader := bytes.NewReader(bytesData)
1003
+
1004
+	url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/3202"
1005
+	request, err := http.NewRequest("POST", url, reader)
1006
+	if err != nil {
1007
+		fmt.Println(err.Error())
1008
+		return err.Error()
1009
+	}
1010
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
1011
+	request.Header.Set("x-tif-paasid", "test_hosp")
1012
+	request.Header.Set("x-tif-signature", signature)
1013
+	request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
1014
+	request.Header.Set("x-tif-nonce", nonce)
1015
+	client := http.Client{}
1016
+	resp, err := client.Do(request)
1017
+	if err != nil {
1018
+		fmt.Println(err.Error())
1019
+		return err.Error()
1020
+	}
1021
+	respBytes, err := ioutil.ReadAll(resp.Body)
1022
+	if err != nil {
1023
+		fmt.Println(err.Error())
1024
+		return err.Error()
1025
+	}
1026
+	str := string(respBytes)
1027
+	fmt.Println(str)
1028
+	return str
1029
+}
1030
+
980 1031
 //  门诊结算撤销
981 1032
 //func Gdyb4101(psnNo string, mdtrtId string, setlId string) string {
982 1033
 //	// 生成签名

+ 6 - 1
service/his_service.go 파일 보기

@@ -795,7 +795,12 @@ func GetCallHisPrescriptions(start_time int64, end_time int64, org_id int64, pat
795 795
 }
796 796
 
797 797
 func GetHisOrderByID(order_id int64) (order models.HisOrder, err error) {
798
-	err = readDb.Model(&models.HisOrder{}).Where("id = ?", order_id).First(&order).Error
798
+	err = readDb.Model(&models.HisOrder{}).Where("id = ? AND status = 1", order_id).First(&order).Error
799
+	return
800
+}
801
+
802
+func GetHisOrderInfoByNumber(order_number string) (order []*models.HisOrderInfo, err error) {
803
+	err = readDb.Model(&models.HisOrderInfo{}).Where("order_number = ? AND status = 1", order_number).Find(&order).Error
799 804
 	return
800 805
 }
801 806