陈少旭 6 days ago
parent
commit
3d12e49373
2 changed files with 57 additions and 37 deletions
  1. 9 1
      controllers/sg/his_api_controller.go
  2. 48 36
      service/hn_service.go

+ 9 - 1
controllers/sg/his_api_controller.go View File

5867
 		struct3505.PharName = "廖志平"
5867
 		struct3505.PharName = "廖志平"
5868
 		struct3505.PharPracCertNo = "0136425"
5868
 		struct3505.PharPracCertNo = "0136425"
5869
 	}
5869
 	}
5870
+
5871
+	if org_id == 10387 {
5872
+		struct3505.PharName = "易圣"
5873
+		struct3505.PharPracCertNo = "D430726002209"
5874
+	}
5870
 	order := service.GetHisOrderByNumber(pre.BatchNumber)
5875
 	order := service.GetHisOrderByNumber(pre.BatchNumber)
5871
 	struct3505.SetlId = order.SetlId
5876
 	struct3505.SetlId = order.SetlId
5872
 	struct3505.MdtrtSn = order.MdtrtId
5877
 	struct3505.MdtrtSn = order.MdtrtId
6005
 		result, _ := json.Marshal(respJSON)
6010
 		result, _ := json.Marshal(respJSON)
6006
 		return string(result), ""
6011
 		return string(result), ""
6007
 
6012
 
6013
+	} else if miConfig.MdtrtareaAdmvs == "430800" {
6014
+		result1, result2 := service.Hnyb3505(struct3505)
6015
+		return result1, result2
6008
 	} else {
6016
 	} else {
6009
 		data := make(map[string]interface{})
6017
 		data := make(map[string]interface{})
6010
 		data["struct_3505s"] = struct3505
6018
 		data["struct_3505s"] = struct3505
32346
 				}
32354
 				}
32347
 			}
32355
 			}
32348
 
32356
 
32349
-			if res.Infcode == -1 {
32357
+			if res.Infcode != 0 {
32350
 				errlog := &models.HisOrderError{
32358
 				errlog := &models.HisOrderError{
32351
 					UserOrgId:  adminUser.CurrentOrgId,
32359
 					UserOrgId:  adminUser.CurrentOrgId,
32352
 					Ctime:      time.Now().Unix(),
32360
 					Ctime:      time.Now().Unix(),

+ 48 - 36
service/hn_service.go View File

6
 	"fmt"
6
 	"fmt"
7
 	"gdyb/models"
7
 	"gdyb/models"
8
 	"gdyb/utils/csbhttp"
8
 	"gdyb/utils/csbhttp"
9
+	"strings"
9
 
10
 
10
 	//"net/http"
11
 	//"net/http"
11
 	"strconv"
12
 	"strconv"
65
 	return HNHttpRequest(request_url, access_key, secret_key, timestamp2, string(bytesData), "1101"), inputLog
66
 	return HNHttpRequest(request_url, access_key, secret_key, timestamp2, string(bytesData), "1101"), inputLog
66
 }
67
 }
67
 
68
 
68
-//人员基本信息版本2
69
+// 人员基本信息版本2
69
 func Hnybyb1101A(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, card_sn string, certificates string, request_url string, access_key string, pBusiCardInfo string, id_card_no string, cainfo string) (string, string) {
70
 func Hnybyb1101A(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, card_sn string, certificates string, request_url string, access_key string, pBusiCardInfo string, id_card_no string, cainfo string) (string, string) {
70
 	timestamp := time.Now().Unix()
71
 	timestamp := time.Now().Unix()
71
 	//生成输入报文
72
 	//生成输入报文
195
 	inputMessage := SetHnInputMessage(timestamp, org_name, opera, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, cainfo)
196
 	inputMessage := SetHnInputMessage(timestamp, org_name, opera, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, cainfo)
196
 	input := make(map[string]interface{})
197
 	input := make(map[string]interface{})
197
 	inputData := make(map[string]interface{})
198
 	inputData := make(map[string]interface{})
198
-	inputMessage["infno"] = "2201"        // 交易编码
199
-	inputData["psn_no"] = psnNo           // 人员编号 (来自1101接口返回)
200
-	inputData["insutype"] = insutype      // 险种类型(来自1101接口返回)
201
-	inputData["begntime"] = begin // 开始时间
199
+	inputMessage["infno"] = "2201"   // 交易编码
200
+	inputData["psn_no"] = psnNo      // 人员编号 (来自1101接口返回)
201
+	inputData["insutype"] = insutype // 险种类型(来自1101接口返回)
202
+	inputData["begntime"] = begin    // 开始时间
202
 
203
 
203
 	if id_card_type == 1 {
204
 	if id_card_type == 1 {
204
 		inputData["mdtrt_cert_type"] = "03"        // 就诊凭证类型
205
 		inputData["mdtrt_cert_type"] = "03"        // 就诊凭证类型
342
 }
343
 }
343
 
344
 
344
 // 门诊就诊信息上传
345
 // 门诊就诊信息上传
345
-func Hnyb2203A(psnNo string, mdtrtId string, doctor string, department string, org_name string, med_type string, doctor_id string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_code string, sick_name string, dept string, config []*models.HisXtDiagnoseConfig, request_url string, access_key string, cainfo string,begin_time string) (string, string) {
346
+func Hnyb2203A(psnNo string, mdtrtId string, doctor string, department string, org_name string, med_type string, doctor_id string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_code string, sick_name string, dept string, config []*models.HisXtDiagnoseConfig, request_url string, access_key string, cainfo string, begin_time string) (string, string) {
346
 	// 生成签名
347
 	// 生成签名
347
 	timestamp := time.Now().Unix()
348
 	timestamp := time.Now().Unix()
348
 	tempTime := time.Unix(timestamp, 0)
349
 	tempTime := time.Unix(timestamp, 0)
358
 		med_type = "11"
359
 		med_type = "11"
359
 	}
360
 	}
360
 
361
 
361
-	inputMessage["infno"] = "2203"        // 交易编码
362
-	inputData["mdtrt_id"] = mdtrtId       // 就诊 ID(来自2201接口返回)
363
-	inputData["psn_no"] = psnNo           // 人员编号 (来自1101接口返回)
364
-	inputData["med_type"] = med_type      // 医疗类别 16门诊特殊病
362
+	inputMessage["infno"] = "2203"     // 交易编码
363
+	inputData["mdtrt_id"] = mdtrtId    // 就诊 ID(来自2201接口返回)
364
+	inputData["psn_no"] = psnNo        // 人员编号 (来自1101接口返回)
365
+	inputData["med_type"] = med_type   // 医疗类别 16门诊特殊病
365
 	inputData["begntime"] = begin_time // 开始时间
366
 	inputData["begntime"] = begin_time // 开始时间
366
 
367
 
367
 	inputData["main_cond_dscr"] = ""    // 主要病情描述
368
 	inputData["main_cond_dscr"] = ""    // 主要病情描述
405
 	return HNHttpRequest(request_url, access_key, secret_key, timestamp2, string(bytesData), "2203"), requestLog
406
 	return HNHttpRequest(request_url, access_key, secret_key, timestamp2, string(bytesData), "2203"), requestLog
406
 }
407
 }
407
 
408
 
408
-//  门诊费用明细信息上传
409
+// 门诊费用明细信息上传
409
 func Hnyb2204(psnNo string, mdtrtId string, hisPrescription []*models.HisPrescription, 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, balance_accounts_type string, diag_code string, request_url string, access_key string, new_doctor_name string, time_stamp_2203 string, cainfo string) (string, string) {
410
 func Hnyb2204(psnNo string, mdtrtId string, hisPrescription []*models.HisPrescription, 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, balance_accounts_type string, diag_code string, request_url string, access_key string, new_doctor_name string, time_stamp_2203 string, cainfo string) (string, string) {
410
 	// 生成签名
411
 	// 生成签名
411
 	//timestamp := time.Now().Unix()
412
 	//timestamp := time.Now().Unix()
413
 
414
 
414
 	timestamp2 := time.Now().Unix()
415
 	timestamp2 := time.Now().Unix()
415
 
416
 
416
-
417
 	var customs []*Custom
417
 	var customs []*Custom
418
 	for _, item := range hisPrescription {
418
 	for _, item := range hisPrescription {
419
 		//tm := time.Unix(item.PreTime, 0)
419
 		//tm := time.Unix(item.PreTime, 0)
537
 		feedetailInfo["rx_circ_flag"] = "0"                          // 外购处方标志
537
 		feedetailInfo["rx_circ_flag"] = "0"                          // 外购处方标志
538
 		feedetailInfo["fee_ocur_time"] = item.FeeOcurTime            // 费用发生时间
538
 		feedetailInfo["fee_ocur_time"] = item.FeeOcurTime            // 费用发生时间
539
 		feedetailInfo["med_list_codg"] = item.MedListCodg            // 医疗目录编码
539
 		feedetailInfo["med_list_codg"] = item.MedListCodg            // 医疗目录编码
540
-		feedetailInfo["medins_list_codg"] =  item.MedListCodg          // 医药机构目录编码
540
+		feedetailInfo["medins_list_codg"] = item.MedListCodg         // 医药机构目录编码
541
 		feedetailInfo["det_item_fee_sumamt"] = item.DetItemFeeSumamt // 明细项目费用总额
541
 		feedetailInfo["det_item_fee_sumamt"] = item.DetItemFeeSumamt // 明细项目费用总额
542
 		feedetailInfo["cnt"] = item.Cut                              // 数量
542
 		feedetailInfo["cnt"] = item.Cut                              // 数量
543
 		feedetailInfo["pric"] = item.Price                           // 单价
543
 		feedetailInfo["pric"] = item.Price                           // 单价
602
 	return HNHttpRequest(request_url, access_key, secret_key, timestamp5, string(bytesData), "2204"), requestLog
602
 	return HNHttpRequest(request_url, access_key, secret_key, timestamp5, string(bytesData), "2204"), requestLog
603
 }
603
 }
604
 
604
 
605
-//  门诊费用明细信息撤销
605
+// 门诊费用明细信息撤销
606
 func Hnyb2205(psnNo string, mdtrtId string, chrgBchno string, org_name string, doctor string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, fixmedins_code string, request_url string, access_key string, cainfo string) (string, string) {
606
 func Hnyb2205(psnNo string, mdtrtId string, chrgBchno string, org_name string, doctor string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, fixmedins_code string, request_url string, access_key string, cainfo string) (string, string) {
607
 
607
 
608
 	timestamp := time.Now().Unix()
608
 	timestamp := time.Now().Unix()
637
 	return HNHttpRequest(request_url, access_key, secret_key, timestamp2, string(bytesData), "2205"), requestLog
637
 	return HNHttpRequest(request_url, access_key, secret_key, timestamp2, string(bytesData), "2205"), requestLog
638
 }
638
 }
639
 
639
 
640
-//  门诊预结算
640
+// 门诊预结算
641
 func Hnyb2206(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, request_url string, access_key string, verify_number string, cainfo string, acct_used_flag string) (string, string) {
641
 func Hnyb2206(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, request_url string, access_key string, verify_number string, cainfo string, acct_used_flag string) (string, string) {
642
 
642
 
643
 	// 生成签名
643
 	// 生成签名
707
 
707
 
708
 }
708
 }
709
 
709
 
710
-//  门诊预结算
710
+// 门诊预结算
711
 func Hnyb2206Two(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, request_url string, access_key string, verify_number string, cainfo string, card_sn string, acct_used_flag string) (string, string) {
711
 func Hnyb2206Two(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, request_url string, access_key string, verify_number string, cainfo string, card_sn string, acct_used_flag string) (string, string) {
712
 
712
 
713
 	// 生成签名
713
 	// 生成签名
778
 
778
 
779
 }
779
 }
780
 
780
 
781
-//  门诊结算
781
+// 门诊结算
782
 func Hnyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, acct_used_flag string, request_url string, access_key string, verify_number string, cainfo string) (string, string) {
782
 func Hnyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, acct_used_flag string, request_url string, access_key string, verify_number string, cainfo string) (string, string) {
783
 	// 生成签名
783
 	// 生成签名
784
 	timestamp := time.Now().Unix()
784
 	timestamp := time.Now().Unix()
845
 
845
 
846
 }
846
 }
847
 
847
 
848
-//  门诊结算
848
+// 门诊结算
849
 func Hnyb2207Two(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, acct_used_flag string, request_url string, access_key string, verify_number string, cainfo string, card_sn string) (string, string) {
849
 func Hnyb2207Two(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, acct_used_flag string, request_url string, access_key string, verify_number string, cainfo string, card_sn string) (string, string) {
850
 	// 生成签名
850
 	// 生成签名
851
 	timestamp := time.Now().Unix()
851
 	timestamp := time.Now().Unix()
978
 
978
 
979
 }
979
 }
980
 
980
 
981
-//  门诊结算撤销
981
+// 门诊结算撤销
982
 func Hnyb2208(psnNo string, mdtrtId string, setlId string, org_name string, doctor string, secret_key string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, request_url string, access_key string, cainfo string) (string, string) {
982
 func Hnyb2208(psnNo string, mdtrtId string, setlId string, org_name string, doctor string, secret_key string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, request_url string, access_key string, cainfo string) (string, string) {
983
 	timestamp := time.Now().Unix()
983
 	timestamp := time.Now().Unix()
984
 	// 生成输入报文
984
 	// 生成输入报文
1033
 	return HNHttpRequest(baseParams.RequestUrl, baseParams.AccessKey, baseParams.SecretKey, timestamp2, string(bytesData), "5203"), string(bytesData)
1033
 	return HNHttpRequest(baseParams.RequestUrl, baseParams.AccessKey, baseParams.SecretKey, timestamp2, string(bytesData), "5203"), string(bytesData)
1034
 }
1034
 }
1035
 
1035
 
1036
-//CBS总线
1036
+// CBS总线
1037
 func HNHttpRequest(url string, ak string, sk string, timestamp int64, json string, infno string) string {
1037
 func HNHttpRequest(url string, ak string, sk string, timestamp int64, json string, infno string) string {
1038
 	fmt.Println(url)
1038
 	fmt.Println(url)
1039
 	//step 1. 设置请求参数
1039
 	//step 1. 设置请求参数
1638
 	inputData["opsp_mdtrt_date"] = ""                         // 门诊慢特病就诊日期  必填
1638
 	inputData["opsp_mdtrt_date"] = ""                         // 门诊慢特病就诊日期  必填
1639
 	inputData["ipt_med_type"] = struct4101.IptMedType         // 住院医疗类型  必填
1639
 	inputData["ipt_med_type"] = struct4101.IptMedType         // 住院医疗类型  必填
1640
 	inputData["adm_way"] = ""                                 // 入院途径  必填
1640
 	inputData["adm_way"] = ""                                 // 入院途径  必填
1641
-	inputData["trt_type"] = "10"                                // 治疗类别  必填
1641
+	inputData["trt_type"] = "10"                              // 治疗类别  必填
1642
 	inputData["adm_time"] = struct4101.AdmTime                // 入院时间  必填
1642
 	inputData["adm_time"] = struct4101.AdmTime                // 入院时间  必填
1643
 	inputData["adm_caty"] = struct4101.AdmCaty                // 入院科别  必填
1643
 	inputData["adm_caty"] = struct4101.AdmCaty                // 入院科别  必填
1644
 	inputData["refldept_dept"] = ""                           // 转科科别  必填
1644
 	inputData["refldept_dept"] = ""                           // 转科科别  必填
1916
 func Hnyb3505(struct3505 models.Struct3505) (string, string) {
1916
 func Hnyb3505(struct3505 models.Struct3505) (string, string) {
1917
 	timestamp := time.Now().Unix()
1917
 	timestamp := time.Now().Unix()
1918
 	// 生成输入报文
1918
 	// 生成输入报文
1919
-	inputMessage := SetHnInputMessage(timestamp, struct3505.OrgName, struct3505.Opter, struct3505.FixmedinsCode, struct3505.InsuplcAdmdvs, struct3505.MdtrtareaAdmvs, struct3505.Cainfo)
1919
+	inputMessage := SetHnInputMessage(timestamp, struct3505.OrgName, struct3505.Opter, struct3505.Code, struct3505.InsuplcAdmdvs, struct3505.MdtrtareaAdmvs, struct3505.Cainfo)
1920
 	input := make(map[string]interface{})
1920
 	input := make(map[string]interface{})
1921
 	inputData := make(map[string]interface{})
1921
 	inputData := make(map[string]interface{})
1922
-	inputMessage["infno"] = "3505"                              // 交易编码
1923
-	inputData["med_list_codg"] = struct3505.MedListCodg         // 定点医药机构目录编号
1924
-	inputData["fixmedins_hilist_id"] = struct3505.FixmedinsCode // 定点医药机构目录编号
1925
-	inputData["fixmedins_hilist_name"] = struct3505.OrgName     // 定点医药机构目录名称
1926
-	inputData["fixmedins_bchno"] = struct3505.FixmedinsCode     // 人员编号 (来自1101接口返回)
1922
+	inputMessage["infno"] = "3505"                                      // 交易编码
1923
+	inputData["med_list_codg"] = struct3505.MedListCodg                 // 定点医药机构目录编号
1924
+	inputData["fixmedins_hilist_id"] = struct3505.FixmedinsHilistId     // 定点医药机构目录编号
1925
+	inputData["fixmedins_hilist_name"] = struct3505.FixmedinsHilistName // 定点医药机构目录名称
1926
+	inputData["fixmedins_bchno"] = struct3505.FixmedinsCode             // 人员编号 (来自1101接口返回)
1927
 
1927
 
1928
 	inputData["prsc_dr_cert_type"] = struct3505.PrscDrCertType // 人员编号 (来自1101接口返回)
1928
 	inputData["prsc_dr_cert_type"] = struct3505.PrscDrCertType // 人员编号 (来自1101接口返回)
1929
 	inputData["prsc_dr_certno"] = struct3505.PrscDrCertno      // 人员编号 (来自1101接口返回)
1929
 	inputData["prsc_dr_certno"] = struct3505.PrscDrCertno      // 人员编号 (来自1101接口返回)
1951
 	inputData["rxno"] = struct3505.Rxno                   // 人员编号 (来自1101接口返回)
1951
 	inputData["rxno"] = struct3505.Rxno                   // 人员编号 (来自1101接口返回)
1952
 	inputData["rx_circ_flag"] = struct3505.RxCircFlag     // 人员编号 (来自1101接口返回)
1952
 	inputData["rx_circ_flag"] = struct3505.RxCircFlag     // 人员编号 (来自1101接口返回)
1953
 
1953
 
1954
-	inputData["rtal_docno"] = struct3505.RtalDocno // 人员编号 (来自1101接口返回)
1955
-	inputData["stoout_no"] = struct3505.StooutNo   // 人员编号 (来自1101接口返回)
1954
+	inputData["rtal_docno"] = struct3505.RtalDocno          // 人员编号 (来自1101接口返回)
1955
+	inputData["stoout_no"] = struct3505.StooutNo            // 人员编号 (来自1101接口返回)
1956
+	inputData["MDTRT_SETL_TYPE"] = struct3505.MdtrtSetlType // 人员编号 (来自1101接口返回)
1956
 
1957
 
1957
 	inputData["bchno"] = struct3505.Bchno                          // 人员编号 (来自1101接口返回)
1958
 	inputData["bchno"] = struct3505.Bchno                          // 人员编号 (来自1101接口返回)
1958
-	inputData["drug_trac_codg"] = struct3505.DrugTracCodg          // 人员编号 (来自1101接口返回)
1959
+	inputData["drug_trac_codg"] = "--"                             // 人员编号 (来自1101接口返回)
1959
 	inputData["drug_prod_barc"] = struct3505.DrugProdBarc          // 人员编号 (来自1101接口返回)
1960
 	inputData["drug_prod_barc"] = struct3505.DrugProdBarc          // 人员编号 (来自1101接口返回)
1960
 	inputData["shelf_posi"] = struct3505.ShelfPosi                 // 人员编号 (来自1101接口返回)
1961
 	inputData["shelf_posi"] = struct3505.ShelfPosi                 // 人员编号 (来自1101接口返回)
1961
 	inputData["sel_retn_cnt"] = struct3505.SelRetnCnt              // 人员编号 (来自1101接口返回)
1962
 	inputData["sel_retn_cnt"] = struct3505.SelRetnCnt              // 人员编号 (来自1101接口返回)
1962
 	inputData["sel_retn_time"] = struct3505.SelRetnTime            // 人员编号 (来自1101接口返回)
1963
 	inputData["sel_retn_time"] = struct3505.SelRetnTime            // 人员编号 (来自1101接口返回)
1963
 	inputData["sel_retn_opter_name"] = struct3505.SelRetnOpterName // 人员编号 (来自1101接口返回)
1964
 	inputData["sel_retn_opter_name"] = struct3505.SelRetnOpterName // 人员编号 (来自1101接口返回)
1964
 	inputData["memo"] = struct3505.Memo                            // 人员编号 (来自1101接口返回)
1965
 	inputData["memo"] = struct3505.Memo                            // 人员编号 (来自1101接口返回)
1966
+	feedetail := make([]map[string]interface{}, 0)
1967
+
1968
+	codes := strings.Split(struct3505.DrugTracCodg, ",")
1969
+	for _, item := range codes {
1970
+		if len(item) > 0 {
1971
+
1972
+			druginputData := make(map[string]interface{})
1973
+			druginputData["drug_trac_codg"] = removeNonDigits(item)
1974
+			feedetail = append(feedetail, druginputData)
1975
+		}
1976
+	}
1977
+	inputData["drugtracinfo"] = feedetail
1965
 	input["selinfo"] = inputData
1978
 	input["selinfo"] = inputData
1966
 	inputMessage["input"] = input //交易输入
1979
 	inputMessage["input"] = input //交易输入
1967
 
1980
 
1975
 	return HNHttpRequest(struct3505.RequestUrl, struct3505.AccessKey, struct3505.SecretKey, timestamp, string(bytesData), "3505"), string(bytesData)
1988
 	return HNHttpRequest(struct3505.RequestUrl, struct3505.AccessKey, struct3505.SecretKey, timestamp, string(bytesData), "3505"), string(bytesData)
1976
 
1989
 
1977
 }
1990
 }
1991
+
1978
 func Hnyb3506(struct3506 models.Struct3506) (string, string) {
1992
 func Hnyb3506(struct3506 models.Struct3506) (string, string) {
1979
 	timestamp := time.Now().Unix()
1993
 	timestamp := time.Now().Unix()
1980
 	// 生成输入报文
1994
 	// 生成输入报文
2042
 
2056
 
2043
 }
2057
 }
2044
 
2058
 
2045
-
2046
-
2047
-func Hnyb3301(org_name string,opera string,fixmedins_code string,insuplc_admdvs string,mdtrtarea_admvs string,cainfo string, name string, codg string, list_type string,start_time string, ent_time string, request_url string,access_key string,secret_key string) (string,string) {
2059
+func Hnyb3301(org_name string, opera string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, cainfo string, name string, codg string, list_type string, start_time string, ent_time string, request_url string, access_key string, secret_key string) (string, string) {
2048
 	// 生成签名
2060
 	// 生成签名
2049
 	//nonce := GetRandomString(32)
2061
 	//nonce := GetRandomString(32)
2050
 	// 生成签名
2062
 	// 生成签名
2082
 	fmt.Println(string(bytesData))
2094
 	fmt.Println(string(bytesData))
2083
 	if err != nil {
2095
 	if err != nil {
2084
 		fmt.Println(err.Error())
2096
 		fmt.Println(err.Error())
2085
-		return err.Error(),""
2097
+		return err.Error(), ""
2086
 	}
2098
 	}
2087
 
2099
 
2088
 	request_url = request_url + "3301"
2100
 	request_url = request_url + "3301"
2090
 	return HNHttpRequest(request_url, access_key, secret_key, timestamp2, string(bytesData), "3301"), string(bytesData)
2102
 	return HNHttpRequest(request_url, access_key, secret_key, timestamp2, string(bytesData), "3301"), string(bytesData)
2091
 
2103
 
2092
 }
2104
 }
2093
-func Hnyb3302(org_name string,opera string,fixmedins_code string,insuplc_admdvs string,mdtrtarea_admvs string,cainfo string, name string, codg string, list_type string,start_time string, ent_time string, request_url string,access_key string,secret_key string) (string,string) {
2105
+func Hnyb3302(org_name string, opera string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, cainfo string, name string, codg string, list_type string, start_time string, ent_time string, request_url string, access_key string, secret_key string) (string, string) {
2094
 	// 生成签名
2106
 	// 生成签名
2095
 	//nonce := GetRandomString(32)
2107
 	//nonce := GetRandomString(32)
2096
 	// 生成签名
2108
 	// 生成签名
2116
 	fmt.Println(string(bytesData))
2128
 	fmt.Println(string(bytesData))
2117
 	if err != nil {
2129
 	if err != nil {
2118
 		fmt.Println(err.Error())
2130
 		fmt.Println(err.Error())
2119
-		return err.Error(),""
2131
+		return err.Error(), ""
2120
 	}
2132
 	}
2121
 
2133
 
2122
 	request_url = request_url + "3302"
2134
 	request_url = request_url + "3302"