|
@@ -371,12 +371,13 @@ func (c *SZHisApiController) GetRegisterInfo() {
|
371
|
371
|
|
372
|
372
|
//流水号
|
373
|
373
|
//
|
374
|
|
- number := miConfig.Code + year + month + day +
|
375
|
|
- fmt.Sprintf("%07v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000000)) // 定点协议机构编码(5位)+日期(8位)+流水号(7位)
|
|
374
|
+ //number := miConfig.Code + year + month + day +
|
|
375
|
+ // fmt.Sprintf("%07v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000000)) // 定点协议机构编码(5位)+日期(8位)+流水号(7位)
|
376
|
376
|
mz_number := year + month + day + strconv.FormatInt(patient_id, 10)
|
377
|
|
- //number := miConfig.Code + year + month + day + "2233445"
|
378
|
|
- verifyCode, version_code := ReadCardGetCode("MZ002" + "|" + number + "|" + miConfig.Code)
|
379
|
|
-
|
|
377
|
+ number := miConfig.Code + year + month + day + "2233445"
|
|
378
|
+ //verifyCode, version_code := ReadCardGetCode("MZ002" + "|" + number + "|" + miConfig.Code)
|
|
379
|
+ verifyCode := "000000|4d221ed0d796a493ada20244272962d4"
|
|
380
|
+ version_code := "0.03"
|
380
|
381
|
//1.判断读卡类型
|
381
|
382
|
//2.读卡 获取交易验证码,医疗证号,发卡地区行政区划代码
|
382
|
383
|
//yiliao_number, id_card_number,verifyCode, err, ret4 := ReadBasCardGetNumber(number)
|
|
@@ -653,7 +654,6 @@ func (c *SZHisApiController) GetUploadInfo() {
|
653
|
654
|
chrg_bchno := timeFormat + strconv.FormatInt(int64(chrgBchno), 10) + strconv.FormatInt(1, 10)
|
654
|
655
|
adminUser := c.GetAdminUserInfo()
|
655
|
656
|
miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
|
656
|
|
-
|
657
|
657
|
month := time.Unix(1557042972, 0).Format("1")
|
658
|
658
|
year := time.Now().Format("2006")
|
659
|
659
|
month = time.Now().Format("01")
|
|
@@ -725,12 +725,15 @@ func (c *SZHisApiController) GetUploadInfo() {
|
725
|
725
|
doctor_code = strconv.FormatInt(admin_user_id, 10)
|
726
|
726
|
}
|
727
|
727
|
|
728
|
|
- verifyCode, version_code := ReadCardGetCode("FY001" + "|" + number + "|" + miConfig.Code)
|
|
728
|
+ //verifyCode, version_code := ReadCardGetCode("FY001" + "|" + number + "|" + miConfig.Code)
|
|
729
|
+ verifyCode := ""
|
|
730
|
+ version_code := ""
|
729
|
731
|
var customs []*models.CustomDetail
|
730
|
732
|
for _, item := range prescriptions {
|
731
|
733
|
if item.Type == 1 { //药品
|
732
|
734
|
for _, subItem := range item.HisDoctorAdviceInfo {
|
733
|
735
|
if len(subItem.BaseDrugLib.MedicalInsuranceNumber) > 0 {
|
|
736
|
+ _, dose_code := service.GetDoseCode(subItem.BaseDrugLib.DrugDosageForm, adminUser.CurrentOrgId)
|
734
|
737
|
detItemFeeSumamt, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", subItem.Price*subItem.PrescribingNumber), 64)
|
735
|
738
|
price, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", subItem.Price), 64)
|
736
|
739
|
cus := &models.CustomDetail{
|
|
@@ -745,7 +748,7 @@ func (c *SZHisApiController) GetUploadInfo() {
|
745
|
748
|
ChargeOrderDate: year + month + day,
|
746
|
749
|
DoctorCode: doctor_code,
|
747
|
750
|
Total: detItemFeeSumamt,
|
748
|
|
- DoseCode: "",
|
|
751
|
+ DoseCode: dose_code,
|
749
|
752
|
Spec: strconv.FormatFloat(subItem.DrugSpec, 'E', -1, 64) + subItem.DrugSpecUnit,
|
750
|
753
|
}
|
751
|
754
|
customs = append(customs, cus)
|
|
@@ -976,7 +979,9 @@ func (c *SZHisApiController) GetUploadInfo() {
|
976
|
979
|
total = total + (subItem.Price * float64(subItem.Count))
|
977
|
980
|
}
|
978
|
981
|
}
|
979
|
|
- verifyCode, version_code := ReadCardGetCode("FY004" + "|" + number + "|" + miConfig.Code)
|
|
982
|
+ //verifyCode, version_code := ReadCardGetCode("FY004" + "|" + number + "|" + miConfig.Code)
|
|
983
|
+ verifyCode := ""
|
|
984
|
+ version_code := ""
|
980
|
985
|
result_two := service.SzybFY004(doctor_name, doctor_code, miConfig.Code, total, verifyCode, number, mz_number, version_code)
|
981
|
986
|
var dat map[string]interface{}
|
982
|
987
|
if err := json.Unmarshal([]byte(result_two), &dat); err == nil {
|
|
@@ -1103,7 +1108,10 @@ func (c *SZHisApiController) GetSettleInfo() {
|
1103
|
1108
|
}
|
1104
|
1109
|
number := his.MzNumber
|
1105
|
1110
|
mz_number := his.Number
|
1106
|
|
- verifyCode, version_code := ReadCardGetCode("FY005" + "|" + number + "|" + miConfig.Code)
|
|
1111
|
+ //verifyCode, version_code := ReadCardGetCode("FY005" + "|" + number + "|" + miConfig.Code)
|
|
1112
|
+
|
|
1113
|
+ verifyCode := ""
|
|
1114
|
+ version_code := ""
|
1107
|
1115
|
//verifyCode := "000000|eb7acc3ec61eb5e3fd12a3586ad3a9c5"
|
1108
|
1116
|
//version_code := "0.03"
|
1109
|
1117
|
//yiliao_number, id_card_number,verifyCode,versionCode, err, ret4 := ReadBasCardGetNumber("FY005" + "|" + number + "|" + miConfig.Code)
|
|
@@ -1397,56 +1405,56 @@ func (c *SZHisApiController) GetSettleAccounts() {
|
1397
|
1405
|
}
|
1398
|
1406
|
|
1399
|
1407
|
//获取verifyCode
|
1400
|
|
-func ReadCardGetCode(request string) (string, string) {
|
1401
|
|
- DllDef2 := syscall.MustLoadDLL("SSSE32.dll")
|
1402
|
|
- readCards := DllDef2.MustFindProc("iVerifyCode")
|
1403
|
|
- str := request
|
1404
|
|
- str3 := make([]byte, 256)
|
1405
|
|
- ret4, _, _ := readCards.Call(StrPtr(str), (uintptr)(unsafe.Pointer(&str3[0])))
|
1406
|
|
- fmt.Println(":", string(str3))
|
1407
|
|
-
|
1408
|
|
- if ret4 == 0 {
|
1409
|
|
- result := string(str3)
|
1410
|
|
- fmt.Println(result)
|
1411
|
|
- result_arr := strings.Split(result, "|")
|
1412
|
|
- verifyCode := result_arr[0] + "|" + result_arr[1]
|
1413
|
|
- versionCode := result_arr[2]
|
1414
|
|
-
|
1415
|
|
- return verifyCode, versionCode
|
1416
|
|
-
|
1417
|
|
- }
|
1418
|
|
- return "", ""
|
1419
|
|
-}
|
|
1408
|
+//func ReadCardGetCode(request string) (string, string) {
|
|
1409
|
+// DllDef2 := syscall.MustLoadDLL("SSSE32.dll")
|
|
1410
|
+// readCards := DllDef2.MustFindProc("iVerifyCode")
|
|
1411
|
+// str := request
|
|
1412
|
+// str3 := make([]byte, 256)
|
|
1413
|
+// ret4, _, _ := readCards.Call(StrPtr(str), (uintptr)(unsafe.Pointer(&str3[0])))
|
|
1414
|
+// fmt.Println(":", string(str3))
|
|
1415
|
+//
|
|
1416
|
+// if ret4 == 0 {
|
|
1417
|
+// result := string(str3)
|
|
1418
|
+// fmt.Println(result)
|
|
1419
|
+// result_arr := strings.Split(result, "|")
|
|
1420
|
+// verifyCode := result_arr[0] + "|" + result_arr[1]
|
|
1421
|
+// versionCode := result_arr[2]
|
|
1422
|
+//
|
|
1423
|
+// return verifyCode, versionCode
|
|
1424
|
+//
|
|
1425
|
+// }
|
|
1426
|
+// return "", ""
|
|
1427
|
+//}
|
1420
|
1428
|
|
1421
|
1429
|
//
|
1422
|
1430
|
////读卡
|
1423
|
|
-func ReadBasCardGetNumber(request string) (string, string, string, string, error, int64) {
|
1424
|
|
- DllDef2 := syscall.MustLoadDLL("SSSE32.dll")
|
1425
|
|
- readCards := DllDef2.MustFindProc("iReadCardBas")
|
1426
|
|
- str := request
|
1427
|
|
-
|
1428
|
|
- str3 := make([]byte, 256)
|
1429
|
|
- ret4, _, err := readCards.Call(IntPtr(3), StrPtr(str), (uintptr)(unsafe.Pointer(&str3[0])))
|
1430
|
|
- fmt.Println(":", string(str3))
|
1431
|
|
-
|
1432
|
|
- if ret4 == 0 {
|
1433
|
|
- result := string(str3)
|
1434
|
|
- fmt.Println(result)
|
1435
|
|
- result_arr := strings.Split(result, "|")
|
1436
|
|
- //医疗证号
|
1437
|
|
- yiliao_number := result_arr[12]
|
1438
|
|
-
|
1439
|
|
- //根据业务的人员信息跟设备读社保卡获取的信息进行匹配,判断是否为同一个人,相同则进行挂号操作,不同则报错
|
1440
|
|
- id_card_number := result_arr[1]
|
1441
|
|
-
|
1442
|
|
- verifyCode := result_arr[11] + result_arr[13]
|
1443
|
|
-
|
1444
|
|
- versionCode := result_arr[14]
|
1445
|
|
- return yiliao_number, id_card_number, verifyCode, versionCode, err, 1
|
1446
|
|
-
|
1447
|
|
- }
|
1448
|
|
- return "", "", "", "", err, 0
|
1449
|
|
-}
|
|
1431
|
+//func ReadBasCardGetNumber(request string) (string, string, string, string, error, int64) {
|
|
1432
|
+// DllDef2 := syscall.MustLoadDLL("SSSE32.dll")
|
|
1433
|
+// readCards := DllDef2.MustFindProc("iReadCardBas")
|
|
1434
|
+// str := request
|
|
1435
|
+//
|
|
1436
|
+// str3 := make([]byte, 256)
|
|
1437
|
+// ret4, _, err := readCards.Call(IntPtr(3), StrPtr(str), (uintptr)(unsafe.Pointer(&str3[0])))
|
|
1438
|
+// fmt.Println(":", string(str3))
|
|
1439
|
+//
|
|
1440
|
+// if ret4 == 0 {
|
|
1441
|
+// result := string(str3)
|
|
1442
|
+// fmt.Println(result)
|
|
1443
|
+// result_arr := strings.Split(result, "|")
|
|
1444
|
+// //医疗证号
|
|
1445
|
+// yiliao_number := result_arr[12]
|
|
1446
|
+//
|
|
1447
|
+// //根据业务的人员信息跟设备读社保卡获取的信息进行匹配,判断是否为同一个人,相同则进行挂号操作,不同则报错
|
|
1448
|
+// id_card_number := result_arr[1]
|
|
1449
|
+//
|
|
1450
|
+// verifyCode := result_arr[11] + result_arr[13]
|
|
1451
|
+//
|
|
1452
|
+// versionCode := result_arr[14]
|
|
1453
|
+// return yiliao_number, id_card_number, verifyCode, versionCode, err, 1
|
|
1454
|
+//
|
|
1455
|
+// }
|
|
1456
|
+// return "", "", "", "", err, 0
|
|
1457
|
+//}
|
1450
|
1458
|
|
1451
|
1459
|
//
|
1452
|
1460
|
////iReadCardBas_HSM_Step1 ---- 1903 iCardInnerAuthentication --- iReadCardBas_HSM_Step2
|