Browse Source

Merge remote-tracking branch 'origin/20230223_pc_vue_new_branch' into 20230223_pc_vue_new_branch

yq1 4 months ago
parent
commit
49970c3e52

+ 13 - 1
src/router/modules/dialysis.js View File

@@ -120,6 +120,18 @@ export default {
120 120
       }
121 121
     },
122 122
 
123
+    {
124
+      path: '/dialysis/doctocInspection/print',
125
+      component: () => import('@/xt_pages/dialysis/doctorInspectionPrint'),
126
+      name: '透析项目打印',
127
+      hidden: true,
128
+      is_menu: false,
129
+      meta: {
130
+        title: '透析项目打印',
131
+        noCache: true
132
+      }
133
+    },
134
+
123 135
     {
124 136
       path: '/dialysis/doctorAdviceStaticPrint',
125 137
       component: () => import('@/xt_pages/dialysis/doctorAdviceStaticPrint'),
@@ -781,7 +793,7 @@ export default {
781 793
         noCache: true
782 794
       }
783 795
     },
784
-    
796
+
785 797
     {
786 798
       path: '/dialysis/print/batch/thirtyTwo',
787 799
       component: () =>

+ 1 - 1
src/xt_pages/Pharmacy/drugCode.vue View File

@@ -220,7 +220,7 @@
220 220
           } else {
221 221
 
222 222
             //有打开则调用接口
223
-            axios.get('http://127.0.0.1:9532/api/delete_xs_bg_three',{params:params}).then(function(response) {
223
+            axios.get('http://127.0.0.1:9532/api/changedrug/five',{params:params}).then(function(response) {
224 224
               if (response.data.state == 0) {
225 225
                 that.$message.error(response.data.data.msg);
226 226
                 return false

+ 14 - 0
src/xt_pages/dialysis/details/dialog/DoctorAdviceDialog.vue View File

@@ -302,6 +302,20 @@
302 302
             </span>
303 303
           </template>
304 304
         </el-table-column>
305
+
306
+        <el-table-column
307
+          prop="checker"
308
+          min-width="30px"
309
+          align="center"
310
+          label="医嘱嘱托"
311
+        >
312
+          <template slot-scope="scope">
313
+            <span>
314
+              {{ scope.row.remark }}
315
+            </span>
316
+          </template>
317
+        </el-table-column>
318
+       
305 319
       </el-table>
306 320
 
307 321
 

+ 573 - 0
src/xt_pages/dialysis/doctorInspectionPrint.vue View File

@@ -0,0 +1,573 @@
1
+<template>
2
+    <div class="main-contain">
3
+        <div class="position">
4
+        <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+        <el-row style="float:right;">
6
+            <el-col :span="24">
7
+            <el-button size="small" icon="el-icon-printer" type="primary" @click="printAction">打印</el-button>
8
+            </el-col>
9
+        </el-row>
10
+        </div>
11
+        <div class="app-container" style="background-color: white;">
12
+            <div id="dialysisTable">
13
+                <div class="order_title_panl">
14
+                    <span class="main_title">透析医嘱</span>
15
+                </div>
16
+                <p style="width: 960px;text-align: right;margin: 0 auto 10px;">日期:{{ time }}</p>
17
+                <table class="table dialysisTable" border="1" cellspacing="0" cellpadding="0">
18
+                    <tr>
19
+                    <th width="40px">姓名</th>
20
+                    <th width="50px">透析器</th>
21
+                    <th width="40px">床位号</th>
22
+                 
23
+                    <th width="50px">开始时间</th>
24
+                    <th width="200px">医嘱内容</th>
25
+                    <th width="50px">执行时间</th>
26
+                    <th width="50px">执行护士</th>
27
+                    <th width="50px">校对护士</th>
28
+                    <th width="50px">校对时间</th>
29
+                    <th width="50px">开嘱医生</th>
30
+                    <th width="50px">开嘱时间</th>
31
+                    </tr>
32
+                    <template v-for="(schedules, zone_name, index) in scheduleMap">
33
+                    <tr >
34
+                        <td>{{ zone_name }}</td>
35
+                        <td></td>
36
+                        <td></td>
37
+                        <td></td>
38
+                        <td></td>
39
+                        <td></td>
40
+                        <td></td>
41
+                        <td></td>
42
+                        <td></td>
43
+                        <td></td>
44
+                        <td></td>
45
+                    </tr>
46
+                    <template v-for="schedule in schedules">
47
+                        <template v-for="(group, group_index) in schedule.new_advice">
48
+                        <tr v-for="(advice, advice_index) in group.advices" :key="advice_index">
49
+                            <td
50
+                            v-if="advice_index == 0"
51
+                            :rowspan="group.advices.length"
52
+                            >{{ advice.parent_id == 0 ? schedule.patient.name : "" }}
53
+                            <br>
54
+                            ({{ advice.parent_id == 0 ? schedule.dialysis_no : ""}})
55
+                            <br>
56
+                            <span v-if="schedule.mode_id == 1">(HD)</span>
57
+                            <span v-if="schedule.mode_id == 2">(HDF)</span>
58
+                            <span v-if="schedule.mode_id == 3">(HD+HP)</span>
59
+                            <span v-if="schedule.mode_id == 4">(HP)</span>
60
+                            <span v-if="schedule.mode_id == 5">(HF)</span>
61
+                            <span v-if="schedule.mode_id == 6">(SCUF)</span>
62
+                            <span v-if="schedule.mode_id == 7">(IUF)</span>
63
+                            <span v-if="schedule.mode_id == 8">(HFHD)</span>
64
+                            <span v-if="schedule.mode_id == 9">(HFHD+HP)</span>
65
+                            <span v-if="schedule.mode_id == 10">(PHF)</span>
66
+                            <span v-if="schedule.mode_id == 11">(HFR)</span>
67
+                            <span v-if="schedule.mode_id == 12">(HDF+HP)</span>
68
+                            <span v-if="schedule.mode_id == 13">(CRRT)</span>
69
+                            <span v-if="schedule.mode_id == 14">(腹水回输)</span>
70
+                            <span v-if="schedule.mode_id == 24">I-HDF</span>
71
+                            </td>
72
+                           
73
+                            <td v-if="advice_index == 0" :rowspan="group.advices.length">
74
+                               {{advice.parent_id == 0 && schedule.prescription!=null ?  schedule.prescription.dialyzer_perfusion_apparatus : ""}}
75
+                               {{advice.parent_id == 0 && schedule.prescription!=null ?  schedule.prescription.dialysis_dialyszers : "/"}}
76
+                               {{advice.parent_id == 0 && schedule.prescription!=null ?  schedule.prescription.dialysis_irrigation : "/"}}
77
+                               {{advice.parent_id == 0 && schedule.prescription!=null ?  schedule.prescription.dialysis_strainer : ""}}
78
+                              
79
+                            </td>
80
+                            <td>
81
+                                {{ schedule.device_number.number }}
82
+                            </td>
83
+                           
84
+                            <td v-if="advice_index == 0" :rowspan="group.advices.length">
85
+                            {{
86
+                            advice.parent_id == 0
87
+                            ? parseTime(advice.start_time, "{m}-{d} {h}:{i}")
88
+                            : ""
89
+                            }}
90
+                            </td>
91
+                            <td
92
+                            :class="
93
+                                advice.parent_id == 0
94
+                                ? 'advice_content'
95
+                                : 'subadvice_content'
96
+                            "
97
+                            >
98
+                            <span>{{ advice.advice_name }}</span>
99
+                            <span>{{ advice.advice_desc }}{{ advice.drug_spec_unit }}</span>
100
+                            <span v-if="advice.prescribing_number">
101
+                                {{ advice.prescribing_number
102
+                                }}{{ advice.prescribing_number_unit }}
103
+                            </span>
104
+                            <span v-if="advice.single_dose">
105
+                                单次用量 {{ advice.single_dose
106
+                                }}{{ advice.single_dose_unit }}
107
+                            </span>
108
+                            <span>{{ advice.delivery_way }}</span>
109
+                            <span>{{ advice.execution_frequency }}</span>
110
+                            <span
111
+                                v-if="advice.parent_id == 0 && advice.remark.length > 0"
112
+                            >({{ advice.remark }})</span>
113
+                            </td>
114
+                            <td>{{ parseTime(advice.execution_time, "{m}-{d} {h}:{i}") }}</td>
115
+                            <td>{{ getName(advice.execution_staff) }}</td>
116
+                            <td>{{ getName(advice.checker) }}</td>
117
+                            <td>{{ parseTime(advice.check_time, "{m}-{d} {h}:{i}") }}</td>
118
+                            <td>{{ getName(advice.advice_doctor) }}</td>
119
+                            <td>{{ parseTime(advice.start_time, "{m}-{d} {h}:{i}") }}</td>
120
+                        </tr>
121
+                        </template>
122
+                     </template>
123
+                    </template>
124
+                </table>
125
+            </div>
126
+        </div>
127
+
128
+        
129
+    </div>
130
+</template>
131
+
132
+<script>
133
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
134
+import { getSchedualDoctors } from '@/api/advice'
135
+import { parseTime } from '@/utils'
136
+import print from 'print-js'
137
+const moment = require('moment')
138
+export default {
139
+    components:{
140
+        BreadCrumb
141
+    },
142
+    data(){
143
+        return{
144
+            crumbs: [
145
+                { path: false, name: '耗材药品' },
146
+                { path: false, name: '打印' }
147
+            ],
148
+            tableData:[],
149
+            start_time:"",
150
+            end_time:"",
151
+            print_time:moment(new Date()).add('year', 0).format('YYYY-MM-DD'),
152
+
153
+            zone_selected: 0,
154
+            scheduleMap:[],
155
+            time:'',
156
+            show:true,
157
+            showOne:false,
158
+            delivery_way:"",
159
+            org_id:0,
160
+        }
161
+    },
162
+    methods:{
163
+        printAction: function() {
164
+            const style = '@media print { .dialysisTable{width:960px;margin: 0 auto;text-align: center;border-collapse: collapse;}.order_title_panl {text-align: center;.main_title {font-size: 18px;line-height: 40px;font-weight: 500;}}.dialysisTable tr{padding: 5px 0;}.dialysisTable th {color: #000;padding: 0;margin: 0;height: 30px;}.dialysisTable tr td {padding: 0px 0;}.subadvice_content {text-align: left;padding-left: 25px !important;padding-right: 5px !important;}.advice_content {text-align: left;padding-left: 5px !important;padding-right: 5px !important;padding: 5px 5px !important;} }'
165
+
166
+            printJS({
167
+            printable: 'dialysisTable',
168
+            type: 'html',
169
+            documentTitle: '  ',
170
+            style: style,
171
+            scanStyles: false
172
+            })
173
+        },
174
+        requestSchedualDoctors (time) {
175
+            let newTime =  moment(time).format('YYYY-MM-DD')
176
+            getSchedualDoctors({
177
+            date: newTime,
178
+            patient_type: 0,
179
+            advice_type: 2,
180
+            delivery_way:this.delivery_way,
181
+            excution_way:this.$route.query.excution_way,
182
+            }).then(rs => {
183
+                var resp = rs.data
184
+                if (resp.state == 1) {
185
+                this.admin_user = resp.data.adminUser
186
+                var config = resp.data.config
187
+                let project_config = resp.data.project_config
188
+                
189
+                if(project_config.is_open == 1){
190
+                    this.project = resp.data.project
191
+                    
192
+                    resp.data.hisAdvices.map((item,index) => {
193
+                    item.new_advice = item.new_advice ? item.new_advice : []
194
+                     
195
+                    if(this.project[index].project.length > 0){
196
+                        this.project[index].project.map(it => {
197
+                        let obj = {
198
+                            advice_doctor: it.doctor,
199
+                            start_time:it.start_time,
200
+                            advice_name: it.type == 2 ? it.project.project_name : it.good_info.good_name,
201
+                            execution_time:it.execution_time,
202
+                            execution_state:it.execution_state,
203
+                            execution_staff:it.execution_staff,
204
+                            check_time:it.check_time,
205
+                            check_state:it.check_state,
206
+                            checker:it.checker,
207
+                            created_time:it.ctime,
208
+                            remark:'',
209
+                            id:it.id,
210
+                            parent_id:0,
211
+                            groupno:0,
212
+                            advice_type:6
213
+                        }
214
+                        item.doctor_advice.push(obj)
215
+                        })
216
+                    }
217
+                    
218
+                   })
219
+                }
220
+
221
+                if(config.is_open == 1){
222
+                   var schedulesArr = resp.data.hisAdvices
223
+                   let schedules = []
224
+                   var ids = this.$store.getters.temp_params.advice_ids
225
+                   console.log('ids',ids)
226
+                   schedulesArr.map(item => {
227
+                    if(ids.indexOf(item.patient_id) > -1){
228
+                        schedules.push(item)
229
+                    }
230
+
231
+                })
232
+
233
+                for (let i = 0; i < schedules.length; i++) {
234
+                    schedules[i].dialysis_no = schedules[i].patient.dialysis_no
235
+                }
236
+
237
+
238
+                var arr = []
239
+                for (let j = 0; j < schedules.length; j++) {
240
+                    arr.push(schedules[j].dialysis_no)
241
+                }
242
+                arr.sort(function (a, b) {
243
+                    return a - b
244
+                })
245
+
246
+
247
+                var arrTwo = []
248
+                for (let i = 0; i < arr.length; i++) {
249
+                    for (let j = 0; j < schedules.length; j++) {
250
+                    if (arr[i] == schedules[j].dialysis_no) {
251
+                        arrTwo.push(schedules[j])
252
+                    }
253
+                    }
254
+                }
255
+
256
+                arrTwo.map((item, index) => {
257
+
258
+                    item.doctor_advice.sort(this.compare('start_time'))
259
+                })
260
+
261
+
262
+                const res = new Map()
263
+                let a = arrTwo.filter(
264
+                    a => !res.has(a.dialysis_no) && res.set(a.dialysis_no, 1)
265
+                )
266
+
267
+
268
+
269
+                schedules = a
270
+                var zoneMap = {}
271
+                var scheduleMap = {}
272
+                for (let index = 0; index < schedules.length; index++) {
273
+                    const schedule = schedules[index]
274
+                    if (schedule.doctor_advice.length == 0) {
275
+                    continue
276
+                    }
277
+                    if (scheduleMap[schedule.device_number.zone.name] == null) {
278
+                    scheduleMap[schedule.device_number.zone.name] = []
279
+                    }
280
+                    scheduleMap[schedule.device_number.zone.name].push(schedule)
281
+                    if (zoneMap[schedule.device_number.zone.name] == null) {
282
+                    zoneMap[schedule.device_number.zone.name] =
283
+                        schedule.device_number.zone
284
+                    }
285
+                }
286
+
287
+                var zones = []
288
+                zones.push({ value: 0, text: '全部分区' })
289
+                for (var zoneName in zoneMap) {
290
+                    zones.push({ value: zoneMap[zoneName].id, text: zoneName })
291
+                }
292
+
293
+                zones = zones.sort(function (a, b) {
294
+                    return a.value > b.value
295
+                })
296
+                this.zones = zones
297
+                for (var key in scheduleMap) {
298
+                    let mapArr = scheduleMap[key]
299
+                    for (let i = 0; i < mapArr.length; i++) {
300
+                    mapArr[i]['new_advice'] = []
301
+                    }
302
+                }
303
+
304
+                for (var key in scheduleMap) {
305
+                    let mapArr = scheduleMap[key]
306
+                    for (let i = 0; i < mapArr.length; i++) {
307
+                    var maps = mapArr[i]
308
+                    var resp_advices = maps.doctor_advice
309
+                    if (resp_advices.length > 0) {
310
+                        var newGroupObject = function () {
311
+                        return Object.assign(
312
+                            {},
313
+                            {
314
+                            group_no: 0,
315
+                            advices: []
316
+                            }
317
+                        )
318
+                        }
319
+                        var initGroupBlock = function (group, advice) {
320
+                        group.group_no = advice.groupno
321
+                        }
322
+
323
+                        var advice_groups = []
324
+                        var group = newGroupObject()
325
+                        for (let index = 0; index < resp_advices.length; index++) {
326
+                        const advice = resp_advices[index]
327
+                        if (advice.groupno == 0) {
328
+                            // 老版本的医嘱
329
+                            if (advice.parent_id > 0) {
330
+                            if (advice_groups.length > 0) {
331
+                                var parent_group = advice_groups[advice_groups.length - 1]
332
+                                if (parent_group.advices.length > 0) {
333
+                                if (parent_group.advices[0].id == advice.parent_id) {
334
+                                    parent_group.advices.push(advice)
335
+                                }
336
+                                }
337
+                            }
338
+                            continue
339
+                            } else {
340
+                            if (group.group_no > 0) {
341
+                                advice_groups.push(group)
342
+                                group = newGroupObject()
343
+                            }
344
+
345
+                            initGroupBlock(group, advice)
346
+                            group.advices.push(advice)
347
+                            advice_groups.push(group)
348
+                            group = newGroupObject()
349
+                            continue
350
+                            }
351
+                        } else {
352
+                            if (group.group_no > 0 && group.group_no != advice.groupno) {
353
+                            advice_groups.push(group)
354
+                            group = newGroupObject()
355
+                            }
356
+                            if (group.group_no == 0) {
357
+                            initGroupBlock(group, advice)
358
+                            }
359
+                            if (group.group_no == advice.groupno) {
360
+                            group.advices.push(advice)
361
+                            }
362
+                        }
363
+                        }
364
+                        if (group.group_no > 0) {
365
+                        // 上述的算法会导致最后一组没有加到advice_groups,这里要手动加
366
+                        advice_groups.push(group)
367
+                        }
368
+                        advice_groups = advice_groups
369
+                    } else {
370
+                        advice_groups = []
371
+                    }
372
+                    maps.new_advice = advice_groups
373
+                    }
374
+                 }
375
+
376
+                     console.log("scheduleMap------------------",scheduleMap)
377
+                     this.scheduleMap = scheduleMap
378
+                 }
379
+                
380
+              
381
+
382
+                
383
+ 
384
+
385
+                }
386
+            })
387
+        },
388
+        compare (property) {
389
+            return function (a, b) {
390
+                var value1 = a[property]
391
+                var value2 = b[property]
392
+                return value1 - value2
393
+            }
394
+        },
395
+        parseTime: function (time, layout) {
396
+            if (time == 0) {
397
+                return ''
398
+            }
399
+            return parseTime(time, layout)
400
+        },
401
+        getName (val) {
402
+            for (let i = 0; i < this.admin_user.length; i++) {
403
+                if (this.admin_user[i].id == val) {
404
+                    return this.admin_user[i].name
405
+                }
406
+            }
407
+        },
408
+    },
409
+    computed: {
410
+      filtedScheduals: function () {
411
+        var scheduleMap = new Object()
412
+        if (this.zone_selected == 0) {
413
+            for (const key in this.scheduleMap) {
414
+            scheduleMap[key] = this.scheduleMap[key]
415
+            }
416
+        } else {
417
+            var zone_name = this.zones[this.zone_selected].text
418
+            scheduleMap[zone_name] = this.scheduleMap[zone_name]
419
+        }
420
+
421
+        if (this.schedule_type_selected != 0) {
422
+            var _scheduleMap = {}
423
+            for (const key in scheduleMap) {
424
+            var origin_schedules = scheduleMap[key]
425
+            var schedules = []
426
+            for (let index = 0; index < origin_schedules.length; index++) {
427
+                const schedule = origin_schedules[index]
428
+                if (schedule.schedule_type == this.schedule_type_selected) {
429
+                schedules.push(schedule)
430
+                }
431
+            }
432
+            if (schedules.length > 0) {
433
+                _scheduleMap[key] = schedules
434
+            }
435
+            }
436
+
437
+            scheduleMap = _scheduleMap
438
+        }
439
+        for (var key in scheduleMap) {
440
+            let mapArr = scheduleMap[key]
441
+            for (let i = 0; i < mapArr.length; i++) {
442
+            mapArr[i]['new_advice'] = []
443
+            }
444
+        }
445
+
446
+        for (var key in scheduleMap) {
447
+            let mapArr = scheduleMap[key]
448
+            for (let i = 0; i < mapArr.length; i++) {
449
+            var maps = mapArr[i]
450
+            var resp_advices = maps.doctor_advice
451
+            if (resp_advices.length > 0) {
452
+                var newGroupObject = function () {
453
+                return Object.assign(
454
+                    {},
455
+                    {
456
+                    group_no: 0,
457
+                    advices: []
458
+                    }
459
+                )
460
+                }
461
+                var initGroupBlock = function (group, advice) {
462
+                group.group_no = advice.groupno
463
+                }
464
+
465
+                var advice_groups = []
466
+                var group = newGroupObject()
467
+                for (let index = 0; index < resp_advices.length; index++) {
468
+                const advice = resp_advices[index]
469
+                if (advice.groupno == 0) {
470
+                    // 老版本的医嘱
471
+                    if (advice.parent_id > 0) {
472
+                    if (advice_groups.length > 0) {
473
+                        var parent_group = advice_groups[advice_groups.length - 1]
474
+                        if (parent_group.advices.length > 0) {
475
+                        if (parent_group.advices[0].id == advice.parent_id) {
476
+                            parent_group.advices.push(advice)
477
+                        }
478
+                        }
479
+                    }
480
+                    continue
481
+                    } else {
482
+                    if (group.group_no > 0) {
483
+                        advice_groups.push(group)
484
+                        group = newGroupObject()
485
+                    }
486
+
487
+                    initGroupBlock(group, advice)
488
+                    group.advices.push(advice)
489
+                    advice_groups.push(group)
490
+                    group = newGroupObject()
491
+                    continue
492
+                    }
493
+                } else {
494
+                    if (group.group_no > 0 && group.group_no != advice.groupno) {
495
+                    advice_groups.push(group)
496
+                    group = newGroupObject()
497
+                    }
498
+                    if (group.group_no == 0) {
499
+                    initGroupBlock(group, advice)
500
+                    }
501
+                    if (group.group_no == advice.groupno) {
502
+                    group.advices.push(advice)
503
+                    }
504
+                }
505
+                }
506
+                if (group.group_no > 0) {
507
+                // 上述的算法会导致最后一组没有加到advice_groups,这里要手动加
508
+                advice_groups.push(group)
509
+                }
510
+                advice_groups = advice_groups
511
+            } else {
512
+                advice_groups = []
513
+            }
514
+            maps.new_advice = advice_groups
515
+            }
516
+        }
517
+        console.log("222222",scheduleMap)
518
+        return scheduleMap
519
+        }
520
+    },
521
+    created(){
522
+      var time = this.$route.query.time
523
+      var delivery_way = this.$route.query.delivery_way
524
+      this.delivery_way = delivery_way
525
+      this.time = moment(time).format('YYYY-MM-DD')
526
+      console.log(11,this.$route.query)
527
+      this.requestSchedualDoctors(time)
528
+      this.org_id = this.$store.getters.xt_user.template_info.org_id;
529
+    }
530
+}
531
+</script>
532
+
533
+
534
+<style rel="stylesheet/scss" lang="scss" scoped>
535
+.dialysisTable{
536
+    width:960px;
537
+    margin: 0 auto;
538
+    text-align: center;
539
+    border-collapse: collapse;
540
+}
541
+.order_title_panl {
542
+    text-align: center;
543
+
544
+    .main_title {
545
+      font-size: 18px;
546
+      line-height: 40px;
547
+      font-weight: 500;
548
+    }
549
+}
550
+.dialysisTable tr{
551
+    padding: 10px 0;
552
+}
553
+.dialysisTable th {
554
+    color: #000;
555
+    padding: 0;
556
+    margin: 0;
557
+    height: 30px;
558
+}
559
+.dialysisTable tr td {
560
+    padding: 12px 0;
561
+}
562
+.subadvice_content {
563
+    text-align: left;
564
+    padding-left: 25px !important;
565
+    padding-right: 5px !important;
566
+}
567
+.advice_content {
568
+    text-align: left;
569
+    padding-left: 5px !important;
570
+    padding-right: 5px !important;
571
+    padding: 15px 5px !important;
572
+}
573
+</style>

+ 34 - 0
src/xt_pages/dialysis/newDoctorAdvice.vue View File

@@ -20,6 +20,15 @@
20 20
           type="primary"
21 21
           >医嘱打印
22 22
       </el-button>
23
+
24
+      <el-button
25
+          size="small"
26
+          icon="el-icon-printer"
27
+          :disabled="selecting_schs.length == 0"
28
+          @click="batchPrintActionFour"
29
+          type="primary"
30
+          >项目打印
31
+      </el-button>
23 32
     </div>
24 33
     </div>
25 34
     <div class="app-container">
@@ -1561,6 +1570,31 @@ export default {
1561 1570
 
1562 1571
 
1563 1572
 
1573
+    },
1574
+    batchPrintActionFour:function(){
1575
+      console.log("处方哈回复奥回复的话啊哈地方h")
1576
+      if(this.selecting_schs.length === 0) {
1577
+        this.$message.error("请至少选择一条需要打印的内容");
1578
+        return false;
1579
+      }
1580
+      // 模板ID为6
1581
+      var sch_ids = [];
1582
+
1583
+      for (let index = 0; index < this.selecting_schs.length; index++) {
1584
+        sch_ids.push(this.selecting_schs[index].patient_id);
1585
+      }
1586
+
1587
+      this.$store.dispatch("SetAdviceIDs", sch_ids);
1588
+       var name = ""
1589
+        for(let i=0;i<this.deliveryWay.length;i++){
1590
+            if(this.delivery_way == this.deliveryWay[i].id){
1591
+              name = this.deliveryWay[i].name
1592
+            }
1593
+        }
1594
+        if(name == '全部'){
1595
+          name = ""
1596
+       }
1597
+       this.$router.push({ path: "/dialysis/doctocInspection/print",query:{time: new Date(this.time).getTime(),delivery_way:name,excution_way:this.excution_way,schedulType:this.schedulType,partitionType:this.partitionType} });
1564 1598
     },
1565 1599
     signPrintAction:function(){
1566 1600
       if (this.selecting_schs.length === 0) {

+ 159 - 35
src/xt_pages/outpatientCharges/outpatientChargesManagement.vue View File

@@ -1033,6 +1033,32 @@
1033 1033
       <invoice-print ref="print" :invoiceParams='invoiceParams'></invoice-print>
1034 1034
     </el-dialog>
1035 1035
 
1036
+    <el-dialog title="审核" :visible.sync="eventVisible" :close-on-click-modal="isClose"
1037
+               :close-on-press-escape="isClose" show-close="false">
1038
+      <el-table ref="report-table" :data="roleTableData"  border :row-style="{ color: '#303133' }"
1039
+                  :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
1040
+                  max-height="600"
1041
+                 >
1042
+          <el-table-column align="center" prop="name" label="规则名称">
1043
+            <template slot-scope="scope">{{ scope.row.rule_name }}</template>
1044
+          </el-table-column>
1045
+          <el-table-column align="center" prop="item_name" label="规则详情">
1046
+            <template slot-scope="scope">
1047
+              {{scope.row.vola_cont}}
1048
+            </template>
1049
+          </el-table-column>
1050
+        </el-table>
1051
+      <div class="list">
1052
+        <el-radio-group v-model="fk_state" style="margin-top: 20px">
1053
+          <el-radio :label="2">返回修改</el-radio>
1054
+        </el-radio-group>
1055
+      </div>
1056
+      <el-input v-model="fankui"  placeholder="请输入反馈内容"  style="margin-top: 20px"></el-input>
1057
+      <div slot="footer" class="dialog-footer">
1058
+<!--        <el-button @click="eventVisible = false">取消</el-button>-->
1059
+        <el-button type="primary" @click="comfirmFanKuiDialog">确定</el-button>
1060
+      </div>
1061
+    </el-dialog>
1036 1062
   </div>
1037 1063
 </template>
1038 1064
 
@@ -1101,6 +1127,16 @@ export default {
1101 1127
   },
1102 1128
   data() {
1103 1129
     return {
1130
+      warm_type:"",
1131
+      fankui:"",
1132
+      roleTableData:[{
1133
+        "rule_name":"11111",
1134
+        "detail":"11111",
1135
+      }],
1136
+      fk_state:2,
1137
+      eventVisible:false,
1138
+      isClose:false,
1139
+      event_result:{},
1104 1140
       ws:null,
1105 1141
       fapiaoCodeDialogVisible:false,
1106 1142
       fapiao_code:"",
@@ -1323,6 +1359,12 @@ export default {
1323 1359
     }
1324 1360
   },
1325 1361
   created() {
1362
+    // var aa = `{"output":{"result":[{"judge_result_detail_dtos":[{"vola_item_type":"1","mdtrt_id":"44039100000707832375","jrd_id":"0d694b59-17bf-4eab-8cca-7210c210d03d","patn_id":"44030000000630214820","rx_id":"","vola_amt":0.0}],"rule_id":"440000202307211449301000210038","vola_evid":"诊断学","mdtrt_id":"44039100000707832375","rule_name":"单次就诊诊断与患者性别不符_事前提 醒(广东)","vola_amt_stas":"1","jr_id":"7edfcae2-8602-4334-a09c-5f4a94171c3b","patn_id":"44030000000630214820","sev_deg":"2","vola_amt":0.0,"vola_bhvr_type":"1","vola_cont":"O16.x00/孕产妇高血压与患者性别不符,患者性别为男性,却给患者下了 女性专有的诊断"}]},"infcode":0,"warn_msg":null,"cainfo":null,"err_msg":null,"refmsg_time":"20241203180314355","signtype":null,"respond_time":"20241203180314408","inf_refmsgid":"440000202412031803143431546478"}`
1363
+    // let jsonData = JSON.parse(aa);
1364
+    // console.log(jsonData)
1365
+    // this.event_result = jsonData
1366
+    // this.roleTableData = this.event_result.output.result
1367
+    // this.eventVisible = true
1326 1368
     this.fetchAllAdminUsers()
1327 1369
     const tableHeight = document.body.clientHeight - 290
1328 1370
     this.tableHeight = tableHeight
@@ -1438,6 +1480,50 @@ export default {
1438 1480
       var nowMinutes = nowDate.getMinutes()
1439 1481
       var nowSeconds = nowDate.getSeconds()
1440 1482
       this.form.diagnosis_time = this.record_date + ' ' + (nowHours < 10 ? '0' + nowHours : nowHours) + ':' + (nowMinutes < 10 ? '0' + nowMinutes : nowMinutes) + ':' + (nowSeconds < 10 ? '0' + nowSeconds : nowSeconds)
1483
+    },comfirmFanKuiDialog(){
1484
+      var str = ""
1485
+      for(let i = 0;i < this.roleTableData.length;i++){
1486
+        if(str.length == 0){
1487
+          str  = this.roleTableData[i].jr_id
1488
+        }else{
1489
+          str  = str +"~" + this.roleTableData[i].jr_id
1490
+        }
1491
+      }
1492
+      var that = this
1493
+      axios.get('http://127.0.0.1:9532/api/3103', {
1494
+        params: {
1495
+          'desc': that.fankui,
1496
+          "warm_type":that.warm_type,
1497
+          "fk_state":that.fk_state,
1498
+          'warm_ids': str,
1499
+          'admin_user_id': that.$store.getters.xt_user.user.id
1500
+        }
1501
+      })
1502
+        .then(function(response) {
1503
+          if (response.data.state == 0) {
1504
+            that.$message.error(response.data.msg)
1505
+            return false
1506
+          } else {
1507
+            if (response.data.data.failed_code == -10) {
1508
+              this.pwd = ''
1509
+              that.$confirm(response.data.data.msg, '医保错误信息', {
1510
+                confirmButtonText: '确 定',
1511
+                type: 'warning'
1512
+              }).then(() => {
1513
+
1514
+              }).catch(() => {
1515
+
1516
+              })
1517
+
1518
+            } else {
1519
+              that.$message.success(response.data.msg)
1520
+              that.eventVisible = false
1521
+            }
1522
+
1523
+          }
1524
+        })
1525
+        .catch(function(error) {
1526
+        })
1441 1527
     },
1442 1528
     comfirmPWDialog() {
1443 1529
       var that = this
@@ -1832,20 +1918,27 @@ export default {
1832 1918
                 return false
1833 1919
               } else {
1834 1920
                 if (response.data.data.failed_code == -10) {
1835
-
1836
-                  that.$confirm(response.data.data.msg, '医保错误信息', {
1837
-                    confirmButtonText: '确 定',
1838
-                    type: 'warning'
1839
-                  }).then(() => {
1840
-                    that.$refs.charge.hide()
1841
-                    that.changeRadioAndPatient(1)
1842
-                    that.newLoading = false
1843
-                  }).catch(() => {
1844
-                    that.$refs.charge.hide()
1845
-                    that.changeRadioAndPatient(1)
1921
+                  if(response.data.data.failed_type && response.data.data.failed_type == 100){
1922
+                    that.event_result = response.data.data.msg
1923
+                    that.roleTableData =  that.event_result.output.result
1924
+                    that.warm_type =  response.data.data.warm_type
1846 1925
                     that.newLoading = false
1847
-                  })
1926
+                    that.eventVisible = true
1927
+                  }else{
1928
+                    that.$confirm(response.data.data.msg, '医保错误信息', {
1929
+                      confirmButtonText: '确 定',
1930
+                      type: 'warning'
1931
+                    }).then(() => {
1932
+                      that.$refs.charge.hide()
1933
+                      that.changeRadioAndPatient(1)
1934
+                      that.newLoading = false
1848 1935
 
1936
+                    }).catch(() => {
1937
+                      that.$refs.charge.hide()
1938
+                      that.changeRadioAndPatient(1)
1939
+                      that.newLoading = false
1940
+                    })
1941
+                  }
1849 1942
                 } else {
1850 1943
                   that.radio = 2
1851 1944
                   that.changeRadioAndPatient(2)
@@ -1944,15 +2037,23 @@ export default {
1944 2037
               } else {
1945 2038
                 that.loadingone = false
1946 2039
                 if (response.data.data.failed_code == -10) {
1947
-                  that.$confirm(response.data.data.msg, '医保错误信息', {
1948
-                    confirmButtonText: '确 定',
1949
-                    type: 'warning'
1950
-                  }).then(() => {
2040
+                  if(response.data.data.failed_type && response.data.data.failed_type == 100){
2041
+                    that.event_result = response.data.data.msg
2042
+                    that.roleTableData =  that.event_result.output.result
2043
+                    that.warm_type =  response.data.data.warm_type
1951 2044
 
1952
-                  }).catch(() => {
1953
-                  })
1954
-                } else {
1955 2045
 
2046
+                    that.eventVisible = true
2047
+                  }else{
2048
+                    that.$confirm(response.data.data.msg, '医保错误信息', {
2049
+                      confirmButtonText: '确 定',
2050
+                      type: 'warning'
2051
+                    }).then(() => {
2052
+
2053
+                    }).catch(() => {
2054
+                    })
2055
+                  }
2056
+                } else {
1956 2057
                   that.changeRadio(1)
1957 2058
                   that.$refs.register9504.hide()
1958 2059
                   that.$message({ message: '挂号成功', type: 'success' })
@@ -2007,16 +2108,24 @@ export default {
2007 2108
               return false
2008 2109
             } else {
2009 2110
               if (response.data.data.failed_code == -10) {
2010
-                // that.$message.error(response.data.data.msg);
2011
-                that.$confirm(response.data.data.msg, '医保错误信息', {
2012
-                  confirmButtonText: '确 定',
2013
-                  type: 'warning'
2014
-                }).then(() => {
2111
+                if(response.data.data.failed_type && response.data.data.failed_type == 100){
2112
+                  that.event_result = response.data.data.msg
2113
+                  that.roleTableData =  that.event_result.output.result
2114
+                  that.warm_type =  response.data.data.warm_type
2015 2115
 
2016
-                }).catch(() => {
2017
-                })
2018 2116
 
2117
+                  that.eventVisible = true
2118
+                  that.loadingone = false
2019 2119
 
2120
+                }else{
2121
+                  that.$confirm(response.data.data.msg, '医保错误信息', {
2122
+                    confirmButtonText: '确 定',
2123
+                    type: 'warning'
2124
+                  }).then(() => {
2125
+
2126
+                  }).catch(() => {
2127
+                  })
2128
+                }
2020 2129
               } else {
2021 2130
                 that.radio = 1
2022 2131
                 that.changeRadioAndPatient(1)
@@ -3679,6 +3788,8 @@ export default {
3679 3788
           })
3680 3789
 
3681 3790
         } else {
3791
+
3792
+
3682 3793
           this.$confirm('是否进行预结算', '预结算', {
3683 3794
             confirmButtonText: '确 定',
3684 3795
             cancelButtonText: '取 消',
@@ -3695,17 +3806,30 @@ export default {
3695 3806
                   that.$message.error(response.data.msg)
3696 3807
                   return false
3697 3808
                 } else {
3809
+
3698 3810
                   if (response.data.data.failed_code == -10) {
3699
-                    that.$confirm(response.data.data.msg, '医保错误信息', {
3700
-                      confirmButtonText: '确 定',
3701
-                      type: 'warning'
3702
-                    }).then(() => {
3703
-                      that.changeRadioAndPatient(1)
3811
+                    console.log(response.data.data)
3812
+                    console.log(response.data.data.failed_type)
3813
+                    if(response.data.data.failed_type == 100){
3814
+                      that.event_result = response.data.data.msg
3815
+                      that.roleTableData =  that.event_result.output.result
3816
+                      that.warm_type =  response.data.data.warm_type
3817
+                      that.eventVisible = true
3704 3818
                       that.newLoading = false
3705
-                    }).catch(() => {
3706
-                      that.changeRadioAndPatient(1)
3707
-                      that.newLoading = false
3708
-                    })
3819
+
3820
+                    }else{
3821
+                      that.$confirm(response.data.data.msg, '医保错误信息', {
3822
+                        confirmButtonText: '确 定',
3823
+                        type: 'warning'
3824
+                      }).then(() => {
3825
+                        that.changeRadioAndPatient(1)
3826
+                        that.newLoading = false
3827
+
3828
+                      }).catch(() => {
3829
+                        that.changeRadioAndPatient(1)
3830
+                        that.newLoading = false
3831
+                      })
3832
+                    }
3709 3833
                   } else {
3710 3834
                     that.changeRadioAndPatient(1)
3711 3835
                     that.$message({ message: '预结算成功', type: 'success', duration: 5000 })

+ 4 - 4
src/xt_pages/user/components/PatientSidebar.vue View File

@@ -179,10 +179,10 @@ export default {
179 179
             //   name: '3-3',
180 180
             //   label: '体格检查新'
181 181
             // },
182
-            {
183
-              name: '3-5',
184
-              label: '病程记录新'
185
-            },
182
+            // {
183
+            //   name: '3-5',
184
+            //   label: '病程记录新'
185
+            // },
186 186
             {
187 187
               name: '1-11',
188 188
               label: '首次病程记录'