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

Merge branch '20200710_pc_vue_new_branch' into 20200916_pc_vue_new_branch

csx пре 4 година
родитељ
комит
976fcb4588

+ 27 - 141
src/xt_pages/outpatientDoctorStation/components/deskPrescription.vue Прегледај датотеку

@@ -13,13 +13,13 @@
13 13
             <div class="centerLeft">
14 14
                 <el-form :model="form" :rules="rules" ref="form" label-width="80px">
15 15
                     <el-form-item label="姓名:" prop="name">
16
-                        <el-input v-model="patientInfo.psn_name" placeholder=""></el-input>
16
+                        <el-input v-model="patientInfo.name" placeholder=""></el-input>
17 17
                     </el-form-item>
18 18
                     <el-form-item label="证件号: " prop="name">
19
-                        <el-input v-model="patientInfo.certno" placeholder=""></el-input>
19
+                        <el-input v-model="patientInfo.id_card_no" placeholder=""></el-input>
20 20
                     </el-form-item>
21 21
                     <el-form-item label="挂号类型: " prop="name">
22
-                        <el-input v-model="form.name" placeholder=""></el-input>
22
+                        <el-input v-model="hisPatientInfo.register_type" placeholder=""></el-input>
23 23
                     </el-form-item>
24 24
                     <el-form-item label="诊断:" prop="name">
25 25
                         <el-autocomplete
@@ -46,17 +46,17 @@
46 46
                     </el-form-item>
47 47
                 </el-form>
48 48
                 <div class="tabsBox">
49
-                    
49
+
50 50
                     <el-button type="text" class="addTab" @click="addCharges" icon="el-icon-circle-plus">附加收费</el-button>
51 51
                     <el-tabs class="preTabs" v-model="editableTabsValue" type="card" closable @tab-remove="removeTab" :before-leave="moreState">
52 52
                         <el-tab-pane
53
-                            v-for="(item, index) in editableTabs"
53
+                            v-for="(item, index) in prescriptions"
54 54
                             :key="index"
55
-                            :label="item.title"
55
+                            :label="item.name"
56 56
                             :name="item.name"
57 57
                         >
58 58
                             <div class="RP">Rp</div>
59
-                            <prescription-table :preDrugs="preDrugs"></prescription-table>
59
+                            <prescription-table :preDrugs="preDrugs" :activeType="activeName"></prescription-table>
60 60
                         </el-tab-pane>
61 61
                         <el-tab-pane name="more" closable><span slot="label"><i class="el-icon-plus" @click="addTab"></i></span></el-tab-pane>
62 62
                     </el-tabs>
@@ -168,9 +168,13 @@ import prescriptionTable from './prescriptionTable'
168 168
 import selectTemplate from './selectTemplate'
169 169
 import saveTemplate from './saveTemplate'
170 170
 import additionalCharges from './additionalCharges'
171
+import { getPatientInfo, getSchedulePatientList } from '@/api/his/his'
172
+
171 173
 export default {
172 174
     props:{
173
-        patientInfo:Object
175
+        patientInfo:Object,
176
+        hisPatientInfo:Object,
177
+        prescriptions:Array,
174 178
     },
175 179
     components:{
176 180
         selectTemplate,
@@ -183,67 +187,6 @@ export default {
183 187
             form:{
184 188
                 name:''
185 189
             },
186
-            tableData: [{
187
-            date: '2016-05-02',
188
-            name: '王小虎',
189
-            address: '上海市普陀区金沙江路 1518 弄'
190
-            }, {
191
-            date: '2016-05-04',
192
-            name: '王小虎',
193
-            address: '上海市普陀区金沙江路 1517 弄'
194
-            }, {
195
-            date: '2016-05-01',
196
-            name: '王小虎',
197
-            address: '上海市普陀区金沙江路 1519 弄'
198
-            }, {
199
-            date: '2016-05-03',
200
-            name: '王小虎',
201
-            address: '上海市普陀区金沙江路 1516 弄'
202
-            },{
203
-            date: '2016-05-02',
204
-            name: '王小虎',
205
-            address: '上海市普陀区金沙江路 1518 弄'
206
-            }, {
207
-            date: '2016-05-04',
208
-            name: '王小虎',
209
-            address: '上海市普陀区金沙江路 1517 弄'
210
-            }, {
211
-            date: '2016-05-01',
212
-            name: '王小虎',
213
-            address: '上海市普陀区金沙江路 1519 弄'
214
-            }, {
215
-            date: '2016-05-03',
216
-            name: '王小虎',
217
-            address: '上海市普陀区金沙江路 1516 弄'
218
-            },{
219
-            date: '2016-05-02',
220
-            name: '王小虎',
221
-            address: '上海市普陀区金沙江路 1518 弄'
222
-            }, {
223
-            date: '2016-05-04',
224
-            name: '王小虎',
225
-            address: '上海市普陀区金沙江路 1517 弄'
226
-            }, {
227
-            date: '2016-05-01',
228
-            name: '王小虎',
229
-            address: '上海市普陀区金沙江路 1519 弄'
230
-            }, {
231
-            date: '2016-05-03',
232
-            name: '王小虎',
233
-            address: '上海市普陀区金沙江路 1516 弄'
234
-            }, {
235
-            date: '2016-05-04',
236
-            name: '王小虎',
237
-            address: '上海市普陀区金沙江路 1517 弄'
238
-            }, {
239
-            date: '2016-05-01',
240
-            name: '王小虎',
241
-            address: '上海市普陀区金沙江路 1519 弄'
242
-            }, {
243
-            date: '2016-05-03',
244
-            name: '王小虎',
245
-            address: '上海市普陀区金沙江路 1516 弄'
246
-            }],
247 190
             editableTabsValue: '1',
248 191
             editableTabs: [{
249 192
             title: '处方1',
@@ -254,71 +197,12 @@ export default {
254 197
             rightTab:1,
255 198
             activeName:'1',
256 199
 
257
-            drugTableData:[
258
-                {
259
-                    name:'头孢氨苄甲氧苄啶',
260
-                    specifications:'1',
261
-                    stock:10,
262
-                    unitPrice:10
263
-                },
264
-                {
265
-                    name:'注射用甲磺酸齐拉西酮',
266
-                    specifications:'1',
267
-                    stock:10,
268
-                    unitPrice:10
269
-                },
270
-                {
271
-                    name:'九味羌活片',
272
-                    specifications:'1',
273
-                    stock:10,
274
-                    unitPrice:10
275
-                },
276
-                {
277
-                    name:'氟哌啶醇注射液',
278
-                    specifications:'1',
279
-                    stock:10,
280
-                    unitPrice:10
281
-                },
282
-                {
283
-                    name:'奥氮平口崩片',
284
-                    specifications:'1',
285
-                    stock:10,
286
-                    unitPrice:10
287
-                },
288
-                {
289
-                    name:'利培酮口崩片',
290
-                    specifications:'1',
291
-                    stock:10,
292
-                    unitPrice:10
293
-                },
294
-            ],
200
+            drugTableData:[],
295 201
             preDrugs:[],
296 202
             curDrugs:[],
297
-            doctorOptions:[
298
-                {
299
-                    value: '1',
300
-                    label: '刘志刚'
301
-                },
302
-                {
303
-                    value: '2',
304
-                    label: '李悦'
305
-                },
306
-                {
307
-                    value: '3',
308
-                    label: '董校含'
309
-                },
310
-            ],
203
+            doctorOptions:[],
311 204
             doctorValue:'',
312
-            departmentOptions:[
313
-                {
314
-                    value: '1',
315
-                    label: '血透中心'
316
-                },
317
-                {
318
-                    value: '2',
319
-                    label: '心内科'
320
-                },
321
-            ],
205
+            departmentOptions:[],
322 206
             departmentValue:'',
323 207
             total:0
324 208
         }
@@ -340,18 +224,20 @@ export default {
340 224
             }else if(index == 5){
341 225
                 this.$refs.saveTemplate.show()
342 226
             }
343
-            
227
+
344 228
         },
345 229
         addTab(targetName) {
346 230
             let newTabName = ++this.tabIndex + '';
347
-            this.editableTabs.push({
348
-                title: '处方' + this.tabIndex,
231
+            this.prescriptions.push({
349 232
                 name: newTabName,
233
+                advice:[],
234
+                project:[],
235
+
350 236
             });
351 237
             this.editableTabsValue = newTabName;
352 238
         },
353 239
         removeTab(targetName) {
354
-            let tabs = this.editableTabs;
240
+            let tabs = this.prescriptions;
355 241
             let activeName = this.editableTabsValue;
356 242
             if (activeName === targetName) {
357 243
             tabs.forEach((tab, index) => {
@@ -363,9 +249,9 @@ export default {
363 249
                 }
364 250
             });
365 251
             }
366
-            
252
+
367 253
             this.editableTabsValue = activeName;
368
-            this.editableTabs = tabs.filter(tab => tab.name !== targetName);
254
+            this.prescriptions = tabs.filter(tab => tab.name !== targetName);
369 255
         },
370 256
         clickTab(index){
371 257
             this.rightTab = index
@@ -381,7 +267,7 @@ export default {
381 267
             this.preDrugs.map(item => {
382 268
                 this.total += item.unitPrice
383 269
             })
384
-            
270
+
385 271
         }
386 272
     }
387 273
 }
@@ -409,7 +295,7 @@ export default {
409 295
     .el-radio{
410 296
         margin-right:5px;
411 297
     }
412
-    
298
+
413 299
 }
414 300
 .mainRight{
415 301
     margin-left:20px;
@@ -490,7 +376,7 @@ export default {
490 376
     width: 100%;
491 377
     border: 1px solid #d2d2d2;
492 378
     box-sizing: border-box;
493
-    
379
+
494 380
     p{
495 381
         width: 50%;
496 382
         height: 40px;
@@ -500,7 +386,7 @@ export default {
500 386
         float: left;
501 387
     }
502 388
     >p:last-child{
503
-      border-left: 1px solid #d2d2d2;  
389
+      border-left: 1px solid #d2d2d2;
504 390
       float: right;
505 391
     }
506 392
     .activeP{

+ 305 - 223
src/xt_pages/outpatientDoctorStation/components/deskRecord.vue Прегледај датотеку

@@ -1,245 +1,327 @@
1 1
 <template>
2
-    <div class="deskRecord">
3
-        <div style="overflow:hidden;border-top:1px solid #e5e5e5;margin-top:5px;">
4
-            <div class="mainCell" style="margin-bottom:10px;float:right">
5
-                <el-button size="small" @click="open(1)" type="primary" style="margin-left:10px;">保存</el-button>
6
-                <el-button size="small" @click="open(2)" type="primary">打印</el-button>
7
-                <el-button size="small" @click="open(3)" type="primary">病历调用</el-button>
8
-                <el-button size="small" @click="open(4)" type="primary">存模板</el-button>
9
-            </div>
10
-        </div>
11
-        <div class="backColor"></div>
12
-        <div class="mainTitle">基本信息:</div>
13
-        <el-form class="basicForm" :model="form" :rules="rules" ref="form" label-width="120px">
14
-            <el-form-item label="姓名:" prop="name">
15
-                <el-input v-model="form.name" placeholder=""></el-input>
16
-            </el-form-item>
17
-            <el-form-item label="性别: " prop="name">
18
-                <el-select style="width:100%;" v-model="value" placeholder="">
19
-                    <el-option
20
-                    v-for="item in options"
21
-                    :key="item.value"
22
-                    :label="item.label"
23
-                    :value="item.value">
24
-                    </el-option>
25
-                </el-select>
26
-            </el-form-item>
27
-            <el-form-item label="年龄: " prop="name">
28
-                <el-input v-model="form.name" placeholder=""></el-input>
29
-            </el-form-item>
30
-            <el-form-item label="证件号:" prop="name">
31
-                <el-input v-model="form.name" placeholder=""></el-input>
32
-            </el-form-item>
33
-            <el-form-item label="出生日期: " prop="name">
34
-                <el-date-picker
35
-                style="width:100%;"
36
-                v-model="value1"
37
-                type="date"
38
-                placeholder="选择日期">
39
-                </el-date-picker>
40
-            </el-form-item>
41
-            <el-form-item label="联系电话: " prop="name">
42
-                <el-input v-model="form.name" placeholder=""></el-input>
43
-            </el-form-item>
44
-            <el-form-item label="关系联系人: " prop="name">
45
-                <el-input v-model="form.name" placeholder=""></el-input>
46
-            </el-form-item>
47
-            <el-form-item label="关系联系人电话: " prop="name">
48
-                <el-input v-model="form.name" placeholder=""></el-input>
49
-            </el-form-item>
50
-            <el-form-item label="家庭住址: " prop="name">
51
-                <el-input v-model="form.name" placeholder=""></el-input>
52
-            </el-form-item>
53
-        </el-form>
54
-        <div class="mainTitle">体格信息:</div>
55
-        <el-form class="physiqueForm" :model="form" :rules="rules" ref="form" label-width="80px">
56
-            <el-form-item label="体温:" prop="name">
57
-                <el-input v-model="form.name" placeholder=""></el-input><span>℃</span>
58
-            </el-form-item>
59
-            <el-form-item label="血糖: " prop="name">
60
-                <el-input v-model="form.name" placeholder=""></el-input>mmol/L
61
-            </el-form-item>
62
-            <el-form-item label="脉搏: " prop="name">
63
-                <el-input v-model="form.name" placeholder=""></el-input>(次/分)
64
-            </el-form-item>
65
-            <el-form-item label="血压:" prop="name">
66
-                <el-input v-model="form.name" placeholder=""></el-input>/
67
-                <el-input v-model="form.name" placeholder=""></el-input>mmHg
68
-            </el-form-item>
69
-            <el-form-item label="身高: " prop="name">
70
-                <el-input v-model="form.name" placeholder=""></el-input>cm
71
-            </el-form-item>
72
-            <el-form-item label="血脂: " prop="name">
73
-                <el-input v-model="form.name" placeholder=""></el-input>mmol/L
74
-            </el-form-item>
75
-            <el-form-item label="脉搏: " prop="name">
76
-                <el-input v-model="form.name" placeholder=""></el-input>(次/分)
77
-            </el-form-item>
78
-            <el-form-item label="体重: " prop="name">
79
-                <el-input v-model="form.name" placeholder=""></el-input>kg
80
-            </el-form-item>
81
-        </el-form>
82
-        <div class="mainTitle">病历信息:</div>
83
-        <el-form class="recordForm" :model="form" :rules="rules" ref="form" label-width="80px">
84
-            <el-form-item label="病历分类:" prop="name">
85
-                <el-select style="width:100%;" v-model="value" placeholder="">
86
-                    <el-option
87
-                    v-for="item in options"
88
-                    :key="item.value"
89
-                    :label="item.label"
90
-                    :value="item.value">
91
-                    </el-option>
92
-                </el-select>
93
-            </el-form-item>
94
-            <el-form-item label="症状: " prop="name">
95
-                <el-input v-model="form.name" placeholder=""></el-input>
96
-            </el-form-item>
97
-            <el-form-item label="发病日期: " prop="name">
98
-                <el-date-picker
99
-                style="width:100%;"
100
-                v-model="value1"
101
-                type="date"
102
-                placeholder="选择日期">
103
-                </el-date-picker>
104
-            </el-form-item>
105
-            <el-form-item label="" prop="name">
106
-                <el-checkbox v-model="checked">是否传染</el-checkbox>
107
-            </el-form-item>
108
-            <el-form-item label="主诉:" prop="name" style="width:100%;">
109
-                <el-input
110
-                type="textarea"
111
-                :rows="2"
112
-                placeholder="请输入内容"
113
-                v-model="textarea">
114
-                </el-input>
115
-            </el-form-item>
116
-            <el-form-item label="现病史:" prop="name" style="width:100%;">
117
-                <el-input
118
-                type="textarea"
119
-                :rows="2"
120
-                placeholder="请输入内容"
121
-                v-model="textarea">
122
-                </el-input>
123
-            </el-form-item>
124
-            <el-form-item label="既往史:" prop="name" style="width:100%;">
125
-                <el-input
126
-                type="textarea"
127
-                :rows="2"
128
-                placeholder="请输入内容"
129
-                v-model="textarea">
130
-                </el-input>
131
-            </el-form-item>
132
-            <el-form-item label="个人史:" prop="name" style="width:100%;">
133
-                <el-input
134
-                type="textarea"
135
-                :rows="2"
136
-                placeholder="请输入内容"
137
-                v-model="textarea">
138
-                </el-input>
139
-            </el-form-item>
140
-            <el-form-item label="家族史:" prop="name" style="width:100%;">
141
-                <el-input
142
-                type="textarea"
143
-                :rows="2"
144
-                placeholder="请输入内容"
145
-                v-model="textarea">
146
-                </el-input>
147
-            </el-form-item>
148
-            <el-form-item label="诊断信息:" prop="name" style="width:100%;">
149
-                <el-input
150
-                type="textarea"
151
-                :rows="2"
152
-                placeholder="请输入内容"
153
-                v-model="textarea">
154
-                </el-input>
155
-            </el-form-item>
156
-        </el-form>
157
-        <medicalRecord ref='medicalRecord'></medicalRecord>
158
-        <saveRecordTemplate ref='saveRecordTemplate'></saveRecordTemplate>
2
+  <div class="deskRecord">
3
+    <div style="overflow:hidden;border-top:1px solid #e5e5e5;margin-top:5px;">
4
+      <div class="mainCell" style="margin-bottom:10px;float:right">
5
+        <el-button size="small" @click="open(1)" type="primary" style="margin-left:10px;">保存</el-button>
6
+        <el-button size="small" @click="open(2)" type="primary">打印</el-button>
7
+        <el-button size="small" @click="open(3)" type="primary">病历调用</el-button>
8
+        <el-button size="small" @click="open(4)" type="primary">存模板</el-button>
9
+      </div>
159 10
     </div>
11
+    <div class="backColor"></div>
12
+    <div class="mainTitle">基本信息:</div>
13
+    <el-form class="basicForm" :model="patientInfo" :rules="rules" ref="form" label-width="120px">
14
+      <el-form-item label="姓名:" prop="name">
15
+        <el-input v-model="patientInfo.name" placeholder="" readonly></el-input>
16
+      </el-form-item>
17
+      <el-form-item label="性别: " prop="name">
18
+        <div v-if="patientInfo.gender == 1">男</div>
19
+        <div v-if="patientInfo.gender == 2">女</div>
20
+      </el-form-item>
21
+      <el-form-item label="年龄: " prop="name">
22
+        <el-input v-model="patientInfo.age" placeholder="" readonly></el-input>
23
+      </el-form-item>
24
+      <el-form-item label="证件号:" prop="name">
25
+        <el-input v-model="patientInfo.id_card_no" placeholder="" readonly></el-input>
26
+      </el-form-item>
27
+      <el-form-item label="出生日期: " prop="name">
28
+        <el-date-picker
29
+          style="width:100%;"
30
+          v-model="patientInfo.birth"
31
+          type="date"
32
+          readonly
33
+          placeholder="选择日期">
34
+        </el-date-picker>
35
+      </el-form-item>
36
+      <el-form-item label="联系电话: " prop="name">
37
+        <el-input v-model="patientInfo.phone" placeholder="" readonly></el-input>
38
+      </el-form-item>
39
+
40
+      <el-form-item label="关系联系人电话: " prop="name">
41
+        <el-input v-model="patientInfo.relative_phone" placeholder="" readonly></el-input>
42
+      </el-form-item>
43
+      <el-form-item label="家庭住址: " prop="name">
44
+        <el-input v-model="patientInfo.home_address" placeholder="" readonly></el-input>
45
+      </el-form-item>
46
+    </el-form>
47
+    <div class="mainTitle">体格信息:</div>
48
+    <el-form class="physiqueForm" :model="case_history" :rules="rules" ref="form" label-width="80px">
49
+      <el-form-item label="体温:" prop="name">
50
+        <el-input v-model="case_history.temperature" placeholder=""></el-input>
51
+        <span>℃</span>
52
+      </el-form-item>
53
+      <el-form-item label="血糖: " prop="name">
54
+        <el-input v-model="case_history.blood_sugar" placeholder=""></el-input>
55
+        mmol/L
56
+      </el-form-item>
57
+      <el-form-item label="脉搏: " prop="name">
58
+        <el-input v-model="case_history.pulse" placeholder=""></el-input>
59
+        (次/分)
60
+      </el-form-item>
61
+      <el-form-item label="血压:" prop="name">
62
+        <el-input v-model="case_history.sbp" placeholder=""></el-input>
63
+        /
64
+        <el-input v-model="case_history.dbp" placeholder=""></el-input>
65
+        mmHg
66
+      </el-form-item>
67
+      <el-form-item label="身高: " prop="name">
68
+        <el-input v-model="case_history.height" placeholder=""></el-input>
69
+        cm
70
+      </el-form-item>
71
+      <el-form-item label="血脂: " prop="name">
72
+        <el-input v-model="case_history.blood_fat" placeholder=""></el-input>
73
+        mmol/L
74
+      </el-form-item>
75
+    </el-form>
76
+    <div class="mainTitle">病历信息:</div>
77
+    <el-form class="recordForm" :model="case_history" :rules="rules" ref="form" label-width="80px">
78
+      <el-form-item label="疾病分类:" prop="name">
79
+        <el-select style="width:100%;" v-model="case_history.sick_type" placeholder="">
80
+          <el-option
81
+            v-for="item,index in getDictionaryDataConfig('system','sick_type')"
82
+            :key="index"
83
+            :label="item.name"
84
+            :value="item.id">
85
+          </el-option>
86
+        </el-select>
87
+      </el-form-item>
88
+      <el-form-item label="症状: " prop="name">
89
+        <el-input v-model="case_history.symptom" placeholder=""></el-input>
90
+      </el-form-item>
91
+      <el-form-item label="发病日期: " prop="name">
92
+        <el-date-picker
93
+          style="width:100%;"
94
+          v-model="case_history.sick_date"
95
+          type="date"
96
+          placeholder="选择日期">
97
+        </el-date-picker>
98
+      </el-form-item>
99
+      <el-form-item label="" prop="name">
100
+        <el-checkbox v-model="case_history.is_infect">是否传染</el-checkbox>
101
+      </el-form-item>
102
+      <el-form-item label="主诉:" prop="name" style="width:100%;">
103
+        <el-input
104
+          type="textarea"
105
+          :rows="2"
106
+          placeholder="请输入内容"
107
+          v-model="case_history.chief_conplaint">
108
+        </el-input>
109
+      </el-form-item>
110
+      <el-form-item label="现病史:" prop="name" style="width:100%;">
111
+        <el-input
112
+          type="textarea"
113
+          :rows="2"
114
+          placeholder="请输入内容"
115
+          v-model="case_history.history_of_present_illness">
116
+        </el-input>
117
+      </el-form-item>
118
+      <el-form-item label="既往史:" prop="name" style="width:100%;">
119
+        <el-input
120
+          type="textarea"
121
+          :rows="2"
122
+          placeholder="请输入内容"
123
+          v-model="case_history.past_history">
124
+        </el-input>
125
+      </el-form-item>
126
+      <el-form-item label="个人史:" prop="name" style="width:100%;">
127
+        <el-input
128
+          type="textarea"
129
+          :rows="2"
130
+          placeholder="请输入内容"
131
+          v-model="case_history.personal_history">
132
+        </el-input>
133
+      </el-form-item>
134
+      <el-form-item label="家族史:" prop="name" style="width:100%;">
135
+        <el-input
136
+          type="textarea"
137
+          :rows="2"
138
+          placeholder="请输入内容"
139
+          v-model="case_history.family_history">
140
+        </el-input>
141
+      </el-form-item>
142
+      <el-form-item label="诊断信息:" prop="name" style="width:100%;">
143
+        <el-input
144
+          type="textarea"
145
+          :rows="2"
146
+          placeholder="请输入内容"
147
+          v-model="case_history.diagnostic">
148
+        </el-input>
149
+      </el-form-item>
150
+    </el-form>
151
+    <medicalRecord ref='medicalRecord'></medicalRecord>
152
+    <saveRecordTemplate ref='saveRecordTemplate'></saveRecordTemplate>
153
+  </div>
160 154
 </template>
161 155
 
162 156
 <script>
163
-import medicalRecord from './medicalRecord'
164
-import saveRecordTemplate from './saveRecordTemplate'
165
-export default {
166
-    components:{
167
-       medicalRecord,
168
-       saveRecordTemplate 
157
+  import medicalRecord from './medicalRecord'
158
+  import saveRecordTemplate from './saveRecordTemplate'
159
+  import { getDictionaryDataConfig } from "@/utils/data";
160
+  import {  createCaseHistory } from '@/api/his/his'
161
+
162
+
163
+  export default {
164
+    props: {
165
+      case_history: Object,
166
+      patientInfo: Object,
167
+      hisPatientInfo: Object,
168
+      record_date:String,
169 169
     },
170
-    data(){
171
-        return{
172
-            form:{
173
-                name:''
174
-            },
170
+    components: {
171
+      medicalRecord,
172
+      saveRecordTemplate
173
+    },
174
+    data() {
175
+      return {
176
+        case_history:{
177
+          sick_type:'',
178
+          symptom:"",
179
+          sick_date:"",
180
+          is_infect:"",
181
+          chief_conplaint:"",
182
+          history_of_present_illness:"",
183
+          past_history:"",
184
+          diagnostic:"",
185
+          personal_history:"",
186
+          family_history:"",
187
+
188
+        },
189
+        formValue:{
190
+          temperature:"",
191
+          blood_sugar:"",
192
+          pulse:"",
193
+          sbp:"",
194
+          dbp:"",
195
+          height:"",
196
+          blood_fat:"",
197
+        },
198
+        form: {
199
+          name: ''
175 200
         }
201
+      }
176 202
     },
177
-    methods:{
178
-        open(index){
179
-            if(index == 1){
180
-                
181
-            }else if(index == 2){
182
-                
183
-            }else if(index == 3){
184
-                this.$refs.medicalRecord.show()
185
-            }else if(index == 4){
186
-                this.$refs.saveRecordTemplate.show()
203
+    methods: {
204
+      getDictionaryDataConfig(module, filed_name) {
205
+        return getDictionaryDataConfig(module, filed_name)
206
+
207
+      },
208
+      setData(case_history,patientInfo,hisPatientInfo){
209
+        this.form.name = patientInfo.name
210
+
211
+
212
+
213
+      },
214
+      open(index) {
215
+        if (index == 1) {
216
+          if(this.patientInfo.id == undefined){
217
+            this.$message.error("请先选择病人")
218
+            return
219
+          }
220
+
221
+          let params = {
222
+            "patient_id":this.patientInfo.id,
223
+            "temperature":this.case_history.temperature,
224
+            "blood_sugar":this.case_history.blood_sugar,
225
+            "pulse":this.case_history.pulse,
226
+            "sbp":this.case_history.sbp,
227
+            "dbp":this.case_history.dbp,
228
+            "blood_fat":this.case_history.blood_fat,
229
+            "height":this.case_history.height,
230
+            "sick_type":this.case_history.sick_type,
231
+            "symptom":this.case_history.symptom,
232
+            "sick_date":this.case_history.sick_date,
233
+            "is_infect":this.case_history.is_infect,
234
+            "chief_conplaint":this.case_history.chief_conplaint,
235
+            "history_of_present_illness":this.case_history.history_of_present_illness,
236
+            "past_history":this.case_history.past_history,
237
+            "personal_history":this.case_history.personal_history,
238
+            "family_history":this.case_history.family_history,
239
+            "record_date":this.record_date,
240
+
241
+
242
+          }
243
+          createCaseHistory(params).then(response => {
244
+            if (response.data.state == 0) {
245
+              this.$message.error(response.data.msg)
246
+              return false
247
+            } else {
248
+              this.$message.success("保存成功")
187 249
             }
188
-            
189
-        },
250
+          })
251
+        } else if (index == 2) {
252
+
253
+        } else if (index == 3) {
254
+          this.$refs.medicalRecord.show()
255
+        } else if (index == 4) {
256
+          this.$refs.saveRecordTemplate.show()
257
+        }
258
+
259
+      }
190 260
     }
191
-}
261
+  }
192 262
 </script>
193 263
 
194 264
 
195 265
 <style lang="scss" scoped>
196
-.mainTitle{
197
-    font-size:18px;
198
-    font-weight:bold;
266
+  .mainTitle {
267
+    font-size: 18px;
268
+    font-weight: bold;
199 269
     margin-bottom: 10px;
200
-}
201
-.backColor{
270
+  }
271
+
272
+  .backColor {
202 273
     background: #f6f8f9;
203 274
     height: 5px;
204 275
     margin-bottom: 5px;
205
-}
206
-.deskRecord{
207
-    .basicForm{
208
-        display: flex;
209
-        flex-wrap: wrap;
210
-        .el-form-item{
211
-            width:32%;
212
-            margin-right: 1%;
213
-        }
214
-    }
215
-    .physiqueForm{
216
-        display: flex;
217
-        flex-wrap: wrap;
218
-        .el-form-item{
219
-            width:24%;
220
-            margin-right: 1%;
221
-        }
222
-    }
223
-    .recordForm{
224
-        display: flex;
225
-        flex-wrap: wrap;
226
-        .el-form-item{
227
-            width:24%;
228
-            margin-right: 1%;
229
-        }
230
-    }
231
-    
232
-}
276
+  }
277
+
278
+  .deskRecord {
279
+
280
+  .basicForm {
281
+    display: flex;
282
+    flex-wrap: wrap;
283
+
284
+  .el-form-item {
285
+    width: 32%;
286
+    margin-right: 1%;
287
+  }
288
+
289
+  }
290
+  .physiqueForm {
291
+    display: flex;
292
+    flex-wrap: wrap;
293
+
294
+  .el-form-item {
295
+    width: 24%;
296
+    margin-right: 1%;
297
+  }
298
+
299
+  }
300
+  .recordForm {
301
+    display: flex;
302
+    flex-wrap: wrap;
303
+
304
+  .el-form-item {
305
+    width: 24%;
306
+    margin-right: 1%;
307
+  }
308
+
309
+  }
310
+
311
+  }
233 312
 </style>
234 313
 
235 314
 <style lang="scss">
236
-.physiqueForm{
237
-    .el-form-item__content{
238
-        display: flex;
239
-    }
240
-    .el-input{
241
-        width:80px;
242
-        margin-right:5px;
243
-    }
244
-}
315
+  .physiqueForm {
316
+
317
+  .el-form-item__content {
318
+    display: flex;
319
+  }
320
+
321
+  .el-input {
322
+    width: 80px;
323
+    margin-right: 5px;
324
+  }
325
+
326
+  }
245 327
 </style>

+ 222 - 138
src/xt_pages/outpatientDoctorStation/components/prescriptionTable.vue Прегледај датотеку

@@ -1,148 +1,232 @@
1 1
 <template>
2
-    <div class="prescriptionTable">
3
-        <el-table :data="preDrugs" border style="width: 98%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
4
-            <el-table-column align="center" type="selection" width="40"></el-table-column>
5
-            <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
6
-            <el-table-column align="center" prop="name" label="名称">
7
-                <template slot-scope="scope">{{ scope.row.name }}</template>
8
-            </el-table-column>
9
-            <el-table-column align="center" prop="name" width="50" label="组套">
10
-                <template slot-scope="scope">
11
-                    <!-- <el-select v-model="value" placeholder="">
12
-                        <el-option
13
-                        v-for="item in newoptions"
14
-                        :key="item.value"
15
-                        :label="item.label"
16
-                        :value="item.value">
17
-                        </el-option>
18
-                    </el-select> -->
19
-                    <el-input v-model="input" placeholder=""></el-input>
20
-                </template>
21
-            </el-table-column>
22
-            <el-table-column align="center" prop="name" width="50" :label="'单次\n用量'">
23
-                <template slot-scope="scope">
24
-                    <el-input v-model="input" placeholder=""></el-input>
25
-                </template>
26
-            </el-table-column>
27
-            <el-table-column align="center" prop="name" width="50" label="用法">
28
-                <template slot-scope="scope">
29
-                    <!-- <el-select v-model="value" placeholder="">
30
-                        <el-option
31
-                        v-for="item in newoptions"
32
-                        :key="item.value"
33
-                        :label="item.label"
34
-                        :value="item.value">
35
-                        </el-option>
36
-                    </el-select> -->
37
-                    <el-input v-model="input" placeholder=""></el-input>
38
-                </template>
39
-            </el-table-column>
40
-            <el-table-column align="center" prop="name" width="50" label="频率">
41
-                <template slot-scope="scope">
42
-                    <!-- <el-select v-model="value" placeholder="">
43
-                        <el-option
44
-                        v-for="item in newoptions"
45
-                        :key="item.value"
46
-                        :label="item.label"
47
-                        :value="item.value">
48
-                        </el-option>
49
-                    </el-select> -->
50
-                    <el-input v-model="input" placeholder=""></el-input>
51
-                </template>
52
-            </el-table-column>
53
-            <el-table-column align="center" prop="name" width="50" label="天数">
54
-                <template slot-scope="scope">
55
-                    <!-- <el-select v-model="value" placeholder="">
56
-                        <el-option
57
-                        v-for="item in newoptions"
58
-                        :key="item.value"
59
-                        :label="item.label"
60
-                        :value="item.value">
61
-                        </el-option>
62
-                    </el-select> -->
63
-                    <el-input v-model="input" placeholder=""></el-input>
64
-                </template>
65
-            </el-table-column>
66
-            <el-table-column align="center" prop="name" width="100" label="总量">
67
-                <template slot-scope="scope">
68
-                    <div style="display:flex;">
69
-                        <el-input v-model="input" style="width:50%" placeholder=""></el-input>
70
-                        <!-- <el-select v-model="value" style="width:50%" placeholder="">
71
-                            <el-option
72
-                            v-for="item in newoptions"
73
-                            :key="item.value"
74
-                            :label="item.label"
75
-                            :value="item.value">
76
-                            </el-option>
77
-                        </el-select> -->
78
-                        <el-input v-model="input" style="width:50%" placeholder=""></el-input>
79
-                    </div>
80
-                </template>
81
-            </el-table-column>
82
-            <el-table-column align="center" prop="name" width="50" label="单价">
83
-                <template slot-scope="scope">
84
-                    <el-input v-model="scope.row.unitPrice" placeholder=""></el-input>
85
-                </template>
86
-            </el-table-column>
87
-            <el-table-column align="center" prop="name" width="50" label="备注">
88
-                <template slot-scope="scope">
89
-                    <!-- <el-autocomplete
90
-                    class="inline-input"
91
-                    v-model="state1"
92
-                    :fetch-suggestions="querySearch"
93
-                    placeholder=""
94
-                    @select="handleSelect"
95
-                    ></el-autocomplete> -->
96
-                </template>
97
-            </el-table-column>
98
-            <el-table-column align="center" width="40" prop="name" label="操作">
99
-                <template slot-scope="scope">
100
-                    <i class="el-icon-delete"></i>
101
-                </template>
102
-            </el-table-column>
103
-        </el-table>
104
-    </div>
2
+  <div class="prescriptionTable">
3
+    <el-table v-if="activeType  == '1'" :data="preDrugs" border style="width: 98%;" :row-style="{ color: '#303133' }"
4
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
5
+      <el-table-column align="center" type="selection" width="40"></el-table-column>
6
+      <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
7
+      <el-table-column align="center" prop="name" label="名称">
8
+        <template slot-scope="scope">{{ scope.row.name }}</template>
9
+      </el-table-column>
10
+
11
+      <el-table-column align="center" prop="name" width="50" :label="'单次\n用量'">
12
+        <template slot-scope="scope">
13
+          <el-input v-model="input" placeholder=""></el-input>
14
+        </template>
15
+      </el-table-column>
16
+      <el-table-column align="center" prop="name" width="50" label="用法">
17
+        <template slot-scope="scope">
18
+          <!-- <el-select v-model="value" placeholder="">
19
+              <el-option
20
+              v-for="item in newoptions"
21
+              :key="item.value"
22
+              :label="item.label"
23
+              :value="item.value">
24
+              </el-option>
25
+          </el-select> -->
26
+          <el-input v-model="input" placeholder=""></el-input>
27
+        </template>
28
+      </el-table-column>
29
+      <el-table-column align="center" prop="name" width="50" label="频率">
30
+        <template slot-scope="scope">
31
+          <!-- <el-select v-model="value" placeholder="">
32
+              <el-option
33
+              v-for="item in newoptions"
34
+              :key="item.value"
35
+              :label="item.label"
36
+              :value="item.value">
37
+              </el-option>
38
+          </el-select> -->
39
+          <el-input v-model="input" placeholder=""></el-input>
40
+        </template>
41
+      </el-table-column>
42
+
43
+      <el-table-column align="center" prop="name" width="100" label="总量">
44
+        <template slot-scope="scope">
45
+          <div style="display:flex;">
46
+            <el-input v-model="input" style="width:50%" placeholder=""></el-input>
47
+            <!-- <el-select v-model="value" style="width:50%" placeholder="">
48
+                <el-option
49
+                v-for="item in newoptions"
50
+                :key="item.value"
51
+                :label="item.label"
52
+                :value="item.value">
53
+                </el-option>
54
+            </el-select> -->
55
+            <el-input v-model="input" style="width:50%" placeholder=""></el-input>
56
+          </div>
57
+        </template>
58
+      </el-table-column>
59
+      <el-table-column align="center" prop="name" width="50" label="单价">
60
+        <template slot-scope="scope">
61
+          <el-input v-model="scope.row.unitPrice" placeholder=""></el-input>
62
+        </template>
63
+      </el-table-column>
64
+      <el-table-column align="center" prop="name" width="50" label="备注">
65
+        <template slot-scope="scope">
66
+          <!-- <el-autocomplete
67
+          class="inline-input"
68
+          v-model="state1"
69
+          :fetch-suggestions="querySearch"
70
+          placeholder=""
71
+          @select="handleSelect"
72
+          ></el-autocomplete> -->
73
+        </template>
74
+      </el-table-column>
75
+      <el-table-column align="center" width="40" prop="name" label="操作">
76
+        <template slot-scope="scope">
77
+          <i class="el-icon-delete"></i>
78
+        </template>
79
+      </el-table-column>
80
+    </el-table>
81
+    <el-table v-if="activeType  == '2'" :data="preDrugs" border style="width: 98%;" :row-style="{ color: '#303133' }"
82
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
83
+      <el-table-column align="center" type="selection" width="40"></el-table-column>
84
+      <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
85
+      <el-table-column align="center" prop="name" label="名称">
86
+        <template slot-scope="scope">{{ scope.row.name }}</template>
87
+      </el-table-column>
88
+      <el-table-column align="center" prop="name" width="50" label="组套">
89
+        <template slot-scope="scope">
90
+          <!-- <el-select v-model="value" placeholder="">
91
+              <el-option
92
+              v-for="item in newoptions"
93
+              :key="item.value"
94
+              :label="item.label"
95
+              :value="item.value">
96
+              </el-option>
97
+          </el-select> -->
98
+          <el-input v-model="input" placeholder=""></el-input>
99
+        </template>
100
+      </el-table-column>
101
+      <el-table-column align="center" prop="name" width="50" :label="'单次\n用量'">
102
+        <template slot-scope="scope">
103
+          <el-input v-model="input" placeholder=""></el-input>
104
+        </template>
105
+      </el-table-column>
106
+      <el-table-column align="center" prop="name" width="50" label="用法">
107
+        <template slot-scope="scope">
108
+          <!-- <el-select v-model="value" placeholder="">
109
+              <el-option
110
+              v-for="item in newoptions"
111
+              :key="item.value"
112
+              :label="item.label"
113
+              :value="item.value">
114
+              </el-option>
115
+          </el-select> -->
116
+          <el-input v-model="input" placeholder=""></el-input>
117
+        </template>
118
+      </el-table-column>
119
+      <el-table-column align="center" prop="name" width="50" label="频率">
120
+        <template slot-scope="scope">
121
+          <!-- <el-select v-model="value" placeholder="">
122
+              <el-option
123
+              v-for="item in newoptions"
124
+              :key="item.value"
125
+              :label="item.label"
126
+              :value="item.value">
127
+              </el-option>
128
+          </el-select> -->
129
+          <el-input v-model="input" placeholder=""></el-input>
130
+        </template>
131
+      </el-table-column>
132
+      <el-table-column align="center" prop="name" width="50" label="天数">
133
+        <template slot-scope="scope">
134
+          <!-- <el-select v-model="value" placeholder="">
135
+              <el-option
136
+              v-for="item in newoptions"
137
+              :key="item.value"
138
+              :label="item.label"
139
+              :value="item.value">
140
+              </el-option>
141
+          </el-select> -->
142
+          <el-input v-model="input" placeholder=""></el-input>
143
+        </template>
144
+      </el-table-column>
145
+      <el-table-column align="center" prop="name" width="100" label="总量">
146
+        <template slot-scope="scope">
147
+          <div style="display:flex;">
148
+            <el-input v-model="input" style="width:50%" placeholder=""></el-input>
149
+            <!-- <el-select v-model="value" style="width:50%" placeholder="">
150
+                <el-option
151
+                v-for="item in newoptions"
152
+                :key="item.value"
153
+                :label="item.label"
154
+                :value="item.value">
155
+                </el-option>
156
+            </el-select> -->
157
+            <el-input v-model="input" style="width:50%" placeholder=""></el-input>
158
+          </div>
159
+        </template>
160
+      </el-table-column>
161
+      <el-table-column align="center" prop="name" width="50" label="单价">
162
+        <template slot-scope="scope">
163
+          <el-input v-model="scope.row.unitPrice" placeholder=""></el-input>
164
+        </template>
165
+      </el-table-column>
166
+      <el-table-column align="center" prop="name" width="50" label="备注">
167
+        <template slot-scope="scope">
168
+          <!-- <el-autocomplete
169
+          class="inline-input"
170
+          v-model="state1"
171
+          :fetch-suggestions="querySearch"
172
+          placeholder=""
173
+          @select="handleSelect"
174
+          ></el-autocomplete> -->
175
+        </template>
176
+      </el-table-column>
177
+      <el-table-column align="center" width="40" prop="name" label="操作">
178
+        <template slot-scope="scope">
179
+          <i class="el-icon-delete"></i>
180
+        </template>
181
+      </el-table-column>
182
+    </el-table>
183
+
184
+  </div>
105 185
 </template>
106 186
 
107 187
 <script>
108
-export default {
109
-    props:{
110
-        preDrugs:Array,
188
+  export default {
189
+    props: {
190
+      preDrugs: Array,
191
+      activeType: String
111 192
     },
112
-    data(){
113
-        return{
114
-            tableData: [],
115
-            newoptions: [{
116
-            value: '1',
117
-            label: '1'
118
-            }, {
119
-            value: '2',
120
-            label: '2'
121
-            }, {
122
-            value: '3',
123
-            label: '3'
124
-            }, {
125
-            value: '4',
126
-            label: '4'
127
-            }, {
128
-            value: '5',
129
-            label: '5'
130
-            }],
131
-            value:'1',
132
-            input:1
133
-        }
193
+    data() {
194
+      return {
195
+        tableData: [],
196
+        newoptions: [{
197
+          value: '1',
198
+          label: '1'
199
+        }, {
200
+          value: '2',
201
+          label: '2'
202
+        }, {
203
+          value: '3',
204
+          label: '3'
205
+        }, {
206
+          value: '4',
207
+          label: '4'
208
+        }, {
209
+          value: '5',
210
+          label: '5'
211
+        }],
212
+        value: '1',
213
+        input: 1
214
+      }
134 215
     }
135
-}
216
+  }
136 217
 </script>
137 218
 
138 219
 <style lang="scss">
139
-.prescriptionTable{
140
-    .el-table th .cell, .el-table td .cell{
141
-        padding: 0 2px;
142
-        white-space: pre-line;
143
-    }
144
-    .el-icon-delete{
145
-        color:red;
146
-    }
147
-}
220
+  .prescriptionTable {
221
+
222
+  .el-table th .cell, .el-table td .cell {
223
+    padding: 0 2px;
224
+    white-space: pre-line;
225
+  }
226
+
227
+  .el-icon-delete {
228
+    color: red;
229
+  }
230
+
231
+  }
148 232
 </style>

+ 355 - 260
src/xt_pages/outpatientDoctorStation/doctorDesk.vue Прегледај датотеку

@@ -1,324 +1,419 @@
1 1
 <template>
2
-    <div class="main-contain new-main-contain">
3
-        <div class="position">
4
-            <bread-crumb :crumbs='crumbs'></bread-crumb>
2
+  <div class="main-contain new-main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+    </div>
6
+    <div class="app-container" style="display:flex;flex: 1;padding: 20px 20px 0px 20px;">
7
+      <div class="mainLeft">
8
+        <div class="mainCell" style="justify-content: space-between;">
9
+          <p>未就诊:<span>{{cal_one}}</span>人</p>
10
+          <p>已就诊:<span>{{cal_two}}</span>人</p>
11
+        </div>
12
+        <div class="mainCell">
13
+          <el-radio-group v-model="radio" @change="change">
14
+            <el-radio :label="1">未就诊</el-radio>
15
+            <el-radio :label="2">已就诊</el-radio>
16
+            <el-radio :label="0">全部</el-radio>
17
+          </el-radio-group>
18
+        </div>
19
+        <div class="mainCell" style="margin-bottom:10px;">
20
+          <el-input size="small" @keyup.enter.native='searchAction' v-model="search_input" class="filter-item"/>
21
+          <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">
22
+            搜索
23
+          </el-button>
5 24
         </div>
6
-        <div class="app-container" style="display:flex;flex: 1;padding: 20px 20px 0px 20px;">
7
-            <div class="mainLeft">
8
-                <div class="mainCell" style="justify-content: space-between;">
9
-                    <p>未就诊:<span>1</span>人</p>
10
-                    <p>已就诊:<span>0</span>人</p>
11
-                </div>
12
-                <div class="mainCell">
13
-                    <el-radio-group v-model="radio">
14
-                        <el-radio :label="1">未就诊</el-radio>
15
-                        <el-radio :label="2">已就诊</el-radio>
16
-                        <el-radio :label="3">全部</el-radio>
17
-                    </el-radio-group>
18
-                </div>
19
-                <div class="mainCell" style="margin-bottom:10px;">
20
-                    <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
21
-                    <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
22
-                </div>
23
-                <div style="flex:1;overflow-y:auto;">
24
-                    <el-table :data="patientTableData" @row-click='choosePatient' border style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
25
-                        <el-table-column align="center" prop="name" label="患者姓名">
26
-                            <template slot-scope="scope">{{ scope.row.name }}</template>
27
-                        </el-table-column>
28
-                        <el-table-column align="center" prop="name" label="就诊号" width="90">
29
-                            <template slot-scope="scope">{{ scope.row.mdtrt_id }}</template>
30
-                        </el-table-column>
31
-                    </el-table>
32
-                </div>
33
-            </div> 
34
-            <div class="mainRight">
35
-                <div class="mainHeader">
36
-                    <el-radio-group v-model="titleType">
37
-                        <el-radio-button label="处方"></el-radio-button>
38
-                        <el-radio-button label="病历"></el-radio-button>
39
-                    </el-radio-group>
40
-                </div>
41
-                <desk-prescription :patientInfo="patientInfo" v-if="titleType == '处方'" style="flex:1;"></desk-prescription>
42
-                <desk-record v-if="titleType == '病历'"></desk-record>
43
-            </div>
44
-            
25
+        <div style="flex:1;overflow-y:auto;">
26
+          <el-table :data="patientTableData" @row-click='choosePatient' border style="width: 100%;"
27
+                    :row-style="{ color: '#303133' }"
28
+                    :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
29
+            <el-table-column align="center" prop="name" label="患者姓名">
30
+              <template slot-scope="scope">{{ scope.row.patients.name }}</template>
31
+            </el-table-column>
32
+            <el-table-column align="center" prop="name" label="就诊号" width="90">
33
+              <template slot-scope="scope">{{ scope.row.his_patient.number }}</template>
34
+            </el-table-column>
35
+          </el-table>
45 36
         </div>
37
+      </div>
38
+      <div class="mainRight">
39
+        <div class="mainHeader">
40
+          <el-radio-group v-model="titleType" @change="changeTab">
41
+            <el-radio-button label="处方"></el-radio-button>
42
+            <el-radio-button label="病历"></el-radio-button>
43
+          </el-radio-group>
44
+        </div>
45
+        <desk-prescription :prescriptions="prescriptions" :patientInfo="patientInfo" :hisPatientInfo="hisPatientInfo" v-if="titleType == '处方'" style="flex:1;"></desk-prescription>
46
+        <desk-record :record_date="record_date" :case_history="case_history" :patientInfo="patientInfo" :hisPatientInfo="hisPatientInfo"  v-if="titleType == '病历'"></desk-record>
47
+      </div>
48
+
46 49
     </div>
50
+  </div>
47 51
 </template>
48 52
 
49 53
 <script>
50
-import BreadCrumb from '@/xt_pages/components/bread-crumb'
51
-import deskPrescription from './components/deskPrescription'
52
-import deskRecord from './components/deskRecord'
53
-export default {
54
-    components:{
55
-        BreadCrumb,
56
-        deskPrescription,
57
-        deskRecord
54
+  import BreadCrumb from '@/xt_pages/components/bread-crumb'
55
+  import deskPrescription from './components/deskPrescription'
56
+  import deskRecord from './components/deskRecord'
57
+  import { getPatientInfo, getSchedulePatientList } from '@/api/his/his'
58
+
59
+  import {
60
+    uParseTime
61
+  } from "@/utils/tools";
62
+  export default {
63
+    components: {
64
+      BreadCrumb,
65
+      deskPrescription,
66
+      deskRecord
58 67
     },
59
-    data(){
60
-        return{
61
-            crumbs: [
62
-                { path: false, name: '门诊医生站' },
63
-                { path: false, name: '医生工作台' }
64
-            ],
65
-            titleType:'处方',
66
-            patientTableData:[{
67
-                name:'杨美英',
68
-                mdtrt_id:"1709946",
69
-            }],
70
-            tableData: [{
71
-            date: '2016-05-02',
72
-            name: '王小虎',
73
-            address: '上海市普陀区金沙江路 1518 弄'
74
-            }, {
75
-            date: '2016-05-04',
76
-            name: '王小虎',
77
-            address: '上海市普陀区金沙江路 1517 弄'
78
-            }, {
79
-            date: '2016-05-01',
80
-            name: '王小虎',
81
-            address: '上海市普陀区金沙江路 1519 弄'
82
-            }, {
83
-            date: '2016-05-03',
84
-            name: '王小虎',
85
-            address: '上海市普陀区金沙江路 1516 弄'
86
-            },{
87
-            date: '2016-05-02',
88
-            name: '王小虎',
89
-            address: '上海市普陀区金沙江路 1518 弄'
90
-            }, {
91
-            date: '2016-05-04',
92
-            name: '王小虎',
93
-            address: '上海市普陀区金沙江路 1517 弄'
94
-            }, {
95
-            date: '2016-05-01',
96
-            name: '王小虎',
97
-            address: '上海市普陀区金沙江路 1519 弄'
98
-            }, {
99
-            date: '2016-05-03',
100
-            name: '王小虎',
101
-            address: '上海市普陀区金沙江路 1516 弄'
102
-            },{
103
-            date: '2016-05-02',
104
-            name: '王小虎',
105
-            address: '上海市普陀区金沙江路 1518 弄'
106
-            }, {
107
-            date: '2016-05-04',
108
-            name: '王小虎',
109
-            address: '上海市普陀区金沙江路 1517 弄'
110
-            }, {
111
-            date: '2016-05-01',
112
-            name: '王小虎',
113
-            address: '上海市普陀区金沙江路 1519 弄'
114
-            }, {
115
-            date: '2016-05-03',
116
-            name: '王小虎',
117
-            address: '上海市普陀区金沙江路 1516 弄'
118
-            }, {
119
-            date: '2016-05-04',
120
-            name: '王小虎',
121
-            address: '上海市普陀区金沙江路 1517 弄'
122
-            }, {
123
-            date: '2016-05-01',
124
-            name: '王小虎',
125
-            address: '上海市普陀区金沙江路 1519 弄'
126
-            }, {
127
-            date: '2016-05-03',
128
-            name: '王小虎',
129
-            address: '上海市普陀区金沙江路 1516 弄'
130
-            }],
131
-            patientInfo:{}
132
-        }
68
+    data() {
69
+      return {
70
+        prescriptions:[
71
+          {
72
+            name:"处方1",
73
+            advice:[],
74
+            project:[],
75
+          }
76
+        ],
77
+        search_input: '',
78
+        cal_one: 0,
79
+        cal_two: 0,
80
+        radio: 0,
81
+        record_date: '',
82
+        crumbs: [
83
+          { path: false, name: '门诊医生站' },
84
+          { path: false, name: '医生工作台' }
85
+        ],
86
+        titleType: '处方',
87
+        patientTableData: [{}],
88
+        patientInfo: {},
89
+        hisPatientInfo: {},
90
+        case_history:{},
91
+      }
133 92
     },
134
-    methods:{
135
-        choosePatient(){
136
-            this.patientInfo = {
137
-                certno:"440221195903290027",
138
-                psn_no:"0221201972",
139
-                gend:"2",
140
-                brdy:"1960-03-29",
141
-                naty:"01",
142
-                psn_cert_type:"01",
143
-                psn_name:"杨美英",
144
-                age:60.7
93
+    methods: {
94
+      changeTab(val){
95
+
96
+
97
+
98
+      },
99
+      searchAction() {
100
+
101
+      },
102
+      change(val) {
103
+        this.getList()
104
+
105
+      },
106
+      getList() {
107
+        let params = {
108
+          'record_date': this.record_date,
109
+          'type': this.radio
110
+        }
111
+        getSchedulePatientList(params).then(response => {
112
+          if (response.data.state == 0) {
113
+            this.$message.error(response.data.msg)
114
+            return false
115
+          } else {
116
+            this.patientTableData = response.data.data.list
117
+
118
+            let cal_one = 0
119
+            let cal_two = 0
120
+            for (let i = 0; i < response.data.data.list.length; i++) {
121
+              if (response.data.data.list[i].prescription == null || response.data.data.list[i].prescription.length == 0) {
122
+                cal_one = cal_one + 1
123
+              }
124
+              if (response.data.data.list[i].prescription != null && response.data.data.list[i].prescription.length > 0) {
125
+                cal_two = cal_two + 1
126
+              }
145 127
             }
128
+
129
+            this.cal_one = cal_one
130
+            this.cal_two = cal_two
131
+          }
132
+        })
133
+      },
134
+      choosePatient(val) {
135
+        let params = {
136
+          'record_date': this.record_date,
137
+          'patient_id': val.patients.id
146 138
         }
139
+        getPatientInfo(params).then(response => {
140
+          if (response.data.state == 0) {
141
+            this.$message.error(response.data.msg)
142
+            return false
143
+          } else {
144
+            this.patientInfo = response.data.data.xt_info
145
+            this.hisPatientInfo = response.data.data.his_info
146
+            this.case_history = response.data.data.case_history
147
+            this.patientInfo.birth = uParseTime(this.patientInfo.birthday, "{y}-{m}-{d}");
148
+            if(this.case_history.temperature <= 0){
149
+              this.case_history.temperature = ""
150
+            }
151
+            if(this.case_history.blood_sugar <= 0){
152
+              this.case_history.blood_sugar = ""
153
+            }
154
+            if(this.case_history.pulse <= 0){
155
+              this.case_history.pulse = ""
156
+            }
157
+            if(this.case_history.sbp <= 0){
158
+              this.case_history.sbp = ""
159
+            }
160
+            if(this.case_history.dbp <= 0){
161
+              this.case_history.dbp = ""
162
+            }
163
+            if(this.case_history.height <= 0){
164
+              this.case_history.height = ""
165
+            }
166
+            if(this.case_history.blood_fat <= 0){
167
+              this.case_history.blood_fat = ""
168
+            }
169
+            if(this.case_history.sick_type <= 0){
170
+              this.case_history.sick_type = ""
171
+            }
172
+            this.case_history.sick_date = uParseTime(this.case_history.sick_date, "{y}-{m}-{d}");
173
+            if(this.case_history.is_infect == 1){
174
+              this.case_history.is_infect = true
175
+            }else{
176
+              this.case_history.is_infect = false
177
+
178
+            }
179
+
180
+
181
+          }
182
+        })
183
+
184
+        // this.patientInfo = {
185
+        //     certno:"440221195903290027",
186
+        //     psn_no:"0221201972",
187
+        //     gend:"2",
188
+        //     brdy:"1960-03-29",
189
+        //     naty:"01",
190
+        //     psn_cert_type:"01",
191
+        //     psn_name:"杨美英",
192
+        //     age:60.7
193
+        // }
194
+      }
195
+    }, created() {
196
+      var nowDate = new Date()
197
+      var nowYear = nowDate.getFullYear()
198
+      var nowMonth = nowDate.getMonth() + 1
199
+      var nowDay = nowDate.getDate()
200
+      this.record_date =
201
+        nowYear +
202
+        '-' +
203
+        (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
204
+        '-' +
205
+        (nowDay < 10 ? '0' + nowDay : nowDay)
206
+      this.getList()
207
+
147 208
     }
148
-}
209
+  }
149 210
 </script>
150 211
 
151 212
 <style lang="scss" scoped>
152
-.new-main-contain{
213
+  .new-main-contain {
153 214
     height: 100%;
154 215
     display: flex;
155 216
     flex-direction: column;
156
-}
157
-.app-container{
158
-    height:100%;
159
-}
160
-.mainCell{
161
-    height:36px;
217
+  }
218
+
219
+  .app-container {
220
+    height: 100%;
221
+  }
222
+
223
+  .mainCell {
224
+    height: 36px;
162 225
     display: flex;
163 226
     align-items: center;
164
-}
165
-.mainLeft{
166
-    width:200px;
227
+  }
228
+
229
+  .mainLeft {
230
+    width: 200px;
167 231
     height: 100%;
168 232
     display: flex;
169 233
     flex-direction: column;
170
-    .el-radio{
171
-        margin-right:5px;
172
-    }
173
-    
174
-}
175
-.mainRight{
176
-    margin-left:20px;
177
-    flex:1;
234
+
235
+  .el-radio {
236
+    margin-right: 5px;
237
+  }
238
+
239
+  }
240
+  .mainRight {
241
+    margin-left: 20px;
242
+    flex: 1;
178 243
     height: 100%;
179 244
     display: flex;
180 245
     flex-direction: column;
181 246
     overflow-y: auto;
182
-    .cellSpan{
183
-        min-width: 80px;
184
-        display: inline-block;
185
-        margin-right: 10px;
186
-    }
187
-}
188
-.mainCenter{
247
+
248
+  .cellSpan {
249
+    min-width: 80px;
250
+    display: inline-block;
251
+    margin-right: 10px;
252
+  }
253
+
254
+  }
255
+  .mainCenter {
189 256
     display: flex;
190
-    flex:1;
191
-}
192
-.centerLeft{
257
+    flex: 1;
258
+  }
259
+
260
+  .centerLeft {
193 261
     flex: 1;
194 262
     display: flex;
195 263
     flex-direction: column;
196 264
     position: relative;
197
-    .el-form-item{
198
-        width:32%;
199
-        margin-right: 1%;
200
-        float: left;
201
-    }
202
-    .el-form-item__label{
203
-        text-align: left;
204
-    }
205
-}
206
-.backColor{
265
+
266
+  .el-form-item {
267
+    width: 32%;
268
+    margin-right: 1%;
269
+    float: left;
270
+  }
271
+
272
+  .el-form-item__label {
273
+    text-align: left;
274
+  }
275
+
276
+  }
277
+  .backColor {
207 278
     background: #f6f8f9;
208 279
     height: 5px;
209 280
     margin-bottom: 5px;
210
-}
211
-.tabsBox{
281
+  }
282
+
283
+  .tabsBox {
212 284
     position: relative;
213 285
     height: 76%;
214 286
     overflow-y: auto;
215 287
     margin-bottom: 60px;
216
-    .el-tabs__item{
217
-        padding: 0 10px;
218
-    }
219
-}
220
-.preTabs{
221
-    height:100%;
222
-}
223
-.costBox{
224
-    width:100%;
225
-    height:60px;
226
-    background:#fff;
288
+
289
+  .el-tabs__item {
290
+    padding: 0 10px;
291
+  }
292
+
293
+  }
294
+  .preTabs {
295
+    height: 100%;
296
+  }
297
+
298
+  .costBox {
299
+    width: 100%;
300
+    height: 60px;
301
+    background: #fff;
227 302
     position: absolute;
228
-    bottom:0;
303
+    bottom: 0;
229 304
     display: flex;
230 305
     align-items: center;
231
-}
232
-.addTab{
306
+  }
307
+
308
+  .addTab {
233 309
     position: absolute;
234 310
     right: 0;
235 311
     top: 14px;
236 312
     z-index: 20;
237
-}
238
-.centerRight{
313
+  }
314
+
315
+  .centerRight {
239 316
     width: 300px;
240 317
     margin-left: 5px;
241 318
     display: flex;
242 319
     flex-direction: column;
243 320
     position: relative;
244
-}
245
-.rightTab{
321
+  }
322
+
323
+  .rightTab {
246 324
     height: 40px;
247 325
     width: 100%;
248 326
     border: 1px solid #d2d2d2;
249 327
     box-sizing: border-box;
250
-    
251
-    p{
252
-        width: 50%;
253
-        height: 40px;
254
-        line-height: 40px;
255
-        text-align: center;
256
-        background: #eee;
257
-        float: left;
258
-    }
259
-    >p:last-child{
260
-      border-left: 1px solid #d2d2d2;  
261
-      float: right;
262
-    }
263
-    .activeP{
264
-        background: #409EFF;
265
-        color:#fff;
266
-    }
267
-}
268
-.comfirmBox{
269
-    width:100%;
270
-    height:60px;
271
-    background:#fff;
328
+
329
+  p {
330
+    width: 50%;
331
+    height: 40px;
332
+    line-height: 40px;
333
+    text-align: center;
334
+    background: #eee;
335
+    float: left;
336
+  }
337
+
338
+  > p:last-child {
339
+    border-left: 1px solid #d2d2d2;
340
+    float: right;
341
+  }
342
+
343
+  .activeP {
344
+    background: #409EFF;
345
+    color: #fff;
346
+  }
347
+
348
+  }
349
+  .comfirmBox {
350
+    width: 100%;
351
+    height: 60px;
352
+    background: #fff;
272 353
     position: absolute;
273
-    bottom:0;
354
+    bottom: 0;
274 355
     display: flex;
275 356
     align-items: center;
276 357
     justify-content: space-between;
277
-}
358
+  }
278 359
 </style>
279 360
 
280 361
 <style lang="scss">
281
-.centerLeft{
282
-    .el-form-item__label{
283
-        text-align: left;
284
-    }
285
-}
286
-.tabsBox{
287
-    .el-tabs__item{
288
-        padding: 0 10px;
289
-    }
290
-    .el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){
291
-        padding: 0 10px;
292
-    }
293
-    .el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child, .el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child, .el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child, .el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child, .el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{
294
-        padding: 0 10px;
295
-    }
296
-    .el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{
297
-        padding: 0 10px;
298
-    }
299
-}
300
-.centerRight{
301
-    .el-tabs__nav-scroll{
302
-        display: flex;
303
-    }
304
-    .el-tabs__nav{
305
-        margin: 0 auto;
306
-    }
307
-    .el-table th .cell, .el-table td .cell{
308
-        padding: 0 2px;
309
-    }
310
-}
311
-.preTabs{
312
-    // .el-tabs__content{
313
-    //     height:69%;
314
-    //     overflow-y: auto;
315
-    // }
316
-}
317
-.rightTabs{
362
+  .centerLeft {
363
+
364
+  .el-form-item__label {
365
+    text-align: left;
366
+  }
367
+
368
+  }
369
+  .tabsBox {
370
+
371
+  .el-tabs__item {
372
+    padding: 0 10px;
373
+  }
374
+
375
+  .el-tabs--bottom .el-tabs--left > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom .el-tabs--right > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom.el-tabs--border-card > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom.el-tabs--card > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top .el-tabs--left > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top .el-tabs--right > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top.el-tabs--border-card > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top.el-tabs--card > .el-tabs__header .el-tabs__item:nth-child(2) {
376
+    padding: 0 10px;
377
+  }
378
+
379
+  .el-tabs--bottom .el-tabs--left > .el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom .el-tabs--right > .el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom.el-tabs--border-card > .el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom.el-tabs--card > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top .el-tabs--left > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top .el-tabs--right > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top.el-tabs--border-card > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top.el-tabs--card > .el-tabs__header .el-tabs__item:last-child {
380
+    padding: 0 10px;
381
+  }
382
+
383
+  .el-tabs--card > .el-tabs__header .el-tabs__item.is-active.is-closable {
384
+    padding: 0 10px;
385
+  }
386
+
387
+  }
388
+  .centerRight {
389
+
390
+  .el-tabs__nav-scroll {
391
+    display: flex;
392
+  }
393
+
394
+  .el-tabs__nav {
395
+    margin: 0 auto;
396
+  }
397
+
398
+  .el-table th .cell, .el-table td .cell {
399
+    padding: 0 2px;
400
+  }
401
+
402
+  }
403
+  .preTabs {
404
+
405
+  .el-tabs__content {
406
+
407
+  }
408
+
409
+  }
410
+  .rightTabs {
318 411
     height: 100%;
319
-    // .el-tabs__content{
320
-    //     height:72%;
321
-    //     overflow-y: auto;
322
-    // }
323
-}
412
+
413
+
414
+  .el-tabs__content {
415
+
416
+  }
417
+
418
+  }
324 419
 </style>