Преглед изворни кода

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

XMLWAN пре 4 година
родитељ
комит
59a4c68e5c

+ 63 - 15
src/xt_pages/outpatientCharges/components/registerDialog9504.vue Прегледај датотеку

@@ -4,7 +4,7 @@
4 4
                :close-on-press-escape="isClose">
5 5
 
6 6
         <el-form :model="form" :rules="rules" ref="formValue" label-width="100px">
7
-            <el-form-item label="患者姓名:" prop="name" :validate-event="is_Name">
7
+            <el-form-item label="患者姓名:" prop="name" >
8 8
                 <el-autocomplete
9 9
                         class="checkSearch"
10 10
                         popper-class="my-autocomplete"
@@ -22,7 +22,7 @@
22 22
                 </el-autocomplete>
23 23
             </el-form-item>
24 24
 
25
-            <el-form-item label="性别:" prop="gender" :validate-event="is_Name">
25
+            <el-form-item label="性别:" prop="gender" >
26 26
                 <el-select v-model="form.gender" placeholder="请选择" style="width:100%;">
27 27
                     <el-option
28 28
                             v-for="item in sex"
@@ -35,12 +35,12 @@
35 35
 
36 36
             </el-form-item>
37 37
 
38
-            <el-form-item label="年龄:" prop="age" :validate-event="is_Name">
38
+            <el-form-item label="年龄:" prop="age" >
39 39
                 <el-input v-model="form.age"></el-input>
40 40
             </el-form-item>
41 41
 
42 42
 
43
-            <el-form-item label="出生日期:" prop="birthday" :validate-event="is_Name">
43
+            <el-form-item label="出生日期:" prop="birthday" >
44 44
                 <el-date-picker v-model="form.birthday" type="date" format="yyyy-MM-dd"
45 45
                                 value-format="yyyy-MM-dd" placeholder="选择日期" style="width:100%;"></el-date-picker>
46 46
             </el-form-item>
@@ -62,7 +62,7 @@
62 62
             </el-form-item>
63 63
 
64 64
 
65
-            <el-form-item label="证件类型:" prop="certificates" :validate-event="is_Name">
65
+            <el-form-item label="证件类型:" prop="certificates" >
66 66
                 <el-select v-model="form.certificates" placeholder="请选择" style="width:100%;">
67 67
                     <el-option
68 68
                             v-for="item in certificates"
@@ -73,7 +73,7 @@
73 73
                 </el-select>
74 74
             </el-form-item>
75 75
 
76
-            <el-form-item label="证件号码:" prop="id_card" :validate-event="is_Name">
76
+            <el-form-item label="证件号码:" prop="id_card">
77 77
                 <el-input v-model="form.id_card"></el-input>
78 78
             </el-form-item>
79 79
 
@@ -104,7 +104,7 @@
104 104
             </el-form-item>
105 105
 
106 106
 
107
-            <el-form-item label="读卡类型:" prop="id_card_type" :validate-event="is_Name">
107
+            <el-form-item label="读卡类型:" prop="id_card_type">
108 108
                 <el-select v-model="form.id_card_type" placeholder="请选择">
109 109
                     <el-option
110 110
                             v-for="item in IDCardTypes"
@@ -119,12 +119,12 @@
119 119
             <el-form-item class="specialFormItem" label="医保卡号:">
120 120
                 <div style="display:flex;">
121 121
                     <el-input v-model="form.medical_insurance_card"></el-input>
122
-                    <el-button style="margin-left:10px;" type="primary" @click="reading">读卡</el-button>
122
+                    <el-button style="margin-left:10px;" type="primary" @click="reading" v-loading="read_loading">读卡</el-button>
123 123
 
124 124
                 </div>
125 125
             </el-form-item>
126 126
 
127
-            <el-form-item label="挂号类型:" prop="register" :validate-event="is_Name">
127
+            <el-form-item label="挂号类型:" prop="register" >
128 128
                 <el-select v-model="form.register" placeholder="请选择" style="width:100%;" @change="changeRegister">
129 129
                     <el-option
130 130
                             v-for="item in register"
@@ -140,6 +140,28 @@
140 140
             <el-form-item label="诊疗费:">
141 141
                 <el-input readonly v-model="form.medical_expenses"></el-input>
142 142
             </el-form-item>
143
+
144
+            <el-form-item label="医生:" prop="doctor" >
145
+                <el-select v-model="form.doctor" placeholder="请选择" @change="changeDoctor">
146
+                    <el-option
147
+                            v-for="(item,index) in doctors"
148
+                            :key="index"
149
+                            :label="item.user_name"
150
+                            :value="item.admin_user_id">
151
+                    </el-option>
152
+                </el-select>
153
+            </el-form-item>
154
+
155
+            <el-form-item label="科室:" prop="department" >
156
+                <el-select v-model="form.department" placeholder="请选择">
157
+                    <el-option
158
+                            v-for="(item,index) in departments"
159
+                            :key="index"
160
+                            :label="item.name"
161
+                            :value="item.id">
162
+                    </el-option>
163
+                </el-select>
164
+            </el-form-item>
143 165
         </el-form>
144 166
 
145 167
         <span slot="footer" class="dialog-footer">
@@ -161,6 +183,7 @@
161 183
     data() {
162 184
 
163 185
       return {
186
+        read_loading:false,
164 187
         registers: [
165 188
           {value: 11, label: "普通门诊"},
166 189
           {value: 12, label: '门诊挂号'},
@@ -184,15 +207,13 @@
184 207
         ],
185 208
 
186 209
 
187
-
188
-
189 210
         form: {
190 211
           id: '',
191 212
           settlement_value: '',
192 213
           medical_insurance_card: '',
193 214
           name: '',
194 215
           gender: '',
195
-          certificates: 1,
216
+          certificates: '',
196 217
           p_type:'',
197 218
           sick_type:'',
198 219
           diagnosis:'',
@@ -202,7 +223,7 @@
202 223
           id_card: '',
203 224
           register: '',
204 225
           doctor: '',
205
-          id_card_type: 1,
226
+          id_card_type: '',
206 227
           department: '',
207 228
           registration_fee: '',
208 229
           medical_expenses: '',
@@ -327,7 +348,12 @@
327 348
       }
328 349
     },
329 350
     props: {
330
-
351
+      departments:{
352
+        type: Array,
353
+      },
354
+      doctors:{
355
+        type: Array,
356
+      },
331 357
       titles: {
332 358
         type: String,
333 359
         default: ''
@@ -349,10 +375,25 @@
349 375
       diagnoses: Array,
350 376
     },
351 377
     methods: {
378
+      changeDoctor() {
379
+        for (let i = 0; i < this.doctors.length; i++) {
380
+          if (this.doctors[i].admin_user_id == this.form.doctor) {
381
+            console.log(this.doctors[i].department_id)
382
+            this.form.department = this.doctors[i].department_id
383
+            if(this.form.department == 0){
384
+
385
+              this.form.department = ""
386
+            }
387
+          }
388
+        }
389
+      },
352 390
       changeRegister(value){
353 391
         if (value != 4){
354 392
           this.form.registration_fee = 10
355 393
           this.form.medical_expenses = 0
394
+        }else{
395
+          this.form.registration_fee = 0
396
+          this.form.medical_expenses = 0
356 397
         }
357 398
       },
358 399
       handleSelect(val) {
@@ -380,6 +421,7 @@
380 421
         })
381 422
       },
382 423
       reading() {
424
+
383 425
         var that = this
384 426
         if (this.form.id_card_type.length == 0 || this.form.id_card_type == 0) {
385 427
           this.$message.error("请先选择读卡类型")
@@ -390,14 +432,18 @@
390 432
           'admin_user_id':this.$store.getters.xt_user.user.id,
391 433
 
392 434
         }
435
+        this.read_loading = true
393 436
         axios.get('http://127.0.0.1:9532/sz/api/readcard', {
394 437
           params: params
395 438
         })
396 439
           .then(function (response) {
397 440
             if (response.data.state == 0) {
441
+              this.read_loading = false
442
+
398 443
               that.$message.error(response.data.msg)
399 444
               return false
400 445
             } else {
446
+              this.read_loading = false
401 447
               var patient = response.data.data.patient
402 448
               if (that.form.id_card_type == 1) {
403 449
                 that.form.id = patient.id
@@ -440,7 +486,9 @@
440 486
         // this.form.birthday = patientInfo.birthday
441 487
         // this.form.id_card = patientInfo.id_card_no
442 488
         // this.form.social_type = patientInfo.health_care_type
443
-        // this.form.id_card_type = 1
489
+        this.form.id_card_type = 1
490
+        this.form.certificates = 1
491
+
444 492
         // if( this.form.social_type == 0){
445 493
         //   this.form.social_type = ""
446 494
         //

+ 4 - 0
src/xt_pages/outpatientCharges/newStatementPrintTwo.vue Прегледај датотеку

@@ -109,6 +109,10 @@
109 109
                   that.info['patient_name'] = response.data.data.patient_name
110 110
                   that.info['doctor_code'] = response.data.data.doctor_code
111 111
                   that.info['doctor_name'] = response.data.data.doctor_name
112
+                  that.info['health_card_no'] = response.data.data.health_card_no
113
+                  that.info['order_number'] = response.data.data.order_number
114
+
115
+
112 116
 
113 117
                   that.info['org_name'] = that.$store.getters.xt_user.org.org_name
114 118
                   console.log("~~~~" + that.info)

+ 2 - 2
src/xt_pages/outpatientCharges/newTreatTemplate/printOne.vue Прегледај датотеку

@@ -9,9 +9,9 @@
9 9
                     <div class="infoP">医生工号:{{info.doctor_code}}</div>
10 10
                     <div class="infoP">门诊流水号:{{info.transBody.akc190}}</div>
11 11
                     <div class="infoP">科别: 全科</div>
12
-                    <div class="infoP">处方单据号:</div>
12
+                    <div class="infoP">处方单据号:{{info.order_number}}</div>
13 13
                     <div class="infoP">姓名:{{info.patient_name}}</div>
14
-                    <div class="infoP">医疗账号:</div>
14
+                    <div class="infoP">医疗账号:{{info.health_card_no}}</div>
15 15
                     <div class="infoP">医疗类别:普通</div>
16 16
                 </div>
17 17
                 <div class="chargeBox">

+ 1 - 1
src/xt_pages/outpatientCharges/outpatientChargesManagement.vue Прегледај датотеку

@@ -344,7 +344,7 @@
344 344
         <register-dialog ref='register' :doctors="doctors" :department="department" :sick="sick" :diagnoses="diagnoses"
345 345
                          v-on:confirm="confirm" v-on:cancel="cancel"></register-dialog>
346 346
 
347
-        <register-dialog9504 ref='register9504' :doctors="doctors" :department="department" :sick="sick" :diagnoses="diagnoses"
347
+        <register-dialog9504 ref='register9504' :doctors="doctors" :departments="department" :sick="sick" :diagnoses="diagnoses"
348 348
                              v-on:confirm="registerConfirm" v-on:cancel="registerCancel"></register-dialog9504>
349 349
 
350 350
         <charge-dialog ref='charge' v-on:confirm="chargeConfirm" v-on:cancel="chargeCancel"></charge-dialog>

+ 433 - 3
src/xt_pages/outpatientRegistration/index.vue Прегледај датотеку

@@ -3,7 +3,184 @@
3 3
         <div class="position">
4 4
             <bread-crumb :crumbs='crumbs'></bread-crumb>
5 5
         </div>
6
-        <div class="app-container">
6
+        <div v-if="this.$store.getters.xt_user.org_id == 9504 || this.$store.getters.xt_user.org_id == 0" class="app-container">
7
+            <div class="nameTitle">患者基本信息:</div>
8
+            <div class="formMain">
9
+                <el-form class="basicForm" :model="form" :rules="rules2" ref="form" label-width="100px">
10
+
11
+                    <el-form-item label="患者姓名:" prop="name" :validate-event="is_Name">
12
+                        <el-autocomplete
13
+                                class="checkSearch"
14
+                                popper-class="my-autocomplete"
15
+                                v-model="form.name"
16
+                                :fetch-suggestions="querySearchAsync"
17
+                                :trigger-on-focus="false"
18
+                                placeholder="请输入病人名字"
19
+                                @select="handleSelect"
20
+                                style="width:160px;"
21
+                        >
22
+                            <i class="el-icon-search el-input__icon" slot="suffix"></i>
23
+                            <template slot-scope="{ item }">
24
+                                <div class="name">{{ item.name }}</div>
25
+                            </template>
26
+                        </el-autocomplete>
27
+                    </el-form-item>
28
+
29
+
30
+                    <el-form-item label="性别:" prop="sex" :validate-event="is_Name">
31
+                        <el-select v-model="form.sex" placeholder="请选择">
32
+                            <el-option
33
+                                    v-for="item in sex"
34
+                                    :key="item.value"
35
+                                    :label="item.label"
36
+                                    :value="item.value">
37
+                            </el-option>
38
+                        </el-select>
39
+                    </el-form-item>
40
+
41
+                    <el-form-item label="年龄:" prop="age" :validate-event="is_Name">
42
+                        <el-input v-model="form.age"></el-input>
43
+                    </el-form-item>
44
+
45
+
46
+                    <el-form-item label="出生日期:" prop="birthday" :validate-event="is_Name">
47
+                        <el-date-picker v-model="form.birthday" type="date" @change="getBirthday"
48
+                                        placeholder="选择日期"></el-date-picker>
49
+                    </el-form-item>
50
+
51
+                    <el-form-item label="手机号码:" prop="phone">
52
+                        <el-input v-model="form.phone"></el-input>
53
+                    </el-form-item>
54
+
55
+
56
+                    <el-form-item label="证件类型:" prop="certificates" :validate-event="is_Name">
57
+                        <el-select v-model="form.certificates" placeholder="请选择">
58
+                            <el-option
59
+                                    v-for="item in certificates"
60
+                                    :key="item.value"
61
+                                    :label="item.label"
62
+                                    :value="item.value">
63
+                            </el-option>
64
+                        </el-select>
65
+                    </el-form-item>
66
+
67
+                    <el-form-item label="证件号码:" prop="idCard" :validate-event="is_Name">
68
+                        <el-input v-model="form.idCard"></el-input>
69
+                    </el-form-item>
70
+
71
+
72
+                    <el-form-item label="结算类型:">
73
+                        <el-select v-model="form.settlementValue" placeholder="请选择">
74
+                            <el-option
75
+                                    v-for="item in settlement"
76
+                                    :key="item.value"
77
+                                    :label="item.label"
78
+                                    :value="item.value">
79
+                            </el-option>
80
+                        </el-select>
81
+                    </el-form-item>
82
+
83
+
84
+                    <el-form-item label="社保类型:">
85
+                        <el-select v-model="form.social_type" placeholder="请选择">
86
+                            <!-- <el-option
87
+                            v-for="(item,index) in getDictionaryDataConfig('system','social_type')"
88
+                            :key="index"
89
+                            :label="item.name"
90
+                            :value="item.id">
91
+                            </el-option> -->
92
+                            <el-option
93
+                                    v-for="item in medicalCare"
94
+                                    :key="item.value"
95
+                                    :label="item.label"
96
+                                    :value="item.value">
97
+                            </el-option>
98
+                        </el-select>
99
+                    </el-form-item>
100
+
101
+
102
+                    <el-form-item label="读卡类型:" prop="id_card_type" :validate-event="is_Name">
103
+                        <el-select v-model="form.id_card_type" placeholder="请选择">
104
+                            <el-option
105
+                                    v-for="item in IDCardTypes"
106
+                                    :key="item.value"
107
+                                    :label="item.label"
108
+                                    :value="item.value">
109
+                            </el-option>
110
+                        </el-select>
111
+                    </el-form-item>
112
+
113
+                    <el-form-item class="specialFormItem" label="医保卡号:">
114
+                        <div style="display:flex;">
115
+                            <el-input v-model="form.medicalInsuranceCard"></el-input>
116
+                            <el-button style="margin-left:10px;" type="primary" @click="readingSZ" v-loading="read_loading">读卡</el-button>
117
+                        </div>
118
+                    </el-form-item>
119
+
120
+                </el-form>
121
+            </div>
122
+            <div class="nameTitle">患者挂号信息:</div>
123
+            <div class="formMain">
124
+                <el-form class="basicForm" :model="form" :rules="rules2" ref="form" label-width="100px">
125
+                    <el-form-item label="挂号类型:" prop="register" :validate-event="is_Name" >
126
+                        <el-select v-model="form.register" placeholder="请选择" @change="changeReg">
127
+                            <el-option
128
+                                    v-for="item in his_registers"
129
+                                    :key="item.value"
130
+                                    :label="item.label"
131
+                                    :value="item.value">
132
+                            </el-option>
133
+                        </el-select>
134
+                    </el-form-item>
135
+
136
+                    <el-form-item label="医疗类别:" :validate-event="is_Name"  prop="medicalCare" >
137
+                        <el-select v-model="form.medicalCare" placeholder="请选择">
138
+                            <el-option
139
+                                    v-for="(item,index) in medical_care"
140
+                                    :key="index"
141
+                                    :label="item.label"
142
+                                    :value="item.value">
143
+                            </el-option>
144
+                        </el-select>
145
+                    </el-form-item>
146
+
147
+                    <el-form-item label="医生:" prop="doctor" :validate-event="is_Name">
148
+                        <el-select v-model="form.doctor" placeholder="请选择" @change="changeDoctor">
149
+                            <el-option
150
+                                    v-for="item in doctorList"
151
+                                    :key="item.admin_user_id"
152
+                                    :label="item.user_name"
153
+                                    :value="item.admin_user_id">
154
+                            </el-option>
155
+                        </el-select>
156
+                    </el-form-item>
157
+                    <el-form-item label="科室:" prop="department" :validate-event="is_Name">
158
+                        <el-select v-model="form.department" placeholder="请选择">
159
+                            <el-option
160
+                                    v-for="item in departmentList"
161
+                                    :key="item.id"
162
+                                    :label="item.name"
163
+                                    :value="item.id">
164
+                            </el-option>
165
+                        </el-select>
166
+                    </el-form-item>
167
+
168
+                    <el-form-item label="挂号费:">
169
+                        <el-input v-model="form.registrationFee" readonly></el-input>
170
+                    </el-form-item>
171
+                    <el-form-item label="诊疗费:">
172
+                        <el-input v-model="form.medicalExpenses" readonly></el-input>
173
+                    </el-form-item>
174
+                    <el-form-item label="合计:">
175
+                        <el-input v-model.number="total" readonly></el-input>
176
+                    </el-form-item>
177
+                </el-form>
178
+                <el-button style="float:right" @click="saveHisPatient9504('form')" type="primary">挂号</el-button>
179
+            </div>
180
+
181
+        </div>
182
+
183
+        <div v-else class="app-container">
7 184
             <div class="nameTitle">患者基本信息:</div>
8 185
             <div class="formMain">
9 186
                 <el-form class="basicForm" :model="form" :rules="rules" ref="form" label-width="100px">
@@ -136,7 +313,7 @@
136 313
                     <el-form-item label="挂号类型:" prop="register" :validate-event="is_Name">
137 314
                         <el-select v-model="form.register" placeholder="请选择">
138 315
                             <el-option
139
-                                    v-for="item in register"
316
+                                    v-for="item in his_registers"
140 317
                                     :key="item.value"
141 318
                                     :label="item.label"
142 319
                                     :value="item.value">
@@ -258,6 +435,7 @@
258 435
     },
259 436
     data() {
260 437
       return {
438
+        read_loading:false,
261 439
         registers: [
262 440
           { value: 11, label: '普通门诊' },
263 441
           { value: 12, label: '门诊挂号' },
@@ -383,7 +561,7 @@
383 561
             value: 7,
384 562
             label: '生育保险'
385 563
           }],
386
-        register: [{
564
+        his_registers: [{
387 565
           value: 1,
388 566
           label: '普通'
389 567
         }, {
@@ -408,6 +586,21 @@
408 586
           psn_cert_type: '01',
409 587
           psn_name: '杨美英',
410 588
           age: 60.7
589
+        },
590
+        rules2: {
591
+          name: [{ required: true, message: '患者姓名不能为空', trigger: 'blur' }],
592
+          sex: [{ required: true, message: '患者性别不能为空', trigger: 'blur' }],
593
+          idCard: [{ required: true, message: '证件号码不能为空', trigger: 'blur' }],
594
+          register: [{ required: true, message: '请选择挂号类型', trigger: 'blur' }],
595
+          doctor: [{ required: true, message: '请选择医生', trigger: 'blur' }],
596
+          department: [{ required: true, message: '请填写科室', trigger: 'blur' }],
597
+          age: [{ required: true, message: '患者年龄不能为空', trigger: 'blur' }],
598
+          birthday: [{ required: true, message: '患者出生日期不能为空', trigger: 'blur' }],
599
+          certificates: [{ required: true, message: '证件类型不能为空', trigger: 'change' }],
600
+          id_card_type: [{ required: true, message: '读卡类型不能为空', trigger: 'change' }],
601
+          medicalCare: [{ required: true, message: '医疗类别不能为空', trigger: 'change' }],
602
+
603
+
411 604
         },
412 605
         rules: {
413 606
           name: [{ required: true, message: '患者姓名不能为空', trigger: 'blur' }],
@@ -443,6 +636,15 @@
443 636
       }
444 637
     },
445 638
     methods: {
639
+      changeReg(){
640
+        console.log(this.form.register)
641
+        if(this.form.register != 4){
642
+          this.form.registrationFee = 10
643
+        }else{
644
+          this.form.registrationFee = 0
645
+
646
+        }
647
+      },
446 648
       handleSelect(val) {
447 649
         this.form.id = val.id
448 650
         this.form.name = val.name
@@ -466,7 +668,58 @@
466 668
             cb([])
467 669
           }
468 670
         })
671
+      }, readingSZ() {
672
+        var that = this
673
+        if (this.form.id_card_type.length == 0 || this.form.id_card_type == 0) {
674
+          this.$message.error("请先选择读卡类型")
675
+          return
676
+        }
677
+        this.read_loading = true
678
+        let params = {
679
+          'id_card_type': this.form.id_card_type,
680
+
681
+        }
682
+        axios.get('http://127.0.0.1:9532/sz/api/readcard', {
683
+          params: params
684
+        })
685
+          .then(function (response) {
686
+            if (response.data.state == 0) {
687
+              this.read_loading = false
688
+
689
+              that.$message.error(response.data.msg)
690
+              return false
691
+            } else {
692
+              this.read_loading = false
693
+
694
+              var patient = response.data.data.patient
695
+              if (that.form.id_card_type == 1) {
696
+                that.form.id = patient.id
697
+                that.form.name = patient.name
698
+                that.form.sex = patient.gender
699
+                that.form.age = patient.age
700
+                that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
701
+                that.form.phone = patient.phone
702
+                that.form.id_card = patient.id_card_no
703
+                that.form.medicalInsuranceCard = response.data.data.health_card_no
704
+              } else if (that.form.id_card_type == 2) {
705
+                this.form.id = patient.id
706
+                that.form.name = patient.name
707
+                that.form.sex = patient.gender
708
+                that.form.age = patient.age
709
+                that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
710
+                that.form.phone = patient.phone
711
+                that.form.id_card = patient.id_card_no
712
+              }
713
+              that.$message({message: '读卡成功', type: 'success'})
714
+
715
+            }
716
+          })
717
+          .catch(function (error) {
718
+
719
+          });
720
+
469 721
       },
722
+
470 723
       reading(medicalInsuranceCard) {
471 724
         var that = this
472 725
         if (this.form.id_card_type.length == 0 || this.form.id_card_type == 0) {
@@ -595,6 +848,183 @@
595 848
             this.departmentList = department
596 849
           }
597 850
         })
851
+      },saveHisPatient9504(formName){
852
+        if (this.form.name == '') {
853
+          this.$message.error('患者姓名不能为空')
854
+          this.is_Name = true
855
+          return
856
+        }
857
+
858
+        if (this.form.sex == '') {
859
+          this.$message.error('患者性别不能为空')
860
+        }
861
+
862
+        if (this.form.register == '') {
863
+          this.$message.error('挂号类型不能为空')
864
+          this.is_Name = true
865
+          return
866
+        }
867
+
868
+        // if (this.form.doctor == '') {
869
+        //   this.$message.error('医生不能为空')
870
+        //   this.is_Name = true
871
+        //   return
872
+        // }
873
+
874
+        if (this.form.department == '') {
875
+          this.$message.error('科室不能为空')
876
+          this.is_Name = true
877
+          return
878
+        }
879
+        if (this.form.age == '') {
880
+          this.$message.error('患者年龄不能为空')
881
+          this.is_Name = true
882
+          return
883
+        }
884
+        if (this.form.birthday == '') {
885
+          this.$message.error('出生日期不能为空')
886
+          this.is_Name = true
887
+          return
888
+        }
889
+        if (this.form.id_card_type == '') {
890
+          this.$message.error('读卡类型不能为空')
891
+          this.is_Name = true
892
+          return
893
+        }
894
+
895
+        if (this.form.idCard == '') {
896
+          this.$message.error('证件号码不能为空')
897
+          this.is_Name = true
898
+          return
899
+        }
900
+
901
+        // if (this.form.p_type == '') {
902
+        //   this.$message.error('处方类型不能为空')
903
+        //   this.is_Name = true
904
+        //   return
905
+        // }
906
+
907
+        this.$refs[formName].validate((valid) => {
908
+          if (valid) {
909
+            var params = {
910
+              id: this.form.id,
911
+              settlement_value: this.form.settlementValue,
912
+              medical_insurance_card: this.form.medicalInsuranceCard,
913
+              name: this.form.name,
914
+              sex: this.form.sex,
915
+              id_card_type: this.form.id_card_type,
916
+              certificates: this.form.certificates,
917
+              medical_care: this.form.medicalCare,
918
+              birthday: moment(new Date(this.form.birthday)).format('YYYY-MM-DD'),
919
+              age: parseInt(this.form.age),
920
+              id_card: this.form.idCard,
921
+              register: this.form.register,
922
+              doctor: this.form.doctor,
923
+              department: this.form.department,
924
+              costChecked: this.check,
925
+              registration_fee: this.form.registrationFee,
926
+              medical_expenses: this.form.medicalExpenses,
927
+              cost: this.form.cost,
928
+              total: this.total,
929
+              phone: this.form.phone,
930
+              social_type: this.form.social_type,
931
+              p_type: this.form.p_type,
932
+              diagnosis: this.form.diagnosis,
933
+              sick_type: this.form.sick_type
934
+            }
935
+            params['record_time'] = this.record_date,
936
+              params['admin_user_id'] = this.$store.getters.xt_user.user.id
937
+            this.loadingone = true
938
+
939
+            if (this.$store.getters.xt_user.org_id == 9504 || this.$store.getters.xt_user.org_id == 0) {
940
+              var that = this
941
+              axios.get('http://127.0.0.1:9532/sz/api/register/get', {
942
+                params: params
943
+              })
944
+                .then(function(response) {
945
+                  if (response.data.state == 0) {
946
+                    that.$message.error(response.data.msg)
947
+                    that.loadingone = false
948
+                    that.$refs.register.hide()
949
+                    return false
950
+                  } else {
951
+                    if (response.data.data.failed_code == -10){
952
+                      that.$message.error(response.data.data.msg)
953
+                    }else{
954
+                      that.$refs.register.hide()
955
+                      that.getPatientList()
956
+                      that.$message({ message: '挂号成功', type: 'success' })
957
+                      that.loadingone = false
958
+                      var his_info = response.data.data.his_info
959
+                      that.hisPatientInfo = his_info
960
+                    }
961
+                  }
962
+                })
963
+                .catch(function(error) {
964
+
965
+                })
966
+            } else if (this.$store.getters.xt_user.org_id == 9919) {
967
+              var that = this
968
+
969
+              axios.get('http://127.0.0.1:9532/api/register/get', {
970
+                params: params
971
+              })
972
+                .then(function(response) {
973
+                  if (response.data.state == 0) {
974
+                    that.$message.error(response.data.msg)
975
+                    that.loadingone = false
976
+                    that.$refs.register.hide()
977
+                    return false
978
+                  } else {
979
+                    that.$refs.register.hide()
980
+                    that.getPatientList()
981
+                    that.$message({ message: '挂号成功', type: 'success' })
982
+                    that.loadingone = false
983
+                    var his_info = response.data.data.his_info
984
+                    that.hisPatientInfo = his_info
985
+                  }
986
+                })
987
+                .catch(function(error) {
988
+
989
+                })
990
+            } else {
991
+              saveHisPatient(params).then(response => {
992
+                if (response.data.state == 1) {
993
+                  var patient = response.data.data.patient
994
+                  this.getTodaySchedulePatient()
995
+                  this.$message.success('保存成功')
996
+                  this.form.settlementValue = '',
997
+                    this.form.medicalInsuranceCard = '',
998
+                    this.form.name = '',
999
+                    this.form.sex = '',
1000
+                    this.form.certificates = '',
1001
+                    this.form.medicalCare = '',
1002
+                    this.form.birthday = '',
1003
+                    this.form.age = '',
1004
+                    this.form.idCard = '',
1005
+                    this.form.register = '',
1006
+                    this.form.doctor = '',
1007
+                    this.form.department = '',
1008
+                    this.form.costChecked = false,
1009
+                    this.form.registrationFee = '',
1010
+                    this.form.medicalExpenses = '',
1011
+                    this.form.cost = '',
1012
+                    this.form.total = '' ,
1013
+                    this.form.phone = '',
1014
+                    this.form.social_type = ''
1015
+                } else {
1016
+                  this.$message.error('今日患者已挂号!')
1017
+                }
1018
+              })
1019
+
1020
+            }
1021
+
1022
+          }
1023
+        })
1024
+
1025
+
1026
+
1027
+
598 1028
       },
599 1029
       saveHisPatient(formName) {
600 1030
         if (this.form.name == '') {

+ 254 - 3
src/xt_pages/outpatientRegistration/registrationHistory.vue Прегледај датотеку

@@ -3,7 +3,223 @@
3 3
         <div class="position">
4 4
             <bread-crumb :crumbs='crumbs'></bread-crumb>
5 5
         </div>
6
-        <div class="app-container">
6
+        <div v-if="this.$store.getters.xt_user.org_id == 9504 || this.$store.getters.xt_user.org_id == 0" class="app-container">
7
+            <div class="cell clearfix">
8
+                <!-- <el-input style="width: 180px;" v-model.trim="search_input" class="filter-item"/> -->
9
+                <el-autocomplete
10
+                        style="margin:16px 5px"
11
+                        popper-class="my-autocomplete"
12
+                        v-model.trim="search_input"
13
+                        :fetch-suggestions="querySearchAsync"
14
+                        :trigger-on-focus="false"
15
+                        placeholder="病人名字或者透析号"
16
+                        @select="handleSelect"
17
+                >
18
+                    <i class="el-icon-search el-input__icon" slot="suffix"> </i>
19
+                    <template slot-scope="{ item }">
20
+                        <div class="name">{{ item.name }}</div>
21
+                    </template>
22
+                </el-autocomplete>
23
+                <el-button style="margin-right:10px;" class="filter-item" type="primary" icon="el-icon-search" @click="searchAction">搜索</el-button>
24
+                <!-- <el-date-picker
25
+                v-model="value1"
26
+                @change="changeTime"
27
+                style="margin-right:10px;"
28
+                type="daterange"
29
+                range-separator="-"
30
+                start-placeholder="开始日期"
31
+                end-placeholder="结束日期">
32
+                </el-date-picker> -->
33
+                <el-date-picker type="datetime" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
34
+                                placeholder="选择时间" v-model="start_time" style="width:200px"
35
+                                @change="changeStart"
36
+                >
37
+                </el-date-picker> -
38
+                <el-date-picker type="datetime" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
39
+                                placeholder="选择时间" v-model="end_time" style="width:200px"
40
+                                @change="changeEnd"
41
+                >
42
+                </el-date-picker>
43
+                <label class="title"><span class="name">挂号类型</span> : </label>
44
+                <el-select v-model="register_type" placeholder="请选择" style="width:150px;" @change="changeRegister">
45
+                    <el-option
46
+                            v-for="item in register"
47
+                            :key="item.value"
48
+                            :label="item.label"
49
+                            :value="item.value">
50
+                    </el-option>
51
+                </el-select>
52
+            </div>
53
+            <el-table :data="tableData" border style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
54
+                <el-table-column align="center" type="index" label="序号" width="60">
55
+                </el-table-column>
56
+                <el-table-column align="center" prop="name" label="时间" width="100">
57
+                    <template slot-scope="scope">{{getTime(scope.row.ctime,"{y}-{m}-{d} {h}:{i}:{s}")}}</template>
58
+                </el-table-column>
59
+                <el-table-column align="center" prop="dialysis_no" label="姓名" width="80">
60
+                    <template slot-scope="scope">{{scope.row.name }}</template>
61
+                </el-table-column>
62
+                <el-table-column align="center" prop="name" label="科室" width="80">
63
+                    <template slot-scope="scope">{{getDepartMent(scope.row.departments)}}</template>
64
+                </el-table-column>
65
+                <el-table-column align="center" prop="name" label="挂号类型" width="90">
66
+                    <template slot-scope="scope">
67
+                        <span v-if="scope.row.register_type == 1">普通</span>
68
+                        <span v-if="scope.row.register_type == 2">主治</span>
69
+                        <span v-if="scope.row.register_type == 3">主任</span>
70
+                        <span v-if="scope.row.register_type == 4">免收诊金</span>
71
+                        <span v-if="scope.row.register_type == 5">专家</span>
72
+                    </template>
73
+                </el-table-column>
74
+                <el-table-column align="center" prop="name" label="就诊号" width="80">
75
+                    <template slot-scope="scope">
76
+                        {{scope.row.number}}
77
+                    </template>
78
+                </el-table-column>
79
+                <el-table-column align="center" prop="name" label="证件号" width='180'>
80
+                    <template slot-scope="scope">{{ scope.row.id_card_no }}</template>
81
+                </el-table-column>
82
+                <el-table-column align="center" label="社保类型">
83
+                    <template slot-scope="scope">{{getMedicalTreatment(scope.row.social_type)}}</template>
84
+                </el-table-column>
85
+                <el-table-column align="center" prop="name" label="医生" width="80">
86
+                    <template slot-scope="scope">{{getDoctor(scope.row.doctor) }}</template>
87
+                </el-table-column>
88
+                <el-table-column align="center" prop="name" label="挂号费" width="70">
89
+                    <template slot-scope="scope">{{ scope.row.register_cost }}</template>
90
+                </el-table-column>
91
+                <el-table-column align="center" prop="name" label="诊疗费" width="70">
92
+                    <template slot-scope="scope">{{ scope.row.treatment_cost }}</template>
93
+                </el-table-column>
94
+                <el-table-column align="center" prop="name" label="工本费" width="70">
95
+                    <template slot-scope="scope">{{ scope.row.cost_of_production }}</template>
96
+                </el-table-column>
97
+                <el-table-column align="center" prop="name" label="结算类型" width="70">
98
+                    <template slot-scope="scope">{{getBanlance(scope.row.balance_accounts_type) }}</template>
99
+                </el-table-column>
100
+                <el-table-column align="center" prop="name" label="操作人" width="70">
101
+                    <template slot-scope="scope">{{creator}}</template>
102
+                </el-table-column>
103
+                <el-table-column align="center" prop="name" label="操作" width="180">
104
+                    <template slot-scope="scope">
105
+                        <!--<el-button size="mini" type="primary" v-if=" scope.row.record_date < startUnix" :disabled="true">已过号</el-button>-->
106
+                        <el-button size="mini" type="primary"  v-if="scope.row.status == 1" @click ="toReturnSZPatient(scope.row)">退号</el-button>
107
+                        <el-button size="mini" type="primary"  :disabled="true" v-if="scope.row.status == 0" >已退号</el-button>
108
+
109
+                        <!--<el-button size="mini" type="primary" v-if="scope.row.record_date == startUnix && scope.row.is_return == 2" :disabled="true">已退号</el-button>-->
110
+                        <!--<el-button size="mini" type="primary" v-if="scope.row.record_date == startUnix && scope.row.is_return == 3" :disabled="true">已就诊</el-button>-->
111
+                        <!--<el-button size="mini" type="primary" @click="open(scope.row)">详情</el-button>-->
112
+                    </template>
113
+                </el-table-column>
114
+            </el-table>
115
+
116
+            <el-pagination
117
+                    @size-change="handleSizeChange"
118
+                    @current-change="handleCurrentChange"
119
+                    :page-sizes="[10, 50, 100]"
120
+                    :page-size="10"
121
+                    background
122
+                    style="margin-top:20px;float: right"
123
+                    layout="total, sizes, prev, pager, next, jumper"
124
+                    :total="total"
125
+            >
126
+            </el-pagination>
127
+            <el-dialog
128
+                    title="挂号历史详情"
129
+                    :visible.sync="dialogVisible"
130
+                    width="1100px"
131
+                    :before-close="handleClose">
132
+                <div>
133
+                    <div class="formMain">
134
+                        <el-form class="basicForm" :model="form"  ref="form"  label-width="130px">
135
+                            <el-form-item label="患者姓名:"  prop="name">
136
+                                <div>{{ form.name }}</div>
137
+                            </el-form-item>
138
+
139
+                            <el-form-item label="性别:" prop="gender">
140
+                                <div v-if="form.gender == 1">男</div>
141
+                                <div v-if="form.gender == 2">女</div>
142
+                            </el-form-item>
143
+
144
+                            <el-form-item label="年龄:" prop="age">
145
+                                <div>{{ form.age }}</div>
146
+                            </el-form-item>
147
+
148
+
149
+                            <el-form-item label="出生日期:" prop="birthday">
150
+                                <div>{{ getTime(form.birthday,"{y}-{m}-{d}") }}</div>
151
+                            </el-form-item>
152
+
153
+                            <el-form-item label="手机号码:" prop="phone">
154
+                                <div>{{ form.phone }}</div>
155
+                            </el-form-item>
156
+
157
+
158
+                            <el-form-item label="医疗类别:">
159
+                                <div>{{ getDictionaryDataConfig(form.medical_treatment_type) }}</div>
160
+                            </el-form-item>
161
+
162
+
163
+                            <el-form-item label="证件类型:">
164
+                                <div>{{ getCertificates(form.id_type) }}</div>
165
+                            </el-form-item>
166
+
167
+                            <el-form-item label="证件号码:" prop="idCard">
168
+                                {{ form.id_card_no }}
169
+                            </el-form-item>
170
+
171
+
172
+                            <el-form-item label="结算类型:">
173
+                                {{ getSettlement(form.balance_accounts_type) }}
174
+                            </el-form-item>
175
+
176
+
177
+                            <el-form-item label="社保类型:">
178
+                                <div>{{ getMedicalCare(form.social_type) }}</div>
179
+                            </el-form-item>
180
+                            <el-form-item class="specialFormItem" style="width:66.5%;" label="医保卡号:">
181
+                                <div>{{ form.medical_insurance_number }}</div>
182
+                            </el-form-item>
183
+                            <el-form-item label="挂号类型:"  prop="register"  :validate-event="is_Name">
184
+                                <div>{{ getRegister(form.register_type) }}</div>
185
+                            </el-form-item>
186
+                            <el-form-item label="医生:"  prop="doctor" :validate-event="is_Name" >
187
+                                <div>{{ getDoctor(form.doctor) }}</div>
188
+                            </el-form-item>
189
+                            <el-form-item label="科室:"  prop="department" :validate-event="is_Name">
190
+                                <div>{{ getDepartMent(form.departments) }}</div>
191
+                            </el-form-item>
192
+                            <!-- <el-form-item label="是否需要工本费:">
193
+                              <div v-if="form.is_need_cost_of_production == 1">是</div>
194
+                              <div v-else>否</div>
195
+                            </el-form-item> -->
196
+
197
+                            <el-form-item label="挂号费:">
198
+                                <div>{{ form.register_cost }}</div>
199
+                            </el-form-item>
200
+                            <el-form-item label="诊疗费:">
201
+                                <div>{{ form.treatment_cost }}</div>
202
+                            </el-form-item>
203
+                            <el-form-item label="工本费:">
204
+                                <div>{{ form.cost_of_production }}</div>
205
+                            </el-form-item>
206
+                            <el-form-item label="合计:">
207
+                                <div>{{ form.total }}</div>
208
+                            </el-form-item>
209
+                            <el-form-item>
210
+                                <!-- <el-input v-model="form.name"></el-input> -->
211
+                            </el-form-item>
212
+                        </el-form>
213
+                    </div>
214
+                </div>
215
+                <span slot="footer" class="dialog-footer">
216
+                <el-button @click="dialogVisible = false">取 消</el-button>
217
+                <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
218
+              </span>
219
+            </el-dialog>
220
+        </div>
221
+
222
+        <div v-else class="app-container">
7 223
             <div class="cell clearfix">
8 224
                 <!-- <el-input style="width: 180px;" v-model.trim="search_input" class="filter-item"/> -->
9 225
                 <el-autocomplete
@@ -225,6 +441,7 @@ import BreadCrumb from '@/xt_pages/components/bread-crumb'
225 441
 import { getHisPatientHistory,changePatient,getHisPatient } from "@/api/project/project"
226 442
 import { uParseTime } from "@/utils/tools";
227 443
 import { getDictionaryDataConfig } from '@/utils/data'
444
+import axios from 'axios'
228 445
 
229 446
 export default {
230 447
     components:{
@@ -478,8 +695,42 @@ export default {
478 695
                 return uParseTime(value, temp);
479 696
             }
480 697
             return "";
481
-        },
482
-        toReturnPatient(id){
698
+        },  toReturnSZPatient(val){
699
+        var that = this
700
+        this.$confirm('是否退号', '退号', {
701
+          confirmButtonText: '确 定',
702
+          cancelButtonText: '取 消',
703
+          type: 'warning'
704
+        }).then(() => {
705
+          axios.get('http://127.0.0.1:9532/sz/api/refundnumber/get', {
706
+            params: {
707
+              order_id: 0,
708
+              record_time: this.getTime(val.record_date,"{y}-{m}-{d}"),
709
+              admin_user_id: this.$store.getters.xt_user.user.id,
710
+              patient_id: val.patient_id
711
+            }
712
+          })
713
+            .then(function(response) {
714
+              if (response.data.state == 0) {
715
+                that.$message.error(response.data.msg)
716
+                return false
717
+              } else {
718
+                if (response.data.data.failed_code == -10) {
719
+                  that.$message.error(response.data.data.msg)
720
+
721
+                } else {
722
+                  this.getlist()
723
+                  that.$message({ message: '退号成功', type: 'success' })
724
+                }
725
+              }
726
+            })
727
+            .catch(function(error) {
728
+            })
729
+        }).catch(() => {
730
+        })
731
+      },
732
+
733
+      toReturnPatient(id){
483 734
           this.$confirm("确认退号吗?", "退号", {
484 735
           confirmButtonText: "确 定",
485 736
           cancelButtonText: "取 消",