Browse Source

518合并代码

XMLWAN 2 years ago
parent
commit
1af706f4be

+ 16 - 1
src/router/modules/hisTool.js View File

83
       component: () => import('@/xt_pages/outpatientTool/zeroSummary'),
83
       component: () => import('@/xt_pages/outpatientTool/zeroSummary'),
84
       name: 'zeroSummary',
84
       name: 'zeroSummary',
85
       meta: { title: 'zeroSummary', noCache: true }
85
       meta: { title: 'zeroSummary', noCache: true }
86
+    },
87
+    {
88
+      path: '/hisTool/detailPrint',
89
+      component: () => import('@/xt_pages/outpatientTool/detailPrint'),
90
+      name: 'detailPrint',
91
+      hidden: true,
92
+      is_menu: false,
93
+      meta: { title: 'detailPrint', noCache: true }
94
+    },
95
+    {
96
+      path: '/hisTool/gatherPrint',
97
+      component: () => import('@/xt_pages/outpatientTool/gatherPrint'),
98
+      name: 'gatherPrint',
99
+      hidden: true,
100
+      is_menu: false,
101
+      meta: { title: 'gatherPrint', noCache: true }
86
     }
102
     }
87
-
88
   ]
103
   ]
89
 }
104
 }

+ 2 - 2
src/xt_pages/hospitalStation/components/deskRecord.vue View File

786
     this.getInitData();
786
     this.getInitData();
787
     this.wayOptions = getDataConfig("patient", "reimbursement_ways");
787
     this.wayOptions = getDataConfig("patient", "reimbursement_ways");
788
 
788
 
789
-    if ((this.patientInfo.gender = 1)) {
789
+    if ((this.patientInfo.gender = 2)) {
790
       this.patientInfo.gender = "男";
790
       this.patientInfo.gender = "男";
791
-    } else if ((this.patientInfo.gender = 2)) {
791
+    } else if ((this.patientInfo.gender = 1)) {
792
       this.patientInfo.gender = "女";
792
       this.patientInfo.gender = "女";
793
     }
793
     }
794
 
794
 

+ 61 - 19
src/xt_pages/outpatientTool/components/detailStatistics.vue View File

17
         </el-select>
17
         </el-select>
18
 
18
 
19
         <el-input
19
         <el-input
20
-            size="small"
21
-            style="width: 150px"
22
-            v-model="keywords"
23
-            class="filter-item"
20
+          size="small"
21
+          style="width: 150px"
22
+          v-model="keywords"
23
+          class="filter-item"
24
+          placeholder="请输入患者姓名"
24
         />
25
         />
25
         <el-button
26
         <el-button
26
-            size="small"
27
-            style="margin: 0 10px"
28
-            class="filter-item"
29
-            type="primary"
30
-            @click="searchAction"
27
+          size="small"
28
+          style="margin: 0 10px"
29
+          class="filter-item"
30
+          type="primary"
31
+          @click="searchAction"
31
         >搜索
32
         >搜索
32
         </el-button>
33
         </el-button>
33
         <el-date-picker
34
         <el-date-picker
39
             @change="changeDate"
40
             @change="changeDate"
40
             end-placeholder="结束日期">
41
             end-placeholder="结束日期">
41
         </el-date-picker>
42
         </el-date-picker>
43
+        <el-button  type="primary" size="small" @click="toPrint">打印</el-button>
42
       </div>
44
       </div>
43
       <div>
45
       <div>
44
       </div>
46
       </div>
99
      
101
      
100
     </el-table>
102
     </el-table>
101
      <div>总费用:{{getAllPice()}}</div>
103
      <div>总费用:{{getAllPice()}}</div>
102
-     <div>个人支付:</div>
103
-     <div>基金支付记账:</div>
104
-     <div>补充医疗支付记账:</div>
105
-    <div>救助支付金额:</div>
104
+     <div>个人支付:{{getActPay()}}</div>
105
+     <div>基金支付记账:{{getFundPaySumamt()}}</div>
106
+     <div>补充医疗支付记账:{{getHifesPay()}}</div>
107
+    <div>救助支付金额:{{getMafPay()}}</div>
106
   </div>
108
   </div>
107
 
109
 
108
   <!-- </div> -->
110
   <!-- </div> -->
144
         { id: 3, name: '耗材' },
146
         { id: 3, name: '耗材' },
145
         { id: 2, name: '项目' }
147
         { id: 2, name: '项目' }
146
 
148
 
147
-      ]
149
+      ],
150
+      list:[],
148
 
151
 
149
     }
152
     }
150
   },
153
   },
160
       }
163
       }
161
      },
164
      },
162
     searchAction(){
165
     searchAction(){
163
-
164
-
166
+     this.getHisSummaryDetailList()
165
     },
167
     },
166
     changeDate() {
168
     changeDate() {
167
       this.getHisSummaryDetailList()
169
       this.getHisSummaryDetailList()
182
      getHisSummaryDetailList(params).then(response=>{
184
      getHisSummaryDetailList(params).then(response=>{
183
        if(response.data.state == 1){
185
        if(response.data.state == 1){
184
           var list =  response.data.data.list
186
           var list =  response.data.data.list
187
+          console.log("list23323232323232232323",list)
188
+          this.list = list
185
           this.tableData = []
189
           this.tableData = []
186
-          // console.log("list23232332232322323",list)
187
           for(let i=0;i<list.length;i++){
190
           for(let i=0;i<list.length;i++){
188
             for(let j=0;j<list[i].orders.length;j++){
191
             for(let j=0;j<list[i].orders.length;j++){
189
               for(let z=0;z<list[i].orders[j].order_info.length;z++){
192
               for(let z=0;z<list[i].orders[j].order_info.length;z++){
202
           }
205
           }
203
           obj.total_price = (obj.total_price).toFixed(2)
206
           obj.total_price = (obj.total_price).toFixed(2)
204
           this.tableData.push(obj)
207
           this.tableData.push(obj)
205
-          
206
-          // console.log("tabledata",this.tableData)
207
        }
208
        }
208
      })
209
      })
209
     },
210
     },
215
         }
216
         }
216
       }
217
       }
217
       return total_price
218
       return total_price
219
+    },
220
+    getActPay(){
221
+      console.log("hh23h323223323",this.list)
222
+      var act_pay = 0
223
+      for(let i=0;i<this.list.length;i++){
224
+        for(let j=0;j<this.list[i].orders.length;j++){
225
+           act_pay +=this.list[i].orders[j].acct_pay
226
+        }
227
+      }
228
+      return act_pay
229
+    },
230
+    getFundPaySumamt(){
231
+      var fund_pay_sumamt = 0
232
+      for(let i=0;i<this.list.length;i++){
233
+        for(let j=0;j<this.list[i].orders.length;j++){
234
+           fund_pay_sumamt +=this.list[i].orders[j].fund_pay_sumamt
235
+        }
236
+      }
237
+      return fund_pay_sumamt
238
+    },
239
+    getHifesPay(){
240
+      var hifes_pay = 0
241
+      for(let i=0;i<this.list.length;i++){
242
+        for(let j=0;j<this.list[i].orders.length;j++){
243
+          hifes_pay +=this.list[i].orders[j].hifes_pay
244
+        }
245
+      }
246
+      return hifes_pay
247
+    },
248
+    getMafPay(){
249
+      var maf_pay = 0
250
+      for(let i=0;i<this.list.length;i++){
251
+        for(let j=0;j<this.list[i].orders.length;j++){
252
+          maf_pay +=this.list[i].orders[j].maf_pay
253
+        }
254
+      }
255
+      return maf_pay
256
+    },
257
+    toPrint(){
258
+      this.$router.push({path:"/hisTool/detailPrint?patient_id="+this.patient_id+"&start_time="+this.chargeDate[0]+"&end_time="+this.chargeDate[1]+"&type="+this.item_type +"&keyword="+this.keywords})
218
     }
259
     }
260
+
219
   },
261
   },
220
   created() {
262
   created() {
221
     this.getHisSummaryDetailList()
263
     this.getHisSummaryDetailList()

+ 108 - 22
src/xt_pages/outpatientTool/components/gatherStatistics.vue View File

39
             @change="changeDate"
39
             @change="changeDate"
40
             end-placeholder="结束日期">
40
             end-placeholder="结束日期">
41
         </el-date-picker>
41
         </el-date-picker>
42
+        <el-button  type="primary" size="small" @click="toPrint">打印</el-button>
42
       </div>
43
       </div>
43
       <div>
44
       <div>
44
       </div>
45
       </div>
54
       </el-table-column>
55
       </el-table-column>
55
       <el-table-column align="center" prop="name" label="处方日期">
56
       <el-table-column align="center" prop="name" label="处方日期">
56
         <template slot-scope="scope">
57
         <template slot-scope="scope">
57
-          {{getTime(scope.row.record_date)}}
58
+          <span v-if="scope.row.record_date > 0">{{getTimes(scope.row.record_date)}} </span> 
58
         </template>
59
         </template>
59
       </el-table-column>
60
       </el-table-column>
60
       <el-table-column align="center" prop="name" label="费用分类">
61
       <el-table-column align="center" prop="name" label="费用分类">
84
       </el-table-column>
85
       </el-table-column>
85
       <el-table-column align="center" prop="name" label="金额">
86
       <el-table-column align="center" prop="name" label="金额">
86
         <template slot-scope="scope">
87
         <template slot-scope="scope">
87
-          {{ (scope.row.price * scope.row.count).toFixed(2) }}
88
+          <span v-if="scope.row.is_total == 1">{{ scope.row.total }}</span>  
89
+          <span v-if="scope.row.is_total == 2">{{ (scope.row.price * scope.row.count).toFixed(2) }}</span>  
88
         </template>
90
         </template>
89
       </el-table-column>
91
       </el-table-column>
90
       <el-table-column align="center" prop="name" label="医保类别">
92
       <el-table-column align="center" prop="name" label="医保类别">
91
-        <template slot-scope="scope"></template>
93
+        <template slot-scope="scope">
94
+         <span v-if="scope.row.chrgitm_lv== '01'">甲类</span>
95
+         <span v-if="scope.row.chrgitm_lv== '02'">乙类</span>
96
+         <span v-if="scope.row.chrgitm_lv== '03'">自费</span>
97
+        </template>
92
       </el-table-column>
98
       </el-table-column>
93
 
99
 
94
     </el-table>
100
     </el-table>
163
             return false
169
             return false
164
           } else {
170
           } else {
165
             this.order = response.data.data.order
171
             this.order = response.data.data.order
166
-            this.order['bedCostTotal'] = response.data.data.bedCostTotal
167
-            this.order['operationCostTotal'] = response.data.data.operationCostTotal
168
-            this.order['otherCostTotal'] = response.data.data.otherCostTotal
169
-            this.order['materialCostTotal'] = response.data.data.materialCostTotal
170
-            this.order['westernMedicineCostTotal'] = response.data.data.westernMedicineCostTotal
171
-            this.order['chineseTraditionalMedicineCostTotal'] = response.data.data.chineseTraditionalMedicineCostTotal
172
-            this.order['checkCostTotal'] = response.data.data.checkCostTotal
173
-            this.order['zhenChaCostTotal'] = response.data.data.zhenChaCostTotal
174
-            this.order['laboratoryCostTotal'] = response.data.data.laboratoryCostTotal
175
-            this.order['treatCostTotal'] = response.data.data.treatCostTotal
172
+            // console.log("order23323232323232332322323",response.data.data.order)
173
+            // for(let i=0;i<this.order.length;i++){
174
+            //   this.order['bedCostTotal'] = response.data.data.bedCostTotal
175
+            //   this.order['operationCostTotal'] = response.data.data.operationCostTotal
176
+            //   this.order['otherCostTotal'] = response.data.data.otherCostTotal
177
+            //   this.order['materialCostTotal'] = response.data.data.materialCostTotal
178
+            //   this.order['westernMedicineCostTotal'] = response.data.data.westernMedicineCostTotal
179
+            //   this.order['chineseTraditionalMedicineCostTotal'] = response.data.data.chineseTraditionalMedicineCostTotal
180
+            //   this.order['checkCostTotal'] = response.data.data.checkCostTotal
181
+            //   this.order['zhenChaCostTotal'] = response.data.data.zhenChaCostTotal
182
+            //   this.order['laboratoryCostTotal'] = response.data.data.laboratoryCostTotal
183
+            //   this.order['treatCostTotal'] = response.data.data.treatCostTotal
184
+            // }
185
+         
176
             this.patient = response.data.data.patient
186
             this.patient = response.data.data.patient
177
             this.admin = response.data.data.admin_info
187
             this.admin = response.data.data.admin_info
178
             this.his_hospital = response.data.data.his_hospital
188
             this.his_hospital = response.data.data.his_hospital
179
             var order_info = response.data.data.order_info
189
             var order_info = response.data.data.order_info
180
-
190
+            // console.log("order_info2332323232323232323",order_info)
181
             if(this.$store.getters.xt_user.org_id == 10215 || this.$store.getters.xt_user.org_id == 0){
191
             if(this.$store.getters.xt_user.org_id == 10215 || this.$store.getters.xt_user.org_id == 0){
182
               //获取所有项目类型进行去重
192
               //获取所有项目类型进行去重
183
               let med_chrgitm_types = []
193
               let med_chrgitm_types = []
217
               
227
               
218
               this.list.push(newobj)
228
               this.list.push(newobj)
219
             }else{
229
             }else{
220
-              console.log("hh2332322323232332232332",order_info)
221
               //获取所有项目类型进行去重
230
               //获取所有项目类型进行去重
222
               let med_chrgitm_types = []
231
               let med_chrgitm_types = []
223
               for (let i = 0; i < order_info.length; i++) {
232
               for (let i = 0; i < order_info.length; i++) {
224
                 med_chrgitm_types.push(order_info[i].med_chrgitm_type)
233
                 med_chrgitm_types.push(order_info[i].med_chrgitm_type)
225
               }
234
               }
235
+              // console.log("med_chrgitm_types23323332233232232323232332322332233",med_chrgitm_types)
226
               const obj = {}
236
               const obj = {}
227
               med_chrgitm_types = med_chrgitm_types.reduce((cur, next) => {
237
               med_chrgitm_types = med_chrgitm_types.reduce((cur, next) => {
228
                 obj[next] ? '' : obj[next] = true && cur.push(next)
238
                 obj[next] ? '' : obj[next] = true && cur.push(next)
240
                     tempDetails.push(order_info[b])
250
                     tempDetails.push(order_info[b])
241
                   }
251
                   }
242
                 }
252
                 }
243
-                console.log("tempdetail2323323232322332233223",tempDetails)
253
+                // console.log("tempdetail2323323232322332233223",tempDetails)
244
                 obj.details = this.setNewData(tempDetails)
254
                 obj.details = this.setNewData(tempDetails)
245
 
255
 
246
                 obj.total = this.getTotal(obj.details)
256
                 obj.total = this.getTotal(obj.details)
248
                   total: obj.total,
258
                   total: obj.total,
249
                   is_total: 1,
259
                   is_total: 1,
250
                 })
260
                 })
251
-                console.log("obj3232232332323223",obj.details)
261
+                // console.log("obj3232232332323223",obj.details)
252
                 this.list =  this.list.concat(obj.details)
262
                 this.list =  this.list.concat(obj.details)
253
                 for(let i=0;i<this.list.length;i++){
263
                 for(let i=0;i<this.list.length;i++){
254
                   this.list[i].index = i+1
264
                   this.list[i].index = i+1
255
                 }
265
                 }
256
-                console.log("list32233223233332232323232323",this.list)
266
+                // console.log("list32233223233332232323232323",this.list)
257
              }
267
              }
258
           }
268
           }
259
         }
269
         }
278
      return project_name
288
      return project_name
279
     },
289
     },
280
     setNewData(details) {
290
     setNewData(details) {
281
-      console.log("detail233223233223",details)
291
+      // console.log("detail233223233223",details)
282
         let drug_ids = []
292
         let drug_ids = []
283
         let project_ids = []
293
         let project_ids = []
284
 
294
 
301
           }
311
           }
302
 
312
 
303
         }
313
         }
304
-   
314
+        // console.log("drug_ids232332322323",drug_ids)
315
+        // console.log("project_ids2323232332",project_ids)
305
         let new_drug_ids = this.unique(drug_ids)
316
         let new_drug_ids = this.unique(drug_ids)
306
         let new_project_ids = this.unique(project_ids)
317
         let new_project_ids = this.unique(project_ids)
318
+        // console.log("new23233232332322323323232",new_drug_ids)
319
+        // console.log("new_project_ids2332332323",new_project_ids)
307
         let list = []
320
         let list = []
308
         if (new_drug_ids.length > 0 && new_project_ids.length == 0) {
321
         if (new_drug_ids.length > 0 && new_project_ids.length == 0) {
309
           for (let i = 0; i < new_drug_ids.length; i++) {
322
           for (let i = 0; i < new_drug_ids.length; i++) {
319
                 obj['price'] = parseFloat(details[a].pric)
332
                 obj['price'] = parseFloat(details[a].pric)
320
                 obj['is_total'] = 2
333
                 obj['is_total'] = 2
321
                 obj['record_date'] = details[a].advice.record_date
334
                 obj['record_date'] = details[a].advice.record_date
335
+                obj['chrgitm_lv'] = details[a].chrgitm_lv
322
                 count = count + details[a].cnt
336
                 count = count + details[a].cnt
323
               }
337
               }
324
             }
338
             }
325
             obj['count'] = count
339
             obj['count'] = count
326
             list.push(obj)
340
             list.push(obj)
341
+
327
           }
342
           }
328
         }
343
         }
329
-
344
+        //  console.log("list我的2323232323233223322332",list)
330
         if (new_drug_ids.length == 0 && new_project_ids.length > 0) {
345
         if (new_drug_ids.length == 0 && new_project_ids.length > 0) {
331
           for (let i = 0; i < new_project_ids.length; i++) {
346
           for (let i = 0; i < new_project_ids.length; i++) {
332
             let obj = {}
347
             let obj = {}
348
                 obj['medicine_insurance_kind'] = this.getMedicineInsuranceType(details[a].chrgitm_lv)
363
                 obj['medicine_insurance_kind'] = this.getMedicineInsuranceType(details[a].chrgitm_lv)
349
                 obj['med_chrgitm_type'] = this.getType(details[a].med_chrgitm_type)
364
                 obj['med_chrgitm_type'] = this.getType(details[a].med_chrgitm_type)
350
                 obj['price'] = parseFloat(details[a].pric)
365
                 obj['price'] = parseFloat(details[a].pric)
366
+                obj['chrgitm_lv'] = details[a].chrgitm_lv
351
                 obj['is_total'] = 2
367
                 obj['is_total'] = 2
352
 
368
 
353
                 count = count + details[a].cnt
369
                 count = count + details[a].cnt
355
             }
371
             }
356
             obj['count'] = count
372
             obj['count'] = count
357
             list.push(obj)
373
             list.push(obj)
374
+          
358
           }
375
           }
359
         }
376
         }
377
+
378
+         if (new_drug_ids.length > 0 && new_project_ids.length > 0) {
379
+           for (let i = 0; i < new_drug_ids.length; i++) {
380
+            let obj = {}
381
+            let count = 0
382
+            for (let a = 0; a < details.length; a++) {
383
+              if (new_drug_ids[i].id == details[a].advice.drug_id && new_drug_ids[i].price == details[a].advice.price) {
384
+                obj['name'] = details[a].advice.advice_name
385
+                obj['spec'] =   details[a].advice.drug.dose +   details[a].advice.drug.dose_unit+"*" +  details[a].advice.drug.min_number +   details[a].advice.drug.min_unit+"/"+ details[a].advice.drug.max_unit
386
+                obj['unit'] = details[a].advice.drug.min_unit
387
+                obj['medicine_insurance_kind'] = this.getMedicineInsuranceType(details[a].chrgitm_lv)
388
+                obj['med_chrgitm_type'] = this.getType(details[a].med_chrgitm_type)
389
+                obj['price'] = parseFloat(details[a].pric)
390
+                obj['is_total'] = 2
391
+                obj['record_date'] = details[a].advice.record_date
392
+                obj['chrgitm_lv'] = details[a].chrgitm_lv
393
+                count = count + details[a].cnt
394
+              }
395
+            }
396
+            obj['count'] = count
397
+            list.push(obj)
398
+
399
+          }
400
+         
401
+          for (let i = 0; i < new_project_ids.length; i++) {
402
+            let obj = {}
403
+            let count = 0
404
+            for (let a = 0; a < details.length; a++) {
405
+              if (new_project_ids[i].id == details[a].project.project_id && new_project_ids[i].price == details[a].project.price) {
406
+                // console.log("hhha23322332233232332",details[a].project)
407
+              if( details[a].project.type == 2){
408
+                 obj['name'] = details[a].project.project.project_name
409
+                 obj['spec'] = ''
410
+                 obj['unit'] = details[a].project.project.unit
411
+
412
+               }else if(details[a].project.type == 3){
413
+                 obj['name'] = details[a].project.good_info.good_name
414
+                 obj['spec'] = ''
415
+                 obj['unit'] = details[a].project.good_info.packing_unit
416
+               }
417
+                obj['medicine_insurance_kind'] = this.getMedicineInsuranceType(details[a].chrgitm_lv)
418
+                obj['med_chrgitm_type'] = this.getType(details[a].med_chrgitm_type)
419
+                obj['price'] = parseFloat(details[a].pric)
420
+                obj['is_total'] = 2
421
+                obj['record_date'] = details[a].project.record_date
422
+                obj['chrgitm_lv'] = details[a].chrgitm_lv
423
+                count = count + details[a].cnt
424
+              }
425
+            }
426
+            obj['count'] = count
427
+            list.push(obj)
428
+          
429
+          }
430
+         }
431
+
432
+        // console.log("list我的2323232323233223322332",list)
360
         return list
433
         return list
361
       }, 
434
       }, 
362
     
435
     
459
         return total.toFixed(2)
532
         return total.toFixed(2)
460
       },
533
       },
461
       getTimes(time) {
534
       getTimes(time) {
462
-       return uParseTime(time, '{y}-{m}-{d}')
535
+       if(time < 0){
536
+         return ""
537
+       }else{
538
+        return uParseTime(time, '{y}-{m}-{d}')
539
+       }
463
      },
540
      },
541
+     toPrint(){
542
+        this.$router.push({path:"/hisTool/gatherPrint?patient_id="+this.patient_id+"&start_time="+this.chargeDate[0]+"&end_time="+this.chargeDate[1]+"&type="+this.item_type +"&keyword="+this.keywords})
543
+     }
464
   },
544
   },
465
   created() {
545
   created() {
466
     this.getGatherDetailList()
546
     this.getGatherDetailList()
467
 
547
 
548
+  },
549
+  watch:{
550
+    "patient_id":function(){
551
+      this.patient_id = this.patient_id
552
+      this.getHisSummaryDetailList()
553
+    }
468
   }
554
   }
469
 }
555
 }
470
 </script>
556
 </script>

+ 2 - 1
src/xt_pages/outpatientTool/statistics.vue View File

75
       })
75
       })
76
     },
76
     },
77
     handleCurrentChange(row){
77
     handleCurrentChange(row){
78
+      this.patient_id = 0
78
       this.patient_id =  row.id
79
       this.patient_id =  row.id
79
       this.$refs.child.getHisSummaryDetailList()
80
       this.$refs.child.getHisSummaryDetailList()
80
-     
81
+      this.$refs.childOne.getGatherDetailList()
81
     },
82
     },
82
 
83
 
83
   },
84
   },