Browse Source

Merge branch 'master' of http://git.shengws.com/csx/gdyb

XMLWAN 3 years ago
parent
commit
fc8dafe895

+ 4 - 3
conf/app.conf View File

@@ -1,5 +1,5 @@
1 1
 appname = 血透
2
-httpport = 9531
2
+httpport = 9532
3 3
 runmode = prod
4 4
 
5 5
 #
@@ -44,7 +44,7 @@ appsecret="61ee2e6268497d5aa9de0b0187c39aea"
44 44
 
45 45
 
46 46
 [prod]
47
-org_id = 9990
47
+org_id = 10106
48 48
 mobile_token_expiration_second = 86400
49 49
 httpdomain = https://api.xt.kuyicloud.com
50 50
 sso_domain = https://sso.kuyicloud.com
@@ -53,7 +53,8 @@ front_end_domain = "https://xt.kuyicloud.com/#"
53 53
 #url  = "http://192.168.1.228:17001/szsi-portal/transData"
54 54
 url = "http://192.168.1.88:6666/szsi-portal/transData"
55 55
 gdyb_url = "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/"
56
-gdyb_paasid = "sg03_prd"
56
+#gdyb_paasid = "sg03_prd"
57
+gdyb_paasid = "jm_sc_yjyy"
57 58
 
58 59
 readmysqlhost = shengws1.mysql.rds.aliyuncs.com
59 60
 readmysqlport = 3306

+ 31 - 28
controllers/sg/gdyb_controller.go View File

@@ -24,7 +24,7 @@ func GdybRegistRouters() {
24 24
 	beego.Router("/gdyb/six", &GdybController{}, "get:PostSix")
25 25
 	beego.Router("/gdyb/seven", &GdybController{}, "get:PostSeven")
26 26
 	beego.Router("/gdyb/eight", &GdybController{}, "get:PostEight")
27
-	beego.Router("/gdyb/nine", &GdybController{}, "get:PostNine")
27
+	//beego.Router("/gdyb/nine", &GdybController{}, "get:PostNine")
28 28
 	beego.Router("/gdyb/ten", &GdybController{}, "get:PostTen")
29 29
 	beego.Router("/gdyb/eleven", &GdybController{}, "get:PostEleven")
30 30
 	beego.Router("/gdyb/twelve", &GdybController{}, "get:PostTwelve")
@@ -71,19 +71,19 @@ func (c *GdybController) PostOne() {
71 71
 	org_name := c.GetString("org_name")
72 72
 	doctor := c.GetString("doctor")
73 73
 	fixmedins_code := c.GetString("fixmedins_code")
74
-
75 74
 	insuplc_admdvs := c.GetString("insuplc_admdvs")
76 75
 	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
77
-
78 76
 	secret_key := c.GetString("secret_key")
79 77
 	id_card_type, _ := c.GetInt64("id_card_type")
80 78
 	card_sn := c.GetString("card_sn")
79
+	certificates := c.GetString("certificates")
81 80
 
82
-	result := service.Gdyb1101(certNo, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, id_card_type, card_sn)
83
-
81
+	result := service.Gdyb1101(certNo, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, id_card_type, card_sn, certificates)
84 82
 	var dat map[string]interface{}
85 83
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
84
+
86 85
 	} else {
86
+
87 87
 	}
88 88
 
89 89
 	c.ServeSuccessJSON(map[string]interface{}{
@@ -134,10 +134,13 @@ func (c *GdybController) PostThree() {
134 134
 	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
135 135
 	secret_key := c.GetString("secret_key")
136 136
 	fixmedins_code := c.GetString("fixmedins_code")
137
-
138 137
 	result := service.Gdyb2202(psnNo, mdtrtId, iptOtpNo, org_name, doctor, insuplc_admdvs, mdtrtarea_admvs, secret_key, fixmedins_code)
138
+	var dat map[string]interface{}
139
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
140
+	} else {
141
+	}
139 142
 	c.ServeSuccessJSON(map[string]interface{}{
140
-		"pre": result,
143
+		"pre": dat,
141 144
 	})
142 145
 }
143 146
 
@@ -323,7 +326,7 @@ func (c *GdybController) PostEight() {
323 326
 	preselfpay_amt, _ := c.GetFloat("preselfpay_amt")
324 327
 	inscp_scp_amt, _ := c.GetFloat("inscp_scp_amt")
325 328
 
326
-	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)
329
+	result, srcRequest := 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, 1)
327 330
 	var dat map[string]interface{}
328 331
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
329 332
 		fmt.Println(dat)
@@ -331,33 +334,33 @@ func (c *GdybController) PostEight() {
331 334
 		fmt.Println(err)
332 335
 	}
333 336
 
334
-	c.ServeSuccessJSON(map[string]interface{}{
335
-		"pre": dat,
336
-	})
337
-}
338
-
339
-func (c *GdybController) PostNine() {
340
-	psnNo := c.GetString("psn_no")
341
-	mdtrtId := c.GetString("mdtrt_id")
342
-	setlId := c.GetString("setl_id")
343
-	org_name := c.GetString("org_name")
344
-	doctor := c.GetString("doctor")
345
-	secret_key := c.GetString("secret_key")
346
-	fixmedins_code := c.GetString("fixmedins_code")
347
-	insuplc_admdvs := c.GetString("insuplc_admdvs")
348
-	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
349
-	result := service.Gdyb2208(psnNo, mdtrtId, setlId, org_name, doctor, secret_key, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
350
-	var dat map[string]interface{}
351
-	if err := json.Unmarshal([]byte(result), &dat); err == nil {
352
-		fmt.Println(dat)
337
+	var dat2 map[string]interface{}
338
+	if err := json.Unmarshal([]byte(srcRequest), &dat2); err == nil {
339
+		fmt.Println(dat2)
353 340
 	} else {
354 341
 		fmt.Println(err)
355 342
 	}
343
+
356 344
 	c.ServeSuccessJSON(map[string]interface{}{
357
-		"pre": dat,
345
+		"pre":  dat,
346
+		"pre2": dat2,
358 347
 	})
359 348
 }
360 349
 
350
+//func (c *GdybController) PostNine() {
351
+//	psnNo := c.GetString("psn_no")
352
+//	mdtrtId := c.GetString("mdtrt_id")
353
+//	setlId := c.GetString("setl_id")
354
+//	org_name := c.GetString("org_name")
355
+//	doctor := c.GetString("doctor")
356
+//	secret_key := c.GetString("secret_key")
357
+//	fixmedins_code := c.GetString("fixmedins_code")
358
+//	insuplc_admdvs := c.GetString("insuplc_admdvs")
359
+//	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
360
+//	//result, src_request := service.Gdyb2208(psnNo, mdtrtId, setlId, org_name, doctor, secret_key, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
361
+//
362
+//}
363
+
361 364
 func (c *GdybController) PostTen() {
362 365
 	fmt.Println("11222333-----")
363 366
 

File diff suppressed because it is too large
+ 865 - 472
controllers/sg/his_api_controller.go


+ 22 - 1
controllers/sz/sz_his_api_controller.go View File

@@ -1004,6 +1004,10 @@ func (c *SZHisApiController) GetRegisterInfo() {
1004 1004
 							PatientInfo:            result001,
1005 1005
 						}
1006 1006
 						service.CreateHisPatientTwo(&his)
1007
+						lists, _ := service.GetHisPatientInfoList(adminInfo.CurrentOrgId, patient.ID, theTime.Unix())
1008
+						if len(lists) == 1 {
1009
+							service.UpdateHisPrescriptionHisID(his.ID, patient.ID, theTime.Unix(), adminInfo.CurrentOrgId)
1010
+						}
1007 1011
 						c.ServeSuccessJSON(map[string]interface{}{
1008 1012
 							"msg": "挂号成功",
1009 1013
 						})
@@ -1072,6 +1076,10 @@ func (c *SZHisApiController) GetRegisterInfo() {
1072 1076
 							PatientInfo:            result001,
1073 1077
 						}
1074 1078
 						service.CreateHisPatientTwo(&his)
1079
+						lists, _ := service.GetHisPatientInfoList(adminInfo.CurrentOrgId, patient.ID, theTime.Unix())
1080
+						if len(lists) == 1 {
1081
+							service.UpdateHisPrescriptionHisID(his.ID, patient.ID, theTime.Unix(), adminInfo.CurrentOrgId)
1082
+						}
1075 1083
 						c.ServeSuccessJSON(map[string]interface{}{
1076 1084
 							"msg": "挂号成功",
1077 1085
 						})
@@ -1139,6 +1147,10 @@ func (c *SZHisApiController) GetRegisterInfo() {
1139 1147
 							PatientInfo:            result001,
1140 1148
 						}
1141 1149
 						service.CreateHisPatientTwo(&his)
1150
+						lists, _ := service.GetHisPatientInfoList(adminInfo.CurrentOrgId, patient.ID, theTime.Unix())
1151
+						if len(lists) == 1 {
1152
+							service.UpdateHisPrescriptionHisID(his.ID, patient.ID, theTime.Unix(), adminInfo.CurrentOrgId)
1153
+						}
1142 1154
 						c.ServeSuccessJSON(map[string]interface{}{
1143 1155
 							"msg": "挂号成功",
1144 1156
 						})
@@ -1202,6 +1214,10 @@ func (c *SZHisApiController) GetRegisterInfo() {
1202 1214
 							PatientInfo:            result001,
1203 1215
 						}
1204 1216
 						service.CreateHisPatientTwo(&his)
1217
+						lists, _ := service.GetHisPatientInfoList(adminInfo.CurrentOrgId, patient.ID, theTime.Unix())
1218
+						if len(lists) == 1 {
1219
+							service.UpdateHisPrescriptionHisID(his.ID, patient.ID, theTime.Unix(), adminInfo.CurrentOrgId)
1220
+						}
1205 1221
 						c.ServeSuccessJSON(map[string]interface{}{
1206 1222
 							"msg": "挂号成功",
1207 1223
 						})
@@ -2108,6 +2124,7 @@ func (c *SZHisApiController) RefundNumber() {
2108 2124
 
2109 2125
 //上传明细----结算----确认订单
2110 2126
 func (c *SZHisApiController) GetSettleInfo() {
2127
+
2111 2128
 	pay_way, _ := c.GetInt64("pay_way")
2112 2129
 	pay_price, _ := c.GetFloat("pay_price")
2113 2130
 	pay_card_no := c.GetString("pay_card_no")
@@ -2121,6 +2138,9 @@ func (c *SZHisApiController) GetSettleInfo() {
2121 2138
 	patient_id, _ := c.GetInt64("id")
2122 2139
 	record_time := c.GetString("record_time")
2123 2140
 	admin_user_id, _ := c.GetInt64("admin_user_id")
2141
+
2142
+	his_patient_id, _ := c.GetInt64("his_patient_id")
2143
+
2124 2144
 	timestamp := time.Now().Unix()
2125 2145
 	tempTime := time.Unix(timestamp, 0)
2126 2146
 	timeFormat := tempTime.Format("20060102150405")
@@ -2192,7 +2212,7 @@ func (c *SZHisApiController) GetSettleInfo() {
2192 2212
 	adminRole_two, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId)
2193 2213
 
2194 2214
 	adminRole, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
2195
-	his, err := service.GetHisPatientInfo(adminUser.CurrentOrgId, patient_id, recordDateTime)
2215
+	his, err := service.GetNewHisPatientInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime)
2196 2216
 	mz_number := his.Number
2197 2217
 	number := miConfig.Code + year + month + day +
2198 2218
 		fmt.Sprintf("%07v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000000)) // 定点协议机构编码(5位)+日期(8位)+流水号(7位)
@@ -2388,6 +2408,7 @@ func (c *SZHisApiController) GetSettleInfo() {
2388 2408
 			Creator:             admin_user_id,
2389 2409
 			Modify:              admin_user_id,
2390 2410
 			OrgSetlNumber:       number,
2411
+			MdtrtId:             mz_number,
2391 2412
 		}
2392 2413
 		data, _ := json.Marshal(ress)
2393 2414
 		order.DetailLog = string(data)

+ 1 - 0
main.go View File

@@ -12,6 +12,7 @@ func init() {
12 12
 }
13 13
 
14 14
 func main() {
15
+
15 16
 	beego.Run()
16 17
 
17 18
 }

+ 3 - 0
models/his_models.go View File

@@ -675,6 +675,9 @@ type HisOrder struct {
675 675
 	RefundLog string `gorm:"column:refund_log" json:"refund_log" form:"refund_log"`
676 676
 	DetailLog string `gorm:"column:detail_log" json:"detail_log" form:"detail_log"`
677 677
 
678
+	RequestLog       string `gorm:"column:request_log" json:"request_log" form:"request_log"`
679
+	RefundRequestLog string `gorm:"column:refund_request_log" json:"refund_request_log" form:"refund_request_log"`
680
+
678 681
 	HisOrderInfo        HisOrderInfo        `gorm:"ForeignKey:ID;AssociationForeignKey:OrderId" json:"order_info"`
679 682
 	Patients            Patients            `gorm:"ForeignKey:PatientId;AssociationForeignKey:ID" json:"patient"`
680 683
 	HisPatient          HisPatient          `gorm:"ForeignKey:HisPatientId;AssociationForeignKey:ID" json:"his_patient"`

+ 5 - 4
routers/router.go View File

@@ -1,7 +1,8 @@
1 1
 package routers
2 2
 
3 3
 import (
4
-	"gdyb/controllers/sz"
4
+	"gdyb/controllers/sg"
5
+	//"gdyb/controllers/sz"
5 6
 
6 7
 	//"gdyb/controllers/sz"
7 8
 	//"gdyb/controllers/sz"
@@ -21,8 +22,8 @@ func init() {
21 22
 		AllowCredentials: true,
22 23
 	}))
23 24
 
24
-	//sg.HisManagerApiRegistRouters()
25
-	//sg.GdybRegistRouters()
26
-	sz.SZHisManagerApiRegistRouters()
25
+	sg.HisManagerApiRegistRouters()
26
+	sg.GdybRegistRouters()
27
+	//sz.SZHisManagerApiRegistRouters()
27 28
 
28 29
 }

+ 118 - 44
service/gdyb_service.go View File

@@ -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
+}

+ 32 - 2
service/his_service.go View File

@@ -190,6 +190,11 @@ func GetHisPatientInfo(org_id int64, patient_id int64, record_date int64) (info
190 190
 	return
191 191
 }
192 192
 
193
+func GetNewHisPatientInfo(org_id int64, id int64, record_date int64) (info models.HisPatient, err error) {
194
+	err = readDb.Model(&models.HisPatient{}).Where("user_org_id = ? AND status = 1 AND record_date = ? AND id = ?", org_id, record_date, id).First(&info).Error
195
+	return
196
+}
197
+
193 198
 func GetXTPatientInfo(org_id int64, patient_id int64) (info models.Patients, err error) {
194 199
 	err = readDb.Model(&models.Patients{}).Where("user_org_id = ? AND status = 1  AND id = ?", org_id, patient_id).First(&info).Error
195 200
 	return
@@ -456,6 +461,16 @@ func GetVMHisPatientInfo(org_id int64, patient_id int64, record_date int64) (inf
456 461
 	return
457 462
 }
458 463
 
464
+func GetNewVMHisPatientInfo(org_id int64, patient_id int64, record_date int64) (info models.VMHisPatient, err error) {
465
+	err = readDb.Model(&models.VMHisPatient{}).Where("user_org_id = ? AND status = 1 AND record_date = ? AND id = ?", org_id, record_date, patient_id).First(&info).Error
466
+	return
467
+}
468
+
469
+func GetHisPatientRecord(org_id int64, id int64) (info models.VMHisPatient, err error) {
470
+	err = readDb.Model(&models.VMHisPatient{}).Where("user_org_id = ? AND status = 1 AND id = ?", org_id, id).First(&info).Error
471
+	return
472
+}
473
+
459 474
 func CreateOrder(order *models.HisOrder) (err error) {
460 475
 	err = writeDb.Create(&order).Error
461 476
 	return
@@ -660,8 +675,8 @@ func GetMedicalInsuranceConfig(org_id int64) (medicalInsuranceConfig models.Medi
660 675
 
661 676
 }
662 677
 
663
-func UpdataOrderStatus(id int64, number string, user_org_id int64) (err error) {
664
-	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()}).Error
678
+func UpdataOrderStatus(id int64, number string, user_org_id int64, log string, result string) (err error) {
679
+	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(), "refund_request_log": log, "refund_log": result}).Error
665 680
 	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
666 681
 	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
667 682
 	return
@@ -672,6 +687,11 @@ func UpdataRegStatus(patient_id int64, record_time int64, org_id int64) {
672 687
 	writeDb.Model(&models.HisPatient{}).Where("patient_id = ? AND status = 1 AND record_date =? AND user_org_id = ?", patient_id, record_time, org_id).Updates(map[string]interface{}{"status": 0, "mtime": time.Now().Unix()})
673 688
 
674 689
 }
690
+
691
+func UpdataRegStatus2(id int64) error {
692
+	err := writeDb.Model(&models.HisPatient{}).Where("id = ?", id).Updates(map[string]interface{}{"status": 0, "mtime": time.Now().Unix()}).Error
693
+	return err
694
+}
675 695
 func GetAdminUserInfoByID(org_id int64, admin_user_id int64) (role models.UserAdminRole, err error) {
676 696
 	err = readUserDb.Model(&models.UserAdminRole{}).Where("org_id = ? AND status = 1 AND admin_user_id = ?", org_id, admin_user_id).First(&role).Error
677 697
 	return
@@ -1104,3 +1124,13 @@ func GetAllPatient(org_id int64) (patients []*models.Patients, err error) {
1104 1124
 	err = readDb.Model(&models.Patients{}).Where("user_org_id = ? AND status = 1 AND lapseto = 1", org_id).Find(&patients).Error
1105 1125
 	return
1106 1126
 }
1127
+
1128
+func UpdateHisPrescriptionHisID(his_patient_id int64, patient_id int64, record_time int64, org_id int64) {
1129
+	XTWriteDB().Model(&models.HisPrescription{}).Where("record_date = ? AND user_org_id = ? AND patient_id = ?", record_time, org_id, patient_id).Updates(map[string]interface{}{"his_patient_id": his_patient_id})
1130
+	return
1131
+}
1132
+
1133
+func GetHisPatientInfoList(org_id int64, patient_id int64, record_date int64) (info []*models.HisPatient, err error) {
1134
+	err = readDb.Model(&models.HisPatient{}).Where("user_org_id = ? AND status = 1 AND record_date = ? AND patient_id = ?", org_id, record_date, patient_id).Find(&info).Error
1135
+	return
1136
+}