Browse Source

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

csx 4 years ago
parent
commit
8c8d90c864
2 changed files with 119 additions and 134 deletions
  1. 1 1
      controllers/sg/his_api_controller.go
  2. 118 133
      service/gdyb_service.go

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

@@ -3668,7 +3668,7 @@ func (c *HisApiController) GetCheckCode() {
3668 3668
 	}
3669 3669
 
3670 3670
 	if config.IsOpen == 1 {
3671
-		result := service.Gdyb3301(baseParams, name, codg, list_type_code)
3671
+		result := service.Gdyb3301(baseParams, name, codg, list_type_code, "", "")
3672 3672
 		var dat map[string]interface{}
3673 3673
 		if err := json.Unmarshal([]byte(result), &dat); err == nil {
3674 3674
 			fmt.Println(dat)

+ 118 - 133
service/gdyb_service.go View File

@@ -1327,7 +1327,7 @@ func Gdyb5203(baseParams models.BaseParams, businessParams models.BusinessParams
1327 1327
 	return str
1328 1328
 }
1329 1329
 
1330
-func Gdyb3301(baseParams *models.BaseParams, name string, codg string, list_type_code string) string {
1330
+func Gdyb2001(baseParams models.BaseParams, psn_no string, insutype string, med_type string) string {
1331 1331
 	// 生成签名
1332 1332
 	nonce := GetRandomString(32)
1333 1333
 	timestamp := time.Now().Unix()
@@ -1337,24 +1337,12 @@ func Gdyb3301(baseParams *models.BaseParams, name string, codg string, list_type
1337 1337
 	inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
1338 1338
 	input := make(map[string]interface{})
1339 1339
 	inputData := make(map[string]interface{})
1340
-	inputMessage["infno"] = "3301" // 交易编码
1341
-	inputData["fixmedins_hilist_id"] = baseParams.FixmedinsCode
1342
-	inputData["fixmedins_hilist_name"] = baseParams.OrgName
1343
-	inputData["list_type"] = list_type_code
1344
-	inputData["med_list_codg"] = codg
1345
-	inputData["begndate"] = "2021-01-01"
1346
-	inputData["enddate"] = "2099-01-07"
1347
-
1348
-	inputData["aprvno"] = ""
1349
-	inputData["dosform"] = ""
1350
-	inputData["exct_cont"] = ""
1351
-	inputData["item_cont"] = ""
1352
-	inputData["prcunt"] = ""
1353
-	inputData["spec"] = ""
1354
-	inputData["pacspec"] = ""
1355
-	inputData["memo"] = ""
1356
-
1357
-	input["catalogcompin"] = inputData
1340
+	inputMessage["infno"] = "2001" // 交易编码
1341
+	inputData["psn_no"] = psn_no
1342
+	inputData["insutype"] = insutype
1343
+	inputData["med_type"] = med_type
1344
+	inputData["begntime"] = "2021-01-01 00:00:00"
1345
+	input["data"] = inputData
1358 1346
 	inputMessage["input"] = input //交易输入
1359 1347
 	bytesData, err := json.Marshal(inputMessage)
1360 1348
 	fmt.Println(string(bytesData))
@@ -1391,7 +1379,8 @@ func Gdyb3301(baseParams *models.BaseParams, name string, codg string, list_type
1391 1379
 	fmt.Println(str)
1392 1380
 	return str
1393 1381
 }
1394
-func Gdyb3302(baseParams *models.BaseParams, name string, codg string, list_type_code string) string {
1382
+
1383
+func Gdyb3301(baseParams *models.BaseParams, name string, codg string, list_type_code string, start_time string, ent_time string) string {
1395 1384
 	// 生成签名
1396 1385
 	nonce := GetRandomString(32)
1397 1386
 	timestamp := time.Now().Unix()
@@ -1401,13 +1390,22 @@ func Gdyb3302(baseParams *models.BaseParams, name string, codg string, list_type
1401 1390
 	inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
1402 1391
 	input := make(map[string]interface{})
1403 1392
 	inputData := make(map[string]interface{})
1404
-	inputMessage["infno"] = "3302" // 交易编码
1405
-	inputData["fixmedins_hilist_id"] = baseParams.FixmedinsCode
1406
-	inputData["fixmedins_hilist_name"] = baseParams.OrgName
1393
+	inputMessage["infno"] = "3301" // 交易编码
1394
+	inputData["fixmedins_hilist_id"] = codg
1395
+	inputData["fixmedins_hilist_name"] = name
1407 1396
 	inputData["list_type"] = list_type_code
1408 1397
 	inputData["med_list_codg"] = codg
1409
-	inputData["begndate"] = "2021-01-01"
1410
-	inputData["enddate"] = "2099-01-07"
1398
+	inputData["begndate"] = start_time
1399
+	inputData["enddate"] = ent_time
1400
+
1401
+	inputData["aprvno"] = ""
1402
+	inputData["dosform"] = ""
1403
+	inputData["exct_cont"] = ""
1404
+	inputData["item_cont"] = ""
1405
+	inputData["prcunt"] = ""
1406
+	inputData["spec"] = ""
1407
+	inputData["pacspec"] = ""
1408
+	inputData["memo"] = ""
1411 1409
 
1412 1410
 	input["catalogcompin"] = inputData
1413 1411
 	inputMessage["input"] = input //交易输入
@@ -1446,7 +1444,7 @@ func Gdyb3302(baseParams *models.BaseParams, name string, codg string, list_type
1446 1444
 	fmt.Println(str)
1447 1445
 	return str
1448 1446
 }
1449
-func Gdyb2001(baseParams models.BaseParams, psn_no string, insutype string, med_type string) string {
1447
+func Gdyb3302(baseParams *models.BaseParams, name string, codg string, list_type_code string) string {
1450 1448
 	// 生成签名
1451 1449
 	nonce := GetRandomString(32)
1452 1450
 	timestamp := time.Now().Unix()
@@ -1456,12 +1454,15 @@ func Gdyb2001(baseParams models.BaseParams, psn_no string, insutype string, med_
1456 1454
 	inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
1457 1455
 	input := make(map[string]interface{})
1458 1456
 	inputData := make(map[string]interface{})
1459
-	inputMessage["infno"] = "2001" // 交易编码
1460
-	inputData["psn_no"] = psn_no
1461
-	inputData["insutype"] = insutype
1462
-	inputData["med_type"] = med_type
1463
-	inputData["begntime"] = "2021-01-01 00:00:00"
1464
-	input["data"] = inputData
1457
+	inputMessage["infno"] = "3302" // 交易编码
1458
+	inputData["fixmedins_hilist_id"] = codg
1459
+	inputData["fixmedins_hilist_name"] = name
1460
+	inputData["list_type"] = list_type_code
1461
+	inputData["med_list_codg"] = codg
1462
+	inputData["begndate"] = "2021-01-01"
1463
+	inputData["enddate"] = "2099-01-07"
1464
+
1465
+	input["catalogcompin"] = inputData
1465 1466
 	inputMessage["input"] = input //交易输入
1466 1467
 	bytesData, err := json.Marshal(inputMessage)
1467 1468
 	fmt.Println(string(bytesData))
@@ -1470,7 +1471,7 @@ func Gdyb2001(baseParams models.BaseParams, psn_no string, insutype string, med_
1470 1471
 		return err.Error()
1471 1472
 	}
1472 1473
 	reader := bytes.NewReader(bytesData)
1473
-	url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/3301"
1474
+	url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/3302"
1474 1475
 
1475 1476
 	//url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/5203"
1476 1477
 	request, err := http.NewRequest("POST", url, reader)
@@ -1498,7 +1499,6 @@ func Gdyb2001(baseParams models.BaseParams, psn_no string, insutype string, med_
1498 1499
 	fmt.Println(str)
1499 1500
 	return str
1500 1501
 }
1501
-
1502 1502
 func Gdyb2505(psnNo string, doctor string, org_name string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, start_time string, end_time string) string {
1503 1503
 	// 生成签名
1504 1504
 	nonce := GetRandomString(32)
@@ -1509,54 +1509,42 @@ func Gdyb2505(psnNo string, doctor string, org_name string, fixmedins_code strin
1509 1509
 	inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
1510 1510
 	input := make(map[string]interface{})
1511 1511
 	inputData := make(map[string]interface{})
1512
-
1513 1512
 	inputMessage["infno"] = "2505"
1514 1513
 	inputData["psn_no"] = psnNo
1515
-	inputData["tel"] = ""
1516
-	inputData["addr"] = ""
1517 1514
 	inputData["biz_appy_type"] = "03"
1518 1515
 	inputData["begndate"] = start_time
1519 1516
 	inputData["enddate"] = end_time
1517
+	inputData["fixmedins_code"] = fixmedins_code
1518
+	inputData["fixmedins_name"] = org_name
1519
+	inputData["tel"] = ""
1520
+	inputData["addr"] = ""
1520 1521
 	inputData["agnter_name"] = ""
1521 1522
 	inputData["agnter_cert_type"] = ""
1522 1523
 	inputData["agnter_certno"] = ""
1523
-
1524 1524
 	inputData["agnter_tel"] = ""
1525 1525
 	inputData["agnter_addr"] = ""
1526 1526
 	inputData["agnter_rlts"] = ""
1527 1527
 	inputData["fix_srt_no"] = ""
1528
-
1529
-	inputData["fixmedins_code"] = fixmedins_code
1530
-	inputData["fixmedins_name"] = org_name
1531 1528
 	inputData["memo"] = ""
1532
-
1533 1529
 	input["data"] = inputData
1534 1530
 	inputMessage["input"] = input //交易输入
1535
-
1536 1531
 	bytesData, err := json.Marshal(inputMessage)
1537
-	fmt.Println(string(bytesData))
1538 1532
 	if err != nil {
1539 1533
 		fmt.Println(err.Error())
1540 1534
 		return err.Error()
1541 1535
 	}
1542 1536
 	reader := bytes.NewReader(bytesData)
1543
-
1544 1537
 	url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2505"
1545
-	//url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2203"
1546
-
1547
-	//url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2203"
1548 1538
 	request, err := http.NewRequest("POST", url, reader)
1549 1539
 	if err != nil {
1550 1540
 		fmt.Println(err.Error())
1551 1541
 		return err.Error()
1552 1542
 	}
1553
-
1554 1543
 	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
1555 1544
 	request.Header.Set("x-tif-paasid", "sg03_prd")
1556 1545
 	request.Header.Set("x-tif-signature", signature)
1557 1546
 	request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
1558 1547
 	request.Header.Set("x-tif-nonce", nonce)
1559
-
1560 1548
 	client := http.Client{}
1561 1549
 	resp, err := client.Do(request)
1562 1550
 	if err != nil {
@@ -1577,12 +1565,10 @@ func Gdyb2506(psnNo string, doctor string, org_name string, fixmedins_code strin
1577 1565
 	nonce := GetRandomString(32)
1578 1566
 	timestamp := time.Now().Unix()
1579 1567
 	signature := setSignature(timestamp, nonce, secret_key)
1580
-
1581 1568
 	// 生成输入报文
1582 1569
 	inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
1583 1570
 	input := make(map[string]interface{})
1584 1571
 	inputData := make(map[string]interface{})
1585
-
1586 1572
 	inputMessage["infno"] = "2506"
1587 1573
 	inputData["psn_no"] = psnNo
1588 1574
 	inputData["trt_dcla_detl_sn"] = trt_dcla_detl_sn
@@ -1628,86 +1614,6 @@ func Gdyb2506(psnNo string, doctor string, org_name string, fixmedins_code strin
1628 1614
 	fmt.Println(str)
1629 1615
 	return str
1630 1616
 }
1631
-
1632
-//func Gdyb2503(psnNo 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) string {
1633
-//	// 生成签名
1634
-//	nonce := GetRandomString(32)
1635
-//	timestamp := time.Now().Unix()
1636
-//	signature := setSignature(timestamp, nonce, secret_key)
1637
-//	tempTime := time.Unix(timestamp, 0)
1638
-//	timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
1639
-//
1640
-//	// 生成输入报文
1641
-//	inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
1642
-//	input := make(map[string]interface{})
1643
-//	inputData := make(map[string]interface{})
1644
-//	diseinfo := make([]map[string]interface{}, 0)
1645
-//
1646
-//	inputMessage["infno"] = "2203"        // 交易编码
1647
-//	inputData["mdtrt_id"] = mdtrtId       // 就诊 ID(来自2201接口返回)
1648
-//	inputData["psn_no"] = psnNo           // 人员编号 (来自1101接口返回)
1649
-//	inputData["med_type"] = med_type      // 医疗类别 16门诊特殊病
1650
-//	inputData["begntime"] = timeFormatOne // 开始时间
1651
-//	inputData["main_cond_dscr"] = ""      // 主要病情描述
1652
-//	inputData["dise_codg"] = sick_code    // 病种编码
1653
-//	inputData["dise_name"] = sick_name    // 病种名称
1654
-//	inputData["birctrl_type"] = ""        // 计划生育手术类别
1655
-//	inputData["birctrl_matn_date"] = ""   // 计划生育手术或生育日期
1656
-//
1657
-//	diseinfo_sun := make(map[string]interface{})
1658
-//	diseinfo_sun["diag_type"] = "1"           // 诊断类别
1659
-//	diseinfo_sun["diag_srt_no"] = "1"         // 诊断排序号
1660
-//	diseinfo_sun["diag_code"] = diag_code     // 诊断代码
1661
-//	diseinfo_sun["diag_name"] = diag          // 诊断名称
1662
-//	diseinfo_sun["diag_dept"] = department    // 诊断科室
1663
-//	diseinfo_sun["dise_dor_no"] = doctor_id   // 诊断医生编码
1664
-//	diseinfo_sun["dise_dor_name"] = doctor    // 诊断医生姓名
1665
-//	diseinfo_sun["diag_time"] = timeFormatOne // 诊断时间
1666
-//	diseinfo_sun["vali_flag"] = "1"           // 有效标志
1667
-//
1668
-//	diseinfo = append(diseinfo, diseinfo_sun)
1669
-//	input["diseinfo"] = diseinfo
1670
-//	input["mdtrtinfo"] = inputData
1671
-//	inputMessage["input"] = input //交易输入
1672
-//
1673
-//	bytesData, err := json.Marshal(inputMessage)
1674
-//	fmt.Println(string(bytesData))
1675
-//	if err != nil {
1676
-//		fmt.Println(err.Error())
1677
-//		return err.Error()
1678
-//	}
1679
-//	reader := bytes.NewReader(bytesData)
1680
-//
1681
-//	url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2203"
1682
-//
1683
-//	//url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2203"
1684
-//	request, err := http.NewRequest("POST", url, reader)
1685
-//	if err != nil {
1686
-//		fmt.Println(err.Error())
1687
-//		return err.Error()
1688
-//	}
1689
-//
1690
-//	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
1691
-//	request.Header.Set("x-tif-paasid", "sg03_prd")
1692
-//	request.Header.Set("x-tif-signature", signature)
1693
-//	request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
1694
-//	request.Header.Set("x-tif-nonce", nonce)
1695
-//
1696
-//	client := http.Client{}
1697
-//	resp, err := client.Do(request)
1698
-//	if err != nil {
1699
-//		fmt.Println(err.Error())
1700
-//		return err.Error()
1701
-//	}
1702
-//	respBytes, err := ioutil.ReadAll(resp.Body)
1703
-//	if err != nil {
1704
-//		fmt.Println(err.Error())
1705
-//		return err.Error()
1706
-//	}
1707
-//	str := string(respBytes)
1708
-//	fmt.Println(str)
1709
-//	return str
1710
-//}
1711 1617
 func Gdyb2503(psnNo string, insutype string, org_name string, doctor string, fixmedins_code string, doctor_id string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_name string, sick_code string) string {
1712 1618
 	// 生成签名
1713 1619
 	nonce := GetRandomString(32)
@@ -1775,7 +1681,6 @@ func Gdyb2503(psnNo string, insutype string, org_name string, doctor string, fix
1775 1681
 	fmt.Println(str)
1776 1682
 	return str
1777 1683
 }
1778
-
1779 1684
 func Gdyb2504(psnNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, trt_dcla_detl_sn string) string {
1780 1685
 	// 生成签名
1781 1686
 	nonce := GetRandomString(32)
@@ -1826,6 +1731,86 @@ func Gdyb2504(psnNo string, org_name string, doctor string, fixmedins_code strin
1826 1731
 	return str
1827 1732
 }
1828 1733
 
1734
+//func Gdyb2503(psnNo 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) string {
1735
+//	// 生成签名
1736
+//	nonce := GetRandomString(32)
1737
+//	timestamp := time.Now().Unix()
1738
+//	signature := setSignature(timestamp, nonce, secret_key)
1739
+//	tempTime := time.Unix(timestamp, 0)
1740
+//	timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
1741
+//
1742
+//	// 生成输入报文
1743
+//	inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
1744
+//	input := make(map[string]interface{})
1745
+//	inputData := make(map[string]interface{})
1746
+//	diseinfo := make([]map[string]interface{}, 0)
1747
+//
1748
+//	inputMessage["infno"] = "2203"        // 交易编码
1749
+//	inputData["mdtrt_id"] = mdtrtId       // 就诊 ID(来自2201接口返回)
1750
+//	inputData["psn_no"] = psnNo           // 人员编号 (来自1101接口返回)
1751
+//	inputData["med_type"] = med_type      // 医疗类别 16门诊特殊病
1752
+//	inputData["begntime"] = timeFormatOne // 开始时间
1753
+//	inputData["main_cond_dscr"] = ""      // 主要病情描述
1754
+//	inputData["dise_codg"] = sick_code    // 病种编码
1755
+//	inputData["dise_name"] = sick_name    // 病种名称
1756
+//	inputData["birctrl_type"] = ""        // 计划生育手术类别
1757
+//	inputData["birctrl_matn_date"] = ""   // 计划生育手术或生育日期
1758
+//
1759
+//	diseinfo_sun := make(map[string]interface{})
1760
+//	diseinfo_sun["diag_type"] = "1"           // 诊断类别
1761
+//	diseinfo_sun["diag_srt_no"] = "1"         // 诊断排序号
1762
+//	diseinfo_sun["diag_code"] = diag_code     // 诊断代码
1763
+//	diseinfo_sun["diag_name"] = diag          // 诊断名称
1764
+//	diseinfo_sun["diag_dept"] = department    // 诊断科室
1765
+//	diseinfo_sun["dise_dor_no"] = doctor_id   // 诊断医生编码
1766
+//	diseinfo_sun["dise_dor_name"] = doctor    // 诊断医生姓名
1767
+//	diseinfo_sun["diag_time"] = timeFormatOne // 诊断时间
1768
+//	diseinfo_sun["vali_flag"] = "1"           // 有效标志
1769
+//
1770
+//	diseinfo = append(diseinfo, diseinfo_sun)
1771
+//	input["diseinfo"] = diseinfo
1772
+//	input["mdtrtinfo"] = inputData
1773
+//	inputMessage["input"] = input //交易输入
1774
+//
1775
+//	bytesData, err := json.Marshal(inputMessage)
1776
+//	fmt.Println(string(bytesData))
1777
+//	if err != nil {
1778
+//		fmt.Println(err.Error())
1779
+//		return err.Error()
1780
+//	}
1781
+//	reader := bytes.NewReader(bytesData)
1782
+//
1783
+//	url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2203"
1784
+//
1785
+//	//url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2203"
1786
+//	request, err := http.NewRequest("POST", url, reader)
1787
+//	if err != nil {
1788
+//		fmt.Println(err.Error())
1789
+//		return err.Error()
1790
+//	}
1791
+//
1792
+//	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
1793
+//	request.Header.Set("x-tif-paasid", "sg03_prd")
1794
+//	request.Header.Set("x-tif-signature", signature)
1795
+//	request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
1796
+//	request.Header.Set("x-tif-nonce", nonce)
1797
+//
1798
+//	client := http.Client{}
1799
+//	resp, err := client.Do(request)
1800
+//	if err != nil {
1801
+//		fmt.Println(err.Error())
1802
+//		return err.Error()
1803
+//	}
1804
+//	respBytes, err := ioutil.ReadAll(resp.Body)
1805
+//	if err != nil {
1806
+//		fmt.Println(err.Error())
1807
+//		return err.Error()
1808
+//	}
1809
+//	str := string(respBytes)
1810
+//	fmt.Println(str)
1811
+//	return str
1812
+//}
1813
+
1829 1814
 func Gdyb5301(psnNo string, insutype string, org_name string, doctor string, fixmedins_code string, doctor_id string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_name string, sick_code string) string {
1830 1815
 	// 生成签名
1831 1816
 	nonce := GetRandomString(32)