Przeglądaj źródła

Merge branch '20201109_pc_vue_new_branch' of http://git.shengws.com/csx/Vue_New into 20201109_pc_vue_new_branch

XMLWAN 3 lat temu
rodzic
commit
3e155bba60

+ 2 - 2
config/dev.env.js Wyświetl plik

@@ -7,8 +7,8 @@ module.exports = {
7 7
   NODE_ENV: '"development"',
8 8
   ENV_CONFIG: '"dev"',
9 9
   //BASE_API: '"http://new_mobile.xt.api.sgjyun.com"', // //http://api.xt.test.sgjyun.com http://112.74.16.180:9527,////'"http://localhost:9529"',
10
-  BASE_API: '"http://api.xt.test.sgjyun.com"',
11
-  // BASE_API: '"http://localhost:9531"',
10
+  // BASE_API: '"http://api.xt.test.sgjyun.com"',
11
+  BASE_API: '"http://localhost:9531"',
12 12
   SSO_HOST: '"http://testsso.sgjyun.com"',
13 13
   SRCM_HOST: '"http://test1.sgjyun.com"',
14 14
   XT_HOST: '"http://xt.test.sgjyun.com"',

+ 2 - 2
config/index.js Wyświetl plik

@@ -29,8 +29,8 @@ module.exports = {
29 29
 
30 30
     // host: 'xt.test.sgjyun.com',
31 31
     //  host: 'xt.kuyicloud.com',
32
-    host: 'xt.test.sgjyun.com',
33
-    // host: 'localhost',
32
+    // host: 'xt.test.sgjyun.com',
33
+    host: 'localhost',
34 34
     port: 9528, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
35 35
     autoOpenBrowser: true,
36 36
     errorOverlay: true,

+ 10 - 0
src/api/his/his.js Wyświetl plik

@@ -588,3 +588,13 @@ export function postFaPiaoIsUse(params) {
588 588
 
589 589
 
590 590
 
591
+export function deleteNCDSRecord(params) {
592
+  return request({
593
+    url: '/api/psn/ncds/delete',
594
+    method: 'post',
595
+    params: params
596
+  })
597
+}
598
+
599
+
600
+

+ 2 - 2
src/xt_pages/hospitalStation/components/deskPrescription.vue Wyświetl plik

@@ -1867,8 +1867,8 @@ export default {
1867 1867
       this.sick = sick
1868 1868
       this.diagnoses = diagnoses
1869 1869
       this.department = department
1870
-      this.curMonthPrescriptions = {}
1871
-      this.curPrescriptions = {}
1870
+      // this.curMonthPrescriptions = {}
1871
+      // this.curPrescriptions = {}
1872 1872
       // this.$refs.tabProjectTeam.clearSelection()
1873 1873
 
1874 1874
       for (let i = 0; i < doctors.length; i++) {

+ 206 - 0
src/xt_pages/hospitalStation/components/settlePrescriptionTable.vue Wyświetl plik

@@ -0,0 +1,206 @@
1
+<template>
2
+  <div class="prescriptionTable">
3
+    <el-table v-if="prescription.type == 1" :data="prescription.advices" border style="width: 99%;"
4
+              :row-style="{ color: '#303133' }"
5
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
6
+      <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
7
+      <el-table-column align="center" prop="name" label="名称">
8
+        <template slot-scope="scope"><span :title='scope.row.drug_name'>{{ scope.row.drug_name }}</span></template>
9
+      </el-table-column>
10
+
11
+      <el-table-column align="center" prop="name" width="90" label="单次用量">
12
+        <template slot-scope="scope">
13
+          <!--<el-input v-model="scope.row.single_dose" readonly style="width:65%;"></el-input>-->
14
+          <div>{{scope.row.single_dose}}&nbsp;&nbsp;{{scope.row.single_dose_unit}}</div>
15
+        </template>
16
+      </el-table-column>
17
+      <el-table-column align="center" prop="name" width="100" label="用法">
18
+        <template slot-scope="scope">
19
+          <!--<el-input v-model="scope.row.delivery_way" readonly></el-input>-->
20
+          <div> {{scope.row.delivery_way}}</div>
21
+
22
+        </template>
23
+      </el-table-column>
24
+      <el-table-column align="center" prop="name" width="100" label="频率">
25
+        <template slot-scope="scope">
26
+          <div> {{scope.row.execution_frequency}}</div>
27
+
28
+          <!--<el-input v-model="scope.row.execution_frequency" readonly></el-input>-->
29
+        </template>
30
+      </el-table-column>
31
+
32
+      <el-table-column align="center" prop="day" width="50" label="天数">
33
+        <template slot-scope="scope">{{scope.row.day}}天</template>
34
+      </el-table-column>
35
+
36
+      <el-table-column align="center" prop="name" width="100" label="总量">
37
+        <template slot-scope="scope">
38
+          <!--<el-input v-model="scope.row.prescribing_number" style="width:60%" readonly placeholder=""></el-input>-->
39
+          <div>{{scope.row.prescribing_number}}&nbsp;&nbsp;{{scope.row.prescribing_number_unit}}</div>
40
+        </template>
41
+      </el-table-column>
42
+      <el-table-column align="center" prop="name" width="60" label="单价">
43
+        <template slot-scope="scope">
44
+          <div> {{scope.row.retail_price}}元</div>
45
+
46
+          <!--<el-input v-model="scope.row.retail_price" placeholder="" readonly></el-input>-->
47
+        </template>
48
+      </el-table-column>
49
+      <el-table-column align="center" prop="name" width="50" label="备注">
50
+        <template slot-scope="scope">
51
+          <!--<el-input v-model="scope.row.remark" :title="scope.row.remark" placeholder="" readonly></el-input>-->
52
+          <div> {{scope.row.remark}}</div>
53
+        </template>
54
+      </el-table-column>
55
+    </el-table>
56
+    <el-table v-if="prescription.type == 2" :data="prescription.project" border style="width: 99%;"
57
+              :row-style="{ color: '#303133' }"
58
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
59
+      <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
60
+      <el-table-column align="center" prop="project_name" label="名称">
61
+        <template slot-scope="scope">{{ scope.row.project_name }}</template>
62
+      </el-table-column>
63
+      <el-table-column align="center" prop="statistical_classification" width="100" label="组">
64
+        <template slot-scope="scope">{{getGroup(scope.row.statistical_classification)}}</template>
65
+      </el-table-column>
66
+      <el-table-column align="center" prop="single_dose" width="80" label="单次用量">
67
+        <template slot-scope="scope">{{scope.row.single_dose}}{{scope.row.unit}}</template>
68
+
69
+      </el-table-column>
70
+      <el-table-column align="center" prop="delivery_way" width="80" label="用法">
71
+        <template slot-scope="scope">
72
+          <!--<el-input v-model="scope.row.delivery_way" placeholder="" readonly></el-input>-->
73
+          {{scope.row.delivery_way}}
74
+
75
+        </template>
76
+      </el-table-column>
77
+      <el-table-column align="center" prop="execution_frequency" width="80" label="频率">
78
+        <template slot-scope="scope">
79
+          <!--<el-input v-model="scope.row.execution_frequency" placeholder="" readonly></el-input>-->
80
+          {{scope.row.execution_frequency}}
81
+
82
+        </template>
83
+      </el-table-column>
84
+      <el-table-column align="center" prop="number_days" width="50" label="天数">
85
+        <template slot-scope="scope">
86
+          <!--<el-input v-model="scope.row.number_days" placeholder="" readonly></el-input>-->
87
+          {{scope.row.number_days}}天
88
+
89
+        </template>
90
+
91
+      </el-table-column>
92
+      <el-table-column align="center" prop="total" width="50" label="总量">
93
+        <template slot-scope="scope">
94
+          <div style="display:flex;">
95
+            <!--<el-input v-model="scope.row.total" placeholder="" readonly></el-input>-->
96
+            {{scope.row.total}} {{scope.row.unit}}
97
+
98
+          </div>
99
+        </template>
100
+      </el-table-column>
101
+      <el-table-column align="center" prop="name" width="50" label="单价">
102
+        <template slot-scope="scope">
103
+          <!--<el-input v-model="scope.row.price" placeholder="" readonly></el-input>-->
104
+          {{scope.row.price}}元
105
+
106
+        </template>
107
+      </el-table-column>
108
+      <el-table-column align="center" prop="name" width="50" label="备注">
109
+        <template slot-scope="scope">
110
+          <!--<el-input v-model="scope.row.remark" readonly></el-input>-->
111
+          {{scope.row.remark}}
112
+
113
+        </template>
114
+      </el-table-column>
115
+    </el-table>
116
+
117
+    <div class="additionalBox">
118
+      <div class="additionalOne" v-for="(item,index) in prescription.addition" :key="index">
119
+        <span :title="item.item_name">{{item.item_name}}</span>
120
+        <el-input v-model="item.price" placeholder="" style="width:50px;" readonly></el-input>
121
+        共
122
+        <el-input v-model="item.count" placeholder="" style="width:50px;" readonly></el-input>
123
+        次
124
+        <!--<i class="el-icon-delete deleteIcon" @click="delAddition(index,item)"></i>-->
125
+      </div>
126
+    </div>
127
+  </div>
128
+</template>
129
+
130
+<script>
131
+import { getInitData } from '@/api/his/his'
132
+import { getDictionaryDataConfig} from "@/utils/data";
133
+
134
+export default {
135
+  props: {
136
+    prescription: Object
137
+  },
138
+  data() {
139
+    return {
140
+      drugways: [],
141
+      efs: []
142
+    }
143
+  }, mounted() {
144
+    getInitData().then(response => {
145
+      if (response.data.state == 0) {
146
+        this.$message.error(response.data.msg);
147
+        return false
148
+      } else {
149
+        this.drugways = response.data.data.drugways;
150
+        this.efs = response.data.data.efs
151
+      }
152
+    })
153
+  }, methods:  {
154
+
155
+
156
+    getGroup(id){
157
+      var name = "";
158
+      var statistics_category =  getDictionaryDataConfig('system','statistics_category');
159
+      console.log("2235",statistics_category);
160
+      for(let i=0;i<statistics_category.length;i++){
161
+        if(id == statistics_category[i].id){
162
+          name = statistics_category[i].name
163
+        }
164
+      }
165
+      return name
166
+    },
167
+
168
+
169
+  }
170
+}
171
+</script>
172
+
173
+<style lang="scss">
174
+.prescriptionTable{
175
+.additionalBox{
176
+  margin-top: 20px;
177
+  display: flex;
178
+  flex-wrap: wrap;
179
+.additionalOne{
180
+  margin-right:20px;
181
+  margin-bottom:10px;
182
+  display: flex;
183
+  align-items: center;
184
+>span{
185
+  white-space: nowrap;
186
+  overflow: hidden;
187
+  text-overflow: ellipsis;
188
+  width:80px;
189
+  display: inline-block;
190
+  font-size: 14px;
191
+}
192
+}
193
+.deleteIcon{
194
+  color:red;
195
+  margin-left:5px;
196
+}
197
+}
198
+.el-table th .cell, .el-table td .cell{
199
+  padding: 0 2px;
200
+  white-space: pre-line;
201
+}
202
+.el-icon-delete{
203
+  color:red;
204
+}
205
+}
206
+</style>

+ 1 - 4
src/xt_pages/hospitalStation/doctorDesk.vue Wyświetl plik

@@ -405,6 +405,7 @@
405 405
         this.saveLoading = data
406 406
       },
407 407
       changeTimeTwo() {
408
+        this.titleType = "电子处方"
408 409
         this.getList()
409 410
       },
410 411
       openPrint() {
@@ -1416,7 +1417,6 @@
1416 1417
 
1417 1418
               }
1418 1419
             }
1419
-            console.log('~~~~~00000222222')
1420 1420
             this.$refs.prescriptions.setData(this.prescriptions, this.info, this.admin_info, this.doctors, this.department, this.hisPatientInfo, this.month_prescriptions, this.last_info, this.sick, this.diagnosis)
1421 1421
           }
1422 1422
         })
@@ -3935,10 +3935,7 @@
3935 3935
         if (this.titleType == '电子处方') {
3936 3936
           if (this.radio == 1) {
3937 3937
             this.un_cure_data.map(item => {
3938
-              console.log('~~~~~~~~')
3939 3938
               if (item.id == this.patientid) {
3940
-                console.log('~~~~~~~~22222222')
3941
-
3942 3939
                 this.getPatientInfo(item)
3943 3940
               }
3944 3941
             })

+ 20 - 9
src/xt_pages/hospitalStation/template/printTwo.vue Wyświetl plik

@@ -15,7 +15,7 @@
15 15
             <div style="margin-bottom: 10px;">医保卡号:{{this.hisPatient.number?this.hisPatient.number:""}}</div>
16 16
             <div style="margin-bottom: 10px;">电话:{{patient.phone}}</div>
17 17
             <div>地址:{{patient.home_address}}</div>
18
-            <div style="display:flex;width:50%;">临床诊断:{{patient.diagnose}}</div>
18
+            <div style="display:flex;width:50%;">临床诊断:22222{{ getDiagnosis(advicePrint[0].info.diagnosis) }}</div>
19 19
         </div>
20 20
         <div class="prescriptionBox">
21 21
             <div class="Rp">Rp:</div>
@@ -51,6 +51,7 @@ export default {
51 51
     },
52 52
     data(){
53 53
       return {
54
+        diagnoses:[],
54 55
         doctorList:[],
55 56
         advicePrint:{},
56 57
         patient:{},
@@ -62,6 +63,15 @@ export default {
62 63
       }
63 64
     },
64 65
    methods:{
66
+     getInitData(){
67
+       getInitData().then(response=>{
68
+         if(response.data.state == 1){
69
+           this.department = response.data.data.department
70
+           this.diagnoses = response.data.data.diagnose
71
+           console.log("争端",this.diagnoses)
72
+         }
73
+       })
74
+     },
65 75
      getAge(patient){
66 76
        var thisLen = patient.id_card_no.length
67 77
        var birth = ''
@@ -88,8 +98,16 @@ export default {
88 98
                this.doctorList = doctor
89 99
              }
90 100
          })
101
+     },   getDiagnosis(id) {
102
+       let arr = id.split(',')
103
+       var name = ''
104
+       for (let i = 0; i < this.diagnoses.length; i++) {
105
+         if (arr.indexOf(String(this.diagnoses[i].id)) > -1) {
106
+           name += this.diagnoses[i].class_name + ' '
107
+         }
108
+       }
109
+       return name
91 110
      },
92
-
93 111
       getDoctor(id){
94 112
         var name = ""
95 113
         for(let i=0;i<this.doctorList.length;i++){
@@ -147,14 +165,7 @@ export default {
147 165
           }
148 166
        })
149 167
      },
150
-     getInitData(){
151
-       getInitData().then(response=>{
152
-          if(response.data.state == 1){
153
-            this.department = response.data.data.department
154 168
 
155
-          }
156
-       })
157
-     },
158 169
      getDepart(id){
159 170
          var name = ""
160 171
        for(let i=0;i<this.department.length;i++){

+ 69 - 3
src/xt_pages/outpatientRecord/outpatientRecord.vue Wyświetl plik

@@ -117,6 +117,15 @@
117 117
                         <el-button type="danger" size="small" icon="el-icon-tickets" v-if="scope.row.record.is_cancel == 1" >
118 118
                             <span @click="putOnRecord(2,scope.row)">撤消</span>
119 119
                         </el-button>
120
+
121
+
122
+                      <el-button type="primary" size="small" icon="el-icon-tickets" v-if="scope.row.record.is_cancel == 1" >
123
+                        <span @click="putOnRecord(3,scope.row)">查看备案信息</span>
124
+                      </el-button>
125
+
126
+                      <el-button type="primary" size="small" icon="el-icon-tickets" >
127
+                        <span @click="putOnRecord(4,scope.row)">删除</span>
128
+                      </el-button>
120 129
                     </template>
121 130
                 </el-table-column>
122 131
             </el-table>
@@ -201,7 +210,7 @@
201 210
 
202 211
 <script>
203 212
   import BreadCrumb from '@/xt_pages/components/bread-crumb'
204
-  import { getAllDoctorList, getInitData, getRecordList } from '@/api/his/his'
213
+  import { getAllDoctorList, getInitData, getRecordList,deleteNCDSRecord } from '@/api/his/his'
205 214
   import { uParseTime } from '@/utils/tools'
206 215
   import { fetchAllAdminUsers } from '@/api/doctor'
207 216
   import axios from 'axios'
@@ -382,7 +391,7 @@
382 391
 
383 392
           this.getGdybPatientInfo()
384 393
 
385
-        } else {
394
+        } else if(type == 2) {
386 395
           this.$confirm('是否撤销备案', '撤销备案', {
387 396
             confirmButtonText: '确 定',
388 397
             cancelButtonText: '取 消',
@@ -426,8 +435,65 @@
426 435
 
427 436
           })
428 437
 
429
-        }
438
+        }else if(type == 3){
439
+          let params = {
440
+            'id': row.record.id,
441
+            'admin_user_id': this.$store.getters.xt_user.user.id
442
+          };
443
+          var that = this;
444
+          axios.get('http://127.0.0.1:9532/api/psn/info', {
445
+            params: params
446
+          })
447
+              .then(function(response) {
448
+                if (response.data.state == 0) {
449
+                  that.$message.error(response.data.msg);
450
+                  return false
451
+                } else {
452
+                  if(response.data.data.failed_code == -10){
453
+                    // that.$message.error(response.data.data.msg)
454
+                    that.$confirm(response.data.data.msg, '医保错误信息', {
455
+                      confirmButtonText: '确 定',
456
+                      type: 'warning'
457
+                    }).then(() => {
458
+
459
+                    }).catch(() => {
460
+                    })
461
+                  }else{
462
+                    that.$confirm(response.data.data.result, '医保信息', {
463
+                      confirmButtonText: '确 定',
464
+                      type: 'warning'
465
+                    }).then(() => {
466
+
467
+                    }).catch(() => {
468
+
469
+                    })
470
+                  }
471
+                }
472
+              })
473
+              .catch(function(error) {
474
+              })
475
+        }else if(type == 4){
476
+          this.$confirm("是否删除", '删除', {
477
+            confirmButtonText: '确 定',
478
+            type: 'warning'
479
+          }).then(() => {
480
+            let params = {
481
+              id: row.record.id,
482
+            }
483
+            deleteNCDSRecord(params).then(response => {
484
+              if (response.data.state == 0) {
485
+                this.$message.error(response.data.msg);
486
+                return false
487
+              } else {
488
+                this.getList()
489
+              }
490
+            })
430 491
 
492
+          }).catch(() => {
493
+          })
494
+
495
+
496
+        }
431 497
       },
432 498
       changeDoctor(row, id) {
433 499
         for (let i = 0; i < this.doctorList.length; i++) {

+ 45 - 2
src/xt_pages/qcd/officesControlAnalysis/time.vue Wyświetl plik

@@ -82,6 +82,39 @@
82 82
           </ul>
83 83
         </div>
84 84
       </div>
85
+
86
+      <div class="cell clearfix">
87
+        <label class="title"> <span class="name">转归状态</span> : </label>
88
+        <div class="time">
89
+          <ul class>
90
+            <li
91
+                :class="item.lapseto == lapsetoType ? 'active' : ''"
92
+                @click="selectLapseTo(item.lapseto)"
93
+                v-for="item in lapsetoState"
94
+                :key="item.value"
95
+            >
96
+              {{ item.label }}
97
+            </li>
98
+          </ul>
99
+        </div>
100
+      </div>
101
+      <div class="cell clearfix">
102
+        <label class="title"> <span class="name">患者来源</span> : </label>
103
+        <div class="time">
104
+          <ul class>
105
+            <li
106
+                :class="item.source == originType ? 'active' : ''"
107
+                @click="selectLapseTo(item.source)"
108
+                v-for="item in originState"
109
+                :key="item.value"
110
+            >
111
+              {{ item.label }}
112
+            </li>
113
+          </ul>
114
+        </div>
115
+      </div>
116
+
117
+
85 118
       <div class="cell clearfix">
86 119
         <p class="chartTitle">统计图</p>
87 120
       </div>
@@ -141,7 +174,17 @@ export default {
141 174
       modesData: {
142 175
         xAxis: [],
143 176
         series: []
144
-      },
177
+      }, lapsetoType: 0,
178
+      lapsetoState: [
179
+        { value: 0, label: '全部', source: 0, lapseto: 0 },
180
+        { value: 1, label: '转出', source: 0, lapseto: 2 },
181
+        { value: 2, label: '留治', source: 0, lapseto: 1 }
182
+      ],originType:0,
183
+      originState: [
184
+        { value: 0, label: '全部', source: 0},
185
+        { value: 1, label: '住院', source: 1},
186
+        { value: 2, label: '门诊', source: 2}
187
+      ],
145 188
       crumbs: [
146 189
         { path: false, name: '质控管理' },
147 190
         { path: false, name: '科室质控达标统计' },
@@ -742,7 +785,7 @@ export default {
742 785
           this.chart.series[0].data = this.modesData.series
743 786
           this.chart.xAxis.data = this.modesData.xAxis
744 787
           this.getArrLength(this.chart.xAxis.data)
745
-        }else{
788
+        } else {
746 789
           this.isLoading = false
747 790
         }
748 791
       })

+ 13 - 13
src/xt_permission.js Wyświetl plik

@@ -12,19 +12,19 @@ const permissionWhiteList = loginWhiteList.concat(['/']) // 权限验证白名
12 12
 
13 13
 router.beforeEach((to, from, next) => {
14 14
   // 线上注释
15
-  // if (!store.getters.configlist || store.getters.configlist === undefined || store.getters.configlist.length <= 0) {
16
-  //   store.dispatch('VerifyConfigList', []).then(() => {
17
-  //     next()
18
-  //   })
19
-  // }
20
-  // if (store.getters.permission_routers === undefined) {
21
-  //   store.dispatch('xt_GenerateRoutes', []).then(() => {
22
-  //     next()
23
-  //   })
24
-  // } else {
25
-  //   next()
26
-  // }
27
-  // return
15
+  if (!store.getters.configlist || store.getters.configlist === undefined || store.getters.configlist.length <= 0) {
16
+    store.dispatch('VerifyConfigList', []).then(() => {
17
+      next()
18
+    })
19
+  }
20
+  if (store.getters.permission_routers === undefined) {
21
+    store.dispatch('xt_GenerateRoutes', []).then(() => {
22
+      next()
23
+    })
24
+  } else {
25
+    next()
26
+  }
27
+  return
28 28
   // 线上注释
29 29
   NProgress.start()
30 30
   // console.log(store.getters.current_role_urls.indexOf(to.path))