|
@@ -87,7 +87,7 @@ func Gdyb1201(certNo string, org_name string, doctor string, fixmedins_code stri
|
87
|
87
|
}
|
88
|
88
|
|
89
|
89
|
// 人员基本信息
|
90
|
|
-func Gdyb1101(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, card_sn string) string {
|
|
90
|
+func Gdyb1101(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, card_sn string, certificates string) string {
|
91
|
91
|
//生成签名
|
92
|
92
|
nonce := GetRandomString(32)
|
93
|
93
|
timestamp := time.Now().Unix()
|
|
@@ -98,16 +98,26 @@ func Gdyb1101(certNo string, org_name string, doctor string, fixmedins_code stri
|
98
|
98
|
inputData := make(map[string]interface{})
|
99
|
99
|
inputMessage["infno"] = "1101" // 交易编码
|
100
|
100
|
|
101
|
|
- if id_card_type == 1 {
|
102
|
|
- inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
|
103
|
|
- inputData["card_sn"] = card_sn // 卡识别码
|
|
101
|
+ if certificates == "3" {
|
|
102
|
+ inputData["mdtrt_cert_type"] = "99" // 就诊凭证类型
|
104
|
103
|
inputData["certno"] = certNo // 证件号码
|
|
104
|
+ inputData["psn_cert_type"] = "99" // 人员证件类型
|
|
105
|
+
|
105
|
106
|
} else {
|
106
|
|
- inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
|
107
|
|
- inputData["card_sn"] = "" // 卡识别码
|
108
|
|
- inputData["certno"] = certNo // 证件号码
|
|
107
|
+ if id_card_type == 1 {
|
|
108
|
+ inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
|
|
109
|
+ inputData["card_sn"] = card_sn // 卡识别码
|
|
110
|
+ inputData["certno"] = certNo // 证件号码
|
|
111
|
+ inputData["psn_cert_type"] = "1" // 人员证件类型
|
|
112
|
+
|
|
113
|
+ } else {
|
|
114
|
+ inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
|
|
115
|
+ inputData["card_sn"] = "" // 卡识别码
|
|
116
|
+ inputData["certno"] = certNo // 证件号码
|
|
117
|
+ inputData["psn_cert_type"] = "1" // 人员证件类型
|
|
118
|
+ }
|
109
|
119
|
}
|
110
|
|
- inputData["psn_cert_type"] = "1" // 人员证件类型
|
|
120
|
+
|
111
|
121
|
inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
|
112
|
122
|
inputData["begntime"] = "" // 开始时间
|
113
|
123
|
inputData["psn_name"] = "" // 人员姓名
|
|
@@ -919,7 +929,7 @@ func Gdyb2206(psnNo string, mdtrtId string, chrgBchno string, certNo string, ins
|
919
|
929
|
}
|
920
|
930
|
|
921
|
931
|
// 门诊结算
|
922
|
|
-func Gdyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64) string {
|
|
932
|
+func Gdyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64) (string, string) {
|
923
|
933
|
// 生成签名
|
924
|
934
|
nonce := GetRandomString(32)
|
925
|
935
|
timestamp := time.Now().Unix()
|
|
@@ -930,15 +940,18 @@ func Gdyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, ins
|
930
|
940
|
input := make(map[string]interface{})
|
931
|
941
|
inputData := make(map[string]interface{})
|
932
|
942
|
inputMessage["infno"] = "2207" // 交易编码
|
933
|
|
-
|
934
|
|
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
|
935
|
|
-
|
936
|
|
- if id_card_type == 1 {
|
937
|
|
- inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
|
|
943
|
+ inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
|
|
944
|
+ if certificates == 3 {
|
|
945
|
+ inputData["mdtrt_cert_type"] = "99" // 就诊凭证类型
|
938
|
946
|
inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
|
939
|
947
|
} else {
|
940
|
|
- inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
|
941
|
|
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
|
|
948
|
+ if id_card_type == 1 {
|
|
949
|
+ inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
|
|
950
|
+ inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
|
|
951
|
+ } else {
|
|
952
|
+ inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
|
|
953
|
+ inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
|
|
954
|
+ }
|
942
|
955
|
}
|
943
|
956
|
|
944
|
957
|
inputData["med_type"] = med_type // 医疗类别 11 普通门诊 12 门诊挂号
|
|
@@ -962,7 +975,7 @@ func Gdyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, ins
|
962
|
975
|
fmt.Println(string(bytesData))
|
963
|
976
|
if err != nil {
|
964
|
977
|
fmt.Println(err.Error())
|
965
|
|
- return err.Error()
|
|
978
|
+ return err.Error(), ""
|
966
|
979
|
}
|
967
|
980
|
reader := bytes.NewReader(bytesData)
|
968
|
981
|
gdyb_url := beego.AppConfig.String("gdyb_url")
|
|
@@ -978,7 +991,7 @@ func Gdyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, ins
|
978
|
991
|
request, err := http.NewRequest("POST", url, reader)
|
979
|
992
|
if err != nil {
|
980
|
993
|
fmt.Println(err.Error())
|
981
|
|
- return err.Error()
|
|
994
|
+ return err.Error(), ""
|
982
|
995
|
}
|
983
|
996
|
|
984
|
997
|
request.Header.Set("Content-Type", "application/json;charset=UTF-8")
|
|
@@ -991,20 +1004,23 @@ func Gdyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, ins
|
991
|
1004
|
resp, err := client.Do(request)
|
992
|
1005
|
if err != nil {
|
993
|
1006
|
fmt.Println(err.Error())
|
994
|
|
- return err.Error()
|
|
1007
|
+ return err.Error(), ""
|
995
|
1008
|
}
|
996
|
1009
|
respBytes, err := ioutil.ReadAll(resp.Body)
|
997
|
1010
|
if err != nil {
|
998
|
1011
|
fmt.Println(err.Error())
|
999
|
|
- return err.Error()
|
|
1012
|
+ return err.Error(), ""
|
1000
|
1013
|
}
|
1001
|
1014
|
str := string(respBytes)
|
1002
|
1015
|
fmt.Println(str)
|
1003
|
|
- return str
|
|
1016
|
+ mjson, _ := json.Marshal(inputMessage)
|
|
1017
|
+ str2 := string(mjson)
|
|
1018
|
+
|
|
1019
|
+ return str, str2
|
1004
|
1020
|
}
|
1005
|
1021
|
|
1006
|
1022
|
// 门诊结算撤销
|
1007
|
|
-func Gdyb2208(psnNo string, mdtrtId string, setlId string, org_name string, doctor string, secret_key string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string) string {
|
|
1023
|
+func Gdyb2208(psnNo string, mdtrtId string, setlId string, org_name string, doctor string, secret_key string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string) (string, string) {
|
1008
|
1024
|
// 生成签名
|
1009
|
1025
|
nonce := GetRandomString(32)
|
1010
|
1026
|
timestamp := time.Now().Unix()
|
|
@@ -1027,7 +1043,7 @@ func Gdyb2208(psnNo string, mdtrtId string, setlId string, org_name string, doct
|
1027
|
1043
|
fmt.Println(string(bytesData))
|
1028
|
1044
|
if err != nil {
|
1029
|
1045
|
fmt.Println(err.Error())
|
1030
|
|
- return err.Error()
|
|
1046
|
+ return err.Error(), ""
|
1031
|
1047
|
}
|
1032
|
1048
|
reader := bytes.NewReader(bytesData)
|
1033
|
1049
|
gdyb_url := beego.AppConfig.String("gdyb_url")
|
|
@@ -1043,7 +1059,7 @@ func Gdyb2208(psnNo string, mdtrtId string, setlId string, org_name string, doct
|
1043
|
1059
|
request, err := http.NewRequest("POST", url, reader)
|
1044
|
1060
|
if err != nil {
|
1045
|
1061
|
fmt.Println(err.Error())
|
1046
|
|
- return err.Error()
|
|
1062
|
+ return err.Error(), ""
|
1047
|
1063
|
}
|
1048
|
1064
|
|
1049
|
1065
|
request.Header.Set("Content-Type", "application/json;charset=UTF-8")
|
|
@@ -1056,16 +1072,18 @@ func Gdyb2208(psnNo string, mdtrtId string, setlId string, org_name string, doct
|
1056
|
1072
|
resp, err := client.Do(request)
|
1057
|
1073
|
if err != nil {
|
1058
|
1074
|
fmt.Println(err.Error())
|
1059
|
|
- return err.Error()
|
|
1075
|
+ return err.Error(), ""
|
1060
|
1076
|
}
|
1061
|
1077
|
respBytes, err := ioutil.ReadAll(resp.Body)
|
1062
|
1078
|
if err != nil {
|
1063
|
1079
|
fmt.Println(err.Error())
|
1064
|
|
- return err.Error()
|
|
1080
|
+ return err.Error(), ""
|
1065
|
1081
|
}
|
1066
|
1082
|
str := string(respBytes)
|
1067
|
1083
|
fmt.Println(str)
|
1068
|
|
- return str
|
|
1084
|
+ mjson, _ := json.Marshal(inputMessage)
|
|
1085
|
+ str2 := string(mjson)
|
|
1086
|
+ return str, str2
|
1069
|
1087
|
}
|
1070
|
1088
|
|
1071
|
1089
|
//确认订单
|
|
@@ -1175,13 +1193,14 @@ func Gdyb3201(baseParams models.BaseParams, businessParams models.BusinessParams
|
1175
|
1193
|
inputMessage["infno"] = "3201" // 交易编码
|
1176
|
1194
|
inputData["insutype"] = businessParams.Insutype // 险种
|
1177
|
1195
|
inputData["clr_type"] = businessParams.ClrType // 就诊 ID(来自2201接口返回)
|
1178
|
|
- inputData["setl_optins"] = "定点医保中心" // 结算经办机构
|
|
1196
|
+ inputData["setl_optins"] = "440229" // 结算经办机构
|
1179
|
1197
|
inputData["stmt_begndate"] = businessParams.StmtBegndate // 对帐开始时间
|
1180
|
1198
|
inputData["stmt_enddate"] = businessParams.StmtEnddate //对帐结束时间
|
1181
|
1199
|
inputData["medfee_sumamt"] = businessParams.MedfeeSumamt //医疗费总额
|
1182
|
1200
|
inputData["fund_pay_sumamt"] = businessParams.FundPaySumamt //基金支付总额
|
1183
|
1201
|
inputData["acct_pay"] = businessParams.AcctPay //个人账户支付金额
|
1184
|
1202
|
inputData["fixmedins_setl_cnt"] = businessParams.FixmedinsSetlCnt //定点医药机构结算笔数
|
|
1203
|
+ inputData["refd_setl_flag"] = 0 // 就诊 ID(来自2201接口返回)
|
1185
|
1204
|
|
1186
|
1205
|
input["data"] = inputData
|
1187
|
1206
|
inputMessage["input"] = input //交易输入
|
|
@@ -1254,7 +1273,7 @@ func Gdyb9101(baseParams models.BaseParams, file_name string, file_byte []byte)
|
1254
|
1273
|
|
1255
|
1274
|
inputMessage["infno"] = "9101" // 交易编码
|
1256
|
1275
|
inputData["file_name"] = file_name //文件名
|
1257
|
|
- inputData["in"] = bytes.NewBuffer(file_byte).Bytes() //文件数据
|
|
1276
|
+ inputData["in"] = file_byte //文件数据
|
1258
|
1277
|
inputData["fixmedins_code"] = baseParams.FixmedinsCode //编码
|
1259
|
1278
|
|
1260
|
1279
|
input["fsUploadIn"] = inputData
|
|
@@ -1313,9 +1332,10 @@ func Gdyb9102(baseParams models.BaseParams, file_name string, file_qury_no strin
|
1313
|
1332
|
inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
|
1314
|
1333
|
input := make(map[string]interface{})
|
1315
|
1334
|
inputData := make(map[string]interface{})
|
1316
|
|
- inputMessage["infno"] = "9102" // 交易编码
|
1317
|
|
- inputData["file_name"] = file_name //文件名
|
1318
|
|
- inputData["file_qury_no"] = file_qury_no //文件数据
|
|
1335
|
+ inputMessage["infno"] = "9102" // 交易编码
|
|
1336
|
+ inputData["file_name"] = file_name //文件名
|
|
1337
|
+ inputData["file_qury_no"] = file_qury_no //文件数据
|
|
1338
|
+
|
1319
|
1339
|
inputData["fixmedins_code"] = baseParams.FixmedinsCode //编码
|
1320
|
1340
|
input["fsDownloadIn"] = inputData
|
1321
|
1341
|
inputMessage["input"] = input //交易输入
|
|
@@ -1375,15 +1395,17 @@ func Gdyb3202(baseParams models.BaseParams, businessParams models.BusinessParams
|
1375
|
1395
|
inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
|
1376
|
1396
|
input := make(map[string]interface{})
|
1377
|
1397
|
inputData := make(map[string]interface{})
|
1378
|
|
- inputMessage["infno"] = "3202" // 交易编码
|
1379
|
|
- inputData["file_qury_no"] = "fsi/H44022900158/" + businessParams.FileQuryNo // 险种
|
1380
|
|
- inputData["setl_optins"] = "定点医保中心" // 结算经办机构
|
1381
|
|
- inputData["stmt_begndate"] = businessParams.StmtBegndate // 对帐开始时间
|
1382
|
|
- inputData["stmt_enddate"] = businessParams.StmtEnddate //对帐结束时间
|
1383
|
|
- inputData["medfee_sumamt"] = businessParams.MedfeeSumamt //医疗费总额
|
1384
|
|
- inputData["fund_pay_sumamt"] = businessParams.FundPaySumamt //基金支付总额
|
1385
|
|
- inputData["cash_payamt"] = businessParams.CashPayamt //现金支付金额
|
1386
|
|
- inputData["fixmedins_setl_cnt"] = businessParams.FixmedinsSetlCnt //定点医药机构结算笔数
|
|
1398
|
+ inputMessage["infno"] = "3202" // 交易编码
|
|
1399
|
+ inputData["file_qury_no"] = businessParams.FileQuryNo // 险种
|
|
1400
|
+ inputData["setl_optins"] = "440229" // 结算经办机构
|
|
1401
|
+ inputData["stmt_begndate"] = businessParams.StmtBegndate // 对帐开始时间
|
|
1402
|
+ inputData["stmt_enddate"] = businessParams.StmtEnddate //对帐结束时间
|
|
1403
|
+ inputData["medfee_sumamt"] = businessParams.MedfeeSumamt //医疗费总额
|
|
1404
|
+ inputData["fund_pay_sumamt"] = businessParams.FundPaySumamt //基金支付总额
|
|
1405
|
+ inputData["cash_payamt"] = businessParams.CashPayamt //现金支付金额
|
|
1406
|
+ inputData["fixmedins_setl_cnt"] = businessParams.FixmedinsSetlCnt //定点医药机构结算笔数
|
|
1407
|
+ inputData["clr_type"] = "11" // 就诊 ID(来自2201接口返回)
|
|
1408
|
+ inputData["refd_setl_flag"] = 1 // 就诊 ID(来自2201接口返回)
|
1387
|
1409
|
|
1388
|
1410
|
input["data"] = inputData
|
1389
|
1411
|
inputMessage["input"] = input //交易输入
|
|
@@ -1625,12 +1647,10 @@ func Gdyb3302(baseParams *models.BaseParams, name string, codg string, list_type
|
1625
|
1647
|
input := make(map[string]interface{})
|
1626
|
1648
|
inputData := make(map[string]interface{})
|
1627
|
1649
|
inputMessage["infno"] = "3302" // 交易编码
|
|
1650
|
+ inputData["fixmedins_code"] = baseParams.FixmedinsCode
|
1628
|
1651
|
inputData["fixmedins_hilist_id"] = codg
|
1629
|
|
- inputData["fixmedins_hilist_name"] = name
|
1630
|
1652
|
inputData["list_type"] = list_type_code
|
1631
|
1653
|
inputData["med_list_codg"] = codg
|
1632
|
|
- inputData["begndate"] = "2021-01-01"
|
1633
|
|
- inputData["enddate"] = "2099-01-07"
|
1634
|
1654
|
|
1635
|
1655
|
input["data"] = inputData
|
1636
|
1656
|
inputMessage["input"] = input //交易输入
|
|
@@ -2531,3 +2551,57 @@ func GetPatientsByIds(ids []string, current_org_id int64) (patients []*models.Pa
|
2531
|
2551
|
err = readDb.Model(&models.Patients{}).Where("id IN (?) AND user_org_id = ?", ids, current_org_id).Find(&patients).Error
|
2532
|
2552
|
return
|
2533
|
2553
|
}
|
|
2554
|
+
|
|
2555
|
+func Gdyb2601(psnNo string, omsgid string, oinfno string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string) string {
|
|
2556
|
+ // 生成签名
|
|
2557
|
+ nonce := GetRandomString(32)
|
|
2558
|
+ timestamp := time.Now().Unix()
|
|
2559
|
+ signature := setSignature(timestamp, nonce, secret_key)
|
|
2560
|
+
|
|
2561
|
+ // 生成输入报文
|
|
2562
|
+ inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
|
|
2563
|
+ input := make(map[string]interface{})
|
|
2564
|
+ inputData := make(map[string]interface{})
|
|
2565
|
+ inputMessage["infno"] = "2601" // 交易编码
|
|
2566
|
+ inputData["psn_no"] = psnNo
|
|
2567
|
+ inputData["omsgid"] = omsgid
|
|
2568
|
+ inputData["oinfno"] = oinfno
|
|
2569
|
+
|
|
2570
|
+ input["data"] = inputData
|
|
2571
|
+ inputMessage["input"] = input //交易输入
|
|
2572
|
+ bytesData, err := json.Marshal(inputMessage)
|
|
2573
|
+ fmt.Println(string(bytesData))
|
|
2574
|
+ if err != nil {
|
|
2575
|
+ fmt.Println(err.Error())
|
|
2576
|
+ return err.Error()
|
|
2577
|
+ }
|
|
2578
|
+ reader := bytes.NewReader(bytesData)
|
|
2579
|
+ gdyb_url := beego.AppConfig.String("gdyb_url")
|
|
2580
|
+ gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
|
|
2581
|
+ url := gdyb_url + "2601"
|
|
2582
|
+ request, err := http.NewRequest("POST", url, reader)
|
|
2583
|
+ if err != nil {
|
|
2584
|
+ fmt.Println(err.Error())
|
|
2585
|
+ return err.Error()
|
|
2586
|
+ }
|
|
2587
|
+ request.Header.Set("Content-Type", "application/json;charset=UTF-8")
|
|
2588
|
+ request.Header.Set("x-tif-paasid", gdyb_paasid)
|
|
2589
|
+ request.Header.Set("x-tif-signature", signature)
|
|
2590
|
+ request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
|
|
2591
|
+ request.Header.Set("x-tif-nonce", nonce)
|
|
2592
|
+
|
|
2593
|
+ client := http.Client{}
|
|
2594
|
+ resp, err := client.Do(request)
|
|
2595
|
+ if err != nil {
|
|
2596
|
+ fmt.Println(err.Error())
|
|
2597
|
+ return err.Error()
|
|
2598
|
+ }
|
|
2599
|
+ respBytes, err := ioutil.ReadAll(resp.Body)
|
|
2600
|
+ if err != nil {
|
|
2601
|
+ fmt.Println(err.Error())
|
|
2602
|
+ return err.Error()
|
|
2603
|
+ }
|
|
2604
|
+ str := string(respBytes)
|
|
2605
|
+ fmt.Println(str)
|
|
2606
|
+ return str
|
|
2607
|
+}
|