소스 검색

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

csx 3 년 전
부모
커밋
a393d07a25
9개의 변경된 파일1321개의 추가작업 그리고 0개의 파일을 삭제
  1. 667 0
      controllers/sz/sz_his_api_controller.go
  2. BIN
      gdyb
  3. 2 0
      main.go
  4. 1 0
      models/dialysis.go
  5. 56 0
      models/drug.go
  6. 43 0
      models/his_models.go
  7. 55 0
      models/sz_his_models.go
  8. 32 0
      service/his_service.go
  9. 465 0
      service/sz_his_service.go

+ 667 - 0
controllers/sz/sz_his_api_controller.go 파일 보기

@@ -183,6 +183,21 @@ func SZHisManagerApiRegistRouters() {
183 183
 	//查询交易
184 184
 	beego.Router("/sz/api/settle/query", &SZHisApiController{}, "get:GetSettleAccounts")
185 185
 
186
+	//机构药品目录备案
187
+	beego.Router("/sz/api/drug/get", &SZHisApiController{}, "get:GetDrugList")
188
+	//协议机构诊疗项目
189
+	beego.Router("/sz/api/treatment/get", &SZHisApiController{}, "get:GetTreatmentProject")
190
+	//协议机构目录
191
+	beego.Router("/sz/api/revocation/get", &SZHisApiController{}, "get:GetRevocation")
192
+	//定点机构约定信息查询
193
+	//beego.Router("/sz/api/information/query/get",&SZHisApiController{},"get:GetInformationQuery")
194
+	//-医药师信息登记
195
+	beego.Router("/sz/api/doctor/get", &SZHisApiController{}, "get:GetDoctorList")
196
+	//医药师执业状态变更
197
+	beego.Router("/sz/api/medical/get", &SZHisApiController{}, "get:GetMedicalList")
198
+	//医药师信息更新
199
+	beego.Router("/sz/api/update/medical/get", &SZHisApiController{}, "get:GetUpdateMedicalList")
200
+
186 201
 }
187 202
 
188 203
 func IntPtr(n int) uintptr {
@@ -1288,3 +1303,655 @@ func (c *SZHisApiController) GetSettleAccounts() {
1288 1303
 //	}
1289 1304
 //	return ""
1290 1305
 //}
1306
+
1307
+func (c *SZHisApiController) GetDrugList() {
1308
+
1309
+	//获取药品库数据
1310
+	list, _ := service.GetDrugList(10028)
1311
+	//获取药品剂型
1312
+	drugs, _ := service.GetDrugDosageForm(10028)
1313
+	for _, item := range list {
1314
+		fmt.Println(item.DrugDosageForm)
1315
+		for _, it := range drugs {
1316
+			fmt.Println("2222", it.Value, it.Name)
1317
+			if item.DrugDosageForm == it.Value {
1318
+				item.DrugDosageName = it.Name
1319
+			}
1320
+		}
1321
+	}
1322
+	fmt.Print("list22222222", list)
1323
+	miConfig, _ := service.FindMedicalInsuranceInfo(10028)
1324
+	var doctor_name string
1325
+	var doctor_code string
1326
+
1327
+	doctor_name = "黄亦轩"
1328
+	doctor_code = "1001"
1329
+
1330
+	var pagesize int = 50
1331
+	var start int = 1
1332
+	var stop int
1333
+	var pagecount int
1334
+	var curpage int
1335
+	var isSuccess bool = true
1336
+	//总页数,向上取整,注意除之前要先转换类型为float64
1337
+	pagecount = int(math.Ceil(float64(len(list)) / float64(pagesize)))
1338
+
1339
+	var ress []*Result
1340
+	for curpage = 1; curpage <= pagecount; curpage++ {
1341
+		if curpage == 1 {
1342
+			start = 1
1343
+		} else {
1344
+			start = (curpage-1)*pagesize + 1
1345
+		}
1346
+		stop = curpage * pagesize
1347
+		if stop > len(list) {
1348
+			stop = len(list)
1349
+		}
1350
+		//这里就可以查看开始和结束了
1351
+		fmt.Println(list[start-1 : stop])
1352
+		var customs []*models.DrugDetail
1353
+		for _, item := range list {
1354
+
1355
+			detail := &models.DrugDetail{
1356
+
1357
+				MedicalInsuranceNumber: item.MedicalInsuranceNumber,
1358
+				Code:                   item.Code,
1359
+				DrugName:               item.DrugName,
1360
+				DrugSpec:               item.DrugSpec,
1361
+				DrugDosageName:         item.DrugDosageName,
1362
+				ManufacturerName:       item.ManufacturerName,
1363
+				MinUnit:                item.MinUnit,
1364
+				RetailPrice:            item.RetailPrice,
1365
+				LastPrice:              item.LastPrice,
1366
+				LimitRemark:            item.LimitRemark,
1367
+			}
1368
+			customs = append(customs, detail)
1369
+		}
1370
+
1371
+		result := service.SzybML008(doctor_name, doctor_code, miConfig.Code, customs)
1372
+		fmt.Println("reuslt", result)
1373
+
1374
+		var dat map[string]interface{}
1375
+		if err := json.Unmarshal([]byte(result), &dat); err == nil {
1376
+			fmt.Println(dat)
1377
+		} else {
1378
+			fmt.Println(err)
1379
+		}
1380
+
1381
+		userJSONBytes, _ := json.Marshal(dat)
1382
+
1383
+		var res Result
1384
+		if err := json.Unmarshal(userJSONBytes, &res); err != nil {
1385
+			utils.ErrorLog("解析失败:%v", err)
1386
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1387
+			return
1388
+		}
1389
+		if res.Transreturncode == "00000000" {
1390
+			ress = append(ress, &res)
1391
+		} else {
1392
+			isSuccess = false
1393
+			//失败
1394
+
1395
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePreSettleFaildParamWrong)
1396
+			return
1397
+		}
1398
+		fmt.Println(isSuccess)
1399
+	}
1400
+}
1401
+
1402
+func (c *SZHisApiController) GetTreatmentProject() {
1403
+
1404
+	//获取药品库数据
1405
+	list, _ := service.GetDrugList(10028)
1406
+
1407
+	miConfig, _ := service.FindMedicalInsuranceInfo(10028)
1408
+	var doctor_name string
1409
+	var doctor_code string
1410
+
1411
+	doctor_name = "黄亦轩"
1412
+	doctor_code = "1001"
1413
+
1414
+	var pagesize int = 50
1415
+	var start int = 1
1416
+	var stop int
1417
+	var pagecount int
1418
+	var curpage int
1419
+	var isSuccess bool = true
1420
+	//总页数,向上取整,注意除之前要先转换类型为float64
1421
+	pagecount = int(math.Ceil(float64(len(list)) / float64(pagesize)))
1422
+
1423
+	var ress []*Result
1424
+	for curpage = 1; curpage <= pagecount; curpage++ {
1425
+		if curpage == 1 {
1426
+			start = 1
1427
+		} else {
1428
+			start = (curpage-1)*pagesize + 1
1429
+		}
1430
+		stop = curpage * pagesize
1431
+		if stop > len(list) {
1432
+			stop = len(list)
1433
+		}
1434
+		//这里就可以查看开始和结束了
1435
+		fmt.Println(list[start-1 : stop])
1436
+		var customs []*models.DrugDetail
1437
+		for _, item := range list {
1438
+			fmt.Println("医疗机构编码", item.MedicalInsuranceNumber)
1439
+			detail := &models.DrugDetail{
1440
+
1441
+				MedicalInsuranceNumber: item.MedicalInsuranceNumber, //社保目录
1442
+				Code:                   item.Code,                   //协议机构内部目录编码
1443
+				DrugName:               item.DrugName,               //协议机构内部目录名称
1444
+				DrugSpec:               item.DrugSpec,
1445
+				ManufacturerName:       item.ManufacturerName,
1446
+				MinUnit:                item.MinUnit,
1447
+				RetailPrice:            item.RetailPrice, //协议机构内部项目收费价格
1448
+				LimitRemark:            item.LimitRemark,
1449
+			}
1450
+			customs = append(customs, detail)
1451
+		}
1452
+		result := service.SzybML009(doctor_name, doctor_code, miConfig.Code, customs)
1453
+		fmt.Println("reuslt9999999999999999", result)
1454
+		var dat map[string]interface{}
1455
+		if err := json.Unmarshal([]byte(result), &dat); err == nil {
1456
+			fmt.Println(dat)
1457
+		} else {
1458
+			fmt.Println(err)
1459
+		}
1460
+
1461
+		userJSONBytes, _ := json.Marshal(dat)
1462
+
1463
+		var res Result
1464
+		if err := json.Unmarshal(userJSONBytes, &res); err != nil {
1465
+			utils.ErrorLog("解析失败:%v", err)
1466
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1467
+			return
1468
+		}
1469
+		if res.Transreturncode == "00000000" {
1470
+			ress = append(ress, &res)
1471
+		} else {
1472
+			isSuccess = false
1473
+			//失败
1474
+
1475
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePreSettleFaildParamWrong)
1476
+			return
1477
+		}
1478
+		fmt.Println(isSuccess)
1479
+	}
1480
+}
1481
+
1482
+func (c *SZHisApiController) GetRevocation() {
1483
+
1484
+	//获取药品库数据
1485
+	list, _ := service.GetDrugList(10028)
1486
+
1487
+	miConfig, _ := service.FindMedicalInsuranceInfo(10028)
1488
+	var doctor_name string
1489
+	var doctor_code string
1490
+
1491
+	doctor_name = "黄亦轩"
1492
+	doctor_code = "1001"
1493
+
1494
+	var pagesize int = 50
1495
+	var start int = 1
1496
+	var stop int
1497
+	var pagecount int
1498
+	var curpage int
1499
+	var isSuccess bool = true
1500
+	//总页数,向上取整,注意除之前要先转换类型为float64
1501
+	pagecount = int(math.Ceil(float64(len(list)) / float64(pagesize)))
1502
+
1503
+	var ress []*Result
1504
+	for curpage = 1; curpage <= pagecount; curpage++ {
1505
+		if curpage == 1 {
1506
+			start = 1
1507
+		} else {
1508
+			start = (curpage-1)*pagesize + 1
1509
+		}
1510
+		stop = curpage * pagesize
1511
+		if stop > len(list) {
1512
+			stop = len(list)
1513
+		}
1514
+		//这里就可以查看开始和结束了
1515
+		fmt.Println(list[start-1 : stop])
1516
+		var customs []*models.DrugDetail
1517
+		for _, item := range list {
1518
+			fmt.Println("医疗机构编码", item.MedicalInsuranceNumber)
1519
+			detail := &models.DrugDetail{
1520
+
1521
+				MedicalInsuranceNumber: item.MedicalInsuranceNumber, //社保目录
1522
+				Code:                   item.Code,                   //协议机构内部目录编码
1523
+				DrugName:               item.DrugName,               //协议机构内部目录名称
1524
+				DrugSpec:               item.DrugSpec,
1525
+				ManufacturerName:       item.ManufacturerName,
1526
+				MinUnit:                item.MinUnit,
1527
+				RetailPrice:            item.RetailPrice, //协议机构内部项目收费价格
1528
+				LimitRemark:            item.LimitRemark,
1529
+			}
1530
+			customs = append(customs, detail)
1531
+		}
1532
+		result := service.SzybML010(doctor_name, doctor_code, miConfig.Code, customs)
1533
+		fmt.Println("reuslt9999999999999999", result)
1534
+		var dat map[string]interface{}
1535
+		if err := json.Unmarshal([]byte(result), &dat); err == nil {
1536
+			fmt.Println(dat)
1537
+		} else {
1538
+			fmt.Println(err)
1539
+		}
1540
+
1541
+		userJSONBytes, _ := json.Marshal(dat)
1542
+
1543
+		var res Result
1544
+		if err := json.Unmarshal(userJSONBytes, &res); err != nil {
1545
+			utils.ErrorLog("解析失败:%v", err)
1546
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1547
+			return
1548
+		}
1549
+		if res.Transreturncode == "00000000" {
1550
+			ress = append(ress, &res)
1551
+		} else {
1552
+			isSuccess = false
1553
+			//失败
1554
+
1555
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePreSettleFaildParamWrong)
1556
+			return
1557
+		}
1558
+		fmt.Println(isSuccess)
1559
+	}
1560
+}
1561
+
1562
+//func  (c *SZHisApiController) GetInformationQuery()  {
1563
+//
1564
+//  var doctor_name string
1565
+//  var doctor_code string
1566
+//
1567
+//  doctor_name = "黄亦轩"
1568
+//  doctor_code = "1001"
1569
+//  miConfig, _ := service.FindMedicalInsuranceInfo(10028)
1570
+//  result := service.SzybML010(doctor_name, doctor_code, miConfig.Code, customs)
1571
+//  fmt.Println("reuslt9999999999999999", result)
1572
+//  var dat map[string]interface{}
1573
+//  if err := json.Unmarshal([]byte(result), &dat); err == nil {
1574
+//    fmt.Println(dat)
1575
+//  } else {
1576
+//    fmt.Println(err)
1577
+//  }
1578
+//
1579
+//  userJSONBytes, _ := json.Marshal(dat)
1580
+//
1581
+//  var res Result
1582
+//  if err := json.Unmarshal(userJSONBytes, &res); err != nil {
1583
+//    utils.ErrorLog("解析失败:%v", err)
1584
+//    c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1585
+//    return
1586
+//  }
1587
+//  if res.Transreturncode == "00000000" {
1588
+//    ress = append(ress, &res)
1589
+//  } else {
1590
+//    isSuccess = false
1591
+//    //失败
1592
+//
1593
+//    c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePreSettleFaildParamWrong)
1594
+//    return
1595
+//  }
1596
+//  fmt.Println(isSuccess)
1597
+//
1598
+//}
1599
+
1600
+func (c *SZHisApiController) GetDoctorList() {
1601
+
1602
+	//获取所有医生护士信息
1603
+	list, _ := service.GetDoctorList(10028)
1604
+	//获取所有角色名称
1605
+	roleList, _ := service.GetRoleList(10028)
1606
+
1607
+	miConfig, _ := service.FindMedicalInsuranceInfo(10028)
1608
+	for _, item := range list {
1609
+		for _, it := range roleList {
1610
+			if item.RoleId == it.ID {
1611
+				item.Name = it.RoleName
1612
+			}
1613
+		}
1614
+	}
1615
+	var doctor_name string
1616
+	var doctor_code string
1617
+
1618
+	doctor_name = "黄亦轩"
1619
+	doctor_code = "1001"
1620
+
1621
+	var pagesize int = 50
1622
+	var start int = 1
1623
+	var stop int
1624
+	var pagecount int
1625
+	var curpage int
1626
+	var isSuccess bool = true
1627
+	//总页数,向上取整,注意除之前要先转换类型为float64
1628
+	pagecount = int(math.Ceil(float64(len(list)) / float64(pagesize)))
1629
+
1630
+	var ress []*Result
1631
+	for curpage = 1; curpage <= pagecount; curpage++ {
1632
+		if curpage == 1 {
1633
+			start = 1
1634
+		} else {
1635
+			start = (curpage-1)*pagesize + 1
1636
+		}
1637
+		stop = curpage * pagesize
1638
+		if stop > len(list) {
1639
+			stop = len(list)
1640
+		}
1641
+		//这里就可以查看开始和结束了
1642
+		fmt.Println(list[start-1 : stop])
1643
+		var customs []*models.DocDetail
1644
+		for _, item := range list {
1645
+			fmt.Println("医护类别", item.Name)
1646
+			detail := &models.DocDetail{
1647
+				UserName:                                item.UserName,
1648
+				RoleId:                                  item.Name,
1649
+				Sex:                                     "",
1650
+				CardType:                                "",
1651
+				IdCard:                                  "",
1652
+				Phone:                                   "",
1653
+				WorkMajorName:                           "",
1654
+				Nation:                                  "",
1655
+				BirthDay:                                20201022,
1656
+				WorkTime:                                12,
1657
+				Education:                               "",
1658
+				StudyMajorName:                          "",
1659
+				CertificateCode:                         "",   //证书编码
1660
+				MedicalCode:                             "",   //医师资格编码
1661
+				MedicalRangeCode:                        "",   //医师执业范围代码
1662
+				MedicalLevel:                            "",   //医生级别
1663
+				TypeJob:                                 "",   //职业类别
1664
+				DoctorNumber:                            "",   //医师编号
1665
+				Licensing:                               "",   //职业标志
1666
+				DoctorServiceStatus:                     "",   //医师医保服务资格状态
1667
+				MonitoringLevel:                         "",   //监控等级
1668
+				DrugPsychotropicSubstances:              "",   //毒麻精神药品资格
1669
+				HealthCareCode:                          "",   // 母婴保健技术考核合格证书编号
1670
+				PlanningTechnicalServiceCode:            "",   //计划生育技术服务人员合格证编号
1671
+				PharmacistType:                          "",   //药师类别
1672
+				PharmacistPracticeCategory:              "",   //药师执业类别
1673
+				PharmacistsLicensing:                    "",   //药师执业范围
1674
+				PharmacistRegistrationNumber:            "",   //执业药师注册证编号
1675
+				OfficeCode:                              "",   //科室编码
1676
+				JobNumber:                               "",   //工号
1677
+				PostName:                                "",   //职位名称
1678
+				TechnicalJobLevelCode:                   "",   //专业技术职务级别编码
1679
+				IsActive:                                "",   //在职与否
1680
+				PrescriptionQualificationIdentification: "",   //处方资格标识
1681
+				IdentificationOutpatients:               "",   //门诊大病医师标识
1682
+				OutpatientIllnessCategory:               "",   //门诊大病类别
1683
+				StartTime:                               1233, //开始日期
1684
+			}
1685
+			customs = append(customs, detail)
1686
+		}
1687
+
1688
+		result := service.SzybYS001(doctor_name, doctor_code, miConfig.Code, customs)
1689
+		fmt.Println("reuslt9999999999999999", result)
1690
+		var dat map[string]interface{}
1691
+		if err := json.Unmarshal([]byte(result), &dat); err == nil {
1692
+			fmt.Println(dat)
1693
+		} else {
1694
+			fmt.Println(err)
1695
+		}
1696
+
1697
+		userJSONBytes, _ := json.Marshal(dat)
1698
+
1699
+		var res Result
1700
+		if err := json.Unmarshal(userJSONBytes, &res); err != nil {
1701
+			utils.ErrorLog("解析失败:%v", err)
1702
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1703
+			return
1704
+		}
1705
+		if res.Transreturncode == "00000000" {
1706
+			ress = append(ress, &res)
1707
+		} else {
1708
+			isSuccess = false
1709
+			//失败
1710
+
1711
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePreSettleFaildParamWrong)
1712
+			return
1713
+		}
1714
+		fmt.Println(isSuccess)
1715
+
1716
+	}
1717
+}
1718
+
1719
+func (c *SZHisApiController) GetMedicalList() {
1720
+
1721
+	//获取所有医生护士信息
1722
+	list, _ := service.GetDoctorList(10028)
1723
+	//获取所有角色名称
1724
+	roleList, _ := service.GetRoleList(10028)
1725
+
1726
+	miConfig, _ := service.FindMedicalInsuranceInfo(10028)
1727
+	for _, item := range list {
1728
+		for _, it := range roleList {
1729
+			if item.RoleId == it.ID {
1730
+				item.Name = it.RoleName
1731
+			}
1732
+		}
1733
+	}
1734
+	var doctor_name string
1735
+	var doctor_code string
1736
+
1737
+	doctor_name = "黄亦轩"
1738
+	doctor_code = "1001"
1739
+
1740
+	var pagesize int = 50
1741
+	var start int = 1
1742
+	var stop int
1743
+	var pagecount int
1744
+	var curpage int
1745
+	var isSuccess bool = true
1746
+	//总页数,向上取整,注意除之前要先转换类型为float64
1747
+	pagecount = int(math.Ceil(float64(len(list)) / float64(pagesize)))
1748
+
1749
+	var ress []*Result
1750
+	for curpage = 1; curpage <= pagecount; curpage++ {
1751
+		if curpage == 1 {
1752
+			start = 1
1753
+		} else {
1754
+			start = (curpage-1)*pagesize + 1
1755
+		}
1756
+		stop = curpage * pagesize
1757
+		if stop > len(list) {
1758
+			stop = len(list)
1759
+		}
1760
+		//这里就可以查看开始和结束了
1761
+		fmt.Println(list[start-1 : stop])
1762
+		var customs []*models.DocDetail
1763
+		for _, item := range list {
1764
+			fmt.Println("医护类别", item.Name)
1765
+			detail := &models.DocDetail{
1766
+				UserName:                                item.UserName,
1767
+				RoleId:                                  item.Name,
1768
+				Sex:                                     "",
1769
+				CardType:                                "",
1770
+				IdCard:                                  "",
1771
+				Phone:                                   "",
1772
+				WorkMajorName:                           "",
1773
+				Nation:                                  "",
1774
+				BirthDay:                                20201022,
1775
+				WorkTime:                                12,
1776
+				Education:                               "",
1777
+				StudyMajorName:                          "",
1778
+				CertificateCode:                         "",   //证书编码
1779
+				MedicalCode:                             "",   //医师资格编码
1780
+				MedicalRangeCode:                        "",   //医师执业范围代码
1781
+				MedicalLevel:                            "",   //医生级别
1782
+				TypeJob:                                 "",   //职业类别
1783
+				DoctorNumber:                            "",   //医师编号
1784
+				Licensing:                               "",   //职业标志
1785
+				DoctorServiceStatus:                     "",   //医师医保服务资格状态
1786
+				MonitoringLevel:                         "",   //监控等级
1787
+				DrugPsychotropicSubstances:              "",   //毒麻精神药品资格
1788
+				HealthCareCode:                          "",   // 母婴保健技术考核合格证书编号
1789
+				PlanningTechnicalServiceCode:            "",   //计划生育技术服务人员合格证编号
1790
+				PharmacistType:                          "",   //药师类别
1791
+				PharmacistPracticeCategory:              "",   //药师执业类别
1792
+				PharmacistsLicensing:                    "",   //药师执业范围
1793
+				PharmacistRegistrationNumber:            "",   //执业药师注册证编号
1794
+				OfficeCode:                              "",   //科室编码
1795
+				JobNumber:                               "",   //工号
1796
+				PostName:                                "",   //职位名称
1797
+				TechnicalJobLevelCode:                   "",   //专业技术职务级别编码
1798
+				IsActive:                                "",   //在职与否
1799
+				PrescriptionQualificationIdentification: "",   //处方资格标识
1800
+				IdentificationOutpatients:               "",   //门诊大病医师标识
1801
+				OutpatientIllnessCategory:               "",   //门诊大病类别
1802
+				StartTime:                               1233, //开始日期
1803
+			}
1804
+			customs = append(customs, detail)
1805
+		}
1806
+
1807
+		result := service.SzybYS002(doctor_name, doctor_code, miConfig.Code, customs)
1808
+		fmt.Println("reuslt9999999999999999", result)
1809
+		var dat map[string]interface{}
1810
+		if err := json.Unmarshal([]byte(result), &dat); err == nil {
1811
+			fmt.Println(dat)
1812
+		} else {
1813
+			fmt.Println(err)
1814
+		}
1815
+
1816
+		userJSONBytes, _ := json.Marshal(dat)
1817
+
1818
+		var res Result
1819
+		if err := json.Unmarshal(userJSONBytes, &res); err != nil {
1820
+			utils.ErrorLog("解析失败:%v", err)
1821
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1822
+			return
1823
+		}
1824
+		if res.Transreturncode == "00000000" {
1825
+			ress = append(ress, &res)
1826
+		} else {
1827
+			isSuccess = false
1828
+			//失败
1829
+
1830
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePreSettleFaildParamWrong)
1831
+			return
1832
+		}
1833
+		fmt.Println(isSuccess)
1834
+
1835
+	}
1836
+}
1837
+
1838
+func (c *SZHisApiController) GetUpdateMedicalList() {
1839
+
1840
+	//获取所有医生护士信息
1841
+	list, _ := service.GetDoctorList(10028)
1842
+	//获取所有角色名称
1843
+	roleList, _ := service.GetRoleList(10028)
1844
+
1845
+	miConfig, _ := service.FindMedicalInsuranceInfo(10028)
1846
+	for _, item := range list {
1847
+		for _, it := range roleList {
1848
+			if item.RoleId == it.ID {
1849
+				item.Name = it.RoleName
1850
+			}
1851
+		}
1852
+	}
1853
+	var doctor_name string
1854
+	var doctor_code string
1855
+
1856
+	doctor_name = "黄亦轩"
1857
+	doctor_code = "1001"
1858
+
1859
+	var pagesize int = 50
1860
+	var start int = 1
1861
+	var stop int
1862
+	var pagecount int
1863
+	var curpage int
1864
+	var isSuccess bool = true
1865
+	//总页数,向上取整,注意除之前要先转换类型为float64
1866
+	pagecount = int(math.Ceil(float64(len(list)) / float64(pagesize)))
1867
+
1868
+	var ress []*Result
1869
+	for curpage = 1; curpage <= pagecount; curpage++ {
1870
+		if curpage == 1 {
1871
+			start = 1
1872
+		} else {
1873
+			start = (curpage-1)*pagesize + 1
1874
+		}
1875
+		stop = curpage * pagesize
1876
+		if stop > len(list) {
1877
+			stop = len(list)
1878
+		}
1879
+		//这里就可以查看开始和结束了
1880
+		fmt.Println(list[start-1 : stop])
1881
+		var customs []*models.DocDetail
1882
+		for _, item := range list {
1883
+			fmt.Println("医护类别", item.Name)
1884
+			detail := &models.DocDetail{
1885
+				StaffCode:                               "",            //医护人员编码
1886
+				UserName:                                item.UserName, //医护人员姓名
1887
+				RoleId:                                  item.Name,     //医护人员类别
1888
+				Sex:                                     "",            //性别
1889
+				CardType:                                "",            //证件类型
1890
+				IdCard:                                  "",            //证件号码
1891
+				Phone:                                   "",            //联系电话
1892
+				WorkMajorName:                           "",            //现从事专业名称
1893
+				Nation:                                  "",            //民族
1894
+				BirthDay:                                20201022,      //出生日期
1895
+				WorkTime:                                12,            //参加工作日期
1896
+				Education:                               "",            //学历
1897
+				StudyMajorName:                          "",            //所学的专业名称
1898
+				CertificateCode:                         "",            //证书编码
1899
+				MedicalCode:                             "",            //医师资格编码
1900
+				MedicalRangeCode:                        "",            //医师执业范围代码
1901
+				MedicalLevel:                            "",            //医生级别
1902
+				TypeJob:                                 "",            //职业类别
1903
+				DoctorNumber:                            "",            //医师编号
1904
+				Licensing:                               "",            //职业标志
1905
+				DoctorServiceStatus:                     "",            //医师医保服务资格状态
1906
+				MonitoringLevel:                         "",            //监控等级
1907
+				DrugPsychotropicSubstances:              "",            //毒麻精神药品资格
1908
+				HealthCareCode:                          "",            // 母婴保健技术考核合格证书编号
1909
+				PlanningTechnicalServiceCode:            "",            //计划生育技术服务人员合格证编号
1910
+				PharmacistType:                          "",            //药师类别
1911
+				PharmacistPracticeCategory:              "",            //药师执业类别
1912
+				PharmacistsLicensing:                    "",            //药师执业范围
1913
+				PharmacistRegistrationNumber:            "",            //执业药师注册证编号
1914
+				OfficeCode:                              "",            //科室编码
1915
+				JobNumber:                               "",            //工号
1916
+				PostName:                                "",            //职位名称
1917
+				TechnicalJobLevelCode:                   "",            //专业技术职务级别编码
1918
+				IsActive:                                "",            //在职与否
1919
+				PrescriptionQualificationIdentification: "",            //处方资格标识
1920
+				IdentificationOutpatients:               "",            //门诊大病医师标识
1921
+				OutpatientIllnessCategory:               "",            //门诊大病类别
1922
+				StartTime:                               1233,          //开始日期
1923
+				EndTime:                                 123333,
1924
+			}
1925
+			customs = append(customs, detail)
1926
+		}
1927
+
1928
+		result := service.SzybYS003(doctor_name, doctor_code, miConfig.Code, customs)
1929
+		fmt.Println("reuslt9999999999999999", result)
1930
+		var dat map[string]interface{}
1931
+		if err := json.Unmarshal([]byte(result), &dat); err == nil {
1932
+			fmt.Println(dat)
1933
+		} else {
1934
+			fmt.Println(err)
1935
+		}
1936
+
1937
+		userJSONBytes, _ := json.Marshal(dat)
1938
+
1939
+		var res Result
1940
+		if err := json.Unmarshal(userJSONBytes, &res); err != nil {
1941
+			utils.ErrorLog("解析失败:%v", err)
1942
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1943
+			return
1944
+		}
1945
+		if res.Transreturncode == "00000000" {
1946
+			ress = append(ress, &res)
1947
+		} else {
1948
+			isSuccess = false
1949
+			//失败
1950
+
1951
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePreSettleFaildParamWrong)
1952
+			return
1953
+		}
1954
+		fmt.Println(isSuccess)
1955
+
1956
+	}
1957
+}

BIN
gdyb 파일 보기


+ 2 - 0
main.go 파일 보기

@@ -8,8 +8,10 @@ import (
8 8
 
9 9
 func init() {
10 10
 	service.ConnectDB()
11
+
11 12
 }
12 13
 
13 14
 func main() {
14 15
 	beego.Run()
16
+
15 17
 }

+ 1 - 0
models/dialysis.go 파일 보기

@@ -890,6 +890,7 @@ type SgjUserAdminRole struct {
890 890
 	OrgName       string `gorm:"column:org_name" json:"org_name" form:"org_name"`
891 891
 	OrgLogo       string `gorm:"column:org_logo" json:"org_logo" form:"org_logo"`
892 892
 	Creator       int64  `gorm:"column:creator" json:"creator" form:"creator"`
893
+	Name          string
893 894
 }
894 895
 
895 896
 func (SgjUserAdminRole) TableName() string {

+ 56 - 0
models/drug.go 파일 보기

@@ -91,3 +91,59 @@ type MedicineInsurancePercentage struct {
91 91
 func (MedicineInsurancePercentage) TableName() string {
92 92
 	return "xt_medicine_insurance_percentage"
93 93
 }
94
+
95
+type BaseDrugList struct {
96
+	ID                     int64   `gorm:"column:id" json:"id" form:"id"`
97
+	DrugName               string  `gorm:"column:drug_name" json:"drug_name" form:"drug_name"`
98
+	Pinyin                 string  `gorm:"column:pinyin" json:"pinyin" form:"pinyin"`
99
+	Wubi                   string  `gorm:"column:wubi" json:"wubi" form:"wubi"`
100
+	DrugAlias              string  `gorm:"column:drug_alias" json:"drug_alias" form:"drug_alias"`
101
+	DrugAliasPinyin        string  `gorm:"column:drug_alias_pinyin" json:"drug_alias_pinyin" form:"drug_alias_pinyin"`
102
+	DrugAliasWubi          string  `gorm:"column:drug_alias_wubi" json:"drug_alias_wubi" form:"drug_alias_wubi"`
103
+	DrugCategory           int64   `gorm:"column:drug_category" json:"drug_category" form:"drug_category"`
104
+	DrugSpec               string  `gorm:"column:drug_spec" json:"drug_spec" form:"drug_spec"`
105
+	DrugType               int64   `gorm:"column:drug_type" json:"drug_type" form:"drug_type"`
106
+	DrugStockLimit         string  `gorm:"column:drug_stock_limit" json:"drug_stock_limit" form:"drug_stock_limit"`
107
+	DrugOriginPlace        string  `gorm:"column:drug_origin_place" json:"drug_origin_place" form:"drug_origin_place"`
108
+	DrugDosageForm         int64   `gorm:"column:drug_dosage_form" json:"drug_dosage_form" form:"drug_dosage_form"`
109
+	MedicalInsuranceLevel  int64   `gorm:"column:medical_insurance_level" json:"medical_insurance_level" form:"medical_insurance_level"`
110
+	MaxUnit                string  `gorm:"column:max_unit" json:"max_unit" form:"max_unit"`
111
+	MinUnit                string  `gorm:"column:min_unit" json:"min_unit" form:"min_unit"`
112
+	UnitMatrixing          string  `gorm:"column:unit_matrixing" json:"unit_matrixing" form:"unit_matrixing"`
113
+	RetailPrice            float64 `gorm:"column:retail_price" json:"retail_price" form:"retail_price"`
114
+	LastPrice              float64 `gorm:"column:last_price" json:"last_price" form:"last_price"`
115
+	DrugControl            int64   `gorm:"column:drug_control" json:"drug_control" form:"drug_control"`
116
+	Number                 string  `gorm:"column:number" json:"number" form:"number"`
117
+	DrugClassify           string  `gorm:"column:drug_classify" json:"drug_classify" form:"drug_classify"`
118
+	DrugDose               float64 `gorm:"column:drug_dose" json:"drug_dose" form:"drug_dose"`
119
+	DrugDoseUnit           int64   `gorm:"column:drug_dose_unit" json:"drug_dose_unit" form:"drug_dose_unit"`
120
+	MedicalInsuranceNumber string  `gorm:"column:medical_insurance_number" json:"medical_insurance_number" form:"medical_insurance_number"`
121
+	Manufacturer           int64   `gorm:"column:manufacturer" json:"manufacturer" form:"manufacturer"`
122
+	PharmacologyCategory   int64   `gorm:"column:pharmacology_category" json:"pharmacology_category" form:"pharmacology_category"`
123
+	StatisticsCategory     int64   `gorm:"column:statistics_category" json:"statistics_category" form:"statistics_category"`
124
+	Code                   string  `gorm:"column:code" json:"code" form:"code"`
125
+	IsSpecialDiseases      int64   `gorm:"column:is_special_diseases" json:"is_special_diseases" form:"is_special_diseases"`
126
+	IsRecord               int64   `gorm:"column:is_record" json:"is_record" form:"is_record"`
127
+	Agent                  string  `gorm:"column:agent" json:"agent" form:"agent"`
128
+	DrugStatus             string  `gorm:"column:drug_status" json:"drug_status" form:"drug_status"`
129
+	LimitRemark            string  `gorm:"column:limit_remark" json:"limit_remark" form:"limit_remark"`
130
+	DeliveryWay            string  `gorm:"column:delivery_way" json:"delivery_way" form:"delivery_way"`
131
+	ExecutionFrequency     string  `gorm:"column:execution_frequency" json:"execution_frequency" form:"execution_frequency"`
132
+	SingleDose             float64 `gorm:"column:single_dose" json:"single_dose" form:"single_dose"`
133
+	PrescribingNumber      float64 `gorm:"column:prescribing_number" json:"prescribing_number" form:"prescribing_number"`
134
+	Label                  int64   `gorm:"column:label" json:"label" form:"label"`
135
+	Sort                   int64   `gorm:"column:sort" json:"sort" form:"sort"`
136
+	IsUseDoctorAdvice      int64   `gorm:"column:is_use_doctor_advice" json:"is_use_doctor_advice" form:"is_use_doctor_advice"`
137
+	IsDefault              int64   `gorm:"column:is_default" json:"is_default" form:"is_default"`
138
+	IsChargePredict        int64   `gorm:"column:is_charge_predict" json:"is_charge_predict" form:"is_charge_predict"`
139
+	IsStatisticsWork       int64   `gorm:"column:is_statistics_work" json:"is_statistics_work" form:"is_statistics_work"`
140
+	IsChargeUse            int64   `gorm:"column:is_charge_use" json:"is_charge_use" form:"is_charge_use"`
141
+	Status                 int64   `gorm:"column:status" json:"status" form:"status"`
142
+	Ctime                  int64   `gorm:"column:ctime" json:"ctime" form:"ctime"`
143
+	Mtime                  int64   `gorm:"column:mtime" json:"mtime" form:"mtime"`
144
+	OrgId                  int64   `gorm:"column:org_id" json:"org_id" form:"org_id"`
145
+	DrugCode               string  `gorm:"column:drug_code" json:"drug_code" form:"drug_code"`
146
+	Dealer                 int64   `gorm:"column:dealer" json:"dealer" form:"dealer"`
147
+	ManufacturerName       string  `gorm:"column:manufacturer_name" json:"manufacturer_name" form:"manufacturer_name"`
148
+	DrugDosageName         string
149
+}

+ 43 - 0
models/his_models.go 파일 보기

@@ -1002,3 +1002,46 @@ type MedicalInsuranceCostCompare struct {
1002 1002
 func (MedicalInsuranceCostCompare) TableName() string {
1003 1003
 	return "medical_insurance_cost_compare"
1004 1004
 }
1005
+
1006
+type XtDrugDataConfig struct {
1007
+	ID             int64     `gorm:"column:id" json:"id" form:"id"`
1008
+	ParentId       int64     `gorm:"column:parent_id" json:"parent_id" form:"parent_id"`
1009
+	Module         string    `gorm:"column:module" json:"module" form:"module"`
1010
+	OrgId          int64     `gorm:"column:org_id" json:"org_id" form:"org_id"`
1011
+	Name           string    `gorm:"column:name" json:"name" form:"name"`
1012
+	FieldName      string    `gorm:"column:field_name" json:"field_name" form:"field_name"`
1013
+	Value          int64     `gorm:"column:value" json:"value" form:"value"`
1014
+	CreateTime     time.Time `gorm:"column:create_time" json:"create_time" form:"create_time"`
1015
+	UpdateTime     time.Time `gorm:"column:update_time" json:"update_time" form:"update_time"`
1016
+	CreateUserId   int64     `gorm:"column:create_user_id" json:"create_user_id" form:"create_user_id"`
1017
+	Status         int64     `gorm:"column:status" json:"status" form:"status"`
1018
+	Remark         string    `gorm:"column:remark" json:"remark" form:"remark"`
1019
+	DeleteIdSystem int64     `gorm:"column:delete_id_system" json:"delete_id_system" form:"delete_id_system"`
1020
+	Title          string    `gorm:"column:title" json:"title" form:"title"`
1021
+	Content        string    `gorm:"column:content" json:"content" form:"content"`
1022
+	Orders         int64     `gorm:"column:orders" json:"orders" form:"orders"`
1023
+}
1024
+
1025
+func (XtDrugDataConfig) TableName() string {
1026
+	return "xt_drug_data_config"
1027
+}
1028
+
1029
+type XtRole struct {
1030
+	Id           int64  `gorm:"PRIMARY_KEY;AUTO_INCREMENT" json:"id"`
1031
+	RoleName     string `gorm:"column:role_name" json:"name"`
1032
+	RoleIntro    string `gorm:"column:role_introduction" json:"intro"`
1033
+	Creator      int64  `json:"-"`
1034
+	OrgId        int64  `gorm:"column:org_id" json:"-"`
1035
+	AppId        int64  `gorm:"column:app_id" json:"-"`
1036
+	IsSuperAdmin bool   `gorm:"column:is_super_admin" json:"is_super_admin"`
1037
+	Status       int8   `json:"status"`                // 状态 0.无效 1.有效 2.禁用
1038
+	CreateTime   int64  `gorm:"column:ctime" json:"-"` // 创建时间
1039
+	ModifyTime   int64  `gorm:"column:mtime" json:"-"` // 修改时间
1040
+	StaffNumber  int64  `gorm:"-" json:"staff_number"`
1041
+	Number       int64  `gorm:"number" json:"number"`
1042
+	IsSystem     int64  `gorm:"column:is_system" json:"is_system" form:"is_system"`
1043
+}
1044
+
1045
+func (XtRole) TableName() string {
1046
+	return "sgj_user_role"
1047
+}

+ 55 - 0
models/sz_his_models.go 파일 보기

@@ -18,3 +18,58 @@ type CustomDetail struct {
18 18
 	Spec               string
19 19
 	CustomNumber       string
20 20
 }
21
+
22
+type DrugDetail struct {
23
+	MedicalInsuranceNumber string  //社保目录编码
24
+	Code                   string  // 药品本位码
25
+	DrugName               string  //医药机构内部目录名称
26
+	DrugSpec               string  //规格
27
+	DrugDosageName         string  //剂型
28
+	MinUnit                string  //计价单位
29
+	ManufacturerName       string  //厂家
30
+	RetailPrice            float64 //药品收费价格
31
+	LastPrice              float64 // 药品进货价格
32
+	LimitRemark            string  //药品备注
33
+}
34
+
35
+type DocDetail struct {
36
+	UserName                                string //医护姓名
37
+	RoleId                                  string //医护人员类别
38
+	Sex                                     string //性别
39
+	CardType                                string //证件类型
40
+	IdCard                                  string //证件号码
41
+	Phone                                   string //联系电话
42
+	WorkMajorName                           string // 从事专业名称
43
+	Nation                                  string //民族
44
+	BirthDay                                int64  // 出生日期
45
+	WorkTime                                int64  //参加工作日期
46
+	Education                               string //学历
47
+	StudyMajorName                          string //所学专业名称
48
+	CertificateCode                         string //证书编码
49
+	MedicalCode                             string //医师资格编码
50
+	MedicalRangeCode                        string //医师执业范围代码
51
+	MedicalLevel                            string //医生级别
52
+	TypeJob                                 string //职业类别
53
+	DoctorNumber                            string //医师编号
54
+	Licensing                               string //职业标志
55
+	DoctorServiceStatus                     string //医师医保服务资格状态
56
+	MonitoringLevel                         string //监控等级
57
+	DrugPsychotropicSubstances              string //毒麻精神药品资格
58
+	HealthCareCode                          string // 母婴保健技术考核合格证书编号
59
+	PlanningTechnicalServiceCode            string //计划生育技术服务人员合格证编号
60
+	PharmacistType                          string //药师类别
61
+	PharmacistPracticeCategory              string //药师执业类别
62
+	PharmacistsLicensing                    string //药师执业范围
63
+	PharmacistRegistrationNumber            string //执业药师注册证编号
64
+	OfficeCode                              string //科室编码
65
+	JobNumber                               string //工号
66
+	PostName                                string //职位名称
67
+	TechnicalJobLevelCode                   string //专业技术职务级别编码
68
+	IsActive                                string //在职与否
69
+	PrescriptionQualificationIdentification string //处方资格标识
70
+	IdentificationOutpatients               string //门诊大病医师标识
71
+	OutpatientIllnessCategory               string //门诊大病类别
72
+	StartTime                               int64  //开始日期
73
+	StaffCode                               string //医护人员编码
74
+	EndTime                                 int64  // 结束日期
75
+}

+ 32 - 0
service/his_service.go 파일 보기

@@ -1,6 +1,7 @@
1 1
 package service
2 2
 
3 3
 import (
4
+	"fmt"
4 5
 	"gdyb/models"
5 6
 	"github.com/jinzhu/gorm"
6 7
 	"time"
@@ -963,3 +964,34 @@ func GetPatientByIDTwo(orgID int64, patientID int64) (Patients, error) {
963 964
 	err := readDb.Model(&Patients{}).Where("id = ? and user_org_id=? and status=1", patientID, orgID).First(&patient).Error
964 965
 	return patient, err
965 966
 }
967
+
968
+func GetDrugList(orgID int64) (drug []*models.BaseDrugList, err error) {
969
+
970
+	db := XTReadDB().Table("xt_base_drug as x").Where("x.status = 1")
971
+	table := XTReadDB().Table("xt_manufacturer as m")
972
+	fmt.Print(table)
973
+	if orgID > 0 {
974
+		db = db.Where("x.org_id = ? and x.id = 278", orgID)
975
+	}
976
+	err = db.Select("x.id,x.medical_insurance_number,x.code,x.drug_name,x.drug_spec,x.drug_type,x.min_unit,x.last_price,x.retail_price,x.limit_remark,x.drug_dosage_form,m.manufacturer_name").Joins("left join xt_manufacturer as m on m.id = x.manufacturer").Scan(&drug).Error
977
+
978
+	return drug, err
979
+}
980
+
981
+func GetDrugDosageForm(orgid int64) (dataconfig []*models.XtDrugDataConfig, err error) {
982
+
983
+	err = XTReadDB().Where("(org_id = ? or org_id = 0) and parent_id = 4 and status = 1", orgid).Find(&dataconfig).Error
984
+	return dataconfig, err
985
+}
986
+
987
+func GetDoctorList(orgid int64) (role []*models.SgjUserAdminRole, err error) {
988
+
989
+	err = UserReadDB().Model(&role).Where("org_id = ? and status = 1", orgid).Find(&role).Error
990
+	return role, err
991
+}
992
+
993
+func GetRoleList(orgid int64) (role []*models.SgjUserRole, err error) {
994
+
995
+	err = UserReadDB().Model(&role).Where("org_id = ? and status =1", orgid).Find(&role).Error
996
+	return role, err
997
+}

+ 465 - 0
service/sz_his_service.go 파일 보기

@@ -6,6 +6,7 @@ import (
6 6
 	"fmt"
7 7
 	"gdyb/models"
8 8
 	"io/ioutil"
9
+	"math/rand"
9 10
 	"net/http"
10 11
 	"time"
11 12
 	_ "unsafe"
@@ -470,3 +471,467 @@ func msToTime(ms int64) string {
470 471
 	tm := time.Unix(0, ms*int64(time.Millisecond))
471 472
 	return tm.Format("2006-02-01 15:04:05.000")
472 473
 }
474
+
475
+func SzybML008(doctor string, doctor_code string, fixmedins_code string, datas []*models.DrugDetail) string {
476
+	//生成输入报文
477
+	inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
478
+
479
+	inputData := make(map[string]interface{})
480
+	inputMessage["transType"] = "JY003" // 交易编码
481
+
482
+	inputData["listsize"] = len(datas)
483
+	inputMessage["transType"] = "ML008" // 交易编码
484
+	feedetail := make([]map[string]interface{}, 0)
485
+	//inputData["akc190"] = mz_number
486
+	//inputData["bke384"] = setl_number
487
+
488
+	for _, item := range datas {
489
+		fmt.Println("中国222222", item.DrugDosageName)
490
+		feedetailInfo := make(map[string]interface{})
491
+		feedetailInfo["ake001"] = item.MedicalInsuranceNumber
492
+		feedetailInfo["bkm017"] = item.Code
493
+		feedetailInfo["ake005"] = "110100002"
494
+		feedetailInfo["ake006"] = item.DrugName
495
+		feedetailInfo["aka074"] = item.DrugSpec
496
+		feedetailInfo["aka070"] = item.DrugDosageName
497
+		//feedetailInfo["aka070"] = "片"
498
+		feedetailInfo["aka067"] = item.MinUnit
499
+		feedetailInfo["bka053"] = item.ManufacturerName
500
+		feedetailInfo["aka064"] = "1"
501
+		feedetailInfo["bka505"] = item.LastPrice
502
+		feedetailInfo["bka506"] = item.RetailPrice
503
+		feedetailInfo["aae030"] = 20210406
504
+		feedetailInfo["aae013"] = item.LimitRemark
505
+		feedetail = append(feedetail, feedetailInfo)
506
+	}
507
+
508
+	inputData["inputlist"] = feedetail
509
+	inputMessage["transBody"] = inputData
510
+
511
+	bytesData, err := json.Marshal(inputMessage)
512
+	fmt.Println(string(bytesData))
513
+	if err != nil {
514
+		fmt.Println(err.Error())
515
+		return err.Error()
516
+	}
517
+	reader := bytes.NewReader(bytesData)
518
+	//url := "http://192.168.1.99:10000"
519
+	url := "http://192.168.1.228:17001/szsi-portal/transData"
520
+
521
+	request, err := http.NewRequest("POST", url, reader)
522
+	if err != nil {
523
+		fmt.Println(err.Error())
524
+		return err.Error()
525
+	}
526
+
527
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
528
+
529
+	client := http.Client{}
530
+	resp, err := client.Do(request)
531
+	if err != nil {
532
+		fmt.Println(err.Error())
533
+		return err.Error()
534
+	}
535
+	respBytes, err := ioutil.ReadAll(resp.Body)
536
+	if err != nil {
537
+		fmt.Println(err.Error())
538
+		return err.Error()
539
+	}
540
+	fmt.Println(string(respBytes))
541
+	str := string(respBytes)
542
+	return str
543
+}
544
+
545
+// 生成基础报文
546
+func SetSZDrugMessage(doctor string, doctor_code string, fixmedins_code string) map[string]interface{} {
547
+	month := time.Unix(1557042972, 0).Format("1")
548
+	year := time.Now().Format("2006")
549
+	month = time.Now().Format("01")
550
+	day := time.Now().Format("02")
551
+
552
+	hour := time.Now().Format("15")
553
+	min := time.Now().Format("04")
554
+	sec := time.Now().Format("05")
555
+
556
+	msec := time.Now().Format("000")
557
+
558
+	//生成输入报文
559
+	inputMessage := make(map[string]interface{})
560
+	//
561
+
562
+	inputMessage["cardArea"] = "440300" // 发卡地行政区划代码
563
+	inputMessage["extendDeviceId"] = ""
564
+	inputMessage["extendSerialNumber"] = ""
565
+	inputMessage["extendUserId"] = ""
566
+	inputMessage["hospitalCode"] = "G5540"     // 协议机构编码
567
+	inputMessage["operatorCode"] = doctor_code // 操作员编码
568
+	inputMessage["operatorName"] = doctor      // 操作员名字
569
+	inputMessage["operatorPass"] = ""          // 定点协议机构操作人员编码
570
+	//inputMessage["serialNumber"] = "G5540" + year + month + day +
571
+	//  fmt.Sprintf("%07v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000000)) // 定点协议机构编码(5位)+日期(8位)+流水号(7位)
572
+	inputMessage["serialNumber"] = "G554020210406" + fmt.Sprintf("%07v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000000)) // 定点协议机构编码(5位)+日期(8位)+流水号(7位)
573
+	inputMessage["verifyCode"] = "000000|8ec5b7745a5cc45b631f23b4bf1e417e"
574
+
575
+	inputMessage["transReturnCode"] = ""                                           //
576
+	inputMessage["transReturnMessage"] = ""                                        //
577
+	inputMessage["transTime"] = year + month + day + hour + min + sec + ":" + msec //
578
+	inputMessage["transVersion"] = "V0.3"                                          //   //
579
+	inputMessage["transChannel"] = "10"                                            //
580
+
581
+	return inputMessage
582
+}
583
+
584
+func SzybML009(doctor string, doctor_code string, fixmedins_code string, datas []*models.DrugDetail) string {
585
+	//生成输入报文
586
+	inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
587
+
588
+	inputData := make(map[string]interface{})
589
+
590
+	inputData["listsize"] = len(datas)
591
+	inputMessage["transType"] = "ML009" // 交易编码
592
+	feedetail := make([]map[string]interface{}, 0)
593
+
594
+	for _, item := range datas {
595
+		feedetailInfo := make(map[string]interface{})
596
+		feedetailInfo["ake001"] = item.MedicalInsuranceNumber //社保目录编码
597
+		feedetailInfo["ake005"] = "110100002"                 //协议机构内部目录编码
598
+		feedetailInfo["ake006"] = item.DrugName               // 协议机构内部目录名称
599
+		feedetailInfo["bkf131"] = "4"                         //协议机构项目类别
600
+		feedetailInfo["bkm062"] = "0"                         // 门诊特检项目标识
601
+		feedetailInfo["bka506"] = item.RetailPrice            // 协议机构内部项目收费价格
602
+		feedetailInfo["aae030"] = 20210407                    // 备案日期
603
+		feedetailInfo["aae013"] = item.LimitRemark            // 备注
604
+		feedetail = append(feedetail, feedetailInfo)
605
+	}
606
+	fmt.Println("feeedDetal2333333333", feedetail)
607
+	inputData["inputlist"] = feedetail
608
+	inputMessage["transBody"] = inputData
609
+
610
+	bytesData, err := json.Marshal(inputMessage)
611
+	fmt.Println(string(bytesData))
612
+	if err != nil {
613
+		fmt.Println(err.Error())
614
+		return err.Error()
615
+	}
616
+	reader := bytes.NewReader(bytesData)
617
+	//url := "http://192.168.1.99:10000"
618
+	url := "http://192.168.1.228:17001/szsi-portal/transData"
619
+
620
+	request, err := http.NewRequest("POST", url, reader)
621
+	if err != nil {
622
+		fmt.Println(err.Error())
623
+		return err.Error()
624
+	}
625
+
626
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
627
+
628
+	client := http.Client{}
629
+	resp, err := client.Do(request)
630
+	if err != nil {
631
+		fmt.Println(err.Error())
632
+		return err.Error()
633
+	}
634
+	respBytes, err := ioutil.ReadAll(resp.Body)
635
+	if err != nil {
636
+		fmt.Println(err.Error())
637
+		return err.Error()
638
+	}
639
+	fmt.Println(string(respBytes))
640
+	str := string(respBytes)
641
+	return str
642
+
643
+}
644
+
645
+func SzybML010(doctor string, doctor_code string, fixmedins_code string, datas []*models.DrugDetail) string {
646
+	//生成输入报文
647
+	inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
648
+
649
+	inputData := make(map[string]interface{})
650
+
651
+	inputData["listsize"] = len(datas)
652
+	inputMessage["transType"] = "ML010" // 交易编码
653
+	feedetail := make([]map[string]interface{}, 0)
654
+
655
+	for _, item := range datas {
656
+		feedetailInfo := make(map[string]interface{})
657
+		feedetailInfo["ake003"] = "1"
658
+		feedetailInfo["ake001"] = item.MedicalInsuranceNumber //社保目录编码
659
+		feedetailInfo["ake005"] = "110100002"                 //协议机构内部目录编码
660
+		feedetail = append(feedetail, feedetailInfo)
661
+	}
662
+
663
+	inputData["inputlist"] = feedetail
664
+	inputMessage["transBody"] = inputData
665
+
666
+	bytesData, err := json.Marshal(inputMessage)
667
+	fmt.Println(string(bytesData))
668
+	if err != nil {
669
+		fmt.Println(err.Error())
670
+		return err.Error()
671
+	}
672
+	reader := bytes.NewReader(bytesData)
673
+	//url := "http://192.168.1.99:10000"
674
+	url := "http://192.168.1.228:17001/szsi-portal/transData"
675
+
676
+	request, err := http.NewRequest("POST", url, reader)
677
+	if err != nil {
678
+		fmt.Println(err.Error())
679
+		return err.Error()
680
+	}
681
+
682
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
683
+
684
+	client := http.Client{}
685
+	resp, err := client.Do(request)
686
+	if err != nil {
687
+		fmt.Println(err.Error())
688
+		return err.Error()
689
+	}
690
+	respBytes, err := ioutil.ReadAll(resp.Body)
691
+	if err != nil {
692
+		fmt.Println(err.Error())
693
+		return err.Error()
694
+	}
695
+	fmt.Println(string(respBytes))
696
+	str := string(respBytes)
697
+	return str
698
+
699
+}
700
+
701
+func SzybYS001(doctor string, doctor_code string, fixmedins_code string, datas []*models.DocDetail) string {
702
+	//生成输入报文
703
+	inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
704
+
705
+	inputData := make(map[string]interface{})
706
+
707
+	inputData["listsize"] = len(datas)
708
+	inputMessage["transType"] = "ML010" // 交易编码
709
+	feedetail := make([]map[string]interface{}, 0)
710
+
711
+	for _, item := range datas {
712
+		feedetailInfo := make(map[string]interface{})
713
+		feedetailInfo["aac003"] = item.UserName
714
+		feedetailInfo["bka633"] = item.RoleId
715
+		feedetailInfo["aac004"] = item.Sex
716
+		feedetailInfo["aac058"] = item.CardType
717
+		feedetailInfo["aac147"] = item.IdCard
718
+		feedetailInfo["aae005"] = item.Phone
719
+		feedetailInfo["bkc322"] = item.WorkMajorName
720
+		feedetailInfo["aac005"] = item.Nation
721
+		feedetailInfo["aac006"] = item.BirthDay
722
+		feedetailInfo["aac007"] = item.WorkTime
723
+		feedetailInfo["aac011"] = item.Education
724
+		feedetailInfo["aac183"] = item.StudyMajorName
725
+		feedetailInfo["bkc323"] = item.CertificateCode
726
+		feedetailInfo["bke955"] = item.MedicalCode
727
+		feedetailInfo["akc055"] = item.MedicalRangeCode
728
+		feedetailInfo["bcc950"] = item.MedicalLevel
729
+		feedetailInfo["bcc955"] = item.TypeJob
730
+		feedetailInfo["bka503"] = item.DoctorNumber
731
+		feedetailInfo["bkc324"] = item.Licensing
732
+		feedetailInfo["bkc326"] = item.DoctorServiceStatus
733
+		feedetailInfo["bkc328"] = item.MonitoringLevel
734
+		feedetailInfo["bkc329"] = item.DrugPsychotropicSubstances
735
+		feedetailInfo["bke801"] = item.HealthCareCode
736
+		feedetailInfo["bkc330"] = item.PlanningTechnicalServiceCode
737
+		feedetailInfo["bkc332"] = item.PharmacistType
738
+		feedetailInfo["bkc333"] = item.PharmacistPracticeCategory
739
+		feedetailInfo["bkc334"] = item.PharmacistsLicensing
740
+		feedetailInfo["bkc335"] = item.PharmacistRegistrationNumber
741
+		feedetailInfo["akf001"] = item.OfficeCode
742
+		feedetailInfo["acc501"] = item.JobNumber
743
+		feedetailInfo["ahc451"] = item.PostName
744
+		feedetailInfo["aaf009"] = item.TechnicalJobLevelCode
745
+		feedetailInfo["bkc321"] = item.IsActive
746
+		feedetailInfo["ckc302"] = item.PrescriptionQualificationIdentification
747
+		feedetailInfo["bkc325"] = item.IdentificationOutpatients
748
+		feedetailInfo["ckc304"] = item.OutpatientIllnessCategory
749
+		feedetailInfo["aae030"] = item.StartTime
750
+		feedetail = append(feedetail, feedetailInfo)
751
+	}
752
+
753
+	inputData["inputlist"] = feedetail
754
+	inputMessage["transBody"] = inputData
755
+
756
+	bytesData, err := json.Marshal(inputMessage)
757
+	fmt.Println(string(bytesData))
758
+	if err != nil {
759
+		fmt.Println(err.Error())
760
+		return err.Error()
761
+	}
762
+	reader := bytes.NewReader(bytesData)
763
+	//url := "http://192.168.1.99:10000"
764
+	url := "http://192.168.1.228:17001/szsi-portal/transData"
765
+
766
+	request, err := http.NewRequest("POST", url, reader)
767
+	if err != nil {
768
+		fmt.Println(err.Error())
769
+		return err.Error()
770
+	}
771
+
772
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
773
+
774
+	client := http.Client{}
775
+	resp, err := client.Do(request)
776
+	if err != nil {
777
+		fmt.Println(err.Error())
778
+		return err.Error()
779
+	}
780
+	respBytes, err := ioutil.ReadAll(resp.Body)
781
+	if err != nil {
782
+		fmt.Println(err.Error())
783
+		return err.Error()
784
+	}
785
+	fmt.Println(string(respBytes))
786
+	str := string(respBytes)
787
+	return str
788
+
789
+}
790
+
791
+func SzybYS002(doctor string, doctor_code string, fixmedins_code string, datas []*models.DocDetail) string {
792
+
793
+	//生成输入报文
794
+	inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
795
+
796
+	inputData := make(map[string]interface{})
797
+
798
+	inputData["listsize"] = len(datas)
799
+	inputMessage["transType"] = "ML010" // 交易编码
800
+	feedetail := make([]map[string]interface{}, 0)
801
+
802
+	for _, item := range datas {
803
+		fmt.Println("item2222", item)
804
+		feedetailInfo := make(map[string]interface{})
805
+		feedetailInfo["bkc320"] = 1111
806
+		feedetailInfo["bke155"] = ""
807
+		feedetail = append(feedetail, feedetailInfo)
808
+	}
809
+
810
+	inputData["inputlist"] = feedetail
811
+	inputMessage["transBody"] = inputData
812
+
813
+	bytesData, err := json.Marshal(inputMessage)
814
+	fmt.Println(string(bytesData))
815
+	if err != nil {
816
+		fmt.Println(err.Error())
817
+		return err.Error()
818
+	}
819
+	reader := bytes.NewReader(bytesData)
820
+	//url := "http://192.168.1.99:10000"
821
+	url := "http://192.168.1.228:17001/szsi-portal/transData"
822
+
823
+	request, err := http.NewRequest("POST", url, reader)
824
+	if err != nil {
825
+		fmt.Println(err.Error())
826
+		return err.Error()
827
+	}
828
+
829
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
830
+
831
+	client := http.Client{}
832
+	resp, err := client.Do(request)
833
+	if err != nil {
834
+		fmt.Println(err.Error())
835
+		return err.Error()
836
+	}
837
+	respBytes, err := ioutil.ReadAll(resp.Body)
838
+	if err != nil {
839
+		fmt.Println(err.Error())
840
+		return err.Error()
841
+	}
842
+	fmt.Println(string(respBytes))
843
+	str := string(respBytes)
844
+	return str
845
+}
846
+
847
+func SzybYS003(doctor string, doctor_code string, fixmedins_code string, datas []*models.DocDetail) string {
848
+
849
+	//生成输入报文
850
+	inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
851
+
852
+	inputData := make(map[string]interface{})
853
+
854
+	inputData["listsize"] = len(datas)
855
+	inputMessage["transType"] = "ML010" // 交易编码
856
+	feedetail := make([]map[string]interface{}, 0)
857
+
858
+	for _, item := range datas {
859
+		feedetailInfo := make(map[string]interface{})
860
+		feedetailInfo["bkc320"] = ""
861
+		feedetailInfo["aac003"] = item.UserName
862
+		feedetailInfo["bka633"] = item.RoleId
863
+		feedetailInfo["aac004"] = item.Sex
864
+		feedetailInfo["aac058"] = item.CardType
865
+		feedetailInfo["aac147"] = item.IdCard
866
+		feedetailInfo["aae005"] = item.Phone
867
+		feedetailInfo["bkc322"] = item.WorkMajorName
868
+		feedetailInfo["aac005"] = item.Nation
869
+		feedetailInfo["aac006"] = item.BirthDay
870
+		feedetailInfo["aac007"] = item.WorkTime
871
+		feedetailInfo["aac011"] = item.Education
872
+		feedetailInfo["aac183"] = item.StudyMajorName
873
+		feedetailInfo["bkc323"] = item.CertificateCode
874
+		feedetailInfo["bke955"] = item.MedicalCode
875
+		feedetailInfo["akc055"] = item.MedicalRangeCode
876
+		feedetailInfo["bcc950"] = item.MedicalLevel
877
+		feedetailInfo["bcc955"] = item.TypeJob
878
+		feedetailInfo["bka503"] = item.DoctorNumber
879
+		feedetailInfo["bkc324"] = item.Licensing
880
+		feedetailInfo["bkc326"] = item.DoctorServiceStatus
881
+		feedetailInfo["bkc328"] = item.MonitoringLevel
882
+		feedetailInfo["bkc329"] = item.DrugPsychotropicSubstances
883
+		feedetailInfo["bke801"] = item.HealthCareCode
884
+		feedetailInfo["bkc330"] = item.PlanningTechnicalServiceCode
885
+		feedetailInfo["bkc332"] = item.PharmacistType
886
+		feedetailInfo["bkc333"] = item.PharmacistPracticeCategory
887
+		feedetailInfo["bkc334"] = item.PharmacistsLicensing
888
+		feedetailInfo["bkc335"] = item.PharmacistRegistrationNumber
889
+		feedetailInfo["akf001"] = item.OfficeCode
890
+		feedetailInfo["acc501"] = item.JobNumber
891
+		feedetailInfo["ahc451"] = item.PostName
892
+		feedetailInfo["aaf009"] = item.TechnicalJobLevelCode
893
+		feedetailInfo["bkc321"] = item.IsActive
894
+		feedetailInfo["ckc302"] = item.PrescriptionQualificationIdentification
895
+		feedetailInfo["bkc325"] = item.IdentificationOutpatients
896
+		feedetailInfo["ckc304"] = item.OutpatientIllnessCategory
897
+		feedetailInfo["aae030"] = item.StartTime
898
+		feedetailInfo["aae031"] = item.EndTime
899
+		feedetail = append(feedetail, feedetailInfo)
900
+	}
901
+
902
+	inputData["inputlist"] = feedetail
903
+	inputMessage["transBody"] = inputData
904
+
905
+	bytesData, err := json.Marshal(inputMessage)
906
+	fmt.Println(string(bytesData))
907
+	if err != nil {
908
+		fmt.Println(err.Error())
909
+		return err.Error()
910
+	}
911
+	reader := bytes.NewReader(bytesData)
912
+	//url := "http://192.168.1.99:10000"
913
+	url := "http://192.168.1.228:17001/szsi-portal/transData"
914
+
915
+	request, err := http.NewRequest("POST", url, reader)
916
+	if err != nil {
917
+		fmt.Println(err.Error())
918
+		return err.Error()
919
+	}
920
+
921
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
922
+
923
+	client := http.Client{}
924
+	resp, err := client.Do(request)
925
+	if err != nil {
926
+		fmt.Println(err.Error())
927
+		return err.Error()
928
+	}
929
+	respBytes, err := ioutil.ReadAll(resp.Body)
930
+	if err != nil {
931
+		fmt.Println(err.Error())
932
+		return err.Error()
933
+	}
934
+	fmt.Println(string(respBytes))
935
+	str := string(respBytes)
936
+	return str
937
+}