|
@@ -491,7 +491,8 @@ import {
|
491
|
491
|
getcurrentname,
|
492
|
492
|
getpartitionlist,
|
493
|
493
|
routeofadministration,
|
494
|
|
- changeDrugCode
|
|
494
|
+ changeDrugCode,
|
|
495
|
+ getDrugTocalCount
|
495
|
496
|
} from "@/api/pharmacy";
|
496
|
497
|
const moment = require("moment");
|
497
|
498
|
export default {
|
|
@@ -547,27 +548,104 @@ export default {
|
547
|
548
|
drug_code:0,
|
548
|
549
|
currentRow:{},
|
549
|
550
|
currentIndex:0,
|
|
551
|
+ drug_id:0,
|
|
552
|
+ newArrList:[],
|
|
553
|
+ baseList:[],
|
550
|
554
|
};
|
551
|
555
|
},
|
552
|
556
|
|
553
|
557
|
methods: {
|
554
|
558
|
// 追溯码
|
555
|
559
|
getDrugCode(id,DataSources,DrugCode,index){
|
556
|
|
- this.id = id
|
557
|
|
- var is_source =0
|
558
|
|
- if (DataSources == "his处方"){
|
559
|
|
- is_source = 1
|
560
|
|
- }
|
561
|
|
- if (DataSources == "临时医嘱"){
|
562
|
|
- is_source = 2
|
563
|
|
- }
|
564
|
|
- this.is_source = is_source
|
565
|
|
- this.textarea = DrugCode
|
566
|
|
- this.currentIndex = index
|
567
|
|
- this.dialogVisibleOne = true
|
568
|
|
- this.$nextTick(()=>{
|
569
|
|
- this.$refs.Datefrom.focus()
|
570
|
|
- })
|
|
560
|
+
|
|
561
|
+ if(this.$store.getters.xt_user.org.id == 10138 || this.$store.getters.xt_user.org.id == 10278 || this.$store.getters.xt_user.org.id == 10610 || this.$store.getters.xt_user.org.id == 10537){
|
|
562
|
+ var params = {
|
|
563
|
+ drug_id:this.drug_id,
|
|
564
|
+ start_time:moment().subtract(15, 'days').format("YYYY-MM-DD")
|
|
565
|
+ }
|
|
566
|
+
|
|
567
|
+ getDrugTocalCount(params).then(response=>{
|
|
568
|
+ if(response.data.state == 1){
|
|
569
|
+
|
|
570
|
+ var adviceList = response.data.data.adviceList
|
|
571
|
+
|
|
572
|
+ var str = ""
|
|
573
|
+ if(adviceList!=null && adviceList.length>0){
|
|
574
|
+ for(let i=0;i<adviceList.length;i++){
|
|
575
|
+ if(adviceList[i].drug_code!=""){
|
|
576
|
+ str+=adviceList[i].drug_code
|
|
577
|
+ }
|
|
578
|
+
|
|
579
|
+ }
|
|
580
|
+ }
|
|
581
|
+ var new_arr = str.split(",");
|
|
582
|
+
|
|
583
|
+ console.log("adviceList==========",new_arr)
|
|
584
|
+
|
|
585
|
+ if(new_arr!=null && new_arr.length>0){
|
|
586
|
+
|
|
587
|
+ let dataInfo = {}
|
|
588
|
+ new_arr.forEach((item, index) => {
|
|
589
|
+ if (!dataInfo[item]) {
|
|
590
|
+ dataInfo[item] = {
|
|
591
|
+ drug_code:item,
|
|
592
|
+ child: [],
|
|
593
|
+ }
|
|
594
|
+ }
|
|
595
|
+ })
|
|
596
|
+ let arr = Object.values(dataInfo)
|
|
597
|
+
|
|
598
|
+ if(arr!=null && arr.length>0){
|
|
599
|
+
|
|
600
|
+ for(let i=0;i<arr.length;i++){
|
|
601
|
+ for(let j=0;j<new_arr.length;j++){
|
|
602
|
+ if(arr[i].drug_code == new_arr[j]){
|
|
603
|
+ arr[i].child.push(new_arr[j])
|
|
604
|
+ }
|
|
605
|
+ }
|
|
606
|
+ }
|
|
607
|
+ }
|
|
608
|
+
|
|
609
|
+ this.newArrList = []
|
|
610
|
+ this.newArrList = arr
|
|
611
|
+
|
|
612
|
+ this.id = id
|
|
613
|
+ var is_source =0
|
|
614
|
+ if (DataSources == "his处方"){
|
|
615
|
+ is_source = 1
|
|
616
|
+ }
|
|
617
|
+ if (DataSources == "临时医嘱"){
|
|
618
|
+ is_source = 2
|
|
619
|
+ }
|
|
620
|
+ this.is_source = is_source
|
|
621
|
+ this.textarea = DrugCode
|
|
622
|
+ this.currentIndex = index
|
|
623
|
+ this.dialogVisibleOne = true
|
|
624
|
+ this.$nextTick(()=>{
|
|
625
|
+ this.$refs.Datefrom.focus()
|
|
626
|
+ })
|
|
627
|
+
|
|
628
|
+ }
|
|
629
|
+ }
|
|
630
|
+ })
|
|
631
|
+
|
|
632
|
+ }else{
|
|
633
|
+ this.id = id
|
|
634
|
+ var is_source =0
|
|
635
|
+ if (DataSources == "his处方"){
|
|
636
|
+ is_source = 1
|
|
637
|
+ }
|
|
638
|
+ if (DataSources == "临时医嘱"){
|
|
639
|
+ is_source = 2
|
|
640
|
+ }
|
|
641
|
+ this.is_source = is_source
|
|
642
|
+ this.textarea = DrugCode
|
|
643
|
+ this.currentIndex = index
|
|
644
|
+ this.dialogVisibleOne = true
|
|
645
|
+ this.$nextTick(()=>{
|
|
646
|
+ this.$refs.Datefrom.focus()
|
|
647
|
+ })
|
|
648
|
+ }
|
571
|
649
|
},
|
572
|
650
|
saveTextArea(){
|
573
|
651
|
|
|
@@ -593,9 +671,120 @@ export default {
|
593
|
671
|
changeText(event){
|
594
|
672
|
// 检查是否为特定的按键,例如回车键,来确认扫码枪输入完成
|
595
|
673
|
if (event.key === 'Enter') {
|
|
674
|
+
|
596
|
675
|
var textarea = ""
|
597
|
|
- textarea += this.textarea + ","
|
598
|
|
- this.textarea = textarea
|
|
676
|
+ textarea += this.textarea.replace(/^\s*[\r\n]|\r?\n\s*$/gm, '') + ","
|
|
677
|
+
|
|
678
|
+ console.log("textarea==============",textarea)
|
|
679
|
+
|
|
680
|
+ if(this.$store.getters.xt_user.org.id == 10138 || this.$store.getters.xt_user.org.id == 10278 || this.$store.getters.xt_user.org.id == 10610|| this.$store.getters.xt_user.org.id == 10537){
|
|
681
|
+
|
|
682
|
+ var drugindentificaitoncode = this.getDrugIdentificationCode(this.drug_id)
|
|
683
|
+ console.log("drugindentification===================",drugindentificaitoncode)
|
|
684
|
+
|
|
685
|
+ var scan_code = this.getDrugScanCode(this.drug_id)
|
|
686
|
+
|
|
687
|
+ console.log("scan_code============",scan_code)
|
|
688
|
+
|
|
689
|
+ var total_one = 0
|
|
690
|
+ var total_two = 0
|
|
691
|
+
|
|
692
|
+ console.log("newArr-------------",this.newArrList)
|
|
693
|
+
|
|
694
|
+ var arr= []
|
|
695
|
+ arr = textarea.split(",")
|
|
696
|
+ var arrList = []
|
|
697
|
+ if(arr!=null && arr.length>0){
|
|
698
|
+ let dataInfo = {}
|
|
699
|
+ arr.forEach((item, index) => {
|
|
700
|
+ if (!dataInfo[item]) {
|
|
701
|
+ dataInfo[item] = {
|
|
702
|
+ drug_code:item,
|
|
703
|
+ child: [],
|
|
704
|
+ }
|
|
705
|
+ }
|
|
706
|
+ })
|
|
707
|
+ let new_arr = Object.values(dataInfo)
|
|
708
|
+
|
|
709
|
+ if(new_arr!=null && new_arr.length>0){
|
|
710
|
+
|
|
711
|
+ for(let i=0;i<new_arr.length;i++){
|
|
712
|
+ for(let j=0;j<arr.length;j++){
|
|
713
|
+ if(new_arr[i].drug_code == arr[j]){
|
|
714
|
+ new_arr[i].child.push(arr[j])
|
|
715
|
+ }
|
|
716
|
+ }
|
|
717
|
+ }
|
|
718
|
+ }
|
|
719
|
+ arrList = new_arr
|
|
720
|
+
|
|
721
|
+ }
|
|
722
|
+
|
|
723
|
+ var is_err_check = false
|
|
724
|
+ var i_index = ""
|
|
725
|
+ var drug_code = ""
|
|
726
|
+
|
|
727
|
+ if(arr!=null && arr.length>0){
|
|
728
|
+ for(let i=0;i<arr.length;i++){
|
|
729
|
+
|
|
730
|
+ if(arr[i]!=""){
|
|
731
|
+ drug_code = arr[i]
|
|
732
|
+ i_index = i
|
|
733
|
+ if(arr[i].length!=20){
|
|
734
|
+ this.$message.error("药品追溯码长度没有满足20位!")
|
|
735
|
+ is_err_check = true
|
|
736
|
+ }
|
|
737
|
+ if(drugindentificaitoncode>0){
|
|
738
|
+ if(arr[i].substring(0,7)!= drugindentificaitoncode){
|
|
739
|
+ this.$message.error("药品标识码格式不正确,请重新扫码")
|
|
740
|
+ is_err_check = true
|
|
741
|
+ }
|
|
742
|
+ }
|
|
743
|
+
|
|
744
|
+
|
|
745
|
+ }
|
|
746
|
+
|
|
747
|
+ }
|
|
748
|
+ }
|
|
749
|
+ if(is_err_check == true){
|
|
750
|
+ arr.splice(i_index,1)
|
|
751
|
+ }
|
|
752
|
+
|
|
753
|
+ for(let i=0;i<this.newArrList.length;i++){
|
|
754
|
+ if(drug_code == this.newArrList[i].drug_code){
|
|
755
|
+ total_one = this.newArrList[i].child.length
|
|
756
|
+ }
|
|
757
|
+ }
|
|
758
|
+
|
|
759
|
+ for(let i=0;i<arrList.length;i++){
|
|
760
|
+ if(drug_code == arrList[i].drug_code){
|
|
761
|
+ total_two = arrList[i].child.length
|
|
762
|
+ }
|
|
763
|
+ }
|
|
764
|
+
|
|
765
|
+
|
|
766
|
+ console.log("数量1--------------",total_one)
|
|
767
|
+ console.log("数量2---------------",total_two)
|
|
768
|
+
|
|
769
|
+ console.log("scan_code=====",scan_code)
|
|
770
|
+
|
|
771
|
+ if(scan_code>0){
|
|
772
|
+ if((total_one + total_two)>scan_code){
|
|
773
|
+ this.$message.error("扫码次数已经超过限制!")
|
|
774
|
+ arr.splice(i_index,1)
|
|
775
|
+ }
|
|
776
|
+ }
|
|
777
|
+
|
|
778
|
+ var is_arr = this.hasDuplicates(arr)
|
|
779
|
+
|
|
780
|
+ console.log("is_arr-=--------------",is_arr)
|
|
781
|
+
|
|
782
|
+ this.textarea = arr.join(",")
|
|
783
|
+
|
|
784
|
+ }else{
|
|
785
|
+ this.textarea = textarea
|
|
786
|
+ }
|
|
787
|
+
|
599
|
788
|
}
|
600
|
789
|
},
|
601
|
790
|
tt() {},
|
|
@@ -1146,6 +1335,8 @@ export default {
|
1146
|
1335
|
getTodayAdviceList(params).then((response) => {
|
1147
|
1336
|
if (response.data.state == 1) {
|
1148
|
1337
|
this.doctorList = response.data.data.doctorlist;
|
|
1338
|
+ this.baseList =[]
|
|
1339
|
+ this.baseList = response.data.data.drug
|
1149
|
1340
|
// this.admin_user_id = this.doctorList[0].admin_user_id
|
1150
|
1341
|
// this.admin_user_id = this.tmp
|
1151
|
1342
|
}
|
|
@@ -1158,6 +1349,8 @@ export default {
|
1158
|
1349
|
};
|
1159
|
1350
|
},
|
1160
|
1351
|
handleCurrentChange(val) {
|
|
1352
|
+ console.log("Valo23333333333333",val)
|
|
1353
|
+ this.drug_id = val.id
|
1161
|
1354
|
this.currentRow = val;
|
1162
|
1355
|
this.total = "";
|
1163
|
1356
|
if (this.state == 1) {
|
|
@@ -1184,7 +1377,7 @@ export default {
|
1184
|
1377
|
getpatientswithdrugs(params).then((res) => {
|
1185
|
1378
|
if (res.data.state == 1) {
|
1186
|
1379
|
var list = res.data.data.list; //列表数据
|
1187
|
|
-
|
|
1380
|
+ console.log("list------------------------------",list)
|
1188
|
1381
|
if(this.$store.getters.xt_user.org.id == 10188 || this.$store.getters.xt_user.org.id == 10217 ){
|
1189
|
1382
|
this.tableData = []
|
1190
|
1383
|
if(list!=null && list.length >0){
|
|
@@ -1267,6 +1460,29 @@ export default {
|
1267
|
1460
|
}
|
1268
|
1461
|
});
|
1269
|
1462
|
},
|
|
1463
|
+ hasDuplicates(arr) {
|
|
1464
|
+ const uniqueNumbers = [...new Set(arr)];
|
|
1465
|
+ return uniqueNumbers.length !== arr.length;
|
|
1466
|
+ },
|
|
1467
|
+ getDrugIdentificationCode(id){
|
|
1468
|
+
|
|
1469
|
+ var drug_identification_code = ""
|
|
1470
|
+ for(let i=0;i<this.baseList.length;i++){
|
|
1471
|
+ if(id == this.baseList[i].id){
|
|
1472
|
+ drug_identification_code = this.baseList[i].drug_identification_code
|
|
1473
|
+ }
|
|
1474
|
+ }
|
|
1475
|
+ return drug_identification_code
|
|
1476
|
+ },
|
|
1477
|
+ getDrugScanCode(drug_id){
|
|
1478
|
+ var scan_code = ""
|
|
1479
|
+ for(let i=0;i<this.baseList.length;i++){
|
|
1480
|
+ if(drug_id == this.baseList[i].id){
|
|
1481
|
+ scan_code = this.baseList[i].scan_code
|
|
1482
|
+ }
|
|
1483
|
+ }
|
|
1484
|
+ return scan_code
|
|
1485
|
+ }
|
1270
|
1486
|
},
|
1271
|
1487
|
created() {
|
1272
|
1488
|
this.init();
|