Browse Source

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

csx 2 years ago
parent
commit
c97753957a

+ 1 - 1
conf/app.conf View File

@@ -45,7 +45,7 @@ appsecret="61ee2e6268497d5aa9de0b0187c39aea"
45 45
 
46 46
 
47 47
 [prod]
48
-org_id = 10217
48
+org_id = 10265
49 49
 mobile_token_expiration_second = 86400
50 50
 httpdomain = https://api.xt.kuyicloud.com
51 51
 sso_domain = https://sso.kuyicloud.com

+ 1 - 0
controllers/js/jsyb_controller.go View File

@@ -274,6 +274,7 @@ func (c *JSybController) PostFour() {
274 274
 	insuplc_admdvs := respJSON["insuplc_admdvs"].(string)
275 275
 	mdtrtarea_admvs := respJSON["mdtrtarea_admvs"].(string)
276 276
 	secret_key := respJSON["secret_key"].(string)
277
+
277 278
 	url := respJSON["url"].(string)
278 279
 	ak := respJSON["ak"].(string)
279 280
 	begin_time := respJSON["begin_time"].(string)

+ 294 - 8
controllers/nm/nm_controller.go View File

@@ -5,10 +5,12 @@ import (
5 5
 	"fmt"
6 6
 	"gdyb/controllers"
7 7
 	"gdyb/enums"
8
+	"gdyb/models"
8 9
 	"gdyb/service"
9 10
 	"gdyb/utils"
10 11
 	"github.com/astaxie/beego"
11 12
 	"github.com/axgle/mahonia"
13
+	"io/ioutil"
12 14
 	"os"
13 15
 	"regexp"
14 16
 	"strconv"
@@ -24,16 +26,16 @@ type NmController struct {
24 26
 
25 27
 func JSybRegistRouters() {
26 28
 	beego.Router("/nmyb/1101", &NmController{}, "get:Post1101")
27
-	beego.Router("/nmyb/2401", &NmController{}, "get:Post2401")
29
+	beego.Router("/nmyb/2401", &NmController{}, "post:Post2401")
30
+	beego.Router("/nmyb/2402", &NmController{}, "post:Post2402")
28 31
 	beego.Router("/nmyb/2404", &NmController{}, "get:Post2404")
29 32
 	beego.Router("/nmyb/2405", &NmController{}, "post:Post2405")
30
-	beego.Router("/nmyb/2402", &NmController{}, "post:Post2402")
31
-	beego.Router("/nmyb/2301", &NmController{}, "get:Post2301")
33
+	beego.Router("/nmyb/2301", &NmController{}, "post:Post2301")
32 34
 	beego.Router("/nmyb/2302", &NmController{}, "get:Post2302")
33 35
 	beego.Router("/nmyb/2303", &NmController{}, "get:Post2303")
34 36
 	beego.Router("/nmyb/2304", &NmController{}, "get:Post2304")
35 37
 	beego.Router("/nmyb/2305", &NmController{}, "get:Post2305")
36
-	beego.Router("/nmyb/2503", &NmController{}, "get:Get2503")
38
+
37 39
 	beego.Router("/nmyb/readcard", &NmController{}, "get:ReadCard")
38 40
 }
39 41
 
@@ -50,40 +52,324 @@ func (c *NmController) Post1101() {
50 52
 	certificates := c.GetString("certificates")
51 53
 	name := c.GetString("name")
52 54
 	certificate, _ := strconv.ParseInt(certificates, 10, 64)
53
-	service.ZHGdyb1101(certNo, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, id_card_type, card_sn, certificate, name)
55
+	result, request_log, result_log := service.ZHGdyb1101(certNo, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, id_card_type, card_sn, certificate, name)
56
+
57
+	saveJsLog(result_log, request_log, "1101", "查询个人信息", org_name)
58
+	var dat map[string]interface{}
59
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
60
+
61
+	} else {
62
+
63
+	}
64
+
65
+	var dat2 map[string]interface{}
66
+	if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
67
+
68
+	} else {
69
+
70
+	}
71
+	c.ServeSuccessJSON(map[string]interface{}{
72
+		"pre": dat,
73
+		"log": dat2,
74
+	})
54 75
 
55 76
 }
56 77
 
57 78
 func (c *NmController) Post2401() {
79
+	body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
80
+	var respJSON map[string]interface{}
81
+	if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
82
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
83
+		return
84
+	}
85
+	userJSONBytes, _ := json.Marshal(respJSON["struct_2401"])
86
+	var struct2401 service.Struct2401
87
+	if err := json.Unmarshal(userJSONBytes, &struct2401); err != nil {
88
+		utils.ErrorLog("解析失败:%v", err)
89
+		return
90
+	}
91
+	org_name := respJSON["org_name"].(string)
92
+	fixmedins_code := respJSON["fixmedins_code"].(string)
93
+	doctor := respJSON["doctor"].(string)
94
+	insuplc_admdvs := respJSON["insuplc_admdvs"].(string)
95
+	mdtrtarea_admvs := respJSON["mdtrtarea_admvs"].(string)
96
+	secret_key := respJSON["secret_key"].(string)
97
+	result, request_log := service.ZHGdyb2401(struct2401, secret_key, org_name, fixmedins_code, doctor, insuplc_admdvs, mdtrtarea_admvs)
98
+	saveJsLog(result, request_log, "2401", "入院登记", org_name)
99
+	var dat2 map[string]interface{}
100
+	if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
101
+	} else {
102
+	}
103
+	var dat map[string]interface{}
104
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
105
+	} else {
106
+	}
107
+	c.ServeSuccessJSON(map[string]interface{}{
108
+		"pre":         dat,
109
+		"request_log": dat2,
110
+	})
58 111
 
59 112
 }
60 113
 
61 114
 func (c *NmController) Post2404() {
115
+	mdtrt_id := c.GetString("mdtrt_id")
116
+	psn_no := c.GetString("psn_no")
117
+	doctor := c.GetString("doctor")
118
+	fixmedins_code := c.GetString("fixmedins_code")
119
+	insuplc_admdvs := c.GetString("insuplc_admdvs")
120
+	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
121
+	secret_key := c.GetString("secret_key")
122
+	org_name := c.GetString("org_name")
123
+
124
+	result, requestLog := service.ZHGdyb2404(mdtrt_id, psn_no, secret_key, org_name, fixmedins_code, doctor, insuplc_admdvs, mdtrtarea_admvs)
125
+	saveJsLog(result, requestLog, "2404", "入院登记撤销", org_name)
126
+	var dat map[string]interface{}
127
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
128
+	} else {
129
+	}
130
+	var dat2 map[string]interface{}
131
+	if err := json.Unmarshal([]byte(requestLog), &dat2); err == nil {
132
+	} else {
133
+	}
134
+	c.ServeSuccessJSON(map[string]interface{}{
135
+		"pre": dat,
136
+		"log": dat2,
137
+	})
62 138
 
63 139
 }
64 140
 
65 141
 func (c *NmController) Post2405() {
142
+	mdtrt_id := c.GetString("mdtrt_id")
143
+	psn_no := c.GetString("psn_no")
144
+	doctor := c.GetString("doctor")
145
+	fixmedins_code := c.GetString("fixmedins_code")
146
+	insuplc_admdvs := c.GetString("insuplc_admdvs")
147
+	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
148
+	secret_key := c.GetString("secret_key")
149
+	org_name := c.GetString("org_name")
150
+
151
+	result, requestLog := service.ZHGdyb2405(mdtrt_id, psn_no, secret_key, org_name, fixmedins_code, doctor, insuplc_admdvs, mdtrtarea_admvs)
152
+	saveJsLog(result, requestLog, "2405", "出院登记撤销", org_name)
153
+	var dat map[string]interface{}
154
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
155
+	} else {
156
+	}
157
+	var dat2 map[string]interface{}
158
+	if err := json.Unmarshal([]byte(requestLog), &dat2); err == nil {
159
+	} else {
160
+	}
161
+	c.ServeSuccessJSON(map[string]interface{}{
162
+		"pre": dat,
163
+		"log": dat2,
164
+	})
66 165
 
67 166
 }
68 167
 
69 168
 func (c *NmController) Post2402() {
70
-
169
+	body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
170
+	var respJSON map[string]interface{}
171
+	if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
172
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
173
+		return
174
+	}
175
+	userJSONBytes, _ := json.Marshal(respJSON["struct_2402"])
176
+	var struct2402 service.Struct2402
177
+	if err := json.Unmarshal(userJSONBytes, &struct2402); err != nil {
178
+		utils.ErrorLog("解析失败:%v", err)
179
+		return
180
+	}
181
+	org_name := respJSON["org_name"].(string)
182
+	fixmedins_code := respJSON["fixmedins_code"].(string)
183
+	doctor := respJSON["doctor"].(string)
184
+	insuplc_admdvs := respJSON["insuplc_admdvs"].(string)
185
+	mdtrtarea_admvs := respJSON["mdtrtarea_admvs"].(string)
186
+	secret_key := respJSON["secret_key"].(string)
187
+	result, request_log := service.ZHGdyb2402(struct2402, secret_key, org_name, fixmedins_code, doctor, insuplc_admdvs, mdtrtarea_admvs)
188
+	saveJsLog(result, request_log, "2402", "出院", org_name)
189
+	var dat2 map[string]interface{}
190
+	if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
191
+	} else {
192
+	}
193
+	var dat map[string]interface{}
194
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
195
+	} else {
196
+	}
197
+	c.ServeSuccessJSON(map[string]interface{}{
198
+		"pre":         dat,
199
+		"request_log": dat2,
200
+	})
71 201
 }
72 202
 
73 203
 func (c *NmController) Post2301() {
74 204
 
205
+	body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
206
+	var respJSON map[string]interface{}
207
+	if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
208
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
209
+		return
210
+	}
211
+	userJSONBytes, _ := json.Marshal(respJSON["customs"])
212
+	var customs []*models.NewCustom
213
+	if err := json.Unmarshal(userJSONBytes, &customs); err != nil {
214
+		utils.ErrorLog("解析失败:%v", err)
215
+		return
216
+	}
217
+
218
+	number := respJSON["number"].(string)
219
+
220
+	chrg_bchno := respJSON["chrg_bchno"].(string)
221
+	dept := respJSON["dept"].(string)
222
+	dept_code := respJSON["dept_code"].(string)
223
+	doctor_code := respJSON["doctor_code"].(string)
224
+	doctor_name := respJSON["doctor_name"].(string)
225
+	opertor := respJSON["opertor"].(string)
226
+
227
+	org_name := respJSON["org_name"].(string)
228
+	fixmedins_code := respJSON["fixmedins_code"].(string)
229
+	insuplc_admdvs := respJSON["insuplc_admdvs"].(string)
230
+	mdtrtarea_admvs := respJSON["mdtrtarea_admvs"].(string)
231
+	secret_key := respJSON["secret_key"].(string)
232
+	med_type := respJSON["med_type"].(string)
233
+	psn_no := respJSON["psn_no"].(string)
234
+
235
+	result, requestLog := service.ZHGdyb2301A(psn_no, number, customs, chrg_bchno, org_name, doctor_name, dept, fixmedins_code, dept_code, doctor_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, med_type, opertor)
236
+	saveJsLog(result, requestLog, "2301", "上传明细", org_name)
237
+
238
+	var dat2 map[string]interface{}
239
+	if err := json.Unmarshal([]byte(requestLog), &dat2); err == nil {
240
+	} else {
241
+	}
242
+	var dat map[string]interface{}
243
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
244
+	} else {
245
+	}
246
+	c.ServeSuccessJSON(map[string]interface{}{
247
+		"pre":         dat,
248
+		"request_log": dat2,
249
+	})
250
+}
251
+func (c *NmController) Post2302() {
252
+	mdtrt_id := c.GetString("mdtrt_id")
253
+	psn_no := c.GetString("psn_no")
254
+	number := c.GetString("number")
255
+	doctor := c.GetString("doctor")
256
+	fixmedins_code := c.GetString("fixmedins_code")
257
+	insuplc_admdvs := c.GetString("insuplc_admdvs")
258
+	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
259
+	secret_key := c.GetString("secret_key")
260
+	org_name := c.GetString("org_name")
261
+	refund_type, _ := c.GetInt64("refund_type")
262
+
263
+	result, requestLog := service.Gdyb2302(psn_no, mdtrt_id, org_name, doctor, insuplc_admdvs, mdtrtarea_admvs, secret_key, fixmedins_code, number, refund_type)
264
+	saveJsLog(result, requestLog, "2302", "退明细", org_name)
265
+	var dat2 map[string]interface{}
266
+	if err := json.Unmarshal([]byte(requestLog), &dat2); err == nil {
267
+	} else {
268
+	}
269
+	var dat map[string]interface{}
270
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
271
+	} else {
272
+	}
273
+	c.ServeSuccessJSON(map[string]interface{}{
274
+		"pre":         dat,
275
+		"request_log": dat2,
276
+	})
75 277
 }
76 278
 
77 279
 func (c *NmController) Post2303() {
280
+	mdtrt_id := c.GetString("mdtrt_id")
281
+	psn_no := c.GetString("psn_no")
282
+	chrg_bchno := c.GetString("chrg_bchno")
283
+	cert_no := c.GetString("cert_no")
284
+	insutype_type := c.GetString("insutype_type")
78 285
 
79
-}
286
+	allTotal := c.GetString("total")
287
+	id_card_type, _ := c.GetInt64("id_card_type")
80 288
 
81
-func (c *NmController) Post2304() {
289
+	doctor := c.GetString("doctor")
290
+	certificates, _ := c.GetInt64("certificates")
291
+
292
+	fixmedins_code := c.GetString("fixmedins_code")
293
+	insuplc_admdvs := c.GetString("insuplc_admdvs")
294
+	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
295
+	secret_key := c.GetString("secret_key")
296
+	org_name := c.GetString("org_name")
82 297
 
298
+	result, src_resquest := service.ZHGdyb2303(psn_no, mdtrt_id, chrg_bchno, cert_no, insutype_type, allTotal, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, "0", id_card_type, 0, 0, 0, 0, certificates)
299
+	saveJsLog(result, src_resquest, "2303", "预结算", org_name)
300
+	var dat2 map[string]interface{}
301
+	if err := json.Unmarshal([]byte(src_resquest), &dat2); err == nil {
302
+	} else {
303
+	}
304
+	var dat map[string]interface{}
305
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
306
+	} else {
307
+	}
308
+	c.ServeSuccessJSON(map[string]interface{}{
309
+		"pre":         dat,
310
+		"request_log": dat2,
311
+	})
83 312
 }
313
+func (c *NmController) Post2304() {
314
+	mdtrt_id := c.GetString("mdtrt_id")
315
+	psn_no := c.GetString("psn_no")
316
+	chrg_bchno := c.GetString("chrg_bchno")
317
+	cert_no := c.GetString("cert_no")
318
+	insutype_type := c.GetString("insutype_type")
319
+
320
+	allTotal := c.GetString("total")
321
+	id_card_type, _ := c.GetInt64("id_card_type")
322
+
323
+	doctor := c.GetString("doctor")
324
+	certificates, _ := c.GetInt64("certificates")
325
+
326
+	fixmedins_code := c.GetString("fixmedins_code")
327
+	insuplc_admdvs := c.GetString("insuplc_admdvs")
328
+	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
329
+	secret_key := c.GetString("secret_key")
330
+	org_name := c.GetString("org_name")
84 331
 
332
+	result, src_resquest := service.ZHGdyb2304(psn_no, mdtrt_id, chrg_bchno, cert_no, insutype_type, allTotal, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, "0", id_card_type, 0, 0, 0, 0, certificates)
333
+	saveJsLog(result, src_resquest, "2304", "住院结算", org_name)
334
+	var dat2 map[string]interface{}
335
+	if err := json.Unmarshal([]byte(src_resquest), &dat2); err == nil {
336
+	} else {
337
+	}
338
+	var dat map[string]interface{}
339
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
340
+	} else {
341
+	}
342
+	c.ServeSuccessJSON(map[string]interface{}{
343
+		"pre":         dat,
344
+		"request_log": dat2,
345
+	})
346
+}
85 347
 func (c *NmController) Post2305() {
348
+	mdtrt_id := c.GetString("mdtrt_id")
349
+	psn_no := c.GetString("psn_no")
350
+	doctor := c.GetString("doctor")
351
+	setl_id := c.GetString("setl_id")
86 352
 
353
+	fixmedins_code := c.GetString("fixmedins_code")
354
+	insuplc_admdvs := c.GetString("insuplc_admdvs")
355
+	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
356
+	secret_key := c.GetString("secret_key")
357
+	org_name := c.GetString("org_name")
358
+
359
+	result, requestLog := service.Gdyb2305(psn_no, mdtrt_id, setl_id, org_name, doctor, secret_key, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
360
+	saveJsLog(result, requestLog, "2305", "退费", org_name)
361
+	var dat2 map[string]interface{}
362
+	if err := json.Unmarshal([]byte(requestLog), &dat2); err == nil {
363
+	} else {
364
+	}
365
+	var dat map[string]interface{}
366
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
367
+	} else {
368
+	}
369
+	c.ServeSuccessJSON(map[string]interface{}{
370
+		"pre":         dat,
371
+		"request_log": dat2,
372
+	})
87 373
 }
88 374
 
89 375
 func (c *NmController) Get2503() {

+ 43 - 130
controllers/sg/his_api_controller.go View File

@@ -869,60 +869,36 @@ func (c *HisApiController) ReadCard() {
869 869
 			}
870 870
 			var status string
871 871
 			status = respJSON["data"].(map[string]interface{})["status"].(string)
872
-			card_type := respJSON["data"].(map[string]interface{})["type"].(string)
872
+			//card_type := respJSON["data"].(map[string]interface{})["type"].(string)
873 873
 
874 874
 			var token string
875 875
 			var res ResultTwo           //1101结果
876 876
 			var res10265 ResultTwo10265 //1101结果
877
-			var card_info string        //卡信息
878
-			var busi_card_info string
879
-
880
-			card_info = respJSON["data"].(map[string]interface{})["card_info"].(string)
881
-			busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string)
882 877
 
883 878
 			if status == "0" { //读卡成功
884
-				if card_type == "1" {
885
-
886
-					respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{})
887
-					result, _ := json.Marshal(respJSON)
888
-
889
-					if err := json.Unmarshal([]byte(result), &res10265); err != nil {
890
-						utils.ErrorLog("解析失败:%v", err)
891
-						c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
892
-						return
893
-					}
894
-					res.ErrMsg = res10265.ErrMsg
895
-					infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
896
-					res.Infcode = infocode
897
-					res.Output = res10265.Output
898
-					res.InfRefmsgid = res10265.InfRefmsgid
879
+				var card_info string //卡信息
880
+				var busi_card_info string
899 881
 
900
-				} else {
901
-					var card_info string //卡信息
902
-					var busi_card_info string
882
+				token = respJSON["data"].(map[string]interface{})["token"].(string)
883
+				busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string)
884
+				card_info = respJSON["data"].(map[string]interface{})["card_info"].(string)
903 885
 
904
-					token = respJSON["data"].(map[string]interface{})["token"].(string)
905
-					busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string)
906
-					card_info = respJSON["data"].(map[string]interface{})["card_info"].(string)
907
-
908
-					fmt.Println(card_info)
909
-					fmt.Println(busi_card_info)
886
+				fmt.Println(card_info)
887
+				fmt.Println(busi_card_info)
910 888
 
911
-					respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{})
912
-					result, _ := json.Marshal(respJSON)
913
-
914
-					if err := json.Unmarshal([]byte(result), &res10265); err != nil {
915
-						utils.ErrorLog("解析失败:%v", err)
916
-						c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
917
-						return
918
-					}
919
-					res.ErrMsg = res10265.ErrMsg
920
-					infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
921
-					res.Infcode = infocode
922
-					res.Output = res10265.Output
923
-					res.InfRefmsgid = res10265.InfRefmsgid
889
+				respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{})
890
+				result, _ := json.Marshal(respJSON)
924 891
 
892
+				if err := json.Unmarshal([]byte(result), &res10265); err != nil {
893
+					utils.ErrorLog("解析失败:%v", err)
894
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
895
+					return
925 896
 				}
897
+				res.ErrMsg = res10265.ErrMsg
898
+				infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
899
+				res.Infcode = infocode
900
+				res.Output = res10265.Output
901
+				res.InfRefmsgid = res10265.InfRefmsgid
926 902
 
927 903
 				if res.Infcode == 0 {
928 904
 					patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId)
@@ -934,89 +910,31 @@ func (c *HisApiController) ReadCard() {
934 910
 						return
935 911
 
936 912
 					} else {
937
-
938
-						if card_type == "1" {
939
-							bas := strings.Split(card_info, "|")
940
-							basNumber := bas[2]
941
-							Iinfos, _ := json.Marshal(res.Output.Iinfo)
942
-							Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
943
-							infoStr := string(Iinfos)
944
-							idetinfoStr := string(Idetinfos)
945
-							psn := &models.HisPsn{
946
-								PsnNo:        res.Output.Baseinfo.PsnNo,
947
-								Age:          res.Output.Baseinfo.Age,
948
-								PatientId:    patient.ID,
949
-								Certno:       res.Output.Baseinfo.Certno,
950
-								Brdy:         res.Output.Baseinfo.Brdy,
951
-								Gend:         res.Output.Baseinfo.Gend,
952
-								Naty:         res.Output.Baseinfo.Naty,
953
-								PsnCertType:  res.Output.Baseinfo.PsnCertType,
954
-								PsnName:      res.Output.Baseinfo.PsnName,
955
-								Idetinfo:     idetinfoStr,
956
-								Insuinfo:     infoStr,
957
-								UserOrgId:    c.GetAdminUserInfo().CurrentOrgId,
958
-								CardInfo:     card_info,
959
-								VerifyNumber: busi_card_info,
960
-							}
961
-							service.CreateHisPsn(psn)
962
-							c.ServeSuccessJSON(map[string]interface{}{
963
-								"patient": patient,
964
-								"number":  basNumber,
965
-							})
966
-						} else if card_type == "4" {
967
-							Iinfos, _ := json.Marshal(res.Output.Iinfo)
968
-							Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
969
-							infoStr := string(Iinfos)
970
-							idetinfoStr := string(Idetinfos)
971
-							psn := &models.HisPsn{
972
-								PsnNo:        res.Output.Baseinfo.PsnNo,
973
-								Age:          res.Output.Baseinfo.Age,
974
-								PatientId:    patient.ID,
975
-								Certno:       res.Output.Baseinfo.Certno,
976
-								Brdy:         res.Output.Baseinfo.Brdy,
977
-								Gend:         res.Output.Baseinfo.Gend,
978
-								Naty:         res.Output.Baseinfo.Naty,
979
-								PsnCertType:  res.Output.Baseinfo.PsnCertType,
980
-								PsnName:      res.Output.Baseinfo.PsnName,
981
-								Idetinfo:     idetinfoStr,
982
-								Insuinfo:     infoStr,
983
-								UserOrgId:    c.GetAdminUserInfo().CurrentOrgId,
984
-								CardInfo:     card_info,
985
-								VerifyNumber: token,
986
-							}
987
-							service.CreateHisPsn(psn)
988
-							c.ServeSuccessJSON(map[string]interface{}{
989
-								"patient": patient,
990
-								"number":  token,
991
-							})
992
-
993
-						} else {
994
-							Iinfos, _ := json.Marshal(res.Output.Iinfo)
995
-							Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
996
-							infoStr := string(Iinfos)
997
-							idetinfoStr := string(Idetinfos)
998
-							psn := &models.HisPsn{
999
-								PsnNo:        res.Output.Baseinfo.PsnNo,
1000
-								Age:          res.Output.Baseinfo.Age,
1001
-								PatientId:    patient.ID,
1002
-								Certno:       res.Output.Baseinfo.Certno,
1003
-								Brdy:         res.Output.Baseinfo.Brdy,
1004
-								Gend:         res.Output.Baseinfo.Gend,
1005
-								Naty:         res.Output.Baseinfo.Naty,
1006
-								PsnCertType:  res.Output.Baseinfo.PsnCertType,
1007
-								PsnName:      res.Output.Baseinfo.PsnName,
1008
-								Idetinfo:     idetinfoStr,
1009
-								Insuinfo:     infoStr,
1010
-								UserOrgId:    c.GetAdminUserInfo().CurrentOrgId,
1011
-								CardInfo:     card_info,
1012
-								VerifyNumber: token,
1013
-							}
1014
-							service.CreateHisPsn(psn)
1015
-							c.ServeSuccessJSON(map[string]interface{}{
1016
-								"patient": patient,
1017
-								"number":  token,
1018
-							})
913
+						Iinfos, _ := json.Marshal(res.Output.Iinfo)
914
+						Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
915
+						infoStr := string(Iinfos)
916
+						idetinfoStr := string(Idetinfos)
917
+						psn := &models.HisPsn{
918
+							PsnNo:        res.Output.Baseinfo.PsnNo,
919
+							Age:          res.Output.Baseinfo.Age,
920
+							PatientId:    patient.ID,
921
+							Certno:       res.Output.Baseinfo.Certno,
922
+							Brdy:         res.Output.Baseinfo.Brdy,
923
+							Gend:         res.Output.Baseinfo.Gend,
924
+							Naty:         res.Output.Baseinfo.Naty,
925
+							PsnCertType:  res.Output.Baseinfo.PsnCertType,
926
+							PsnName:      res.Output.Baseinfo.PsnName,
927
+							Idetinfo:     idetinfoStr,
928
+							Insuinfo:     infoStr,
929
+							UserOrgId:    c.GetAdminUserInfo().CurrentOrgId,
930
+							CardInfo:     card_info,
931
+							VerifyNumber: token,
1019 932
 						}
933
+						service.CreateHisPsn(psn)
934
+						c.ServeSuccessJSON(map[string]interface{}{
935
+							"patient": patient,
936
+							"number":  token,
937
+						})
1020 938
 					}
1021 939
 				} else {
1022 940
 					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
@@ -1025,15 +943,10 @@ func (c *HisApiController) ReadCard() {
1025 943
 			} else { //读卡失败
1026 944
 				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
1027 945
 				return
1028
-
1029 946
 			}
1030
-
1031 947
 		}
1032
-
1033 948
 		break
1034
-
1035 949
 	}
1036
-
1037 950
 }
1038 951
 
1039 952
 var initFlag int64 = 0

+ 552 - 110
controllers/zh/zh_his_api_controller.go View File

@@ -1,6 +1,7 @@
1 1
 package zh
2 2
 
3 3
 import (
4
+	"bytes"
4 5
 	"encoding/json"
5 6
 	"fmt"
6 7
 	"gdyb/controllers"
@@ -11,8 +12,10 @@ import (
11 12
 	"github.com/astaxie/beego"
12 13
 	"github.com/axgle/mahonia"
13 14
 	"github.com/jinzhu/gorm"
15
+	"io/ioutil"
14 16
 	"math"
15 17
 	"math/rand"
18
+	"net/http"
16 19
 	"os"
17 20
 	"regexp"
18 21
 	"strconv"
@@ -494,7 +497,50 @@ func (c *ZHHisApiController) GetZHPatientInfo() {
494 497
 	config, _ := service.GetMedicalInsuranceConfig(c.GetAdminUserInfo().CurrentOrgId)
495 498
 	if config.IsOpen == 1 {
496 499
 
497
-		result := service.Gdyb1101A(id_card_no, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, patient.Name)
500
+		var result string
501
+		var request_log string
502
+		var result_log string
503
+
504
+		if miConfig.MdtrtareaAdmvs == "150499" {
505
+			//请求内网数据
506
+			api := "http://172.16.13.254:9532/" + "nmyb/1101?cert_no=" + patient.IdCardNo +
507
+				"&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&fixmedins_code=" + miConfig.Code +
508
+				"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(certificates, 10) + "&name=" + patient.Name
509
+
510
+			resp, requestErr := http.Get(api)
511
+			if requestErr != nil {
512
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
513
+				return
514
+			}
515
+
516
+			body, ioErr := ioutil.ReadAll(resp.Body)
517
+
518
+			if ioErr != nil {
519
+				utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
520
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
521
+				return
522
+			}
523
+
524
+			var respJSON map[string]interface{}
525
+
526
+			if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
527
+				utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
528
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
529
+				return
530
+			}
531
+
532
+			respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
533
+			result_byte, _ := json.Marshal(respJSON)
534
+			result = string(result_byte)
535
+			saveLog(result_log, request_log, "1101", "人员基本信息获取")
536
+
537
+		} else {
538
+			result, request_log, result_log = service.ZHGdyb1101(patient.IdCardNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", certificates, name)
539
+			saveLog(result_log, request_log, "1101", "人员基本信息获取")
540
+
541
+		}
542
+
543
+		//result := service.Gdyb1101A(id_card_no, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, patient.Name)
498 544
 		var dat map[string]interface{}
499 545
 		if err := json.Unmarshal([]byte(result), &dat); err == nil {
500 546
 			fmt.Println(dat)
@@ -625,71 +671,109 @@ func (c *ZHHisApiController) GetZHInHospitalCheck() {
625 671
 	diagnosisConfig, _ := service.FindDiagnoseByIds(diagnosis_ids_arr)
626 672
 	sickConfig, _ := service.FindSickById(sick_type)
627 673
 	departmentInfo, _ := service.GetDepartMentDetail(department)
628
-
629 674
 	miConfig, _ := service.FindMedicalInsuranceInfo(adminInfo.CurrentOrgId)
630 675
 	role, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, admin_user_id)
631
-	result, request_log, result_log := service.ZHGdyb1101(patient.IdCardNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", certificates, name)
632
-	//fmt.Println(request_log)
633
-	//fmt.Println(result_log)
634
-	saveLog(result_log, request_log, "1101", "人员基本信息获取")
635 676
 
636
-	doctorInfo, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, doctor)
677
+	var result string
678
+	var request_log string
679
+	var result_log string
680
+	var res2 ResultTwo
681
+	var resTwo10265 ResultTwo10265
682
+	psn_info, _ := service.GetPsnByPatientId(patient.ID)
637 683
 
638
-	deviceNumber, _ := service.GetDeviceNumberByID(adm_bed, adminInfo.CurrentOrgId)
684
+	if miConfig.MdtrtareaAdmvs == "150499" {
685
+		if id_card_type == 1 {
686
+			//请求内网数据
687
+			api := "http://172.16.13.254:9532/" + "nmyb/1101?cert_no=" + patient.IdCardNo +
688
+				"&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&fixmedins_code=" + miConfig.Code +
689
+				"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(certificates, 10) + "&name=" + patient.Name
639 690
 
640
-	var dat map[string]interface{}
641
-	if err := json.Unmarshal([]byte(result), &dat); err == nil {
642
-		fmt.Println(dat)
643
-	} else {
644
-		fmt.Println(err)
645
-	}
646
-	userJSONBytes, _ := json.Marshal(dat)
647
-	//
648
-	//var res2 ResultTwo
649
-	//if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
650
-	//	utils.ErrorLog("解析失败:%v", err)
651
-	//	c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
652
-	//	return
653
-	//}
691
+			resp, requestErr := http.Get(api)
692
+			if requestErr != nil {
693
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
694
+				return
695
+			}
654 696
 
655
-	var res2 ResultTwo
656
-	var resTwo10265 ResultTwo10265
697
+			body, ioErr := ioutil.ReadAll(resp.Body)
657 698
 
658
-	if miConfig.Code == "H15049901371" {
659
-		if err := json.Unmarshal(userJSONBytes, &resTwo10265); err != nil {
660
-			utils.ErrorLog("解析失败:%v", err)
661
-			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
662
-			return
663
-		}
699
+			if ioErr != nil {
700
+				utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
701
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
702
+				return
703
+			}
664 704
 
665
-		Infcode, _ := strconv.ParseInt(resTwo10265.Infcode, 10, 64)
666
-		res2.Infcode = Infcode
667
-		res2.ErrMsg = resTwo10265.ErrMsg
668
-		res2.Output = resTwo10265.Output
669
-		res2.InfRefmsgid = resTwo10265.InfRefmsgid
670
-		res2.RespondTime = resTwo10265.RespondTime
671
-		res2.WarnInfo = resTwo10265.WarnInfo
705
+			var respJSON map[string]interface{}
706
+
707
+			if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
708
+				utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
709
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
710
+				return
711
+			}
672 712
 
713
+			respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
714
+			result_byte, _ := json.Marshal(respJSON)
715
+			result = string(result_byte)
716
+
717
+			var dat map[string]interface{}
718
+			if err := json.Unmarshal([]byte(result), &dat); err == nil {
719
+				fmt.Println(dat)
720
+			} else {
721
+				fmt.Println(err)
722
+			}
723
+			userJSONBytes, _ := json.Marshal(dat)
724
+			if err := json.Unmarshal(userJSONBytes, &resTwo10265); err != nil {
725
+				utils.ErrorLog("解析失败:%v", err)
726
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
727
+				return
728
+			}
729
+			Infcode, _ := strconv.ParseInt(resTwo10265.Infcode, 10, 64)
730
+			res2.Infcode = Infcode
731
+			res2.ErrMsg = resTwo10265.ErrMsg
732
+			res2.Output = resTwo10265.Output
733
+			res2.InfRefmsgid = resTwo10265.InfRefmsgid
734
+			res2.RespondTime = resTwo10265.RespondTime
735
+			res2.WarnInfo = resTwo10265.WarnInfo
736
+		} else {
737
+			res2.Infcode = 0
738
+			res2.Output.Baseinfo.PsnNo = psn_info.PsnNo
739
+			res2.Output.Baseinfo.Certno = patient.IdCardNo
740
+		}
673 741
 	} else {
742
+		result, request_log, result_log = service.ZHGdyb1101(patient.IdCardNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", certificates, name)
743
+		saveLog(result_log, request_log, "1101", "人员基本信息获取")
744
+	}
745
+
746
+	doctorInfo, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, doctor)
747
+	deviceNumber, _ := service.GetDeviceNumberByID(adm_bed, adminInfo.CurrentOrgId)
748
+
749
+	if miConfig.MdtrtareaAdmvs != "150499" {
750
+		var dat map[string]interface{}
751
+		if err := json.Unmarshal([]byte(result), &dat); err == nil {
752
+			fmt.Println(dat)
753
+		} else {
754
+			fmt.Println(err)
755
+		}
756
+		userJSONBytes, _ := json.Marshal(dat)
674 757
 		if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
675 758
 			utils.ErrorLog("解析失败:%v", err)
676 759
 			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
677 760
 			return
678 761
 		}
679
-
680 762
 	}
681 763
 
682
-	//InsuplcAdmdvs = res2.Output.
683
-
684
-	if social_type != 0 {
685
-
764
+	var infoStr string
765
+	if miConfig.MdtrtareaAdmvs == "150499" {
766
+		if id_card_type == 1 {
767
+			Iinfos, _ := json.Marshal(res2.Output.Iinfo)
768
+			infoStr = string(Iinfos)
769
+		} else {
770
+			infoStr = psn_info.Insuinfo
771
+		}
686 772
 	} else {
687
-
773
+		Iinfos, _ := json.Marshal(res2.Output.Iinfo)
774
+		infoStr = string(Iinfos)
688 775
 	}
689 776
 
690
-	Iinfos, _ := json.Marshal(res2.Output.Iinfo)
691
-	infoStr := string(Iinfos)
692
-
693 777
 	var rf []*ResultFive
694 778
 	json.Unmarshal([]byte(infoStr), &rf)
695 779
 	var insutypes []*ResultFive
@@ -846,9 +930,43 @@ func (c *ZHHisApiController) GetZHInHospitalCheck() {
846 930
 			dises = append(dises, dise)
847 931
 		}
848 932
 		struct2401.Diseinfo = dises
849
-		result, request_log := service.ZHGdyb2401(struct2401, miConfig.SecretKey, miConfig.OrgName, miConfig.Code, role.UserName, insuplc_admdvs, miConfig.MdtrtareaAdmvs)
850
-		saveLog(result, request_log, "2401", "入医登记")
851 933
 
934
+		var result string
935
+		var request_log string
936
+		if miConfig.MdtrtareaAdmvs == "150499" {
937
+			data := make(map[string]interface{})
938
+			data["org_name"] = miConfig.OrgName
939
+			data["doctor"] = role.UserName
940
+			data["fixmedins_code"] = miConfig.Code
941
+			data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs
942
+			data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs
943
+			data["secret_key"] = miConfig.SecretKey
944
+			data["struct_2401"] = struct2401
945
+			var req *http.Request
946
+			bytesData, _ := json.Marshal(data)
947
+			req, _ = http.NewRequest("POST", "http://172.16.13.254:9532/"+"jsyb/2401", bytes.NewReader(bytesData))
948
+			client := &http.Client{}
949
+			resp, _ := client.Do(req)
950
+			defer resp.Body.Close()
951
+			body, ioErr := ioutil.ReadAll(resp.Body)
952
+			if ioErr != nil {
953
+				utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
954
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
955
+				return
956
+			}
957
+			var respJSON map[string]interface{}
958
+			if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
959
+				utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
960
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
961
+				return
962
+			}
963
+			respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
964
+			result_byte, _ := json.Marshal(respJSON)
965
+			result = string(result_byte)
966
+		} else {
967
+			result, request_log = service.ZHGdyb2401(struct2401, miConfig.SecretKey, miConfig.OrgName, miConfig.Code, role.UserName, insuplc_admdvs, miConfig.MdtrtareaAdmvs)
968
+			saveLog(result, request_log, "2401", "入院登记")
969
+		}
852 970
 		var dat map[string]interface{}
853 971
 		if err := json.Unmarshal([]byte(result), &dat); err == nil {
854 972
 			fmt.Println(dat)
@@ -1035,9 +1153,43 @@ func (this *ZHHisApiController) GetZHOutHospitalCheck() {
1035 1153
 	struct2402.Diseinfo = dises
1036 1154
 	struct2402.DiseName = sickConfig.ClassName
1037 1155
 	struct2402.DiseCode = sickConfig.CountryCode
1038
-	result, request_log := service.ZHGdyb2402(struct2402, miConfig.OrgName, role.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code)
1039
-	//saveLog(result,request_log,"出院)
1040
-	saveLog(result, request_log, "2402", "出院")
1156
+
1157
+	var result string
1158
+	var request_log string
1159
+	if miConfig.MdtrtareaAdmvs == "150499" {
1160
+		data := make(map[string]interface{})
1161
+		data["org_name"] = miConfig.OrgName
1162
+		data["doctor"] = role.UserName
1163
+		data["fixmedins_code"] = miConfig.Code
1164
+		data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs
1165
+		data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs
1166
+		data["secret_key"] = miConfig.SecretKey
1167
+		data["struct_2402"] = struct2402
1168
+		var req *http.Request
1169
+		bytesData, _ := json.Marshal(data)
1170
+		req, _ = http.NewRequest("POST", "http://172.16.13.254:9532/"+"nmyb/2402", bytes.NewReader(bytesData))
1171
+		client := &http.Client{}
1172
+		resp, _ := client.Do(req)
1173
+		defer resp.Body.Close()
1174
+		body, ioErr := ioutil.ReadAll(resp.Body)
1175
+		if ioErr != nil {
1176
+			utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
1177
+			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1178
+			return
1179
+		}
1180
+		var respJSON map[string]interface{}
1181
+		if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
1182
+			utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
1183
+			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1184
+			return
1185
+		}
1186
+		respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
1187
+		result_byte, _ := json.Marshal(respJSON)
1188
+		result = string(result_byte)
1189
+	} else {
1190
+		result, request_log = service.ZHGdyb2402(struct2402, miConfig.OrgName, role.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code)
1191
+		saveLog(result, request_log, "2402", "出院")
1192
+	}
1041 1193
 
1042 1194
 	var dat map[string]interface{}
1043 1195
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
@@ -1211,9 +1363,43 @@ func (c *ZHHisApiController) GetSettleInfo() {
1211 1363
 		allTotal = fmt.Sprintf("%.4f", order.MedfeeSumamt)
1212 1364
 
1213 1365
 	}
1214
-	result, src_resquest = service.ZHGdyb2304(record.PsnNo, record.Number, chrg_bchno, cert_no, record.InsutypeType, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, "0", record.IdCardType, 0, 0, 0, 0, record.Certificates)
1215
-	//saveLog()
1216
-	saveLog(result, src_resquest, "2304", "住院结算")
1366
+
1367
+	if miConfig.MdtrtareaAdmvs == "150499" {
1368
+		//请求内网数据
1369
+		api := "http://172.16.13.254:9532/" + "nmyb/2304?psn_no=" + record.PsnNo + "&mdtrt_id=" + record.Number + "&chrg_bchno=" + chrg_bchno +
1370
+			"&insutype_type=" + record.InsutypeType + "&total=" + allTotal +
1371
+			"&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
1372
+			"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(record.IdCardType, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(record.Certificates, 10) + "&name=" + record.Name + "&cert_no=" + record.IdCardNo
1373
+		resp, requestErr := http.Get(api)
1374
+		if requestErr != nil {
1375
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1376
+			return
1377
+		}
1378
+		body, ioErr := ioutil.ReadAll(resp.Body)
1379
+		if ioErr != nil {
1380
+			utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
1381
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1382
+			return
1383
+		}
1384
+
1385
+		var respJSON map[string]interface{}
1386
+
1387
+		if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
1388
+			utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
1389
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1390
+			return
1391
+		}
1392
+
1393
+		respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
1394
+		result_byte, _ := json.Marshal(respJSON)
1395
+		result = string(result_byte)
1396
+
1397
+	} else {
1398
+		result, src_resquest = service.ZHGdyb2304(record.PsnNo, record.Number, chrg_bchno, cert_no, record.InsutypeType, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, "0", record.IdCardType, 0, 0, 0, 0, record.Certificates)
1399
+		//saveLog()
1400
+		saveLog(result, src_resquest, "2304", "住院结算")
1401
+
1402
+	}
1217 1403
 
1218 1404
 	var dat map[string]interface{}
1219 1405
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
@@ -1390,8 +1576,43 @@ func (c *ZHHisApiController) GetPreSettleInfo() {
1390 1576
 	}
1391 1577
 	var result string
1392 1578
 	var src_resquest string
1393
-	result, src_resquest = service.ZHGdyb2303(record.PsnNo, record.Number, chrg_bchno, cert_no, record.InsutypeType, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, "0", record.IdCardType, 0, 0, 0, 0, record.Certificates)
1394
-	saveLog(result, src_resquest, "2303", "住院预结算")
1579
+
1580
+	if miConfig.MdtrtareaAdmvs == "150499" {
1581
+		//请求内网数据
1582
+		api := "http://172.16.13.254:9532/" + "nmyb/2303?psn_no=" + record.PsnNo + "&mdtrt_id=" + record.Number + "&chrg_bchno=" + chrg_bchno +
1583
+			"&insutype_type=" + record.InsutypeType + "&total=" + allTotal +
1584
+			"&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
1585
+			"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(record.IdCardType, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(record.Certificates, 10) + "&name=" + record.Name + "&cert_no=" + record.IdCardNo
1586
+		resp, requestErr := http.Get(api)
1587
+		if requestErr != nil {
1588
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1589
+			return
1590
+		}
1591
+		body, ioErr := ioutil.ReadAll(resp.Body)
1592
+		if ioErr != nil {
1593
+			utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
1594
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1595
+			return
1596
+		}
1597
+
1598
+		var respJSON map[string]interface{}
1599
+
1600
+		if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
1601
+			utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
1602
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1603
+			return
1604
+		}
1605
+
1606
+		respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
1607
+		result_byte, _ := json.Marshal(respJSON)
1608
+		result = string(result_byte)
1609
+
1610
+	} else {
1611
+		result, src_resquest = service.ZHGdyb2303(record.PsnNo, record.Number, chrg_bchno, cert_no, record.InsutypeType, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, "0", record.IdCardType, 0, 0, 0, 0, record.Certificates)
1612
+		saveLog(result, src_resquest, "2303", "住院预结算")
1613
+
1614
+	}
1615
+
1395 1616
 	var dat map[string]interface{}
1396 1617
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
1397 1618
 		fmt.Println(dat)
@@ -1538,9 +1759,7 @@ func (c *ZHHisApiController) GetUploadInfo() {
1538 1759
 	}
1539 1760
 	recordDateTime := theTime.Unix()
1540 1761
 	adminUser := c.GetAdminUserInfo()
1541
-
1542 1762
 	var prescriptions []*models.HisPrescription
1543
-
1544 1763
 	data := make(map[string]interface{})
1545 1764
 	if settle_accounts_type == 1 { //日结
1546 1765
 		prescriptions, _ = service.GetZHHisPrescription(adminUser.CurrentOrgId, id, recordDateTime)
@@ -1565,20 +1784,13 @@ func (c *ZHHisApiController) GetUploadInfo() {
1565 1784
 		prescriptions, _ = service.GetZHMonthHisPrescription(adminUser.CurrentOrgId, id, recordStartTime, recordEndTime)
1566 1785
 
1567 1786
 	}
1568
-
1569 1787
 	roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
1570 1788
 	record, _ := service.GetInHospitalRecord(in_hospital_id)
1571
-
1572 1789
 	if record.ID == 0 {
1573 1790
 		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
1574 1791
 		return
1575 1792
 	}
1576 1793
 
1577
-	//if record.InHospitalStatus == 1 && record.OutHospitalStatus == 0 {
1578
-	//	c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHospitalNoExistDataException)
1579
-	//	return
1580
-	//}
1581
-
1582 1794
 	timestamp := time.Now().Unix()
1583 1795
 	tempTime := time.Unix(timestamp, 0)
1584 1796
 	timeFormat := tempTime.Format("20060102150405")
@@ -1589,6 +1801,8 @@ func (c *ZHHisApiController) GetUploadInfo() {
1589 1801
 	department, _ := service.GetDepartMentDetail(record.Departments)
1590 1802
 	strconv.FormatInt(record.PatientId, 10)
1591 1803
 
1804
+	doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, record.Doctor)
1805
+
1592 1806
 	//client := &http.Client{}
1593 1807
 	data["psn_no"] = record.PsnNo
1594 1808
 	data["mdtrt_id"] = record.Number
@@ -1710,20 +1924,6 @@ func (c *ZHHisApiController) GetUploadInfo() {
1710 1924
 				}
1711 1925
 			}
1712 1926
 
1713
-			//for _, subItem := range item.HisAdditionalCharge {
1714
-			//	if len(subItem.XtHisAddtionConfig.Code) > 0 {
1715
-			//		cus := &models.NewCustom{
1716
-			//			DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*float64(subItem.Count)),
1717
-			//			Cut:              fmt.Sprintf("%.4f", float64(subItem.Count)),
1718
-			//			FeedetlSn:        subItem.FeedetlSn,
1719
-			//			Price:            fmt.Sprintf("%.4f", float64(subItem.Price)),
1720
-			//			MedListCodg:      subItem.XtHisAddtionConfig.Code,
1721
-			//			HospApprFlag:     -1,
1722
-			//
1723
-			//		}
1724
-			//		customs = append(customs, cus)
1725
-			//	}
1726
-			//}
1727 1927
 		}
1728 1928
 
1729 1929
 		//总页数,向上取整,注意除之前要先转换类型为float64
@@ -1740,22 +1940,53 @@ func (c *ZHHisApiController) GetUploadInfo() {
1740 1940
 				stop = len(customs)
1741 1941
 			}
1742 1942
 
1743
-			//data["pre"] = customs[start-1 : stop]
1744
-			//bytesData, _ := json.Marshal(data)
1745
-			//req, _ := http.NewRequest("POST", "http://127.0.0.1:9532/"+"gdyb/zh/five", bytes.NewReader(bytesData))
1746
-			//resp, _ := client.Do(req)
1747
-			//defer resp.Body.Close()
1748
-			//body, ioErr := ioutil.ReadAll(resp.Body)
1749
-			//if ioErr != nil {
1750
-			//	utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
1751
-			//	c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1752
-			//	return
1753
-			//}
1754
-			resultLog, requestLog := service.ZHGdyb2301(record.PsnNo, record.Number, customs[start-1:stop], chrg_bchno, miConfig.OrgName, roles.UserName, strconv.FormatInt(department.ID, 10), miConfig.Code, department.Number, strconv.FormatInt(roles.AdminUserId, 10), record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["med_type"].(string))
1755
-			saveLog(resultLog, requestLog, "2301", "上传明细")
1943
+			var result string
1944
+			var requestLog string
1945
+			if miConfig.MdtrtareaAdmvs == "150499" {
1946
+				data := make(map[string]interface{})
1947
+				data["psn_no"] = record.PsnNo
1948
+				data["number"] = record.Number
1949
+				data["customs"] = customs[start-1 : stop]
1950
+				data["chrg_bchno"] = chrg_bchno
1951
+				data["dept"] = strconv.FormatInt(department.ID, 10)
1952
+				data["dept_code"] = department.Number
1953
+				data["doctor_code"] = doctor_info.ID
1954
+				data["doctor_name"] = doctor_info.UserName
1955
+				data["org_name"] = miConfig.OrgName
1956
+				data["opertor"] = roles.UserName
1957
+				data["fixmedins_code"] = miConfig.Code
1958
+				data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs
1959
+				data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs
1960
+				data["secret_key"] = miConfig.SecretKey
1961
+
1962
+				var req *http.Request
1963
+				bytesData, _ := json.Marshal(data)
1964
+				req, _ = http.NewRequest("POST", "http://172.16.13.254:9532/"+"nmyb/2301", bytes.NewReader(bytesData))
1965
+				client := &http.Client{}
1966
+				resp, _ := client.Do(req)
1967
+				defer resp.Body.Close()
1968
+				body, ioErr := ioutil.ReadAll(resp.Body)
1969
+				if ioErr != nil {
1970
+					utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
1971
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1972
+					return
1973
+				}
1974
+				var respJSON map[string]interface{}
1975
+				if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
1976
+					utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
1977
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1978
+					return
1979
+				}
1980
+				respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
1981
+				result_byte, _ := json.Marshal(respJSON)
1982
+				result = string(result_byte)
1983
+			} else {
1984
+				result, requestLog = service.ZHGdyb2301(record.PsnNo, record.Number, customs[start-1:stop], chrg_bchno, miConfig.OrgName, roles.UserName, strconv.FormatInt(department.ID, 10), miConfig.Code, department.Number, strconv.FormatInt(roles.AdminUserId, 10), record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["med_type"].(string))
1985
+				saveLog(result, requestLog, "2301", "上传明细")
1986
+			}
1756 1987
 
1757 1988
 			var dat map[string]interface{}
1758
-			if err := json.Unmarshal([]byte(resultLog), &dat); err == nil {
1989
+			if err := json.Unmarshal([]byte(result), &dat); err == nil {
1759 1990
 				fmt.Println(dat)
1760 1991
 			} else {
1761 1992
 				fmt.Println(err)
@@ -1959,8 +2190,46 @@ func (c *ZHHisApiController) ZHRefund() {
1959 2190
 	config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
1960 2191
 	if config.IsOpen == 1 { //对接了医保,走医保流程
1961 2192
 
1962
-		result, src_resquest := service.Gdyb2305(order.PsnNo, order.MdtrtId, order.SetlId, miConfig.OrgName, roles.UserName, miConfig.SecretKey, miConfig.Code, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs)
1963
-		saveLog(result, src_resquest, "2305", "退费")
2193
+		var result string
2194
+		var requestLog string
2195
+		if miConfig.MdtrtareaAdmvs == "150499" {
2196
+			//请求内网数据
2197
+			api := "http://172.16.13.254:9532/" + "nmyb/2305?mdtrt_id=" + record.Number + "&psn_no=" + record.PsnNo + "&setl_id=" + order.SetlId +
2198
+				"&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
2199
+				"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey
2200
+			resp, requestErr := http.Get(api)
2201
+			if requestErr != nil {
2202
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2203
+				return
2204
+			}
2205
+
2206
+			body, ioErr := ioutil.ReadAll(resp.Body)
2207
+
2208
+			if ioErr != nil {
2209
+				utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
2210
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2211
+				return
2212
+			}
2213
+
2214
+			var respJSON map[string]interface{}
2215
+
2216
+			if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
2217
+				utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
2218
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2219
+				return
2220
+			}
2221
+
2222
+			respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
2223
+			result_byte, _ := json.Marshal(respJSON)
2224
+			result = string(result_byte)
2225
+			//saveLog(result, requestLog, "2404", "入院登记撤销")
2226
+			saveLog(result, requestLog, "2305", "退费")
2227
+
2228
+		} else {
2229
+			result, requestLog := service.Gdyb2305(order.PsnNo, order.MdtrtId, order.SetlId, miConfig.OrgName, roles.UserName, miConfig.SecretKey, miConfig.Code, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs)
2230
+			saveLog(result, requestLog, "2305", "退费")
2231
+
2232
+		}
1964 2233
 
1965 2234
 		var dat map[string]interface{}
1966 2235
 		if err := json.Unmarshal([]byte(result), &dat); err == nil {
@@ -2068,8 +2337,41 @@ func (c *ZHHisApiController) ZHRefundDetail() {
2068 2337
 		var isSuccess bool = true
2069 2338
 
2070 2339
 		for _, item := range infos {
2071
-			result, requestLog := service.Gdyb2302(record.PsnNo, record.Number, miConfig.OrgName, roles.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, item.FeedetlSn, 1)
2072
-			saveLog(result, requestLog, "2302", "日结退明细")
2340
+			var result string
2341
+			var requestLog string
2342
+			if miConfig.MdtrtareaAdmvs == "150499" {
2343
+				//请求内网数据
2344
+				api := "http://172.16.13.254:9532/" + "nmyb/2302?psn_no=" + record.PsnNo + "&mdtrtId=" + record.Number + "&feedetl_sn=" + item.FeedetlSn +
2345
+					"&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
2346
+					"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&refund_type=" + "1"
2347
+				resp, requestErr := http.Get(api)
2348
+				if requestErr != nil {
2349
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2350
+					return
2351
+				}
2352
+				body, ioErr := ioutil.ReadAll(resp.Body)
2353
+				if ioErr != nil {
2354
+					utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
2355
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2356
+					return
2357
+				}
2358
+				var respJSON map[string]interface{}
2359
+				if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
2360
+					utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
2361
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2362
+					return
2363
+				}
2364
+				respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
2365
+				result_byte, _ := json.Marshal(respJSON)
2366
+				result = string(result_byte)
2367
+				saveLog(result, requestLog, "2302", "日结退明细")
2368
+
2369
+			} else {
2370
+				result, requestLog := service.Gdyb2302(record.PsnNo, record.Number, miConfig.OrgName, roles.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, item.FeedetlSn, 1)
2371
+				saveLog(result, requestLog, "2302", "日结退明细")
2372
+
2373
+			}
2374
+
2073 2375
 			var dat map[string]interface{}
2074 2376
 			if err := json.Unmarshal([]byte(result), &dat); err == nil {
2075 2377
 				fmt.Println(dat)
@@ -2127,13 +2429,43 @@ func (c *ZHHisApiController) ZHRefundDetail() {
2127 2429
 		//var order models.HisOrder
2128 2430
 		//order, _ = service.GetHisOrderByID(order_id)
2129 2431
 		//record, _ := service.GetInHospitalRecordByNumber(order.MdtrtId)
2432
+		var result string
2433
+		var requestLog string
2130 2434
 		record, _ := service.GetInHospitalRecord(his_patient_id)
2131 2435
 		config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
2132 2436
 		if config.IsOpen == 1 { //对接了医保,走医保流程
2133 2437
 
2134
-			result, requestLog := service.Gdyb2302(record.PsnNo, record.Number, miConfig.OrgName, roles.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, "0000", 0)
2135
-			//saveLog(result,requestLog,)
2136
-			saveLog(result, requestLog, "2302", "月结退明细")
2438
+			if miConfig.MdtrtareaAdmvs == "150499" {
2439
+				//请求内网数据
2440
+				api := "http://172.16.13.254:9532/" + "nmyb/2302?psn_no=" + record.PsnNo + "&mdtrtId=" + record.Number + "&number=0000" +
2441
+					"&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
2442
+					"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&refund_type=" + "1"
2443
+				resp, requestErr := http.Get(api)
2444
+				if requestErr != nil {
2445
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2446
+					return
2447
+				}
2448
+				body, ioErr := ioutil.ReadAll(resp.Body)
2449
+				if ioErr != nil {
2450
+					utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
2451
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2452
+					return
2453
+				}
2454
+				var respJSON map[string]interface{}
2455
+				if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
2456
+					utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
2457
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2458
+					return
2459
+				}
2460
+				respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
2461
+				result_byte, _ := json.Marshal(respJSON)
2462
+				result = string(result_byte)
2463
+				//saveLog(result, requestLog, "2302", "日结退明细")
2464
+
2465
+			} else {
2466
+				result, requestLog = service.Gdyb2302(record.PsnNo, record.Number, miConfig.OrgName, roles.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, "0000", 0)
2467
+				saveLog(result, requestLog, "2302", "月结退明细")
2468
+			}
2137 2469
 
2138 2470
 			var dat map[string]interface{}
2139 2471
 			if err := json.Unmarshal([]byte(result), &dat); err == nil {
@@ -2200,8 +2532,45 @@ func (this *ZHHisApiController) GetZHOutHospitalUnCheck() {
2200 2532
 		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeInHospitalNoExistDataException)
2201 2533
 		return
2202 2534
 	}
2203
-	result, requestLog := service.ZHGdyb2405(record.Number, record.PsnNo, miConfig.SecretKey, miConfig.OrgName, miConfig.Code, role.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs)
2204
-	saveLog(result, requestLog, "2405", "出院登记撤销")
2535
+
2536
+	var result string
2537
+	var requestLog string
2538
+	if miConfig.MdtrtareaAdmvs == "150499" {
2539
+		//请求内网数据
2540
+		api := "http://172.16.13.254:9532/" + "nmyb/2405?mdtrt_id=" + record.Number + "&psn_no=" + record.PsnNo +
2541
+			"&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&fixmedins_code=" + miConfig.Code +
2542
+			"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey
2543
+		resp, requestErr := http.Get(api)
2544
+		if requestErr != nil {
2545
+			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2546
+			return
2547
+		}
2548
+
2549
+		body, ioErr := ioutil.ReadAll(resp.Body)
2550
+
2551
+		if ioErr != nil {
2552
+			utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
2553
+			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2554
+			return
2555
+		}
2556
+
2557
+		var respJSON map[string]interface{}
2558
+
2559
+		if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
2560
+			utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
2561
+			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2562
+			return
2563
+		}
2564
+
2565
+		respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
2566
+		result_byte, _ := json.Marshal(respJSON)
2567
+		result = string(result_byte)
2568
+
2569
+	} else {
2570
+		result, requestLog = service.ZHGdyb2405(record.Number, record.PsnNo, miConfig.SecretKey, miConfig.OrgName, miConfig.Code, role.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs)
2571
+		saveLog(result, requestLog, "2405", "出院登记撤销")
2572
+
2573
+	}
2205 2574
 
2206 2575
 	var dat map[string]interface{}
2207 2576
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
@@ -2251,20 +2620,56 @@ func (this *ZHHisApiController) GetZHOutHospitalUnCheck() {
2251 2620
 func (this *ZHHisApiController) GetZHInHospitalUnCheck() {
2252 2621
 	id, _ := this.GetInt64("id")
2253 2622
 	admin_user_id, _ := this.GetInt64("admin_user_id")
2254
-
2255 2623
 	adminInfo := this.GetAdminUserInfo()
2256 2624
 	miConfig, _ := service.FindMedicalInsuranceInfo(adminInfo.CurrentOrgId)
2257 2625
 	role, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, admin_user_id)
2258
-
2259 2626
 	record, _ := service.GetInHospitalRecord(id)
2627
+
2260 2628
 	if record.ID == 0 {
2261 2629
 		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeInHospitalNoExistDataException)
2262 2630
 		return
2263 2631
 	}
2264 2632
 
2265
-	result, requestLog := service.Gdyb2302(record.PsnNo, record.Number, miConfig.OrgName, role.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, "0000", 0)
2266
-	//saveLog(result,requestLog,)
2267
-	saveLog(result, requestLog, "2302", "月结退明细")
2633
+	var result string
2634
+	var requestLog string
2635
+
2636
+	if miConfig.MdtrtareaAdmvs == "150499" {
2637
+		//请求内网数据
2638
+		api := "http://172.16.13.254:9532/" + "nmyb/2302?psn_no=" + record.PsnNo + "&mdtrtId=" + record.Number + "&number=" + "0000" +
2639
+			"&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&fixmedins_code=" + miConfig.Code +
2640
+			"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&refund_type=0"
2641
+		resp, requestErr := http.Get(api)
2642
+		if requestErr != nil {
2643
+			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2644
+			return
2645
+		}
2646
+
2647
+		body, ioErr := ioutil.ReadAll(resp.Body)
2648
+
2649
+		if ioErr != nil {
2650
+			utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
2651
+			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2652
+			return
2653
+		}
2654
+
2655
+		var respJSON map[string]interface{}
2656
+
2657
+		if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
2658
+			utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
2659
+			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2660
+			return
2661
+		}
2662
+
2663
+		respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
2664
+		result_byte, _ := json.Marshal(respJSON)
2665
+		result = string(result_byte)
2666
+		saveLog(result, requestLog, "2302", "月结退明细")
2667
+
2668
+	} else {
2669
+		result, requestLog = service.Gdyb2302(record.PsnNo, record.Number, miConfig.OrgName, role.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, "0000", 0)
2670
+		saveLog(result, requestLog, "2302", "月结退明细")
2671
+
2672
+	}
2268 2673
 
2269 2674
 	var dat map[string]interface{}
2270 2675
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
@@ -2298,10 +2703,47 @@ func (this *ZHHisApiController) GetZHInHospitalUnCheck() {
2298 2703
 	}
2299 2704
 
2300 2705
 	if res2.Infcode == 0 {
2706
+
2301 2707
 		service.UpdataHospitalOrderStatus(record.Number, adminInfo.CurrentOrgId)
2302
-		result, requestLog := service.ZHGdyb2404(record.Number, record.PsnNo, miConfig.SecretKey, miConfig.OrgName, miConfig.Code, role.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs)
2303
-		//saveLog()
2304
-		saveLog(result, requestLog, "2404", "入院登记撤销")
2708
+
2709
+		var result string
2710
+		var requestLog string
2711
+		if miConfig.MdtrtareaAdmvs == "150499" {
2712
+			//请求内网数据
2713
+			api := "http://172.16.13.254:9532/" + "nmyb/2404?mdtrt_id=" + record.Number + "&psn_no=" + record.PsnNo +
2714
+				"&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&fixmedins_code=" + miConfig.Code +
2715
+				"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey
2716
+			resp, requestErr := http.Get(api)
2717
+			if requestErr != nil {
2718
+				this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2719
+				return
2720
+			}
2721
+
2722
+			body, ioErr := ioutil.ReadAll(resp.Body)
2723
+
2724
+			if ioErr != nil {
2725
+				utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
2726
+				this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2727
+				return
2728
+			}
2729
+
2730
+			var respJSON map[string]interface{}
2731
+
2732
+			if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
2733
+				utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
2734
+				this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2735
+				return
2736
+			}
2737
+
2738
+			respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
2739
+			result_byte, _ := json.Marshal(respJSON)
2740
+			result = string(result_byte)
2741
+
2742
+		} else {
2743
+			result, requestLog = service.ZHGdyb2404(record.Number, record.PsnNo, miConfig.SecretKey, miConfig.OrgName, miConfig.Code, role.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs)
2744
+			saveLog(result, requestLog, "2404", "入院登记撤销")
2745
+
2746
+		}
2305 2747
 
2306 2748
 		var dat map[string]interface{}
2307 2749
 		if err := json.Unmarshal([]byte(result), &dat); err == nil {

+ 119 - 0
service/zh_his_service.go View File

@@ -673,6 +673,125 @@ func ZHGdyb2301(psnNo string, mdtrtId string, hisPrescription []*models.NewCusto
673 673
 
674 674
 }
675 675
 
676
+func ZHGdyb2301A(psnNo string, mdtrtId string, hisPrescription []*models.NewCustom, chrg_bchno string, org_name string, doctor string, dept string, fixmedins_code string, dept_code string, doctor_id string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, opertor string) (string, string) {
677
+	// 生成签名
678
+	nonce := GetRandomString(32)
679
+	timestamp := time.Now().Unix()
680
+	signature := setSignature(timestamp, nonce, secret_key)
681
+	//tempTime := time.Unix(timestamp, 0)
682
+	//timeFormat := tempTime.Format("20060102150405")
683
+	//timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
684
+	//chrgBchno := rand.Intn(100000) + 10000
685
+
686
+	var customs []*models.NewCustom
687
+
688
+	customs = hisPrescription
689
+	// 生成输入报文
690
+	inputMessage := SetInputMessage(nonce, timestamp, org_name, opertor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
691
+	input := make(map[string]interface{})
692
+	feedetail := make([]map[string]interface{}, 0)
693
+	inputMessage["infno"] = "2301" // 交易编码
694
+
695
+	//chrg_bchno := timeFormat + strconv.FormatInt(int64(chrgBchno), 10)
696
+	for _, item := range customs {
697
+		feedetailInfo := make(map[string]interface{})
698
+		feedetailInfo["feedetl_sn"] = item.FeedetlSn
699
+		feedetailInfo["mdtrt_id"] = mdtrtId // 就诊 ID(来自2201接口返回)
700
+		feedetailInfo["psn_no"] = psnNo     // 人员编号 (来自1101接口返回)
701
+		feedetailInfo["med_type"] = med_type
702
+		feedetailInfo["fee_ocur_time"] = item.FeeOcurTime            // 费用发生时间
703
+		feedetailInfo["med_list_codg"] = item.MedListCodg            // 医疗目录编码
704
+		feedetailInfo["medins_list_codg"] = fixmedins_code           // 医药机构目录编码
705
+		feedetailInfo["det_item_fee_sumamt"] = item.DetItemFeeSumamt // 明细项目费用总额
706
+		feedetailInfo["cnt"] = item.Cut                              // 数量
707
+		feedetailInfo["pric"] = item.Price                           // 单价
708
+		feedetailInfo["bilg_dept_codg"] = dept_code                  // 开单科室编码
709
+		feedetailInfo["bilg_dept_name"] = dept                       // 开单科室名称
710
+		feedetailInfo["bilg_dr_codg"] = doctor_id                    // 开单医生编码
711
+		feedetailInfo["bilg_dr_name"] = doctor
712
+		feedetailInfo["acord_dept_codg"] = ""    // 受单科室编码
713
+		feedetailInfo["acord_dept_name"] = ""    // 受单科室名称
714
+		feedetailInfo["orders_dr_code"] = ""     // 受单医生编码
715
+		feedetailInfo["orders_dr_name"] = ""     // 受单医生姓名
716
+		feedetailInfo["chrg_bchno"] = chrg_bchno // 收费批次号
717
+		feedetailInfo["dise_codg"] = ""          // 病种编码
718
+		feedetailInfo["rxno"] = ""               // 处方号
719
+		feedetailInfo["rx_circ_flag"] = "0"      // 外购处方标志
720
+		feedetailInfo["sin_dos_dscr"] = ""       // 单次剂量描述
721
+		feedetailInfo["used_frqu_dscr"] = ""     // 使用频次描述
722
+		feedetailInfo["prd_days"] = "0"          // 周期天数
723
+		feedetailInfo["medc_way_dscr"] = ""      // 用药途径描述
724
+		// 开单医师姓名
725
+
726
+		if item.HospApprFlag != -1 {
727
+			if item.HospApprFlag == 1 {
728
+				feedetailInfo["hosp_appr_flag"] = "0" // 医院审批标志
729
+			} else if item.HospApprFlag == 2 {
730
+				feedetailInfo["hosp_appr_flag"] = "1" // 医院审批标志
731
+			} else if item.HospApprFlag == 3 {
732
+				feedetailInfo["hosp_appr_flag"] = "2" // 医院审批标志
733
+			} else {
734
+				feedetailInfo["hosp_appr_flag"] = "1" // 医院审批标志
735
+			}
736
+		} else {
737
+			feedetailInfo["hosp_appr_flag"] = "1" // 医院审批标志
738
+		}
739
+
740
+		feedetailInfo["tcmdrug_used_way"] = "" // 中药使用方式
741
+		feedetailInfo["etip_flag"] = ""        // 外检标志
742
+		feedetailInfo["etip_hosp_code"] = ""   // 外检医院编码
743
+		feedetailInfo["dscg_tkdrug_flag"] = "" // 出院带药标志
744
+		feedetailInfo["matn_fee_flag"] = ""    // 生育费用标志
745
+		feedetail = append(feedetail, feedetailInfo)
746
+	}
747
+	input["feedetail"] = feedetail
748
+	inputMessage["input"] = input //交易输入
749
+
750
+	bytesData, err := json.Marshal(inputMessage)
751
+	fmt.Println("----------")
752
+	fmt.Println(string(bytesData))
753
+	fmt.Println("----------")
754
+	requestLog := string(bytesData)
755
+
756
+	if err != nil {
757
+		fmt.Println(err.Error())
758
+		return "", ""
759
+	}
760
+	reader := bytes.NewReader(bytesData)
761
+
762
+	gdyb_url := beego.AppConfig.String("gdyb_url")
763
+	gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
764
+	url := gdyb_url + "2301"
765
+	if mdtrtarea_admvs == "150499" {
766
+		url = gdyb_url
767
+	}
768
+	request, err := http.NewRequest("POST", url, reader)
769
+	if err != nil {
770
+		fmt.Println(err.Error())
771
+		return "", ""
772
+	}
773
+
774
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
775
+	request.Header.Set("x-tif-paasid", gdyb_paasid)
776
+	request.Header.Set("x-tif-signature", signature)
777
+	request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
778
+	request.Header.Set("x-tif-nonce", nonce)
779
+
780
+	client := http.Client{}
781
+	resp, err := client.Do(request)
782
+	if err != nil {
783
+		fmt.Println(err.Error())
784
+		return "", ""
785
+	}
786
+	respBytes, err := ioutil.ReadAll(resp.Body)
787
+	if err != nil {
788
+		fmt.Println(err.Error())
789
+		return "", ""
790
+	}
791
+	return string(respBytes), requestLog
792
+
793
+}
794
+
676 795
 //  住院费用明细信息撤销
677 796
 func Gdyb2302(psnNo string, mdtrtId string, org_name string, doctor string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, fixmedins_code string, number string, refund_type int64) (string, string) {
678 797
 	// 生成签名