|
@@ -995,7 +995,6 @@ func (c *HisApiController) CreateHisPrescription() {
|
995
|
995
|
var drug_id int64
|
996
|
996
|
var prescribing_number float64
|
997
|
997
|
var prescribingNumberUnit string
|
998
|
|
- //var prescribingNumber string
|
999
|
998
|
|
1000
|
999
|
var adviceId int64
|
1001
|
1000
|
if advice.(map[string]interface{})["id"] != nil || reflect.TypeOf(advice.(map[string]interface{})["id"]).String() == "float64" {
|
|
@@ -1004,7 +1003,6 @@ func (c *HisApiController) CreateHisPrescription() {
|
1004
|
1003
|
if advice.(map[string]interface{})["prescribing_number"] != nil || reflect.TypeOf(advice.(map[string]interface{})["prescribing_number"]).String() == "string" {
|
1005
|
1004
|
prescribing_number_str := advice.(map[string]interface{})["prescribing_number"].(string)
|
1006
|
1005
|
prescribing_number, _ = strconv.ParseFloat(prescribing_number_str, 64)
|
1007
|
|
- //prescribingNumber = advice.(map[string]interface{})["prescribing_number"].(string)
|
1008
|
1006
|
}
|
1009
|
1007
|
|
1010
|
1008
|
if advice.(map[string]interface{})["prescribing_number_unit"] != nil && reflect.TypeOf(advice.(map[string]interface{})["prescribing_number_unit"]).String() == "string" {
|
|
@@ -1024,6 +1022,7 @@ func (c *HisApiController) CreateHisPrescription() {
|
1024
|
1022
|
storeConfig, _ := service.GetAllStoreHouseConfig(adminInfo.CurrentOrgId)
|
1025
|
1023
|
//查询药品的所有库存
|
1026
|
1024
|
list, _ := service.GetDrugWarehouseInfoPrescriptionSeven(drug_id, adminInfo.CurrentOrgId, storeConfig.DrugStorehouseOut)
|
|
1025
|
+
|
1027
|
1026
|
var total_count int64
|
1028
|
1027
|
for _, it := range list {
|
1029
|
1028
|
total_count += it.StockMaxNumber*drug.MinNumber + it.StockMinNumber
|
|
@@ -1031,26 +1030,47 @@ func (c *HisApiController) CreateHisPrescription() {
|
1031
|
1030
|
totals := strconv.FormatInt(total_count, 10)
|
1032
|
1031
|
//查询该药品是否存在开药记录
|
1033
|
1032
|
advicelist, _ := service.GetHisAdviceListByDrugIdEight(drug_id, patient_id, recordDateTime, adviceId)
|
1034
|
|
- fmt.Println("advicleise23223323233223w", advicelist.PrescribingNumber)
|
|
1033
|
+
|
|
1034
|
+ //查询最新批次库存
|
|
1035
|
+ info, _ := service.FindLastDrugWarehousingInfoByID(drug_id, storeConfig.DrugStorehouseOut)
|
|
1036
|
+ var batch_number_count int64
|
|
1037
|
+ batch_number_count = info.StockMaxNumber*drug.MinNumber + info.StockMinNumber
|
|
1038
|
+ batch_number_counts := strconv.FormatInt(batch_number_count, 10)
|
1035
|
1039
|
//新增处方
|
1036
|
1040
|
if advicelist.ID == 0 {
|
1037
|
1041
|
all_count, _ := strconv.ParseFloat(totals, 64)
|
|
1042
|
+ batch_number_all_count, _ := strconv.ParseFloat(batch_number_counts, 64)
|
1038
|
1043
|
if prescribingNumberUnit == drug.MinUnit {
|
1039
|
|
- if prescribing_number > all_count {
|
1040
|
|
- c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
1041
|
|
- return
|
|
1044
|
+
|
|
1045
|
+ if drug.IsUse != 1 {
|
|
1046
|
+ if prescribing_number > all_count {
|
|
1047
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
|
1048
|
+ return
|
|
1049
|
+ }
|
|
1050
|
+
|
|
1051
|
+ if prescribing_number > batch_number_all_count {
|
|
1052
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "该批次剩余库存不足,剩余库存:" + strconv.FormatInt(info.StockMaxNumber, 10) + drug.MaxUnit + strconv.FormatInt(info.StockMinNumber, 10) + drug.MinUnit)
|
|
1053
|
+ return
|
|
1054
|
+ }
|
1042
|
1055
|
}
|
1043
|
1056
|
|
1044
|
1057
|
}
|
1045
|
1058
|
if prescribingNumberUnit == drug.MaxUnit {
|
1046
|
1059
|
num := prescribing_number * float64(drug.MinNumber)
|
1047
|
|
- if num > all_count {
|
1048
|
|
- c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
1049
|
|
- return
|
|
1060
|
+ if drug.IsUse != 1 {
|
|
1061
|
+ if num > all_count {
|
|
1062
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
|
1063
|
+ return
|
|
1064
|
+ }
|
|
1065
|
+
|
|
1066
|
+ if num > batch_number_all_count {
|
|
1067
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "该批次剩余库存不足,剩余库存:" + strconv.FormatInt(info.StockMaxNumber, 10) + drug.MaxUnit + strconv.FormatInt(info.StockMinNumber, 10) + drug.MinUnit)
|
|
1068
|
+ return
|
|
1069
|
+ }
|
1050
|
1070
|
}
|
1051
|
1071
|
}
|
1052
|
|
-
|
1053
|
1072
|
}
|
|
1073
|
+
|
1054
|
1074
|
drugOutConfig, _ := service.GetDrugOpenConfigOne(adminInfo.CurrentOrgId)
|
1055
|
1075
|
if drugOutConfig.IsOpen != 1 {
|
1056
|
1076
|
//修改处方
|
|
@@ -1096,24 +1116,51 @@ func (c *HisApiController) CreateHisPrescription() {
|
1096
|
1116
|
|
1097
|
1117
|
//新增处方
|
1098
|
1118
|
if advicelist.ID == 0 {
|
|
1119
|
+ //查询最新批次库存
|
|
1120
|
+ info, _ := service.FindLastDrugWarehousingInfoByID(drug_id, storeConfig.DrugStorehouseOut)
|
|
1121
|
+ var batch_number_count int64
|
|
1122
|
+ batch_number_count = info.StockMaxNumber*drug.MinNumber + info.StockMinNumber
|
|
1123
|
+ batch_number_counts := strconv.FormatInt(batch_number_count, 10)
|
1099
|
1124
|
all_count, _ := strconv.ParseFloat(totals, 64)
|
1100
|
1125
|
if prescribingNumberUnit == drug.MinUnit {
|
1101
|
|
- if prescribing_number > all_count {
|
1102
|
|
- c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
1103
|
|
- return
|
|
1126
|
+ batch_number_all_count, _ := strconv.ParseFloat(batch_number_counts, 64)
|
|
1127
|
+ if drug.IsUse != 1 {
|
|
1128
|
+ if prescribing_number > all_count {
|
|
1129
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
|
1130
|
+ return
|
|
1131
|
+ }
|
|
1132
|
+ if prescribing_number > batch_number_all_count {
|
|
1133
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "该批次剩余库存不足,剩余库存:" + strconv.FormatInt(info.StockMaxNumber, 10) + drug.MaxUnit + strconv.FormatInt(info.StockMinNumber, 10) + drug.MinUnit)
|
|
1134
|
+ return
|
|
1135
|
+ }
|
1104
|
1136
|
}
|
|
1137
|
+
|
1105
|
1138
|
} else {
|
1106
|
1139
|
if prescribingNumberUnit == drug.MaxUnit {
|
|
1140
|
+ batch_number_all_count, _ := strconv.ParseFloat(batch_number_counts, 64)
|
1107
|
1141
|
num := prescribing_number * float64(drug.MinNumber)
|
1108
|
|
- if num > all_count {
|
1109
|
|
- c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
1110
|
|
- return
|
|
1142
|
+ if drug.IsUse != 1 {
|
|
1143
|
+ if num > all_count {
|
|
1144
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
|
1145
|
+ return
|
|
1146
|
+ }
|
|
1147
|
+
|
|
1148
|
+ if prescribing_number > batch_number_all_count {
|
|
1149
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "该批次剩余库存不足,剩余库存:" + strconv.FormatInt(info.StockMaxNumber, 10) + drug.MaxUnit + strconv.FormatInt(info.StockMinNumber, 10) + drug.MinUnit)
|
|
1150
|
+ return
|
|
1151
|
+ }
|
1111
|
1152
|
}
|
|
1153
|
+
|
1112
|
1154
|
}
|
1113
|
1155
|
}
|
1114
|
1156
|
}
|
1115
|
1157
|
//修改处方
|
1116
|
1158
|
if advicelist.ID > 0 {
|
|
1159
|
+ //查询最新批次库存
|
|
1160
|
+ info, _ := service.FindLastDrugWarehousingInfoByID(drug_id, storeConfig.DrugStorehouseOut)
|
|
1161
|
+ var batch_number_count int64
|
|
1162
|
+ batch_number_count = info.StockMaxNumber*drug.MinNumber + info.StockMinNumber
|
|
1163
|
+
|
1117
|
1164
|
var device_number int64
|
1118
|
1165
|
|
1119
|
1166
|
if advicelist.PrescribingNumberUnit == drug.MaxUnit {
|
|
@@ -1140,10 +1187,17 @@ func (c *HisApiController) CreateHisPrescription() {
|
1140
|
1187
|
//如果修改的数量大于之前修改的数量
|
1141
|
1188
|
if (number_count - device_number) > 0 {
|
1142
|
1189
|
//如果修改的差数量 大于库存数量
|
1143
|
|
- if (number_count - device_number) > total_count {
|
1144
|
|
- c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
1145
|
|
- return
|
|
1190
|
+ if drug.IsUse != 1 {
|
|
1191
|
+ if (number_count - device_number) > total_count {
|
|
1192
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
|
1193
|
+ return
|
|
1194
|
+ }
|
|
1195
|
+ if (number_count - device_number) > batch_number_count {
|
|
1196
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "该批次剩余库存不足,剩余库存:" + strconv.FormatInt(info.StockMaxNumber, 10) + drug.MaxUnit + strconv.FormatInt(info.StockMinNumber, 10) + drug.MinUnit)
|
|
1197
|
+ return
|
|
1198
|
+ }
|
1146
|
1199
|
}
|
|
1200
|
+
|
1147
|
1201
|
}
|
1148
|
1202
|
|
1149
|
1203
|
if device_number != number_count {
|
|
@@ -2315,7 +2369,7 @@ func (c *HisApiController) DeleteDoctorAdvice() {
|
2315
|
2369
|
if drugStockConfig.IsOpen == 1 {
|
2316
|
2370
|
|
2317
|
2371
|
//查询是否在处方中出库
|
2318
|
|
- openConfig, _ := service.GetDrugOpenConfig(c.GetAdminUserInfo().CurrentOrgId)
|
|
2372
|
+ openConfig, _ := service.GetDrugOpenConfigOne(c.GetAdminUserInfo().CurrentOrgId)
|
2319
|
2373
|
if openConfig.IsOpen != 1 {
|
2320
|
2374
|
|
2321
|
2375
|
//判断该医嘱是否执行了
|