|
@@ -1058,7 +1058,6 @@ func (c *HisApiController) CreateHisPrescription() {
|
1058
|
1058
|
var drug_id int64
|
1059
|
1059
|
var prescribing_number float64
|
1060
|
1060
|
var prescribingNumberUnit string
|
1061
|
|
- //var prescribingNumber string
|
1062
|
1061
|
|
1063
|
1062
|
var adviceId int64
|
1064
|
1063
|
if advice.(map[string]interface{})["id"] != nil || reflect.TypeOf(advice.(map[string]interface{})["id"]).String() == "float64" {
|
|
@@ -1067,7 +1066,6 @@ func (c *HisApiController) CreateHisPrescription() {
|
1067
|
1066
|
if advice.(map[string]interface{})["prescribing_number"] != nil || reflect.TypeOf(advice.(map[string]interface{})["prescribing_number"]).String() == "string" {
|
1068
|
1067
|
prescribing_number_str := advice.(map[string]interface{})["prescribing_number"].(string)
|
1069
|
1068
|
prescribing_number, _ = strconv.ParseFloat(prescribing_number_str, 64)
|
1070
|
|
- //prescribingNumber = advice.(map[string]interface{})["prescribing_number"].(string)
|
1071
|
1069
|
}
|
1072
|
1070
|
|
1073
|
1071
|
if advice.(map[string]interface{})["prescribing_number_unit"] != nil && reflect.TypeOf(advice.(map[string]interface{})["prescribing_number_unit"]).String() == "string" {
|
|
@@ -1087,6 +1085,7 @@ func (c *HisApiController) CreateHisPrescription() {
|
1087
|
1085
|
storeConfig, _ := service.GetAllStoreHouseConfig(adminInfo.CurrentOrgId)
|
1088
|
1086
|
//查询药品的所有库存
|
1089
|
1087
|
list, _ := service.GetDrugWarehouseInfoPrescriptionSeven(drug_id, adminInfo.CurrentOrgId, storeConfig.DrugStorehouseOut)
|
|
1088
|
+
|
1090
|
1089
|
var total_count int64
|
1091
|
1090
|
for _, it := range list {
|
1092
|
1091
|
total_count += it.StockMaxNumber*drug.MinNumber + it.StockMinNumber
|
|
@@ -1094,26 +1093,47 @@ func (c *HisApiController) CreateHisPrescription() {
|
1094
|
1093
|
totals := strconv.FormatInt(total_count, 10)
|
1095
|
1094
|
//查询该药品是否存在开药记录
|
1096
|
1095
|
advicelist, _ := service.GetHisAdviceListByDrugIdEight(drug_id, patient_id, recordDateTime, adviceId)
|
1097
|
|
- fmt.Println("advicleise23223323233223w", advicelist.PrescribingNumber)
|
|
1096
|
+
|
|
1097
|
+ //查询最新批次库存
|
|
1098
|
+ info, _ := service.FindLastDrugWarehousingInfoByID(drug_id, storeConfig.DrugStorehouseOut)
|
|
1099
|
+ var batch_number_count int64
|
|
1100
|
+ batch_number_count = info.StockMaxNumber*drug.MinNumber + info.StockMinNumber
|
|
1101
|
+ batch_number_counts := strconv.FormatInt(batch_number_count, 10)
|
1098
|
1102
|
//新增处方
|
1099
|
1103
|
if advicelist.ID == 0 {
|
1100
|
1104
|
all_count, _ := strconv.ParseFloat(totals, 64)
|
|
1105
|
+ batch_number_all_count, _ := strconv.ParseFloat(batch_number_counts, 64)
|
1101
|
1106
|
if prescribingNumberUnit == drug.MinUnit {
|
1102
|
|
- if prescribing_number > all_count {
|
1103
|
|
- c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
1104
|
|
- return
|
|
1107
|
+
|
|
1108
|
+ if drug.IsUse != 1 {
|
|
1109
|
+ if prescribing_number > all_count {
|
|
1110
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
|
1111
|
+ return
|
|
1112
|
+ }
|
|
1113
|
+
|
|
1114
|
+ if prescribing_number > batch_number_all_count {
|
|
1115
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "该批次剩余库存不足,剩余库存:" + strconv.FormatInt(info.StockMaxNumber, 10) + drug.MaxUnit + strconv.FormatInt(info.StockMinNumber, 10) + drug.MinUnit)
|
|
1116
|
+ return
|
|
1117
|
+ }
|
1105
|
1118
|
}
|
1106
|
1119
|
|
1107
|
1120
|
}
|
1108
|
1121
|
if prescribingNumberUnit == drug.MaxUnit {
|
1109
|
1122
|
num := prescribing_number * float64(drug.MinNumber)
|
1110
|
|
- if num > all_count {
|
1111
|
|
- c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
1112
|
|
- return
|
|
1123
|
+ if drug.IsUse != 1 {
|
|
1124
|
+ if num > all_count {
|
|
1125
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
|
1126
|
+ return
|
|
1127
|
+ }
|
|
1128
|
+
|
|
1129
|
+ if num > batch_number_all_count {
|
|
1130
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "该批次剩余库存不足,剩余库存:" + strconv.FormatInt(info.StockMaxNumber, 10) + drug.MaxUnit + strconv.FormatInt(info.StockMinNumber, 10) + drug.MinUnit)
|
|
1131
|
+ return
|
|
1132
|
+ }
|
1113
|
1133
|
}
|
1114
|
1134
|
}
|
1115
|
|
-
|
1116
|
1135
|
}
|
|
1136
|
+
|
1117
|
1137
|
drugOutConfig, _ := service.GetDrugOpenConfigOne(adminInfo.CurrentOrgId)
|
1118
|
1138
|
if drugOutConfig.IsOpen != 1 {
|
1119
|
1139
|
//修改处方
|
|
@@ -1159,24 +1179,51 @@ func (c *HisApiController) CreateHisPrescription() {
|
1159
|
1179
|
|
1160
|
1180
|
//新增处方
|
1161
|
1181
|
if advicelist.ID == 0 {
|
|
1182
|
+ //查询最新批次库存
|
|
1183
|
+ info, _ := service.FindLastDrugWarehousingInfoByID(drug_id, storeConfig.DrugStorehouseOut)
|
|
1184
|
+ var batch_number_count int64
|
|
1185
|
+ batch_number_count = info.StockMaxNumber*drug.MinNumber + info.StockMinNumber
|
|
1186
|
+ batch_number_counts := strconv.FormatInt(batch_number_count, 10)
|
1162
|
1187
|
all_count, _ := strconv.ParseFloat(totals, 64)
|
1163
|
1188
|
if prescribingNumberUnit == drug.MinUnit {
|
1164
|
|
- if prescribing_number > all_count {
|
1165
|
|
- c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
1166
|
|
- return
|
|
1189
|
+ batch_number_all_count, _ := strconv.ParseFloat(batch_number_counts, 64)
|
|
1190
|
+ if drug.IsUse != 1 {
|
|
1191
|
+ if prescribing_number > all_count {
|
|
1192
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
|
1193
|
+ return
|
|
1194
|
+ }
|
|
1195
|
+ if prescribing_number > batch_number_all_count {
|
|
1196
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "该批次剩余库存不足,剩余库存:" + strconv.FormatInt(info.StockMaxNumber, 10) + drug.MaxUnit + strconv.FormatInt(info.StockMinNumber, 10) + drug.MinUnit)
|
|
1197
|
+ return
|
|
1198
|
+ }
|
1167
|
1199
|
}
|
|
1200
|
+
|
1168
|
1201
|
} else {
|
1169
|
1202
|
if prescribingNumberUnit == drug.MaxUnit {
|
|
1203
|
+ batch_number_all_count, _ := strconv.ParseFloat(batch_number_counts, 64)
|
1170
|
1204
|
num := prescribing_number * float64(drug.MinNumber)
|
1171
|
|
- if num > all_count {
|
1172
|
|
- c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
1173
|
|
- return
|
|
1205
|
+ if drug.IsUse != 1 {
|
|
1206
|
+ if num > all_count {
|
|
1207
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
|
1208
|
+ return
|
|
1209
|
+ }
|
|
1210
|
+
|
|
1211
|
+ if prescribing_number > batch_number_all_count {
|
|
1212
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "该批次剩余库存不足,剩余库存:" + strconv.FormatInt(info.StockMaxNumber, 10) + drug.MaxUnit + strconv.FormatInt(info.StockMinNumber, 10) + drug.MinUnit)
|
|
1213
|
+ return
|
|
1214
|
+ }
|
1174
|
1215
|
}
|
|
1216
|
+
|
1175
|
1217
|
}
|
1176
|
1218
|
}
|
1177
|
1219
|
}
|
1178
|
1220
|
//修改处方
|
1179
|
1221
|
if advicelist.ID > 0 {
|
|
1222
|
+ //查询最新批次库存
|
|
1223
|
+ info, _ := service.FindLastDrugWarehousingInfoByID(drug_id, storeConfig.DrugStorehouseOut)
|
|
1224
|
+ var batch_number_count int64
|
|
1225
|
+ batch_number_count = info.StockMaxNumber*drug.MinNumber + info.StockMinNumber
|
|
1226
|
+
|
1180
|
1227
|
var device_number int64
|
1181
|
1228
|
|
1182
|
1229
|
if advicelist.PrescribingNumberUnit == drug.MaxUnit {
|
|
@@ -1203,10 +1250,17 @@ func (c *HisApiController) CreateHisPrescription() {
|
1203
|
1250
|
//如果修改的数量大于之前修改的数量
|
1204
|
1251
|
if (number_count - device_number) > 0 {
|
1205
|
1252
|
//如果修改的差数量 大于库存数量
|
1206
|
|
- if (number_count - device_number) > total_count {
|
1207
|
|
- c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
1208
|
|
- return
|
|
1253
|
+ if drug.IsUse != 1 {
|
|
1254
|
+ if (number_count - device_number) > total_count {
|
|
1255
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "库存不足")
|
|
1256
|
+ return
|
|
1257
|
+ }
|
|
1258
|
+ if (number_count - device_number) > batch_number_count {
|
|
1259
|
+ c.ServeDynamicFailJsonSend(drug.DrugName + "该批次剩余库存不足,剩余库存:" + strconv.FormatInt(info.StockMaxNumber, 10) + drug.MaxUnit + strconv.FormatInt(info.StockMinNumber, 10) + drug.MinUnit)
|
|
1260
|
+ return
|
|
1261
|
+ }
|
1209
|
1262
|
}
|
|
1263
|
+
|
1210
|
1264
|
}
|
1211
|
1265
|
|
1212
|
1266
|
if device_number != number_count {
|
|
@@ -2470,7 +2524,7 @@ func (c *HisApiController) DeleteDoctorAdvice() {
|
2470
|
2524
|
if drugStockConfig.IsOpen == 1 {
|
2471
|
2525
|
|
2472
|
2526
|
//查询是否在处方中出库
|
2473
|
|
- openConfig, _ := service.GetDrugOpenConfig(c.GetAdminUserInfo().CurrentOrgId)
|
|
2527
|
+ openConfig, _ := service.GetDrugOpenConfigOne(c.GetAdminUserInfo().CurrentOrgId)
|
2474
|
2528
|
if openConfig.IsOpen != 1 {
|
2475
|
2529
|
|
2476
|
2530
|
//判断该医嘱是否执行了
|