Browse Source

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

28169 1 year ago
parent
commit
98dc0b541e

+ 13 - 0
src/api/his/his_export.js View File

24
   });
24
   });
25
 }
25
 }
26
 
26
 
27
+
28
+export function exportData9919(params) {
29
+  return request({
30
+    url: "/api/export",
31
+    method: "get",
32
+    params:params,
33
+  });
34
+}
35
+
36
+
37
+
38
+
39
+

+ 25 - 0
src/api/qcd.js View File

149
 
149
 
150
 
150
 
151
 
151
 
152
+
153
+export function GetAllCommonQCStatistisData(params) {
154
+  return request({
155
+    url: '/api/commonqc/statistiscall/get',
156
+    method: 'get',
157
+    params: params
158
+  })
159
+}
160
+
161
+export function GetCommonPersonQCStatistisData(params) {
162
+  return request({
163
+    url: '/api/commonqc/statistiscperson/get',
164
+    method: 'get',
165
+    params: params
166
+  })
167
+}
168
+
169
+
170
+export function GetCommonQCPatientStatistiscPersonData(params) {
171
+  return request({
172
+    url: '/api/commonqc/patientstatistiscall/get',
173
+    method: 'get',
174
+    params: params
175
+  })
176
+}

+ 10 - 1
src/api/statistics.js View File

5
         url:'/api/statistisc/index',
5
         url:'/api/statistisc/index',
6
         method:'get',
6
         method:'get',
7
       })
7
       })
8
-}
8
+}
9
+
10
+
11
+export function getStatisticsList(){
12
+  return request({
13
+    url:'/api/qc/statistiscperson/list',
14
+    method:'get',
15
+  })
16
+}
17
+

+ 2 - 1
src/lang/zh.js View File

301
     objectRegistration:"医疗器械登记",
301
     objectRegistration:"医疗器械登记",
302
     Dialysisanalysis: '专业质控',
302
     Dialysisanalysis: '专业质控',
303
     queryData:"结算数据查询",
303
     queryData:"结算数据查询",
304
-    chargeDetailManagementTwo:"门诊明细上传"
304
+    chargeDetailManagementTwo:"门诊明细上传",
305
+    orgExportData:"数据导出",
305
   },
306
   },
306
   navbar: {
307
   navbar: {
307
     logOut: '退出登录',
308
     logOut: '退出登录',

+ 19 - 1
src/router/modules/Dialysisanalysis.js View File

11
     icon: 'statistics'
11
     icon: 'statistics'
12
   },
12
   },
13
   children: [
13
   children: [
14
-
14
+    {
15
+      path: '/Dialysisanalysis/qualitycontrol/otherIndicators',
16
+      component: () => import('@/xt_pages/Dialysisanalysis/otherIndicators/index'),
17
+      name: 'otherIndicators',
18
+      meta: {
19
+        title: '其他指标',
20
+        noCache: true
21
+      }
22
+    }, {
23
+      path: '/Dialysisanalysis/qualitycontrol/Indicatorsdetail',
24
+      component: () => import('@/xt_pages/Dialysisanalysis/otherIndicators/otherIndicators'),
25
+      name: 'otherIndicators_two',
26
+      hidden: true,
27
+      is_menu: false,
28
+      meta: {
29
+        title: '',
30
+        noCache: true
31
+      }
32
+    },
15
     {
33
     {
16
       path: '/Dialysisanalysis/qualitycontrol/thyroidGland',
34
       path: '/Dialysisanalysis/qualitycontrol/thyroidGland',
17
       component: () => import('@/xt_pages/Dialysisanalysis/qualitycontrol/thyroidGland'),
35
       component: () => import('@/xt_pages/Dialysisanalysis/qualitycontrol/thyroidGland'),

+ 5 - 0
src/router/modules/hisTool.js View File

157
       component: () => import('@/xt_pages/outpatientTool/exportOne'),
157
       component: () => import('@/xt_pages/outpatientTool/exportOne'),
158
       name: 'exportOne',
158
       name: 'exportOne',
159
       meta: { title: 'exportOne', noCache: true }
159
       meta: { title: 'exportOne', noCache: true }
160
+    }, {
161
+      path: '/hisTool/orgExportData',
162
+      component: () => import('@/xt_pages/outpatientTool/org_export_data'),
163
+      name: 'orgExportData',
164
+      meta: { title: 'orgExportData', noCache: true }
160
     }
165
     }
161
   ]
166
   ]
162
 }
167
 }

+ 42 - 25
src/xt_pages/Dialysisanalysis/otherIndicators/index.vue View File

2
 <template>
2
 <template>
3
     <div class="main-contain">
3
     <div class="main-contain">
4
       <div class="position">
4
       <div class="position">
5
-        <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+<!--        <bread-crumb :crumbs="crumbs"></bread-crumb>-->
6
       </div>
6
       </div>
7
       <div class="app-container">
7
       <div class="app-container">
8
         <div class="page_patientControlAnalysis">
8
         <div class="page_patientControlAnalysis">
9
-            <el-tabs v-model="activeName" @tab-click="handleClick" >
10
-                <el-tab-pane label="统计全部" name="first">
11
-                  <keep-alive>
12
-                    <otherall v-if="activeName == 'first'"></otherall>
13
-                  </keep-alive>
14
-                </el-tab-pane>
15
-                
16
-                <el-tab-pane label="统计个人" name="second">
17
-                  <keep-alive>
18
-                    <otheralone v-if="activeName == 'second'"></otheralone>
19
-                  </keep-alive>
20
-                </el-tab-pane>
21
-            
22
-            </el-tabs>
9
+          <div v-for="item in indicators">
10
+            <el-button @click="jump(item.inspection_major,item.inspection_minor,item.id)">{{item.item_name}}</el-button>
11
+          </div>
23
         </div>
12
         </div>
24
       </div>
13
       </div>
25
     </div>
14
     </div>
26
-  </template>
27
-  
15
+</template>
16
+
28
 <script>
17
 <script>
29
-// import echarts from 'echarts'
30
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
18
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
31
-import otherall from './otherall.vue'
32
-import otheralone from './otheralone.vue'
19
+import { getStatisticsList } from '../../../api/statistics'
33
 export default {
20
 export default {
34
-    name:'thyroidGland',
21
+    name:'index',
35
     components: {
22
     components: {
36
         BreadCrumb,
23
         BreadCrumb,
37
-        otherall,
38
-        otheralone
39
     },
24
     },
40
     data() {
25
     data() {
41
         return {
26
         return {
27
+          indicators:[{
28
+            name:"钾离子",
29
+            project_id:0,
30
+            item_id:0,
31
+          },{
32
+            name:"钠离子",
33
+            project_id:0,
34
+            item_id:0,
35
+          },{
36
+            name:"无机磷",
37
+            project_id:0,
38
+            item_id:0,
39
+          }],
42
             activeName: 'first'
40
             activeName: 'first'
43
         }
41
         }
44
     },
42
     },
45
     methods:{
43
     methods:{
44
+     getStatisticsList(){
45
+        let params = {
46
+        }
47
+        this.indicators = []
48
+        getStatisticsList(params).then(response => {
49
+          if (response.data.state == 1) {
50
+            this.indicators  =  this.indicators.concat(response.data.data.configurationlist)
51
+          } else {
52
+            this.$message.error(response.data.msg)
53
+          }
54
+        })
55
+      },
56
+      jump(project_id, item_id,project_type){
57
+        this.$router.push('/Dialysisanalysis/qualitycontrol/Indicatorsdetail?project_id='+project_id+"&item_id="+item_id+"&project_type="+parseInt(project_type))
58
+      },
46
       handleClick(tab, event) {
59
       handleClick(tab, event) {
47
         console.log(tab, event);
60
         console.log(tab, event);
48
       }
61
       }
49
-    }
62
+    },
63
+    created(){
64
+    this.getStatisticsList()
65
+
66
+  }
50
 }
67
 }
51
 </script>
68
 </script>
52
 
69
 
99
 // }
116
 // }
100
 
117
 
101
 // }
118
 // }
102
-</style>
119
+</style>

+ 8 - 2
src/xt_pages/Dialysisanalysis/otherIndicators/otherIndicators.vue View File

9
         <el-tabs v-model="activeName" @tab-click="handleClick" >
9
         <el-tabs v-model="activeName" @tab-click="handleClick" >
10
           <el-tab-pane label="统计全部" name="first">
10
           <el-tab-pane label="统计全部" name="first">
11
             <keep-alive>
11
             <keep-alive>
12
-              <otherIndicatorsall :project_id="project_id" :item_id="item_id" v-if="activeName == 'first'"></otherIndicatorsall>
12
+              <otherIndicatorsall :project_type="project_type" :project_id="project_id" :item_id="item_id" v-if="activeName == 'first'"></otherIndicatorsall>
13
             </keep-alive>
13
             </keep-alive>
14
           </el-tab-pane>
14
           </el-tab-pane>
15
 
15
 
16
           <el-tab-pane label="统计个人" name="second">
16
           <el-tab-pane label="统计个人" name="second">
17
             <keep-alive>
17
             <keep-alive>
18
-              <otherIndicatorsone  :project_id="project_id" :item_id="item_id"  v-if="activeName == 'second'"></otherIndicatorsone>
18
+              <otherIndicatorsone  :project_type="project_type" :project_id="project_id" :item_id="item_id"  v-if="activeName == 'second'"></otherIndicatorsone>
19
             </keep-alive>
19
             </keep-alive>
20
           </el-tab-pane>
20
           </el-tab-pane>
21
 
21
 
42
       activeName: 'first',
42
       activeName: 'first',
43
       project_id:this.$route.query.project_id,
43
       project_id:this.$route.query.project_id,
44
       item_id:this.$route.query.item_id,
44
       item_id:this.$route.query.item_id,
45
+      project_type:this.$route.query.project_type,
46
+
45
 
47
 
46
     }
48
     }
47
   },
49
   },
49
     handleClick(tab, event) {
51
     handleClick(tab, event) {
50
       console.log(tab, event);
52
       console.log(tab, event);
51
     }
53
     }
54
+  },created() {
55
+    console.log(this.$route.query.project_id)
56
+    console.log(this.$route.query.item_id)
57
+
52
   }
58
   }
53
 }
59
 }
54
 </script>
60
 </script>

+ 70 - 10
src/xt_pages/Dialysisanalysis/otherIndicators/otherIndicatorsall.vue View File

18
       <el-col :span="8">
18
       <el-col :span="8">
19
         <div>
19
         <div>
20
           <el-date-picker
20
           <el-date-picker
21
-            style="width: 200px"
21
+            style="width: 150px"
22
 
22
 
23
             v-model="start_time"
23
             v-model="start_time"
24
             format="yyyy-MM-dd"
24
             format="yyyy-MM-dd"
29
           </el-date-picker>
29
           </el-date-picker>
30
           <span>-</span>
30
           <span>-</span>
31
           <el-date-picker
31
           <el-date-picker
32
-            style="width: 200px"
32
+            style="width: 150px"
33
             v-model="end_time"
33
             v-model="end_time"
34
             format="yyyy-MM-dd"
34
             format="yyyy-MM-dd"
35
             value-format="yyyy-MM-dd"
35
             value-format="yyyy-MM-dd"
38
           </el-date-picker>
38
           </el-date-picker>
39
         </div>
39
         </div>
40
       </el-col>
40
       </el-col>
41
+      <el-col :span="5">
42
+        <div class="block">
43
+          <span>项目:</span>
44
+          <el-select size="small"  placeholder="请选择" v-model="project_type_two"
45
+                     style="width:150px;margin-left:10px;" @change="changeProjctItem">
46
+            <el-option
47
+              v-for="item,index in indicators"
48
+              :key="index"
49
+              :label="item.item_name"
50
+              :value="item.id">
51
+            </el-option>
52
+          </el-select>
53
+        </div>
54
+      </el-col>
55
+
41
       <el-col :span="5">
56
       <el-col :span="5">
42
         <div >
57
         <div >
43
           <el-input disabled v-model="input" placeholder="请输入内容"></el-input>
58
           <el-input disabled v-model="input" placeholder="请输入内容"></el-input>
229
 </template>
244
 </template>
230
 <script>
245
 <script>
231
 import * as echarts from 'echarts'
246
 import * as echarts from 'echarts'
232
-import { GetAllQCStatistisData, GetQCStatistisData } from '../../../api/qcd'
233
-import { number } from 'echarts/lib/export'
247
+import { GetCommonQCPatientStatistiscPersonData, GetAllCommonQCStatistisData } from '../../../api/qcd'
248
+import { getStatisticsList } from '../../../api/statistics'
249
+// import { number } from 'echarts/lib/export'
234
 
250
 
235
 const moment = require('moment')
251
 const moment = require('moment')
236
 
252
 
237
 export default {
253
 export default {
238
   props: {
254
   props: {
239
     project_id:{
255
     project_id:{
240
-      type: number,
256
+      type: Number,
257
+      default: 0
258
+
241
     }, item_id:{
259
     }, item_id:{
242
-      type: number,
260
+      type: Number,
261
+      default: 0
262
+
263
+    },project_type:{
264
+      type: String,
265
+      default: 0
266
+
243
     },
267
     },
244
     width: {
268
     width: {
245
       type: String,
269
       type: String,
253
   },
277
   },
254
   data() {
278
   data() {
255
     return {
279
     return {
280
+      project_type_two:0,
256
       statistics_types:[
281
       statistics_types:[
257
         { value: 1, label: '不达标患者' },
282
         { value: 1, label: '不达标患者' },
258
         { value: 2, label: '未检查患者' },
283
         { value: 2, label: '未检查患者' },
279
 
304
 
280
       ],
305
       ],
281
       reference:{},
306
       reference:{},
307
+      config:{},
282
       time_month: '',
308
       time_month: '',
283
       start_time: new Date(new Date().getFullYear(), new Date().getMonth(), 1).toLocaleDateString('en-CA'),
309
       start_time: new Date(new Date().getFullYear(), new Date().getMonth(), 1).toLocaleDateString('en-CA'),
284
       end_time: new Date(new Date().getFullYear(), new Date().getMonth() + 1, 0).toLocaleDateString('en-CA'),
310
       end_time: new Date(new Date().getFullYear(), new Date().getMonth() + 1, 0).toLocaleDateString('en-CA'),
294
       sort_type:"",
320
       sort_type:"",
295
       keyword:"",
321
       keyword:"",
296
       patientTableData:[],
322
       patientTableData:[],
323
+      indicators:[],
297
     }
324
     }
298
   },
325
   },
299
   mounted() {
326
   mounted() {
327
+
300
     this.getData()
328
     this.getData()
329
+    this.getStatisticsList()
301
   },
330
   },
302
   methods: {
331
   methods: {
332
+    getStatisticsList(){
333
+      let params = {
334
+      }
335
+      this.indicators = []
336
+      getStatisticsList(params).then(response => {
337
+        if (response.data.state == 1) {
338
+          // this.indicators.push()
339
+          this.indicators  =  this.indicators.concat(response.data.data.configurationlist)
340
+          for(var i = 0; i < this.indicators.length;i++){
341
+            if(this.indicators[i].id == this.project_type){
342
+              this.project_type_two   = this.indicators[i].id
343
+            }
344
+
345
+
346
+          }
347
+        } else {
348
+          this.$message.error(response.data.msg)
349
+        }
350
+      })
351
+    },
352
+
303
     exportAction(){
353
     exportAction(){
304
       let list = []
354
       let list = []
305
       for (let i = 0; i < this.patientTableData.length; i++) {
355
       for (let i = 0; i < this.patientTableData.length; i++) {
428
         keyword: this.keyword,
478
         keyword: this.keyword,
429
       }
479
       }
430
       this.patientTableData = []
480
       this.patientTableData = []
431
-      GetAllQCStatistisData(params).then(response => {
481
+      GetCommonQCPatientStatistiscPersonData(params).then(response => {
432
         if (response.data.state == 1) {
482
         if (response.data.state == 1) {
433
           this.detailVisibility = true
483
           this.detailVisibility = true
434
           this.patientTableData  =  this.patientTableData.concat(response.data.data.list)
484
           this.patientTableData  =  this.patientTableData.concat(response.data.data.list)
453
       }
503
       }
454
       this.pieData = []
504
       this.pieData = []
455
       this.tableData = []
505
       this.tableData = []
456
-      console.log("~~~~~~~~~~")
457
-      GetQCStatistisData(params).then(response => {
506
+      GetAllCommonQCStatistisData(params).then(response => {
458
         if (response.data.state == 1) {
507
         if (response.data.state == 1) {
459
           this.reference = response.data.data.reference
508
           this.reference = response.data.data.reference
460
-          this.input = response.data.data.reference.range_min + "<=" + response.data.data.reference.item_name + "<=" + response.data.data.reference.range_max
509
+          this.config = response.data.data.config
510
+
511
+          this.input = this.config.min_range + "<=" + response.data.data.reference.item_name + "<=" +this.config.large_range
461
           let objone = {
512
           let objone = {
462
             value:  response.data.data.unusual_total ,
513
             value:  response.data.data.unusual_total ,
463
             name: '不达标值患者',
514
             name: '不达标值患者',
557
         }
608
         }
558
       })
609
       })
559
 
610
 
611
+    },changeProjctItem(val){
612
+      console.log(val)
613
+      for(let i = 0;i < this.indicators.length;i++){
614
+        if(this.indicators[i].id == val){
615
+          this.project_id = this.indicators[i].inspection_major
616
+          this.item_id = this.indicators[i].inspection_minor
617
+          this.input = this.indicators[i].min_range + "<=" + this.indicators[i].item_name + "<=" +this.indicators[i].large_range
618
+        }
619
+      }
560
     },
620
     },
561
     changeItem(val) {
621
     changeItem(val) {
562
       const currentDate = new Date()
622
       const currentDate = new Date()

+ 76 - 10
src/xt_pages/Dialysisanalysis/otherIndicators/otherIndicatorsone.vue View File

54
             value-format="yyyy-MM-dd"
54
             value-format="yyyy-MM-dd"
55
           ></el-date-picker>
55
           ></el-date-picker>
56
 
56
 
57
+          <el-col :span="5">
58
+            <div class="block">
59
+              <span>项目:</span>
60
+              <el-select size="small"  placeholder="请选择" v-model="project_type_two"
61
+                         style="width:150px;margin-left:10px;" @change="changeProjctItem">
62
+                <el-option
63
+                  v-for="item,index in indicators"
64
+                  :key="index"
65
+                  :label="item.item_name"
66
+                  :value="item.id">
67
+                </el-option>
68
+              </el-select>
69
+            </div>
70
+          </el-col>
71
+
57
           <el-button size="small" icon="el-icon-printer" @click="printAction" type="primary">打印
72
           <el-button size="small" icon="el-icon-printer" @click="printAction" type="primary">打印
58
           </el-button>
73
           </el-button>
59
           <el-button size="small" icon="el-icon-printer" @click="exportAction" type="primary">导出
74
           <el-button size="small" icon="el-icon-printer" @click="exportAction" type="primary">导出
104
                   </template>
119
                   </template>
105
                 </el-table-column>
120
                 </el-table-column>
106
 
121
 
107
-                <el-table-column width="100" label="血红蛋白" align="center">
122
+                <el-table-column width="100" :label="item_name" align="center">
108
                   <template slot-scope="scope">
123
                   <template slot-scope="scope">
109
                     {{scope.row.value}}
124
                     {{scope.row.value}}
110
                   </template>
125
                   </template>
130
 } from '@/api/common/statistics'
145
 } from '@/api/common/statistics'
131
 import { PostSearch } from '@/api/patient'
146
 import { PostSearch } from '@/api/patient'
132
 import { getDataConfig } from '@/utils/data'
147
 import { getDataConfig } from '@/utils/data'
133
-import { GetPersonQCStatistisData } from '../../../api/qcd'
148
+import { GetCommonPersonQCStatistisData } from '../../../api/qcd'
134
 import LineChart from '../../qcd/components/LineChart.vue'
149
 import LineChart from '../../qcd/components/LineChart.vue'
150
+import { getStatisticsList } from '../../../api/statistics'
135
 
151
 
136
 export default {
152
 export default {
137
   components: {
153
   components: {
138
     LineChart
154
     LineChart
139
   },
155
   },
156
+  props: {
157
+    project_id:{
158
+      type: Number,
159
+      default: 0
160
+
161
+    }, item_id:{
162
+      type: Number,
163
+      default: 0
164
+
165
+    },project_type:{
166
+      type: Number,
167
+      default: 0
168
+
169
+    }
170
+
171
+  },
172
+
140
   data() {
173
   data() {
141
     return {
174
     return {
175
+      indicators:[],
176
+      project_type_two:0,
142
       pickerOptions: {
177
       pickerOptions: {
143
         disabledDate(time) {
178
         disabledDate(time) {
144
           let threeMonths = new Date(new Date().setFullYear(new Date().getFullYear() - 1)).getTime() - 24 * 3600 * 1000
179
           let threeMonths = new Date(new Date().setFullYear(new Date().getFullYear() - 1)).getTime() - 24 * 3600 * 1000
152
       tableData: [],
187
       tableData: [],
153
       loading: false,
188
       loading: false,
154
       search_value: '',
189
       search_value: '',
190
+      item_name:"",
155
       total: 0,
191
       total: 0,
156
       query: {
192
       query: {
157
         patient_id: '',
193
         patient_id: '',
349
     }
385
     }
350
   },
386
   },
351
   methods: {
387
   methods: {
388
+    changeProjctItem(val){
389
+      console.log(val)
390
+      for(let i = 0;i < this.indicators.length;i++){
391
+        if(this.indicators[i].id == val){
392
+          this.project_id = this.indicators[i].inspection_major
393
+          this.item_id = this.indicators[i].inspection_minor
394
+          this.query.project_id = this.indicators[i].inspection_major
395
+          this.query.item_id = this.indicators[i].inspection_minor
396
+          this.item_name = this.indicators[i].item_name
397
+          this.GetPersonQCStatistisData(this.query)
398
+          this.GetInspectionCheckIndexTableData(this.query)
399
+        }
400
+      }
401
+    },
402
+    getStatisticsList(){
403
+      let params = {
404
+      }
405
+      this.indicators = []
406
+      getStatisticsList(params).then(response => {
407
+        if (response.data.state == 1) {
408
+          this.indicators  =  this.indicators.concat(response.data.data.configurationlist)
409
+          for(var i = 0; i < this.indicators.length;i++){
410
+            if(this.indicators[i].id == this.project_type){
411
+              this.project_type_two   = this.indicators[i].id
412
+            }
413
+          }
414
+
415
+        } else {
416
+          this.$message.error(response.data.msg)
417
+        }
418
+      })
419
+    },
420
+
352
     printAction(){
421
     printAction(){
353
       this.$router.push({
422
       this.$router.push({
354
         path: "/Dialysisanalysis/qualitycontrol/print?patient_id=" + this.query.patient_id+"&project_id="+this.query.project_id+"&item_id="+this.query.item_id+"&start_time="+this.query.start_time+"&end_time="+this.query.end_time
423
         path: "/Dialysisanalysis/qualitycontrol/print?patient_id=" + this.query.patient_id+"&project_id="+this.query.project_id+"&item_id="+this.query.item_id+"&start_time="+this.query.start_time+"&end_time="+this.query.end_time
473
     },
542
     },
474
     GetInspectionCheckIndexTableData(params) {
543
     GetInspectionCheckIndexTableData(params) {
475
       this.loading = true
544
       this.loading = true
476
-      GetPersonQCStatistisData(params)
545
+      GetCommonPersonQCStatistisData(params)
477
         .then(rs => {
546
         .then(rs => {
478
           var resp = rs.data
547
           var resp = rs.data
479
           console.log("resp=====",resp)
548
           console.log("resp=====",resp)
504
       this.bar.xAxis.data = []
573
       this.bar.xAxis.data = []
505
       this.bar.series[0].data = []
574
       this.bar.series[0].data = []
506
       this.percent = []
575
       this.percent = []
507
-      GetPersonQCStatistisData(params)
576
+      GetCommonPersonQCStatistisData(params)
508
         .then(rs => {
577
         .then(rs => {
509
           var resp = rs.data
578
           var resp = rs.data
510
           if (resp.state == 1) {
579
           if (resp.state == 1) {
607
     this.query.patient_id = 0
676
     this.query.patient_id = 0
608
     this.query.end_time = year + '-' + month + '-' + day
677
     this.query.end_time = year + '-' + month + '-' + day
609
     this.query.start_time = year + '-' + last_month + '-' + day
678
     this.query.start_time = year + '-' + last_month + '-' + day
610
-    this.query.project_id = 1
611
-    this.query.item_id = 17
679
+    this.query.project_id = this.project_id
680
+    this.query.item_id = this.item_id
612
     this.getCurrentOrgPatients()
681
     this.getCurrentOrgPatients()
613
-
614
-    // this.GetPersonQCStatistisData()
615
-
616
-
682
+    this.getStatisticsList()
617
   }
683
   }
618
 }
684
 }
619
 </script>
685
 </script>

+ 60 - 2
src/xt_pages/outpatientCharges/components/registerDialog.vue View File

156
           </el-option>
156
           </el-option>
157
         </el-select>
157
         </el-select>
158
       </el-form-item>
158
       </el-form-item>
159
+
160
+
161
+      <el-form-item label="余额:" :validate-event="is_Name">
162
+       <label>{{form.blac}}</label>
163
+      </el-form-item>
164
+
165
+      <el-form-item label="身份类型:" :validate-event="is_Name" v-if="$store.getters.xt_user.org_id == 10375">
166
+        <el-button style="margin-left:10px;" type="primary" @click="checkID">查看身份类型</el-button>
167
+      </el-form-item>
168
+
169
+
170
+
159
       <el-form-item label="挂号费:">
171
       <el-form-item label="挂号费:">
160
         <el-input v-model="form.registration_fee"></el-input>
172
         <el-input v-model="form.registration_fee"></el-input>
161
       </el-form-item>
173
       </el-form-item>
265
           medical_expenses: '',
277
           medical_expenses: '',
266
           cost: '',
278
           cost: '',
267
           phone: '',
279
           phone: '',
268
-          social_type: ''
280
+          social_type: '',
281
+          blac:'',
282
+          psn_desc:"",
269
         },
283
         },
270
         IDCardTypes: [{
284
         IDCardTypes: [{
271
           value: 1,
285
           value: 1,
424
       diagnoses: Array
438
       diagnoses: Array
425
     },
439
     },
426
     methods: {
440
     methods: {
441
+      checkID(){
442
+        this.$alert(this.psn_desc, '身份类型', {
443
+          confirmButtonText: '确定',
444
+          callback: action => {
445
+          }
446
+        });
447
+      },
448
+      getPsnName(type){
449
+        switch (type){
450
+          case "":
451
+
452
+            break
453
+          case "":
454
+
455
+            break
456
+          case "":
457
+
458
+            break
459
+          case "":
460
+
461
+            break
462
+          case "":
463
+
464
+            break
465
+          case "":
466
+
467
+            break
468
+
469
+
470
+
471
+        }
472
+
473
+
474
+      },
427
       check11(){
475
       check11(){
428
 
476
 
429
         if(this.form.social_type == 0 || this.form.social_type == ''){
477
         if(this.form.social_type == 0 || this.form.social_type == ''){
709
                         that.form.medical_insurance_card = response.data.data.number
757
                         that.form.medical_insurance_card = response.data.data.number
710
                         that.form.social_type = parseInt(response.data.data.insutype)
758
                         that.form.social_type = parseInt(response.data.data.insutype)
711
 
759
 
760
+
761
+
712
                       } else if (that.form.id_card_type == 2) {
762
                       } else if (that.form.id_card_type == 2) {
713
                         that.form.id = patient.id
763
                         that.form.id = patient.id
714
                         that.form.name = patient.name
764
                         that.form.name = patient.name
717
                         that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
767
                         that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
718
                         that.form.phone = patient.phone
768
                         that.form.phone = patient.phone
719
                         that.form.id_card = patient.id_card_no
769
                         that.form.id_card = patient.id_card_no
770
+
720
                       } else {
771
                       } else {
721
                         that.form.id = patient.id
772
                         that.form.id = patient.id
722
                         that.form.name = patient.name
773
                         that.form.name = patient.name
726
                         that.form.phone = patient.phone
777
                         that.form.phone = patient.phone
727
                         that.form.id_card = patient.id_card_no
778
                         that.form.id_card = patient.id_card_no
728
                         that.form.social_type = parseInt(response.data.data.insutype)
779
                         that.form.social_type = parseInt(response.data.data.insutype)
780
+
729
                       }
781
                       }
730
                       that.$message({ message: '读卡成功', type: 'success' })
782
                       that.$message({ message: '读卡成功', type: 'success' })
731
                     }
783
                     }
780
                     that.form.id_card = patient.id_card_no
832
                     that.form.id_card = patient.id_card_no
781
                     that.form.medical_insurance_card = response.data.data.number
833
                     that.form.medical_insurance_card = response.data.data.number
782
                     that.form.social_type = parseInt(response.data.data.insutype)
834
                     that.form.social_type = parseInt(response.data.data.insutype)
835
+                    that.form.blac = response.data.data.blac
836
+                    that.form.psn_desc = response.data.data.desc
783
 
837
 
784
                   } else if (that.form.id_card_type == 2) {
838
                   } else if (that.form.id_card_type == 2) {
839
+                    2
785
                     that.form.id = patient.id
840
                     that.form.id = patient.id
786
                     that.form.name = patient.name
841
                     that.form.name = patient.name
787
                     that.form.gender = patient.gender
842
                     that.form.gender = patient.gender
789
                     that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
844
                     that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
790
                     that.form.phone = patient.phone
845
                     that.form.phone = patient.phone
791
                     that.form.id_card = patient.id_card_no
846
                     that.form.id_card = patient.id_card_no
847
+                    that.form.blac = response.data.data.blac
848
+                    that.form.psn_desc = response.data.data.desc
792
                   } else {
849
                   } else {
793
                     that.form.id = patient.id
850
                     that.form.id = patient.id
794
                     that.form.name = patient.name
851
                     that.form.name = patient.name
798
                     that.form.phone = patient.phone
855
                     that.form.phone = patient.phone
799
                     that.form.id_card = patient.id_card_no
856
                     that.form.id_card = patient.id_card_no
800
                     that.form.social_type = parseInt(response.data.data.insutype)
857
                     that.form.social_type = parseInt(response.data.data.insutype)
801
-
858
+                    that.form.blac = response.data.data.blac
859
+                    that.form.psn_desc = response.data.data.desc
802
                   }
860
                   }
803
                   that.$message({ message: '读卡成功', type: 'success' })
861
                   that.$message({ message: '读卡成功', type: 'success' })
804
                 }
862
                 }

+ 2 - 0
src/xt_pages/outpatientCharges/statementPrint.vue View File

148
         { code: '410100', name: '工伤保险基金' },
148
         { code: '410100', name: '工伤保险基金' },
149
         { code: '510100', name: '生育基金' },
149
         { code: '510100', name: '生育基金' },
150
         { code: '610100', name: '医疗救助基金' },
150
         { code: '610100', name: '医疗救助基金' },
151
+         { code: '610101', name: '医疗救助基金' },
151
         { code: '610200', name: '优抚对象医疗补助基金' },
152
         { code: '610200', name: '优抚对象医疗补助基金' },
152
         { code: '620100', name: '特惠保补偿金' },
153
         { code: '620100', name: '特惠保补偿金' },
153
         { code: '630100', name: '医院减免金' },
154
         { code: '630100', name: '医院减免金' },
1514
                   funds.push(objs)
1515
                   funds.push(objs)
1515
                 }
1516
                 }
1516
                 that.info['funds'] = funds
1517
                 that.info['funds'] = funds
1518
+                console.log(that.info)
1517
               }
1519
               }
1518
             })
1520
             })
1519
             .catch(function(error) {
1521
             .catch(function(error) {

+ 3 - 3
src/xt_pages/outpatientCharges/statementTemplate/printTen.vue View File

92
           <tr>
92
           <tr>
93
             <td style="border: 1px solid gray;width: 150px;height: 30px;">结算ID</td>
93
             <td style="border: 1px solid gray;width: 150px;height: 30px;">结算ID</td>
94
             <td style="border: 1px solid gray;width: 150px;height: 30px;">{{info.setl_id}}</td>
94
             <td style="border: 1px solid gray;width: 150px;height: 30px;">{{info.setl_id}}</td>
95
-            <td style="border: 1px solid gray;width: 150px;height: 30px;">住院号</td>
95
+            <td style="border: 1px solid gray;width: 150px;height: 30px;">门诊号</td>
96
             <td style="border: 1px solid gray;width: 150px;height: 30px;">{{info.number}}</td>
96
             <td style="border: 1px solid gray;width: 150px;height: 30px;">{{info.number}}</td>
97
-            <td style="border: 1px solid gray;width: 150px;height: 30px;">住院天数</td>
98
-            <td style="border: 1px solid gray;width: 150px;height: 30px;">{{getDay(info.begndate,info.enddate)}}</td>
97
+            <td style="border: 1px solid gray;width: 150px;height: 30px;">门诊天数</td>
98
+            <td style="border: 1px solid gray;width: 150px;height: 30px;">{{getDay(getTime(info.new_order.settle_start_time,'{y}-{m}-{d}'),getTime(info.new_order.settle_end_time,'{y}-{m}-{d}'))}}</td>
99
           </tr>
99
           </tr>
100
           <tr>
100
           <tr>
101
             <td style="border: 1px solid gray;width: 150px;height: 30px;">科室</td>
101
             <td style="border: 1px solid gray;width: 150px;height: 30px;">科室</td>

+ 1 - 1
src/xt_pages/outpatientCharges/statementTemplate/printtwelve.vue View File

4
       阜阳市医疗保险费用结算单
4
       阜阳市医疗保险费用结算单
5
     </div>
5
     </div>
6
     <div style="display: flex;">
6
     <div style="display: flex;">
7
-      <div style="flex: 1;">结算ID:{{info.new_order.setl_id}}</div>
7
+      <div style="flex: 1;">结算ID:{{info.new_order!=null&&info.new_order.setl_id}}</div>
8
       <div style="flex: 1;">结算日期: <span v-if="info.new_order!=null"> {{info.new_order.setl_time ? info.new_order.setl_time.split(' ')[0] : ''}}</span> </div>
8
       <div style="flex: 1;">结算日期: <span v-if="info.new_order!=null"> {{info.new_order.setl_time ? info.new_order.setl_time.split(' ')[0] : ''}}</span> </div>
9
       <div style="flex: 1;" v-if="info.new_order!=null&&info.new_order.med_type == 14 || info.new_order.med_type == 140104">医疗类别:门诊慢病</div>
9
       <div style="flex: 1;" v-if="info.new_order!=null&&info.new_order.med_type == 14 || info.new_order.med_type == 140104">医疗类别:门诊慢病</div>
10
       <div style="flex: 1;" v-if="info.new_order!=null&&info.new_order.med_type == 11">医疗类别:普通门诊</div>
10
       <div style="flex: 1;" v-if="info.new_order!=null&&info.new_order.med_type == 11">医疗类别:普通门诊</div>

File diff suppressed because it is too large
+ 3811 - 3156
src/xt_pages/outpatientTool/org_export_data.vue


+ 118 - 13
src/xt_pages/user/Informed/components/Medicalhistory.vue View File

1
 <template>
1
 <template>
2
   <div style="border:1px solid gainsboro ;padding:10px">
2
   <div style="border:1px solid gainsboro ;padding:10px">
3
     <div style="position: relative; left: 400px;width: 250px;margin: 20px 0;">
3
     <div style="position: relative; left: 400px;width: 250px;margin: 20px 0;">
4
-      <!-- <el-button type="primary" style=""  @click="bianji">
4
+      <el-button type="primary" style=""  @click="bianji">
5
             编辑
5
             编辑
6
-        </el-button> -->
6
+      </el-button>
7
       <!-- <el-button type="danger" style=""  @click="">
7
       <!-- <el-button type="danger" style=""  @click="">
8
             删除
8
             删除
9
       </el-button> -->
9
       </el-button> -->
14
     <div id="print_content">
14
     <div id="print_content">
15
       <div class="print_page_main_content">
15
       <div class="print_page_main_content">
16
         <div class="content">
16
         <div class="content">
17
-
18
           <h2 style="text-align: center;margin-bottom: 20px;">门诊血液透析治疗病历首页</h2>
17
           <h2 style="text-align: center;margin-bottom: 20px;">门诊血液透析治疗病历首页</h2>
19
           <div style="display: flex;padding: 10px 5px">
18
           <div style="display: flex;padding: 10px 5px">
20
             <div style="flex: 1;">门诊号<span class="unile">{{ patient.admission_number }}</span></div>
19
             <div style="flex: 1;">门诊号<span class="unile">{{ patient.admission_number }}</span></div>
70
           <div style="padding: 10px 5px">
69
           <div style="padding: 10px 5px">
71
             合并症或并发症 <span class="unile"></span>
70
             合并症或并发症 <span class="unile"></span>
72
           </div>
71
           </div>
73
-          <div>
72
+          <div V-html="content"></div>
73
+          <div v-html="content"></div>
74
+          <!-- <div>
74
             <table border="1" style="border-collapse: collapse;width: 100%;text-align: center;">
75
             <table border="1" style="border-collapse: collapse;width: 100%;text-align: center;">
75
               <tr>
76
               <tr>
76
                 <td colspan="2" class="tablepadd">干体重</td>
77
                 <td colspan="2" class="tablepadd">干体重</td>
85
                 <td>日期</td>
86
                 <td>日期</td>
86
                 <td>种类</td>
87
                 <td>种类</td>
87
               </tr>
88
               </tr>
88
-              <tr v-for="item in 1">
89
+              <tr v-for="item in 4">
89
                 <td class="tablepadd"></td>
90
                 <td class="tablepadd"></td>
90
                 <td></td>
91
                 <td></td>
91
                 <td></td>
92
                 <td></td>
106
                 <td>日期</td>
107
                 <td>日期</td>
107
                 <td>药物名称</td>
108
                 <td>药物名称</td>
108
               </tr>
109
               </tr>
109
-              <tr v-for="item in 1">
110
+              <tr v-for="item in 4">
110
                 <td class="tablepadd"></td>
111
                 <td class="tablepadd"></td>
111
-                <td></td>
112
+                <td ></td>
112
                 <td></td>
113
                 <td></td>
113
                 <td></td>
114
                 <td></td>
114
                 <td></td>
115
                 <td></td>
125
                 <td>透析液钙浓度</td>
126
                 <td>透析液钙浓度</td>
126
                 <td>调整日期</td>
127
                 <td>调整日期</td>
127
               </tr>
128
               </tr>
128
-              <tr v-for="item in 1">
129
+              <tr v-for="item in 4">
129
                 <td class="tablepadd"></td>
130
                 <td class="tablepadd"></td>
130
                 <td></td>
131
                 <td></td>
131
                 <td></td>
132
                 <td></td>
134
                 <td></td>
135
                 <td></td>
135
               </tr>
136
               </tr>
136
             </table>
137
             </table>
137
-          </div>
138
+          </div> -->
138
         </div>
139
         </div>
139
       </div>
140
       </div>
140
     </div>
141
     </div>
141
-    <!-- <el-dialog
142
+    <!-- 编辑 -->
143
+    <el-dialog
142
       title="提示"
144
       title="提示"
143
       :visible.sync="dialogVisible"
145
       :visible.sync="dialogVisible"
144
       width="60%">
146
       width="60%">
145
         <div>
147
         <div>
148
+          <h2 style="text-align: center;margin-bottom: 20px;">门诊血液透析治疗病历首页</h2>
149
+          <div style="display: flex;padding: 10px 5px">
150
+            <div style="flex: 1;">门诊号
151
+              <span style="display: inline-block;border-bottom: 1px solid black;width: 60%;">{{ patient.admission_number }}</span>
152
+            </div>
153
+            <div style="flex: 1;">住院号 
154
+              <span style="display: inline-block;border-bottom: 1px solid black;width: 60%;">{{ patient.admission_number }}</span>
155
+            </div>
156
+            <div style="flex: 1;">姓名:
157
+              <span style="display: inline-block;border-bottom: 1px solid black;width: 60%;">{{ patient.name }}</span>
158
+            </div>
159
+            <div style="flex: 1;">性别:
160
+              <span style="display: inline-block;border-bottom: 1px solid black;width: 60%;">
161
+                <span v-if="sex==1">男</span>
162
+                <span v-if="sex==2">女</span>
163
+              </span>
164
+              <!-- <input type="checkbox" v-model="nv" class="nv"/>女
165
+              <input type="checkbox" v-model="nan" class="nan"/>男 -->
166
+            </div>
167
+          </div>
168
+          <!-- <div style="display: flex;padding: 10px 5px">
169
+            <div style="flex: 1;">姓名:<span class="unile">{{ patient.name }}</span></div>
170
+            <div style="flex: 1;">性别:
171
+              <span v-if="sex==1">男</span>
172
+              <span v-if="sex==2">女</span>
173
+            </div>
174
+          </div> -->
175
+          <div style="padding: 10px 5px">诊断:
176
+            <span style="display: inline-block;border-bottom: 1px solid black;width: 60%;">{{ patient.diagnose }}</span>
177
+          </div>
178
+          <div style="padding: 10px 5px">合并症或并发症 
179
+            <span style="display: inline-block;border-bottom: 1px solid black;width: 60%;"></span>
180
+          </div>
146
           <keep-alive>
181
           <keep-alive>
147
             <editor ref="editor"
182
             <editor ref="editor"
148
                     id="editor"
183
                     id="editor"
155
           <el-button @click="dialogVisible = false">取 消</el-button>
190
           <el-button @click="dialogVisible = false">取 消</el-button>
156
           <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
191
           <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
157
         </span>
192
         </span>
158
-    </el-dialog> -->
193
+    </el-dialog>
159
   </div>
194
   </div>
160
 </template>
195
 </template>
161
 <script>
196
 <script>
164
 import print from "print-js";
199
 import print from "print-js";
165
 import Editor from '@/components/Editor'
200
 import Editor from '@/components/Editor'
166
 import { uParseTime } from '@/utils/tools'
201
 import { uParseTime } from '@/utils/tools'
202
+const content=`<div>
203
+            <table border="1" style="border-collapse: collapse;width: 100%;text-align: center;">
204
+              <tr>
205
+                <td colspan="2" class="tablepadd">干体重</td><td colspan="2" class="tablepadd">血管通路</td>
206
+                <td colspan="2" class="tablepadd">抗凝剂</td>
207
+              </tr>
208
+              <tr>
209
+                <td class="tablepadd">日期</td><td>体重(kg)</td><td>日期</td>
210
+                <td>名称</td><td>日期</td><td>种类</td>
211
+              </tr>
212
+              <tr>
213
+                <td class="tablepadd"></td><td></td><td></td><td></td><td></td><td></td>
214
+              </tr>
215
+              <tr>
216
+                <td class="tablepadd"></td><td></td><td></td><td></td><td></td><td></td>
217
+              </tr>
218
+              <tr>
219
+                <td class="tablepadd"></td><td></td><td></td><td></td><td></td><td></td>
220
+              </tr>
221
+              <tr>
222
+                <td class="tablepadd"></td><td></td><td></td><td></td><td></td><td></td>
223
+              </tr>
224
+              <tr>
225
+                <td colspan="2" class="tablepadd">传染病登记</td><td colspan="2" class="tablepadd">肿瘤登记</td>
226
+                <td colspan="2" class="tablepadd">药物过敏史</td>
227
+              </tr>
228
+              <tr>
229
+                <td class="tablepadd">日期</td><td>名称</td><td>日期</td>
230
+                <td>名称</td><td>日期</td><td>药物名称</td>
231
+              </tr>
232
+              <tr>
233
+                <td class="tablepadd"></td><td ></td><td></td><td></td><td></td><td></td>
234
+              </tr>
235
+              <tr>
236
+                <td class="tablepadd"></td><td ></td><td></td><td></td><td></td><td></td>
237
+              </tr>
238
+              <tr>
239
+                <td class="tablepadd"></td><td ></td><td></td><td></td><td></td><td></td>
240
+              </tr>
241
+              <tr>
242
+                <td class="tablepadd"></td><td ></td><td></td><td></td><td></td><td></td>
243
+              </tr>
244
+              <tr>
245
+                <td colspan="6" class="tablepadd">血液透析治疗方案调整</td>
246
+              </tr>
247
+              <tr>
248
+                <td class="tablepadd">治疗频率</td><td>调整日期</td><td>治疗方式</td>
249
+                <td>调整日期</td><td>透析液钙浓度</td><td>调整日期</td>
250
+              </tr>
251
+              <tr>
252
+                <td class="tablepadd"></td><td></td><td></td><td></td><td></td><td></td>
253
+              </tr>
254
+              <tr>
255
+                <td class="tablepadd"></td><td ></td><td></td><td></td><td></td><td></td>
256
+              </tr>
257
+              <tr>
258
+                <td class="tablepadd"></td><td ></td><td></td><td></td><td></td><td></td>
259
+              </tr>
260
+              <tr>
261
+                <td class="tablepadd"></td><td ></td><td></td><td></td><td></td><td></td>
262
+              </tr>
263
+
264
+            </table>
265
+          </div>`
167
 export default{
266
 export default{
168
   props: {
267
   props: {
169
     patient_id: {
268
     patient_id: {
177
     return{
276
     return{
178
       patient:{},
277
       patient:{},
179
       dialogVisible:false,
278
       dialogVisible:false,
279
+      content:content,
280
+
281
+      number:'',
180
       sex:'',
282
       sex:'',
181
       sheng:'',
283
       sheng:'',
182
       shi:'',
284
       shi:'',
187
   },
289
   },
188
   created(){
290
   created(){
189
     this.getlist()
291
     this.getlist()
190
-
292
+    // this.number = 1233444
191
     // }
293
     // }
192
   },
294
   },
193
   methods:{
295
   methods:{
227
       })
329
       })
228
     },
330
     },
229
     printThisPage(){
331
     printThisPage(){
230
-        const style = '@media print {.content p{font-size: 16px;font-family: 新宋体; padding-left: 20px; margin-bottom: 5px;}.unile{display: inline-block;border-bottom: 1px solid black;width: 60%;}.unile2{display: inline-block;border-bottom: 1px solid black;width: 150px;padding: 15px 0;}}'
332
+        const style = '@media print {.content p{font-size: 16px;font-family: 新宋体; padding-left: 20px; margin-bottom: 5px;}.unile{display: inline-block;border-bottom: 1px solid black;width: 60%;}.unile2{display: inline-block;border-bottom: 1px solid black;width: 150px;padding: 15px 0;}.tablepadd{padding: 0 5px; height: 35px;}}'
231
         printJS({
333
         printJS({
232
             printable: 'print_content',
334
             printable: 'print_content',
233
             type: 'html',
335
             type: 'html',
269
         return sex2.checked=false
371
         return sex2.checked=false
270
       }
372
       }
271
     }
373
     }
374
+  },
375
+  mounted(){
376
+    this.number = 1233444
272
   }
377
   }
273
 }
378
 }
274
 
379
 

+ 2 - 1
src/xt_pages/user/components/PatientDetail.vue View File

978
     <!-- 打印预览 -->
978
     <!-- 打印预览 -->
979
     <div style="display: none">
979
     <div style="display: none">
980
       <div id="print-info-box">
980
       <div id="print-info-box">
981
-        <div class="print_main_content" >
981
+        <div class="print_main_content" style="margin-top: 70px;">
982
           <div class="order_title" v-if="org_id!=10210">{{ orgname }} 血液透析门诊病历</div>
982
           <div class="order_title" v-if="org_id!=10210">{{ orgname }} 血液透析门诊病历</div>
983
           <div class="order_title" v-if="org_id==10210">{{ orgname }} 血液透析住院病历</div>
983
           <div class="order_title" v-if="org_id==10210">{{ orgname }} 血液透析住院病历</div>
984
           <div >
984
           <div >
2264
     //    })
2264
     //    })
2265
     // }
2265
     // }
2266
   },
2266
   },
2267
+  
2267
 };
2268
 };
2268
 </script>
2269
 </script>
2269
 
2270