Browse Source

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

csx 3 years ago
parent
commit
bf7a35cee4

+ 36 - 36
controllers/sg/gdyb_controller.go View File

@@ -19,7 +19,7 @@ func GdybRegistRouters() {
19 19
 	beego.Router("/gdyb/one", &GdybController{}, "get:PostOne")
20 20
 	beego.Router("/gdyb/two", &GdybController{}, "get:PostTwo")
21 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 23
 	beego.Router("/gdyb/five", &GdybController{}, "post:PostFive")
24 24
 	beego.Router("/gdyb/six", &GdybController{}, "get:PostSix")
25 25
 	//beego.Router("/gdyb/seven", &GdybController{}, "get:PostSeven")
@@ -146,41 +146,41 @@ func (c *GdybController) PostThree() {
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 185
 type All struct {
186 186
 	HisPrescription HisPrescription

+ 82 - 49
controllers/sg/his_api_controller.go View File

@@ -337,17 +337,28 @@ func (c *HisApiController) GetSettleList() {
337 337
 	struct4101.CustomStruct = tempFunPays
338 338
 
339 339
 	var tempOpspdiseinfos []service.OpspdiseinfoStruct
340
-	var tempOpspdiseinfo service.OpspdiseinfoStruct
341 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 362
 	tempOpspdiseinfo2.DiagCode = sickConfigTwo.CountryCode
352 363
 	tempOpspdiseinfo2.DiagName = sickConfigTwo.CountryContentName
353 364
 	tempOpspdiseinfo2.MaindiagFlag = "2"
@@ -1810,7 +1821,7 @@ func (c *HisApiController) GetUploadInfo() {
1810 1821
 	fapiao_code := c.GetString("fapiao_code")
1811 1822
 	fapiao_number := c.GetString("fapiao_number")
1812 1823
 
1813
-	diagnosis_id, _ := c.GetInt64("diagnosis")
1824
+	diagnosis_id := c.GetString("diagnosis")
1814 1825
 	sick_type, _ := c.GetInt64("sick_type")
1815 1826
 	reg_type, _ := c.GetInt64("p_type")
1816 1827
 
@@ -1865,33 +1876,31 @@ func (c *HisApiController) GetUploadInfo() {
1865 1876
 	miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
1866 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 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 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 1900
 			utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
1891 1901
 			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1892 1902
 			return
1893 1903
 		}
1894
-		respJSON2 = respJSON2["data"].(map[string]interface{})["pre"].(map[string]interface{})
1895 1904
 		userJSONBytes2, _ := json.Marshal(respJSON2)
1896 1905
 
1897 1906
 		var res2 ResultSix
@@ -1920,7 +1929,7 @@ func (c *HisApiController) GetUploadInfo() {
1920 1929
 			return
1921 1930
 
1922 1931
 		} else {
1923
-			his.Diagnosis = diagnosisConfig.ID
1932
+			his.Diagnosis = diagnosis_id
1924 1933
 			his.SickType = sickConfig.ID
1925 1934
 			his.PType = fmt.Sprintf("%d", reg_type)
1926 1935
 			service.UpdateHisPatientThree(&his)
@@ -2047,6 +2056,7 @@ func (c *HisApiController) GetUploadInfo() {
2047 2056
 						FaPiaoNumber:          fapiao_number,
2048 2057
 						FaPiaoCode:            fapiao_code,
2049 2058
 						PType:                 2,
2059
+						Diagnosis:             diagnosis_id,
2050 2060
 					}
2051 2061
 					err = service.CreateOrder(order)
2052 2062
 					if err != nil {
@@ -2456,6 +2466,7 @@ func (c *HisApiController) GetUploadInfo() {
2456 2466
 				order.Creator = order.Creator
2457 2467
 				order.Modify = roles.AdminUserId
2458 2468
 				order.RequestLog = src_resquest
2469
+				order.Diagnosis = diagnosis_id
2459 2470
 				setlDetail, _ := json.Marshal(res.Output.Setldetail)
2460 2471
 				detailStr := string(setlDetail)
2461 2472
 				order.SetlDetail = detailStr
@@ -3010,7 +3021,7 @@ func (c *HisApiController) GetPreUploadInfo() {
3010 3021
 	settle_accounts_type, _ := c.GetInt64("settle_accounts_type")
3011 3022
 	admin_user_id, _ := c.GetInt64("admin_user_id")
3012 3023
 
3013
-	diagnosis_id, _ := c.GetInt64("diagnosis")
3024
+	diagnosis_id := c.GetString("diagnosis")
3014 3025
 	sick_type, _ := c.GetInt64("sick_type")
3015 3026
 	reg_type, _ := c.GetInt64("p_type")
3016 3027
 
@@ -3024,7 +3035,16 @@ func (c *HisApiController) GetPreUploadInfo() {
3024 3035
 	recordDateTime := theTime.Unix()
3025 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 3048
 	sickConfig, _ := service.FindSickById(sick_type)
3029 3049
 
3030 3050
 	var prescriptions []*models.HisPrescription
@@ -3045,28 +3065,20 @@ func (c *HisApiController) GetPreUploadInfo() {
3045 3065
 	department, _ := service.GetDepartMentDetail(patientPrescription.Departments)
3046 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 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 3078
 		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
3066 3079
 		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
3067 3080
 		return
3068 3081
 	}
3069
-	respJSON2 = respJSON2["data"].(map[string]interface{})["pre"].(map[string]interface{})
3070 3082
 	userJSONBytes2, _ := json.Marshal(respJSON2)
3071 3083
 
3072 3084
 	var res2 ResultSix
@@ -3095,6 +3107,10 @@ func (c *HisApiController) GetPreUploadInfo() {
3095 3107
 		return
3096 3108
 
3097 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 3115
 		data := make(map[string]interface{})
3100 3116
 		if settle_accounts_type == 1 { //日结
@@ -3199,7 +3215,9 @@ func (c *HisApiController) GetPreUploadInfo() {
3199 3215
 					Creator:             roles.AdminUserId,
3200 3216
 					Modify:              roles.AdminUserId,
3201 3217
 					PType:               2,
3218
+					Diagnosis:           diagnosis_id,
3202 3219
 				}
3220
+
3203 3221
 				err = service.CreateOrder(order)
3204 3222
 				if err != nil {
3205 3223
 					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreatePreOrderException)
@@ -4384,7 +4402,22 @@ func (c *HisApiController) GetSettleAccounts() {
4384 4402
 	orderInfos, _ := service.GetHisOrderInfoByNumber(order.Number)
4385 4403
 	orderInfos_two, _ := service.GetHisOrderInfoByNumberTwo(order.Number)
4386 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 4422
 	var bedCostTotal float64 = 0         //床位总费
4390 4423
 	var bedCostSelfTotal float64 = 0     //床位自费
@@ -4528,7 +4561,7 @@ func (c *HisApiController) GetSettleAccounts() {
4528 4561
 
4529 4562
 		if res.Infcode == 0 {
4530 4563
 			c.ServeSuccessJSON(map[string]interface{}{
4531
-				"diagnosis":                                   diagnosisConfig.CountryContentName,
4564
+				"diagnosis":                                   name,
4532 4565
 				"order_infos":                                 orderInfos,
4533 4566
 				"number":                                      order.MdtrtId,
4534 4567
 				"date":                                        order.SettleAccountsDate,

+ 5 - 2
models/his_models.go View File

@@ -119,7 +119,7 @@ type HisPatient struct {
119 119
 	SocialType             int64   `gorm:"column:social_type" json:"social_type" form:"social_type"`
120 120
 	IdCardType             int64   `gorm:"column:id_card_type" json:"id_card_type" form:"id_card_type"`
121 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 123
 	SickType               int64   `gorm:"column:sick_type" json:"sick_type" form:"sick_type"`
124 124
 	YiliaoNumber           string  `gorm:"column:yiliao_number" json:"yiliao_number" form:"yiliao_number"`
125 125
 	MzNumber               string  `gorm:"column:mz_number" json:"mz_number" form:"mz_number"`
@@ -587,6 +587,7 @@ type XtHisPatient struct {
587 587
 	YiliaoNumber           string  `gorm:"column:yiliao_number" json:"yiliao_number" form:"yiliao_number"`
588 588
 	MzNumber               string  `gorm:"column:mz_number" json:"mz_number" form:"mz_number"`
589 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 593
 func (XtHisPatient) TableName() string {
@@ -694,6 +695,8 @@ type HisOrder struct {
694 695
 
695 696
 	PType int64 `gorm:"column:p_type" json:"p_type" form:"p_type"`
696 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 702
 func (HisOrder) TableName() string {
@@ -789,7 +792,7 @@ type VMHisPatient struct {
789 792
 	YiliaoNumber           string  `gorm:"column:yiliao_number" json:"yiliao_number" form:"yiliao_number"`
790 793
 	MzNumber               string  `gorm:"column:mz_number" json:"mz_number" form:"mz_number"`
791 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 796
 	SickType               int64   `gorm:"column:sick_type" json:"sick_type" form:"sick_type"`
794 797
 	PType                  int64   `gorm:"column:p_type" json:"p_type" form:"p_type"`
795 798
 }

+ 49 - 50
service/gdyb_service.go View File

@@ -234,17 +234,17 @@ func Gdyb2201(psnNo string, insutype string, certNo string, org_name string, doc
234 234
 	nonce := GetRandomString(32)
235 235
 	timestamp := time.Now().Unix()
236 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 241
 	inputMessage := SetInputMessage(nonce, timestamp, org_name, dept, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
242 242
 	input := make(map[string]interface{})
243 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 249
 	//if id_card_type == 1 {
250 250
 	//	inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
@@ -371,13 +371,13 @@ func Gdyb2202(psnNo string, mdtrtId string, ipt_otp_no string, org_name string,
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 376
 	nonce := GetRandomString(32)
377 377
 	timestamp := time.Now().Unix()
378 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 383
 	inputMessage := SetInputMessage(nonce, timestamp, org_name, dept, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
@@ -385,31 +385,32 @@ func Gdyb2203(psnNo string, mdtrtId string, doctor string, department string, di
385 385
 	inputData := make(map[string]interface{})
386 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 414
 	input["diseinfo"] = diseinfo
414 415
 	input["mdtrtinfo"] = inputData
415 416
 	inputMessage["input"] = input //交易输入
@@ -459,7 +460,7 @@ func Gdyb2203(psnNo string, mdtrtId string, doctor string, department string, di
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 465
 	nonce := GetRandomString(32)
465 466
 	timestamp := time.Now().Unix()
@@ -478,7 +479,6 @@ func Gdyb2203A(psnNo string, mdtrtId string, doctor string, department string, d
478 479
 	inputData["psn_no"] = psnNo           // 人员编号 (来自1101接口返回)
479 480
 	inputData["med_type"] = med_type      // 医疗类别 16门诊特殊病
480 481
 	inputData["begntime"] = timeFormatOne // 开始时间
481
-	inputData["begntime"] = "2021-04-10 12:20:30"
482 482
 
483 483
 	inputData["main_cond_dscr"] = ""    // 主要病情描述
484 484
 	inputData["dise_codg"] = sick_code  // 病种编码
@@ -489,20 +489,20 @@ func Gdyb2203A(psnNo string, mdtrtId string, doctor string, department string, d
489 489
 	inputData["matn_type"] = "" // 生育类别
490 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 506
 	input["diseinfo"] = diseinfo
507 507
 	input["mdtrtinfo"] = inputData
508 508
 	inputMessage["input"] = input //交易输入
@@ -708,7 +708,6 @@ func Gdyb2204(psnNo string, mdtrtId string, hisPrescription []*models.HisPrescri
708 708
 		feedetailInfo["rxno"] = ""                     // 处方号
709 709
 		feedetailInfo["rx_circ_flag"] = "0"            // 外购处方标志
710 710
 		feedetailInfo["fee_ocur_time"] = timeFormatOne // 费用发生时间
711
-		feedetailInfo["fee_ocur_time"] = "2021-04-10 12:20:30"
712 711
 
713 712
 		feedetailInfo["med_list_codg"] = item.MedListCodg            // 医疗目录编码
714 713
 		feedetailInfo["medins_list_codg"] = fixmedins_code           // 医药机构目录编码

+ 3 - 3
service/sz_his_service.go View File

@@ -65,7 +65,7 @@ func SzybMZ002(doctor string, doctor_code string, fixmedins_code string, dept_co
65 65
 	inputMessage["transType"] = "MZ002"         // 交易编码
66 66
 	inputMessage["transVersion"] = version_code // 交易编码
67 67
 
68
-	if medical_care == 11 {
68
+	if medical_care == 11 || medical_care == 1111 || medical_care == 1112 {
69 69
 		inputData["aka130"] = "11"
70 70
 	} else if medical_care == 13 {
71 71
 		inputData["aka130"] = "13"
@@ -317,7 +317,7 @@ func SzybFY004(doctor string, doctor_code string, fixmedins_code string, total f
317 317
 	inputMessage["transVersion"] = version_code // 交易编码
318 318
 	inputData["akc190"] = mz_number
319 319
 
320
-	if medical_care == 11 {
320
+	if medical_care == 11 || medical_care == 1111 || medical_care == 1112 {
321 321
 		inputData["aka130"] = "11"
322 322
 	} else if medical_care == 13 {
323 323
 		inputData["aka130"] = "13"
@@ -378,7 +378,7 @@ func SzybFY005(doctor string, doctor_code string, fixmedins_code string, total f
378 378
 
379 379
 	inputMessage["transVersion"] = version_code // 交易编码
380 380
 
381
-	if medical_care == 11 {
381
+	if medical_care == 11 || medical_care == 1111 || medical_care == 1112 {
382 382
 		inputData["aka130"] = "11"
383 383
 	} else if medical_care == 13 {
384 384
 		inputData["aka130"] = "13"