Quellcode durchsuchen

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

csx vor 3 Jahren
Ursprung
Commit
bf7a35cee4

+ 36 - 36
controllers/sg/gdyb_controller.go Datei anzeigen

19
 	beego.Router("/gdyb/one", &GdybController{}, "get:PostOne")
19
 	beego.Router("/gdyb/one", &GdybController{}, "get:PostOne")
20
 	beego.Router("/gdyb/two", &GdybController{}, "get:PostTwo")
20
 	beego.Router("/gdyb/two", &GdybController{}, "get:PostTwo")
21
 	beego.Router("/gdyb/three", &GdybController{}, "get:PostThree")
21
 	beego.Router("/gdyb/three", &GdybController{}, "get:PostThree")
22
-	beego.Router("/gdyb/four", &GdybController{}, "get:PostFour")
22
+	//beego.Router("/gdyb/four", &GdybController{}, "get:PostFour")
23
 	beego.Router("/gdyb/five", &GdybController{}, "post:PostFive")
23
 	beego.Router("/gdyb/five", &GdybController{}, "post:PostFive")
24
 	beego.Router("/gdyb/six", &GdybController{}, "get:PostSix")
24
 	beego.Router("/gdyb/six", &GdybController{}, "get:PostSix")
25
 	//beego.Router("/gdyb/seven", &GdybController{}, "get:PostSeven")
25
 	//beego.Router("/gdyb/seven", &GdybController{}, "get:PostSeven")
146
 	})
146
 	})
147
 }
147
 }
148
 
148
 
149
-func (c *GdybController) PostFour() {
150
-	psnNo := c.GetString("psn_no")
151
-	mdtrtId := c.GetString("mdtrt_id")
152
-	doctor := c.GetString("doctor")
153
-	department := c.GetString("department")
154
-	diag := c.GetString("diag")
155
-	org_name := c.GetString("org_name")
156
-	med_type := c.GetString("med_type")
157
-	doctor_id, _ := c.GetInt64("doctor_id", 0)
158
-	fixmedins_code := c.GetString("fixmedins_code")
159
-	diag_code := c.GetString("diag_code")
160
-	sick_code := c.GetString("sick_code")
161
-	sick_name := c.GetString("sick_name")
162
-	dept := c.GetString("dept")
163
-
164
-	insuplc_admdvs := c.GetString("insuplc_admdvs")
165
-	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
166
-	secret_key := c.GetString("secret_key")
167
-
168
-	var result string
169
-	if insuplc_admdvs == "440781" { //
170
-		result = service.Gdyb2203A(psnNo, mdtrtId, doctor, department, diag, org_name, med_type, doctor_id, fixmedins_code, diag_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, sick_code, sick_name, dept)
171
-	} else {
172
-		result = service.Gdyb2203(psnNo, mdtrtId, doctor, department, diag, org_name, med_type, doctor_id, fixmedins_code, diag_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, sick_code, sick_name, dept)
173
-	}
174
-	var dat map[string]interface{}
175
-	if err := json.Unmarshal([]byte(result), &dat); err == nil {
176
-
177
-	} else {
178
-
179
-	}
180
-	c.ServeSuccessJSON(map[string]interface{}{
181
-		"pre": dat,
182
-	})
183
-}
149
+//func (c *GdybController) PostFour() {
150
+//	psnNo := c.GetString("psn_no")
151
+//	mdtrtId := c.GetString("mdtrt_id")
152
+//	doctor := c.GetString("doctor")
153
+//	department := c.GetString("department")
154
+//	diag := c.GetString("diag")
155
+//	org_name := c.GetString("org_name")
156
+//	med_type := c.GetString("med_type")
157
+//	doctor_id, _ := c.GetInt64("doctor_id", 0)
158
+//	fixmedins_code := c.GetString("fixmedins_code")
159
+//	diag_code := c.GetString("diag_code")
160
+//	sick_code := c.GetString("sick_code")
161
+//	sick_name := c.GetString("sick_name")
162
+//	dept := c.GetString("dept")
163
+//
164
+//	insuplc_admdvs := c.GetString("insuplc_admdvs")
165
+//	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
166
+//	secret_key := c.GetString("secret_key")
167
+//
168
+//	var result string
169
+//	if insuplc_admdvs == "440781" { //
170
+//		result = service.Gdyb2203A(psnNo, mdtrtId, doctor, department, diag, org_name, med_type, doctor_id, fixmedins_code, diag_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, sick_code, sick_name, dept)
171
+//	} else {
172
+//		result = service.Gdyb2203(psnNo, mdtrtId, doctor, department, diag, org_name, med_type, doctor_id, fixmedins_code, diag_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, sick_code, sick_name, dept)
173
+//	}
174
+//	var dat map[string]interface{}
175
+//	if err := json.Unmarshal([]byte(result), &dat); err == nil {
176
+//
177
+//	} else {
178
+//
179
+//	}
180
+//	c.ServeSuccessJSON(map[string]interface{}{
181
+//		"pre": dat,
182
+//	})
183
+//}
184
 
184
 
185
 type All struct {
185
 type All struct {
186
 	HisPrescription HisPrescription
186
 	HisPrescription HisPrescription

+ 82 - 49
controllers/sg/his_api_controller.go Datei anzeigen

337
 	struct4101.CustomStruct = tempFunPays
337
 	struct4101.CustomStruct = tempFunPays
338
 
338
 
339
 	var tempOpspdiseinfos []service.OpspdiseinfoStruct
339
 	var tempOpspdiseinfos []service.OpspdiseinfoStruct
340
-	var tempOpspdiseinfo service.OpspdiseinfoStruct
341
 	var tempOpspdiseinfo2 service.OpspdiseinfoStruct
340
 	var tempOpspdiseinfo2 service.OpspdiseinfoStruct
342
-	sickConfig, _ := service.FindDiagnoseById(his.Diagnosis)
343
-	sickConfigTwo, _ := service.FindSickById(his.SickType)
344
-	tempOpspdiseinfo.DiagCode = sickConfig.CountryCode
345
-	tempOpspdiseinfo.DiagName = sickConfig.CountryContentName
346
-	tempOpspdiseinfo.MaindiagFlag = "1"
347
-	tempOpspdiseinfo.OprnOprtCode = ""
348
-	tempOpspdiseinfo.OprnOprtName = ""
341
+	//sickConfig, _ := service.FindDiagnoseById(his.Diagnosis)
342
+
343
+	diagnosis_ids := strings.Split(his.Diagnosis, ",")
344
+	var config []*models.HisXtDiagnoseConfig
345
+	for _, item := range diagnosis_ids {
346
+		id, _ := strconv.ParseInt(item, 10, 64)
347
+		diagnosisConfig, _ := service.FindDiagnoseById(id)
348
+		config = append(config, diagnosisConfig)
349
+	}
349
 
350
 
350
-	tempOpspdiseinfos = append(tempOpspdiseinfos, tempOpspdiseinfo)
351
+	for _, item := range config {
352
+		var tempOpspdiseinfo service.OpspdiseinfoStruct
353
+		tempOpspdiseinfo.DiagCode = item.CountryCode
354
+		tempOpspdiseinfo.DiagName = item.CountryContentName
355
+		tempOpspdiseinfo.MaindiagFlag = "1"
356
+		tempOpspdiseinfo.OprnOprtCode = ""
357
+		tempOpspdiseinfo.OprnOprtName = ""
358
+		tempOpspdiseinfos = append(tempOpspdiseinfos, tempOpspdiseinfo)
359
+	}
360
+
361
+	sickConfigTwo, _ := service.FindSickById(his.SickType)
351
 	tempOpspdiseinfo2.DiagCode = sickConfigTwo.CountryCode
362
 	tempOpspdiseinfo2.DiagCode = sickConfigTwo.CountryCode
352
 	tempOpspdiseinfo2.DiagName = sickConfigTwo.CountryContentName
363
 	tempOpspdiseinfo2.DiagName = sickConfigTwo.CountryContentName
353
 	tempOpspdiseinfo2.MaindiagFlag = "2"
364
 	tempOpspdiseinfo2.MaindiagFlag = "2"
1810
 	fapiao_code := c.GetString("fapiao_code")
1821
 	fapiao_code := c.GetString("fapiao_code")
1811
 	fapiao_number := c.GetString("fapiao_number")
1822
 	fapiao_number := c.GetString("fapiao_number")
1812
 
1823
 
1813
-	diagnosis_id, _ := c.GetInt64("diagnosis")
1824
+	diagnosis_id := c.GetString("diagnosis")
1814
 	sick_type, _ := c.GetInt64("sick_type")
1825
 	sick_type, _ := c.GetInt64("sick_type")
1815
 	reg_type, _ := c.GetInt64("p_type")
1826
 	reg_type, _ := c.GetInt64("p_type")
1816
 
1827
 
1865
 	miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
1876
 	miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
1866
 	department, _ := service.GetDepartMentDetail(patientPrescription.Departments)
1877
 	department, _ := service.GetDepartMentDetail(patientPrescription.Departments)
1867
 
1878
 
1868
-	diagnosisConfig, _ := service.FindDiagnoseById(diagnosis_id)
1869
-	sickConfig, _ := service.FindSickById(sick_type)
1879
+	diagnosis_ids := strings.Split(diagnosis_id, ",")
1870
 
1880
 
1881
+	var config []*models.HisXtDiagnoseConfig
1882
+	for _, item := range diagnosis_ids {
1883
+		id, _ := strconv.ParseInt(item, 10, 64)
1884
+		diagnosisConfig, _ := service.FindDiagnoseById(id)
1885
+		config = append(config, diagnosisConfig)
1886
+	}
1887
+
1888
+	sickConfig, _ := service.FindSickById(sick_type)
1871
 	if tempOrder.ID == 0 {
1889
 	if tempOrder.ID == 0 {
1890
+		var result string
1891
+		if miConfig.InsuplcAdmdvs == "440781" { //
1892
+			result = service.Gdyb2203A(his.PsnNo, his.Number, patientPrescription.Doctor, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), patientPrescription.DoctorId, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.CountryCode, sickConfig.ClassName, roles.UserName, config)
1893
+		} else {
1894
+			result = service.Gdyb2203(his.PsnNo, his.Number, patientPrescription.Doctor, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), patientPrescription.DoctorId, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.CountryCode, sickConfig.ClassName, roles.UserName, config)
1872
 
1895
 
1873
-		api2 := "http://127.0.0.1:9532/" + "gdyb/four?psn_no=" + his.PsnNo +
1874
-			"&mdtrt_id=" + his.Number + "&doctor=" + patientPrescription.Doctor + "&department=" + department.Name +
1875
-			"&diag=" + diagnosisConfig.ClassName + "&org_name=" + miConfig.OrgName + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&doctor_id=" + strconv.FormatInt(patientPrescription.DoctorId, 10) + "&fixmedins_code=" + miConfig.Code + "&diag_code=" + diagnosisConfig.CountryCode +
1876
-			"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&sick_code=" + sickConfig.CountryCode + "&sick_name=" + sickConfig.ClassName + "&dept=" + roles.UserName
1877
-		resp2, requestErr2 := http.Get(api2)
1878
-		if requestErr2 != nil {
1879
-			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1880
-			return
1881
-		}
1882
-		body2, ioErr2 := ioutil.ReadAll(resp2.Body)
1883
-		if ioErr2 != nil {
1884
-			utils.ErrorLog("接口返回数据读取失败: %v", ioErr2)
1885
-			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1886
-			return
1887
 		}
1896
 		}
1897
+
1888
 		var respJSON2 map[string]interface{}
1898
 		var respJSON2 map[string]interface{}
1889
-		if err := json.Unmarshal([]byte(string(body2)), &respJSON2); err != nil {
1899
+		if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil {
1890
 			utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
1900
 			utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
1891
 			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1901
 			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1892
 			return
1902
 			return
1893
 		}
1903
 		}
1894
-		respJSON2 = respJSON2["data"].(map[string]interface{})["pre"].(map[string]interface{})
1895
 		userJSONBytes2, _ := json.Marshal(respJSON2)
1904
 		userJSONBytes2, _ := json.Marshal(respJSON2)
1896
 
1905
 
1897
 		var res2 ResultSix
1906
 		var res2 ResultSix
1920
 			return
1929
 			return
1921
 
1930
 
1922
 		} else {
1931
 		} else {
1923
-			his.Diagnosis = diagnosisConfig.ID
1932
+			his.Diagnosis = diagnosis_id
1924
 			his.SickType = sickConfig.ID
1933
 			his.SickType = sickConfig.ID
1925
 			his.PType = fmt.Sprintf("%d", reg_type)
1934
 			his.PType = fmt.Sprintf("%d", reg_type)
1926
 			service.UpdateHisPatientThree(&his)
1935
 			service.UpdateHisPatientThree(&his)
2047
 						FaPiaoNumber:          fapiao_number,
2056
 						FaPiaoNumber:          fapiao_number,
2048
 						FaPiaoCode:            fapiao_code,
2057
 						FaPiaoCode:            fapiao_code,
2049
 						PType:                 2,
2058
 						PType:                 2,
2059
+						Diagnosis:             diagnosis_id,
2050
 					}
2060
 					}
2051
 					err = service.CreateOrder(order)
2061
 					err = service.CreateOrder(order)
2052
 					if err != nil {
2062
 					if err != nil {
2456
 				order.Creator = order.Creator
2466
 				order.Creator = order.Creator
2457
 				order.Modify = roles.AdminUserId
2467
 				order.Modify = roles.AdminUserId
2458
 				order.RequestLog = src_resquest
2468
 				order.RequestLog = src_resquest
2469
+				order.Diagnosis = diagnosis_id
2459
 				setlDetail, _ := json.Marshal(res.Output.Setldetail)
2470
 				setlDetail, _ := json.Marshal(res.Output.Setldetail)
2460
 				detailStr := string(setlDetail)
2471
 				detailStr := string(setlDetail)
2461
 				order.SetlDetail = detailStr
2472
 				order.SetlDetail = detailStr
3010
 	settle_accounts_type, _ := c.GetInt64("settle_accounts_type")
3021
 	settle_accounts_type, _ := c.GetInt64("settle_accounts_type")
3011
 	admin_user_id, _ := c.GetInt64("admin_user_id")
3022
 	admin_user_id, _ := c.GetInt64("admin_user_id")
3012
 
3023
 
3013
-	diagnosis_id, _ := c.GetInt64("diagnosis")
3024
+	diagnosis_id := c.GetString("diagnosis")
3014
 	sick_type, _ := c.GetInt64("sick_type")
3025
 	sick_type, _ := c.GetInt64("sick_type")
3015
 	reg_type, _ := c.GetInt64("p_type")
3026
 	reg_type, _ := c.GetInt64("p_type")
3016
 
3027
 
3024
 	recordDateTime := theTime.Unix()
3035
 	recordDateTime := theTime.Unix()
3025
 	adminUser := c.GetAdminUserInfo()
3036
 	adminUser := c.GetAdminUserInfo()
3026
 
3037
 
3027
-	diagnosisConfig, _ := service.FindDiagnoseById(diagnosis_id)
3038
+	diagnosis_ids := strings.Split(diagnosis_id, ",")
3039
+
3040
+	var config []*models.HisXtDiagnoseConfig
3041
+	for _, item := range diagnosis_ids {
3042
+		id, _ := strconv.ParseInt(item, 10, 64)
3043
+		diagnosisConfig, _ := service.FindDiagnoseById(id)
3044
+		config = append(config, diagnosisConfig)
3045
+	}
3046
+	//diagnosisConfig, _ := service.FindDiagnoseById(diagnosis_id)
3047
+
3028
 	sickConfig, _ := service.FindSickById(sick_type)
3048
 	sickConfig, _ := service.FindSickById(sick_type)
3029
 
3049
 
3030
 	var prescriptions []*models.HisPrescription
3050
 	var prescriptions []*models.HisPrescription
3045
 	department, _ := service.GetDepartMentDetail(patientPrescription.Departments)
3065
 	department, _ := service.GetDepartMentDetail(patientPrescription.Departments)
3046
 	strconv.FormatInt(his.PatientId, 10)
3066
 	strconv.FormatInt(his.PatientId, 10)
3047
 
3067
 
3048
-	api2 := "http://127.0.0.1:9532/" + "gdyb/four?psn_no=" + his.PsnNo +
3049
-		"&mdtrt_id=" + his.Number + "&doctor=" + patientPrescription.Doctor + "&department=" + department.Name +
3050
-		"&diag=" + diagnosisConfig.ClassName + "&org_name=" + miConfig.OrgName + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&doctor_id=" + strconv.FormatInt(patientPrescription.DoctorId, 10) + "&fixmedins_code=" + miConfig.Code + "&diag_code=" + diagnosisConfig.CountryCode +
3051
-		"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&sick_code=" + sickConfig.CountryCode + "&sick_name=" + sickConfig.ClassName + "&dept=" + roles.UserName
3052
-	resp2, requestErr2 := http.Get(api2)
3053
-	if requestErr2 != nil {
3054
-		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
3055
-		return
3056
-	}
3057
-	body2, ioErr2 := ioutil.ReadAll(resp2.Body)
3058
-	if ioErr2 != nil {
3059
-		utils.ErrorLog("接口返回数据读取失败: %v", ioErr2)
3060
-		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
3061
-		return
3068
+	var result string
3069
+	if miConfig.InsuplcAdmdvs == "440781" { //
3070
+		result = service.Gdyb2203A(his.PsnNo, his.Number, patientPrescription.Doctor, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), patientPrescription.DoctorId, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.CountryCode, sickConfig.ClassName, roles.UserName, config)
3071
+	} else {
3072
+		result = service.Gdyb2203(his.PsnNo, his.Number, patientPrescription.Doctor, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), patientPrescription.DoctorId, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.CountryCode, sickConfig.ClassName, roles.UserName, config)
3073
+
3062
 	}
3074
 	}
3075
+
3063
 	var respJSON2 map[string]interface{}
3076
 	var respJSON2 map[string]interface{}
3064
-	if err := json.Unmarshal([]byte(string(body2)), &respJSON2); err != nil {
3077
+	if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil {
3065
 		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
3078
 		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
3066
 		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
3079
 		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
3067
 		return
3080
 		return
3068
 	}
3081
 	}
3069
-	respJSON2 = respJSON2["data"].(map[string]interface{})["pre"].(map[string]interface{})
3070
 	userJSONBytes2, _ := json.Marshal(respJSON2)
3082
 	userJSONBytes2, _ := json.Marshal(respJSON2)
3071
 
3083
 
3072
 	var res2 ResultSix
3084
 	var res2 ResultSix
3095
 		return
3107
 		return
3096
 
3108
 
3097
 	} else {
3109
 	} else {
3110
+		his.Diagnosis = diagnosis_id
3111
+		his.SickType = sickConfig.ID
3112
+		his.PType = fmt.Sprintf("%d", reg_type)
3113
+		service.UpdateHisPatientThree(&his)
3098
 
3114
 
3099
 		data := make(map[string]interface{})
3115
 		data := make(map[string]interface{})
3100
 		if settle_accounts_type == 1 { //日结
3116
 		if settle_accounts_type == 1 { //日结
3199
 					Creator:             roles.AdminUserId,
3215
 					Creator:             roles.AdminUserId,
3200
 					Modify:              roles.AdminUserId,
3216
 					Modify:              roles.AdminUserId,
3201
 					PType:               2,
3217
 					PType:               2,
3218
+					Diagnosis:           diagnosis_id,
3202
 				}
3219
 				}
3220
+
3203
 				err = service.CreateOrder(order)
3221
 				err = service.CreateOrder(order)
3204
 				if err != nil {
3222
 				if err != nil {
3205
 					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreatePreOrderException)
3223
 					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreatePreOrderException)
4384
 	orderInfos, _ := service.GetHisOrderInfoByNumber(order.Number)
4402
 	orderInfos, _ := service.GetHisOrderInfoByNumber(order.Number)
4385
 	orderInfos_two, _ := service.GetHisOrderInfoByNumberTwo(order.Number)
4403
 	orderInfos_two, _ := service.GetHisOrderInfoByNumberTwo(order.Number)
4386
 	orderInfos = append(orderInfos, orderInfos_two...)
4404
 	orderInfos = append(orderInfos, orderInfos_two...)
4387
-	diagnosisConfig, _ := service.FindDiagnoseById(his.Diagnosis)
4405
+	//diagnosisConfig, _ := service.FindDiagnoseById(his.Diagnosis)
4406
+
4407
+	diagnosis_ids := strings.Split(his.Diagnosis, ",")
4408
+
4409
+	//var config []*models.HisXtDiagnoseConfig
4410
+	var name string
4411
+	for _, item := range diagnosis_ids {
4412
+		id, _ := strconv.ParseInt(item, 10, 64)
4413
+		diagnosisConfig, _ := service.FindDiagnoseById(id)
4414
+		if len(name) == 0 {
4415
+			name = diagnosisConfig.ClassName
4416
+
4417
+		} else {
4418
+			name = name + "," + diagnosisConfig.ClassName
4419
+		}
4420
+	}
4388
 
4421
 
4389
 	var bedCostTotal float64 = 0         //床位总费
4422
 	var bedCostTotal float64 = 0         //床位总费
4390
 	var bedCostSelfTotal float64 = 0     //床位自费
4423
 	var bedCostSelfTotal float64 = 0     //床位自费
4528
 
4561
 
4529
 		if res.Infcode == 0 {
4562
 		if res.Infcode == 0 {
4530
 			c.ServeSuccessJSON(map[string]interface{}{
4563
 			c.ServeSuccessJSON(map[string]interface{}{
4531
-				"diagnosis":                                   diagnosisConfig.CountryContentName,
4564
+				"diagnosis":                                   name,
4532
 				"order_infos":                                 orderInfos,
4565
 				"order_infos":                                 orderInfos,
4533
 				"number":                                      order.MdtrtId,
4566
 				"number":                                      order.MdtrtId,
4534
 				"date":                                        order.SettleAccountsDate,
4567
 				"date":                                        order.SettleAccountsDate,

+ 5 - 2
models/his_models.go Datei anzeigen

119
 	SocialType             int64   `gorm:"column:social_type" json:"social_type" form:"social_type"`
119
 	SocialType             int64   `gorm:"column:social_type" json:"social_type" form:"social_type"`
120
 	IdCardType             int64   `gorm:"column:id_card_type" json:"id_card_type" form:"id_card_type"`
120
 	IdCardType             int64   `gorm:"column:id_card_type" json:"id_card_type" form:"id_card_type"`
121
 	PType                  string  `gorm:"column:p_type" json:"p_type" form:"p_type"`
121
 	PType                  string  `gorm:"column:p_type" json:"p_type" form:"p_type"`
122
-	Diagnosis              int64   `gorm:"column:diagnosis" json:"diagnosis" form:"diagnosis"`
122
+	Diagnosis              string  `gorm:"column:diagnosis" json:"diagnosis" form:"diagnosis"`
123
 	SickType               int64   `gorm:"column:sick_type" json:"sick_type" form:"sick_type"`
123
 	SickType               int64   `gorm:"column:sick_type" json:"sick_type" form:"sick_type"`
124
 	YiliaoNumber           string  `gorm:"column:yiliao_number" json:"yiliao_number" form:"yiliao_number"`
124
 	YiliaoNumber           string  `gorm:"column:yiliao_number" json:"yiliao_number" form:"yiliao_number"`
125
 	MzNumber               string  `gorm:"column:mz_number" json:"mz_number" form:"mz_number"`
125
 	MzNumber               string  `gorm:"column:mz_number" json:"mz_number" form:"mz_number"`
587
 	YiliaoNumber           string  `gorm:"column:yiliao_number" json:"yiliao_number" form:"yiliao_number"`
587
 	YiliaoNumber           string  `gorm:"column:yiliao_number" json:"yiliao_number" form:"yiliao_number"`
588
 	MzNumber               string  `gorm:"column:mz_number" json:"mz_number" form:"mz_number"`
588
 	MzNumber               string  `gorm:"column:mz_number" json:"mz_number" form:"mz_number"`
589
 	PatientInfo            string  `gorm:"column:patient_info" json:"patient_info" form:"patient_info"`
589
 	PatientInfo            string  `gorm:"column:patient_info" json:"patient_info" form:"patient_info"`
590
+	Diagnosis              string  `gorm:"column:diagnosis" json:"diagnosis" form:"diagnosis"`
590
 }
591
 }
591
 
592
 
592
 func (XtHisPatient) TableName() string {
593
 func (XtHisPatient) TableName() string {
694
 
695
 
695
 	PType int64 `gorm:"column:p_type" json:"p_type" form:"p_type"`
696
 	PType int64 `gorm:"column:p_type" json:"p_type" form:"p_type"`
696
 	IsPre int64 `gorm:"column:is_pre" json:"is_pre" form:"is_pre"`
697
 	IsPre int64 `gorm:"column:is_pre" json:"is_pre" form:"is_pre"`
698
+
699
+	Diagnosis string `gorm:"column:diagnosis" json:"diagnosis" form:"diagnosis"`
697
 }
700
 }
698
 
701
 
699
 func (HisOrder) TableName() string {
702
 func (HisOrder) TableName() string {
789
 	YiliaoNumber           string  `gorm:"column:yiliao_number" json:"yiliao_number" form:"yiliao_number"`
792
 	YiliaoNumber           string  `gorm:"column:yiliao_number" json:"yiliao_number" form:"yiliao_number"`
790
 	MzNumber               string  `gorm:"column:mz_number" json:"mz_number" form:"mz_number"`
793
 	MzNumber               string  `gorm:"column:mz_number" json:"mz_number" form:"mz_number"`
791
 	PatientInfo            string  `gorm:"column:patient_info" json:"patient_info" form:"patient_info"`
794
 	PatientInfo            string  `gorm:"column:patient_info" json:"patient_info" form:"patient_info"`
792
-	Diagnosis              int64   `gorm:"column:diagnosis" json:"diagnosis" form:"diagnosis"`
795
+	Diagnosis              string  `gorm:"column:diagnosis" json:"diagnosis" form:"diagnosis"`
793
 	SickType               int64   `gorm:"column:sick_type" json:"sick_type" form:"sick_type"`
796
 	SickType               int64   `gorm:"column:sick_type" json:"sick_type" form:"sick_type"`
794
 	PType                  int64   `gorm:"column:p_type" json:"p_type" form:"p_type"`
797
 	PType                  int64   `gorm:"column:p_type" json:"p_type" form:"p_type"`
795
 }
798
 }

+ 49 - 50
service/gdyb_service.go Datei anzeigen

234
 	nonce := GetRandomString(32)
234
 	nonce := GetRandomString(32)
235
 	timestamp := time.Now().Unix()
235
 	timestamp := time.Now().Unix()
236
 	signature := setSignature(timestamp, nonce, secret_key)
236
 	signature := setSignature(timestamp, nonce, secret_key)
237
-	//tempTime := time.Unix(timestamp, 0)
238
-	//timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
237
+	tempTime := time.Unix(timestamp, 0)
238
+	timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
239
 
239
 
240
 	// 生成输入报文
240
 	// 生成输入报文
241
 	inputMessage := SetInputMessage(nonce, timestamp, org_name, dept, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
241
 	inputMessage := SetInputMessage(nonce, timestamp, org_name, dept, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
242
 	input := make(map[string]interface{})
242
 	input := make(map[string]interface{})
243
 	inputData := make(map[string]interface{})
243
 	inputData := make(map[string]interface{})
244
-	inputMessage["infno"] = "2201"                // 交易编码
245
-	inputData["psn_no"] = psnNo                   // 人员编号 (来自1101接口返回)
246
-	inputData["insutype"] = insutype              // 险种类型(来自1101接口返回)
247
-	inputData["begntime"] = "2021-04-10 12:20:30" // 开始时间
244
+	inputMessage["infno"] = "2201"        // 交易编码
245
+	inputData["psn_no"] = psnNo           // 人员编号 (来自1101接口返回)
246
+	inputData["insutype"] = insutype      // 险种类型(来自1101接口返回)
247
+	inputData["begntime"] = timeFormatOne // 开始时间
248
 
248
 
249
 	//if id_card_type == 1 {
249
 	//if id_card_type == 1 {
250
 	//	inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
250
 	//	inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
371
 }
371
 }
372
 
372
 
373
 // 门诊就诊信息上传
373
 // 门诊就诊信息上传
374
-func Gdyb2203(psnNo string, mdtrtId string, doctor string, department string, diag string, org_name string, med_type string, doctor_id int64, fixmedins_code string, diag_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_code string, sick_name string, dept string) string {
374
+func Gdyb2203(psnNo string, mdtrtId string, doctor string, department string, org_name string, med_type string, doctor_id int64, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_code string, sick_name string, dept string, config []*models.HisXtDiagnoseConfig) string {
375
 	// 生成签名
375
 	// 生成签名
376
 	nonce := GetRandomString(32)
376
 	nonce := GetRandomString(32)
377
 	timestamp := time.Now().Unix()
377
 	timestamp := time.Now().Unix()
378
 	signature := setSignature(timestamp, nonce, secret_key)
378
 	signature := setSignature(timestamp, nonce, secret_key)
379
-	//tempTime := time.Unix(timestamp, 0)
380
-	//timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
379
+	tempTime := time.Unix(timestamp, 0)
380
+	timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
381
 
381
 
382
 	// 生成输入报文
382
 	// 生成输入报文
383
 	inputMessage := SetInputMessage(nonce, timestamp, org_name, dept, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
383
 	inputMessage := SetInputMessage(nonce, timestamp, org_name, dept, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
385
 	inputData := make(map[string]interface{})
385
 	inputData := make(map[string]interface{})
386
 	diseinfo := make([]map[string]interface{}, 0)
386
 	diseinfo := make([]map[string]interface{}, 0)
387
 
387
 
388
-	inputMessage["infno"] = "2203"   // 交易编码
389
-	inputData["mdtrt_id"] = mdtrtId  // 就诊 ID(来自2201接口返回)
390
-	inputData["psn_no"] = psnNo      // 人员编号 (来自1101接口返回)
391
-	inputData["med_type"] = med_type // 医疗类别 16门诊特殊病
392
-	//inputData["begntime"] = timeFormatOne // 开始时间
393
-	inputData["begntime"] = "2021-04-10 12:20:30" // 开始时间
394
-	inputData["main_cond_dscr"] = ""              // 主要病情描述
395
-	inputData["dise_codg"] = sick_code            // 病种编码
396
-	inputData["dise_name"] = sick_name            // 病种名称
397
-	inputData["birctrl_type"] = ""                // 计划生育手术类别
398
-	inputData["birctrl_matn_date"] = ""           // 计划生育手术或生育日期
399
-
400
-	diseinfo_sun := make(map[string]interface{})
401
-	diseinfo_sun["diag_type"] = "1"         // 诊断类别
402
-	diseinfo_sun["diag_srt_no"] = "1"       // 诊断排序号
403
-	diseinfo_sun["diag_code"] = diag_code   // 诊断代码
404
-	diseinfo_sun["diag_name"] = diag        // 诊断名称
405
-	diseinfo_sun["diag_dept"] = department  // 诊断科室
406
-	diseinfo_sun["dise_dor_no"] = doctor_id // 诊断医生编码
407
-	diseinfo_sun["dise_dor_name"] = doctor  // 诊断医生姓名
408
-	//diseinfo_sun["diag_time"] = timeFormatOne // 诊断时间
409
-	diseinfo_sun["diag_time"] = "2021-04-10 12:20:30"
410
-	diseinfo_sun["vali_flag"] = "1" // 有效标志
411
-
412
-	diseinfo = append(diseinfo, diseinfo_sun)
388
+	inputMessage["infno"] = "2203"        // 交易编码
389
+	inputData["mdtrt_id"] = mdtrtId       // 就诊 ID(来自2201接口返回)
390
+	inputData["psn_no"] = psnNo           // 人员编号 (来自1101接口返回)
391
+	inputData["med_type"] = med_type      // 医疗类别 16门诊特殊病
392
+	inputData["begntime"] = timeFormatOne // 开始时间
393
+	//inputData["begntime"] =  // 开始时间
394
+	inputData["main_cond_dscr"] = ""    // 主要病情描述
395
+	inputData["dise_codg"] = sick_code  // 病种编码
396
+	inputData["dise_name"] = sick_name  // 病种名称
397
+	inputData["birctrl_type"] = ""      // 计划生育手术类别
398
+	inputData["birctrl_matn_date"] = "" // 计划生育手术或生育日期
399
+
400
+	for index, item := range config {
401
+		diseinfo_sun := make(map[string]interface{})
402
+		diseinfo_sun["diag_type"] = "1"              // 诊断类别
403
+		diseinfo_sun["diag_srt_no"] = index          // 诊断排序号
404
+		diseinfo_sun["diag_code"] = item.CountryCode // 诊断代码
405
+		diseinfo_sun["diag_name"] = item.ClassName   // 诊断名称
406
+		diseinfo_sun["diag_dept"] = department       // 诊断科室
407
+		diseinfo_sun["dise_dor_no"] = doctor_id      // 诊断医生编码
408
+		diseinfo_sun["dise_dor_name"] = doctor       // 诊断医生姓名
409
+		diseinfo_sun["diag_time"] = timeFormatOne    // 诊断时间
410
+		diseinfo_sun["vali_flag"] = "1"              // 有效标志
411
+		diseinfo = append(diseinfo, diseinfo_sun)
412
+	}
413
+
413
 	input["diseinfo"] = diseinfo
414
 	input["diseinfo"] = diseinfo
414
 	input["mdtrtinfo"] = inputData
415
 	input["mdtrtinfo"] = inputData
415
 	inputMessage["input"] = input //交易输入
416
 	inputMessage["input"] = input //交易输入
459
 }
460
 }
460
 
461
 
461
 // 门诊就诊信息上传
462
 // 门诊就诊信息上传
462
-func Gdyb2203A(psnNo string, mdtrtId string, doctor string, department string, diag string, org_name string, med_type string, doctor_id int64, fixmedins_code string, diag_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_code string, sick_name string, dept string) string {
463
+func Gdyb2203A(psnNo string, mdtrtId string, doctor string, department string, org_name string, med_type string, doctor_id int64, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_code string, sick_name string, dept string, config []*models.HisXtDiagnoseConfig) string {
463
 	// 生成签名
464
 	// 生成签名
464
 	nonce := GetRandomString(32)
465
 	nonce := GetRandomString(32)
465
 	timestamp := time.Now().Unix()
466
 	timestamp := time.Now().Unix()
478
 	inputData["psn_no"] = psnNo           // 人员编号 (来自1101接口返回)
479
 	inputData["psn_no"] = psnNo           // 人员编号 (来自1101接口返回)
479
 	inputData["med_type"] = med_type      // 医疗类别 16门诊特殊病
480
 	inputData["med_type"] = med_type      // 医疗类别 16门诊特殊病
480
 	inputData["begntime"] = timeFormatOne // 开始时间
481
 	inputData["begntime"] = timeFormatOne // 开始时间
481
-	inputData["begntime"] = "2021-04-10 12:20:30"
482
 
482
 
483
 	inputData["main_cond_dscr"] = ""    // 主要病情描述
483
 	inputData["main_cond_dscr"] = ""    // 主要病情描述
484
 	inputData["dise_codg"] = sick_code  // 病种编码
484
 	inputData["dise_codg"] = sick_code  // 病种编码
489
 	inputData["matn_type"] = "" // 生育类别
489
 	inputData["matn_type"] = "" // 生育类别
490
 	inputData["geso_val"] = ""  // 孕周数
490
 	inputData["geso_val"] = ""  // 孕周数
491
 
491
 
492
-	diseinfo_sun := make(map[string]interface{})
493
-	diseinfo_sun["diag_type"] = "1"           // 诊断类别
494
-	diseinfo_sun["diag_srt_no"] = "1"         // 诊断排序号
495
-	diseinfo_sun["diag_code"] = diag_code     // 诊断代码
496
-	diseinfo_sun["diag_name"] = diag          // 诊断名称
497
-	diseinfo_sun["diag_dept"] = department    // 诊断科室
498
-	diseinfo_sun["dise_dor_no"] = doctor_id   // 诊断医生编码
499
-	diseinfo_sun["dise_dor_name"] = doctor    // 诊断医生姓名
500
-	diseinfo_sun["diag_time"] = timeFormatOne // 诊断时间
501
-	diseinfo_sun["diag_time"] = "2021-04-10 12:20:30"
502
-
503
-	diseinfo_sun["vali_flag"] = "1" // 有效标志
492
+	for index, item := range config {
493
+		diseinfo_sun := make(map[string]interface{})
494
+		diseinfo_sun["diag_type"] = "1"              // 诊断类别
495
+		diseinfo_sun["diag_srt_no"] = index          // 诊断排序号
496
+		diseinfo_sun["diag_code"] = item.CountryCode // 诊断代码
497
+		diseinfo_sun["diag_name"] = item.ClassName   // 诊断名称
498
+		diseinfo_sun["diag_dept"] = department       // 诊断科室
499
+		diseinfo_sun["dise_dor_no"] = doctor_id      // 诊断医生编码
500
+		diseinfo_sun["dise_dor_name"] = doctor       // 诊断医生姓名
501
+		diseinfo_sun["diag_time"] = timeFormatOne    // 诊断时间
502
+		diseinfo_sun["vali_flag"] = "1"              // 有效标志
503
+		diseinfo = append(diseinfo, diseinfo_sun)
504
+	}
504
 
505
 
505
-	diseinfo = append(diseinfo, diseinfo_sun)
506
 	input["diseinfo"] = diseinfo
506
 	input["diseinfo"] = diseinfo
507
 	input["mdtrtinfo"] = inputData
507
 	input["mdtrtinfo"] = inputData
508
 	inputMessage["input"] = input //交易输入
508
 	inputMessage["input"] = input //交易输入
708
 		feedetailInfo["rxno"] = ""                     // 处方号
708
 		feedetailInfo["rxno"] = ""                     // 处方号
709
 		feedetailInfo["rx_circ_flag"] = "0"            // 外购处方标志
709
 		feedetailInfo["rx_circ_flag"] = "0"            // 外购处方标志
710
 		feedetailInfo["fee_ocur_time"] = timeFormatOne // 费用发生时间
710
 		feedetailInfo["fee_ocur_time"] = timeFormatOne // 费用发生时间
711
-		feedetailInfo["fee_ocur_time"] = "2021-04-10 12:20:30"
712
 
711
 
713
 		feedetailInfo["med_list_codg"] = item.MedListCodg            // 医疗目录编码
712
 		feedetailInfo["med_list_codg"] = item.MedListCodg            // 医疗目录编码
714
 		feedetailInfo["medins_list_codg"] = fixmedins_code           // 医药机构目录编码
713
 		feedetailInfo["medins_list_codg"] = fixmedins_code           // 医药机构目录编码

+ 3 - 3
service/sz_his_service.go Datei anzeigen

65
 	inputMessage["transType"] = "MZ002"         // 交易编码
65
 	inputMessage["transType"] = "MZ002"         // 交易编码
66
 	inputMessage["transVersion"] = version_code // 交易编码
66
 	inputMessage["transVersion"] = version_code // 交易编码
67
 
67
 
68
-	if medical_care == 11 {
68
+	if medical_care == 11 || medical_care == 1111 || medical_care == 1112 {
69
 		inputData["aka130"] = "11"
69
 		inputData["aka130"] = "11"
70
 	} else if medical_care == 13 {
70
 	} else if medical_care == 13 {
71
 		inputData["aka130"] = "13"
71
 		inputData["aka130"] = "13"
317
 	inputMessage["transVersion"] = version_code // 交易编码
317
 	inputMessage["transVersion"] = version_code // 交易编码
318
 	inputData["akc190"] = mz_number
318
 	inputData["akc190"] = mz_number
319
 
319
 
320
-	if medical_care == 11 {
320
+	if medical_care == 11 || medical_care == 1111 || medical_care == 1112 {
321
 		inputData["aka130"] = "11"
321
 		inputData["aka130"] = "11"
322
 	} else if medical_care == 13 {
322
 	} else if medical_care == 13 {
323
 		inputData["aka130"] = "13"
323
 		inputData["aka130"] = "13"
378
 
378
 
379
 	inputMessage["transVersion"] = version_code // 交易编码
379
 	inputMessage["transVersion"] = version_code // 交易编码
380
 
380
 
381
-	if medical_care == 11 {
381
+	if medical_care == 11 || medical_care == 1111 || medical_care == 1112 {
382
 		inputData["aka130"] = "11"
382
 		inputData["aka130"] = "11"
383
 	} else if medical_care == 13 {
383
 	} else if medical_care == 13 {
384
 		inputData["aka130"] = "13"
384
 		inputData["aka130"] = "13"