csx 4 years ago
parent
commit
65ff6a1312
2 changed files with 62 additions and 0 deletions
  1. 8 0
      controllers/his_api_controller.go
  2. 54 0
      service/gdyb_service.go

+ 8 - 0
controllers/his_api_controller.go View File

2134
 
2134
 
2135
 			doctor_id := strconv.FormatInt(patientPrescription.DoctorId, 10)
2135
 			doctor_id := strconv.FormatInt(patientPrescription.DoctorId, 10)
2136
 			result := service.Gdyb2503(his.PsnNo, res.Output.Iinfo[0].Insutype, miConfig.OrgName, patientPrescription.Doctor, miConfig.Code, doctor_id, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, "重症尿毒症透析(血透)", "M07801")
2136
 			result := service.Gdyb2503(his.PsnNo, res.Output.Iinfo[0].Insutype, miConfig.OrgName, patientPrescription.Doctor, miConfig.Code, doctor_id, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, "重症尿毒症透析(血透)", "M07801")
2137
+			result2 := service.Gdyb5301(his.PsnNo, res.Output.Iinfo[0].Insutype, miConfig.OrgName, patientPrescription.Doctor, miConfig.Code, doctor_id, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, "重症尿毒症透析(血透)", "M07801")
2137
 
2138
 
2138
 			var dat map[string]interface{}
2139
 			var dat map[string]interface{}
2139
 			if err := json.Unmarshal([]byte(result), &dat); err == nil {
2140
 			if err := json.Unmarshal([]byte(result), &dat); err == nil {
2142
 				fmt.Println(err)
2143
 				fmt.Println(err)
2143
 			}
2144
 			}
2144
 
2145
 
2146
+			var dat2 map[string]interface{}
2147
+			if err := json.Unmarshal([]byte(result2), &dat2); err == nil {
2148
+				fmt.Println(dat2)
2149
+			} else {
2150
+				fmt.Println(err)
2151
+			}
2152
+
2145
 		} else {
2153
 		} else {
2146
 			adminUser := c.GetAdminUserInfo()
2154
 			adminUser := c.GetAdminUserInfo()
2147
 			errlog := &models.HisOrderError{
2155
 			errlog := &models.HisOrderError{

+ 54 - 0
service/gdyb_service.go View File

1302
 	return str
1302
 	return str
1303
 }
1303
 }
1304
 
1304
 
1305
+func Gdyb5301(psnNo string, insutype string, org_name string, doctor string, fixmedins_code string, doctor_id string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_name string, sick_code string) string {
1306
+	// 生成签名
1307
+	nonce := GetRandomString(32)
1308
+	timestamp := time.Now().Unix()
1309
+	signature := setSignature(timestamp, nonce, secret_key)
1310
+	//tempTime := time.Unix(timestamp, 0)
1311
+	//timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
1312
+
1313
+	//timeFormatTwo := tempTime.Format("2006-01-02")
1314
+
1315
+	// 生成输入报文
1316
+	inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
1317
+	input := make(map[string]interface{})
1318
+	inputData := make(map[string]interface{})
1319
+	inputMessage["infno"] = "5301" // 交易编码
1320
+	inputData["psn_no"] = psnNo    // 人员编号 (来自1101接口返回)
1321
+	input["data"] = inputData
1322
+	inputMessage["input"] = input //交易输入
1323
+	bytesData, err := json.Marshal(inputMessage)
1324
+	fmt.Println(string(bytesData))
1325
+	if err != nil {
1326
+		fmt.Println(err.Error())
1327
+		return err.Error()
1328
+	}
1329
+	reader := bytes.NewReader(bytesData)
1330
+	url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/5301"
1331
+	request, err := http.NewRequest("POST", url, reader)
1332
+	if err != nil {
1333
+		fmt.Println(err.Error())
1334
+		return err.Error()
1335
+	}
1336
+
1337
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
1338
+	request.Header.Set("x-tif-paasid", "sg03_prd")
1339
+	request.Header.Set("x-tif-signature", signature)
1340
+	request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
1341
+	request.Header.Set("x-tif-nonce", nonce)
1342
+
1343
+	client := http.Client{}
1344
+	resp, err := client.Do(request)
1345
+	if err != nil {
1346
+		fmt.Println(err.Error())
1347
+		return err.Error()
1348
+	}
1349
+	respBytes, err := ioutil.ReadAll(resp.Body)
1350
+	if err != nil {
1351
+		fmt.Println(err.Error())
1352
+		return err.Error()
1353
+	}
1354
+	str := string(respBytes)
1355
+	fmt.Println(str)
1356
+	return str
1357
+}
1358
+
1305
 //  门诊结算撤销
1359
 //  门诊结算撤销
1306
 //func Gdyb4101(psnNo string, mdtrtId string, setlId string) string {
1360
 //func Gdyb4101(psnNo string, mdtrtId string, setlId string) string {
1307
 //	// 生成签名
1361
 //	// 生成签名