Browse Source

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

csx 4 years ago
parent
commit
af4fbc7544

+ 2 - 1
src/api/his/his.js View File

21
 
21
 
22
 
22
 
23
 export function createCaseHistory(params) {
23
 export function createCaseHistory(params) {
24
+  console.log("params",params)
24
   return request({
25
   return request({
25
     url: "/api/doctorworkstation/casehistory/create",
26
     url: "/api/doctorworkstation/casehistory/create",
26
-    method: "post",
27
+    method: "get",
27
     params:params
28
     params:params
28
   });
29
   });
29
 }
30
 }

+ 48 - 1
src/api/project/project.js View File

1
 import request from "@/utils/request";
1
 import request from "@/utils/request";
2
+import url from "postcss-url";
2
 
3
 
3
 export function saveProject(params){
4
 export function saveProject(params){
4
 
5
 
270
       method:"get",
271
       method:"get",
271
       params:params
272
       params:params
272
     })
273
     })
273
-  }
274
+  }
275
+
276
+
277
+  export function getPatientCaseHistory(params){
278
+     
279
+    return request({
280
+        url:"/api/patient/getpatientcasehistory",
281
+        method:"get",
282
+        params:params
283
+    })
284
+  }
285
+
286
+  export function SaveHisPatientCaseHistoryTemplate(params){
287
+      
288
+    return request({
289
+       url:"/api/doctorworkstation/casehistorytemplate/create",
290
+       method:"get",
291
+       params:params
292
+    })
293
+  }
294
+
295
+  export function getHistoryTemplate(params){
296
+   
297
+    return request({
298
+      url:"/api/doctorworkstation/casehistorytemplate/get",
299
+      method:"get",
300
+      params:params
301
+    })
302
+  }
303
+
304
+  export function getTemplateDetail(id,params){
305
+     
306
+     return request({
307
+        url:"/api/doctorworkstation/gettemplatedetail?id="+id,
308
+        method:"get",
309
+        params:params
310
+     })
311
+  }
312
+
313
+  export function updateRecordTemplate(params){
314
+    
315
+    return request({
316
+        url:"/api/doctorworkstation/updaterecordtemplate",
317
+        method:"get",
318
+        params:params  
319
+    })
320
+  } 

+ 45 - 23
src/xt_pages/data/components/addInspection.vue View File

45
                 </el-form-item>
45
                 </el-form-item>
46
   
46
   
47
                  <el-form-item label="组套明细" style="width:50%;">
47
                  <el-form-item label="组套明细" style="width:50%;">
48
-                    <el-select v-model="form.project_detail" placeholder="请选择">
48
+                    <el-select v-model="form.project_detail" placeholder="请选择"
49
+                     @change="chagneInspection">
49
                         <el-option
50
                         <el-option
50
                         v-for="item in projectList"
51
                         v-for="item in projectList"
51
                         :key="item.id"
52
                         :key="item.id"
110
 
111
 
111
 <script>
112
 <script>
112
 import { getDictionaryDataConfig,getDataConfig } from "@/utils/data";
113
 import { getDictionaryDataConfig,getDataConfig } from "@/utils/data";
113
-import { saveProjectTeam,getAllProjectList,addProjectList,DeleteProject } from "@/api/project/project"
114
+import { saveProjectTeam,getAllProjectList,addProjectList,DeleteProject,getProjectDetail } from "@/api/project/project"
114
 export default {
115
 export default {
115
     data(){
116
     data(){
116
         return{
117
         return{
142
               team_type: [{ required:true,message:'请填写组套类型',trigger:'change' }]
143
               team_type: [{ required:true,message:'请填写组套类型',trigger:'change' }]
143
            },
144
            },
144
            tableData:[],
145
            tableData:[],
145
-           projectList:[]
146
+           projectList:[],
147
+           tabList:[],
146
         }
148
         }
147
     },
149
     },
148
     methods:{
150
     methods:{
168
          this.visible = false
170
          this.visible = false
169
         },
171
         },
170
         submitAction(formName){
172
         submitAction(formName){
171
-          
172
            this.$refs[formName].validate((valid)=>{
173
            this.$refs[formName].validate((valid)=>{
173
                 var arr = []
174
                 var arr = []
174
                 for(let i=0;i<this.tableData.length;i++){
175
                 for(let i=0;i<this.tableData.length;i++){
200
                    this.form.tube_color = "",
201
                    this.form.tube_color = "",
201
                    this.form.team_type = "",
202
                    this.form.team_type = "",
202
                    this.form.remark = ""
203
                    this.form.remark = ""
204
+                   this.tableData = []
205
+                   this.form.number = ""
203
                    this.$parent.getlist()
206
                    this.$parent.getlist()
204
                  }else{
207
                  }else{
205
                     this.$message.error("项目组套名称已存在!")
208
                     this.$message.error("项目组套名称已存在!")
213
                var projectList = response.data.data.projectList
216
                var projectList = response.data.data.projectList
214
                console.log('projectlist33333',projectList)
217
                console.log('projectlist33333',projectList)
215
                this.projectList = projectList
218
                this.projectList = projectList
216
-               var hisprojectlist = response.data.data.hisprojectlist
217
-               console.log("hisprojectlist",hisprojectlist)
218
-               this.tableData = hisprojectlist
219
+            //    var hisprojectlist = response.data.data.hisprojectlist
220
+            //    console.log("hisprojectlist",hisprojectlist)
221
+            //    this.tableData = hisprojectlist
219
              }
222
              }
220
           })   
223
           })   
221
         },
224
         },
222
-        addProjectList(){
223
-            const params = {
224
-              id:this.form.project_detail,
225
-              number:parseInt(this.form.number)
226
-            }
227
-           console.log("params",params)
228
-          addProjectList(params).then(response=>{
229
-             if(response.data.state == 1){
230
-               var projectList = response.data.data.projectList
231
-               this.$message.success("保存成功")
232
-               this.form.project_detail = ""
233
-               this.form.number = ""
234
-               this.getlist()
235
-             }
236
-          })
237
-        },
225
+       
238
         getId(id){
226
         getId(id){
239
           var name = ""
227
           var name = ""
240
           var statistics_category =  getDictionaryDataConfig('system','statistics_category') 
228
           var statistics_category =  getDictionaryDataConfig('system','statistics_category') 
246
           }
234
           }
247
           return name
235
           return name
248
         },
236
         },
237
+        chagneInspection(id){
238
+           getProjectDetail(id).then(response=>{
239
+              if(response.data.state == 1){
240
+               var projectdetail = response.data.data.projecDetail
241
+               console.log("projectdetail",projectdetail)
242
+               this.tableData.push(projectdetail)
243
+              }
244
+           })
245
+        },
246
+       addProjectList(){
247
+          for(let i=0;i<this.tabList.length;i++){
248
+            if(this.form.project_detail == this.tabList[i].id){
249
+                this.tabList[i].number = this.form.number
250
+            }
251
+         }
252
+         this.tableData = []
253
+         this.tableData = this.tabList
254
+         
255
+       
256
+        //     const params = {
257
+        //       id:this.form.project_detail,
258
+        //       number:parseInt(this.form.number)
259
+        //     }
260
+        //    console.log("params",params)
261
+        //   addProjectList(params).then(response=>{
262
+        //      if(response.data.state == 1){
263
+        //        var projectList = response.data.data.projectList
264
+        //        this.$message.success("保存成功")
265
+        //        this.form.project_detail = ""
266
+        //        this.form.number = ""
267
+        //        this.getlist()
268
+        //      }
269
+        //   })
270
+        },
249
         DeleteProject(id,index){
271
         DeleteProject(id,index){
250
            this.$confirm("确认删除此项目吗?", "删除", {
272
            this.$confirm("确认删除此项目吗?", "删除", {
251
             confirmButtonText: "确 定",
273
             confirmButtonText: "确 定",

+ 3 - 1
src/xt_pages/data/components/inspection.vue View File

115
         this.page = val
115
         this.page = val
116
         this.getlist()
116
         this.getlist()
117
       },
117
       },
118
-        searchAction(){},
118
+        searchAction(){
119
+          this.getlist()  
120
+        },
119
         clickSelfPayment(){
121
         clickSelfPayment(){
120
             this.$refs.selfPayment.show();
122
             this.$refs.selfPayment.show();
121
         },
123
         },

+ 11 - 6
src/xt_pages/data/components/project.vue View File

4
             <div class="cell clearfix" style="margin-bottom:0;">
4
             <div class="cell clearfix" style="margin-bottom:0;">
5
                 <el-input style="width: 180px;margin-right:10px;" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
5
                 <el-input style="width: 180px;margin-right:10px;" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
6
                 <el-button style="margin-right:10px;" class="filter-item" type="primary" icon="el-icon-search" @click="searchAction" >搜索</el-button>
6
                 <el-button style="margin-right:10px;" class="filter-item" type="primary" icon="el-icon-search" @click="searchAction" >搜索</el-button>
7
-                <label class="title"><span class="name">是否启用</span> : </label>
7
+                <label class="title"><span class="name">状态</span> : </label>
8
                 <el-select v-model="is_start" style="width:140px;margin-right:10px;" placeholder="请选择" @change="changeStart">
8
                 <el-select v-model="is_start" style="width:140px;margin-right:10px;" placeholder="请选择" @change="changeStart">
9
                     <el-option
9
                     <el-option
10
                     v-for="item in options"
10
                     v-for="item in options"
13
                     :value="item.value">
13
                     :value="item.value">
14
                     </el-option>
14
                     </el-option>
15
                 </el-select>
15
                 </el-select>
16
-                <label class="title"><span class="name">是否收费</span> : </label>
17
-                <el-select v-model="is_charge" style="width:140px;margin-right:10px;" placeholder="请选择">
16
+                <label class="title"><span class="name">是否收费预估项:</span> : </label>
17
+                <el-select v-model="is_charge" style="width:140px;margin-right:10px;" placeholder="请选择" @change="changeOption">
18
                     <el-option
18
                     <el-option
19
                     v-for="item in optionOne"
19
                     v-for="item in optionOne"
20
                     :key="item.value"
20
                     :key="item.value"
116
         }
116
         }
117
     },
117
     },
118
     methods:{
118
     methods:{
119
-        changeStart(id){
120
-          console.log("id",id)
119
+        changeStart(){
120
+         this.getlist()
121
         },
121
         },
122
         handleSizeChange(val) {
122
         handleSizeChange(val) {
123
             this.limit = val
123
             this.limit = val
127
             this.page = val
127
             this.page = val
128
             this.getlist()
128
             this.getlist()
129
         },
129
         },
130
-        searchAction(){},
130
+        searchAction(){
131
+           this.getlist()   
132
+        },
131
         clickSelfPayment(){
133
         clickSelfPayment(){
132
             this.$refs.selfPayment.show();
134
             this.$refs.selfPayment.show();
133
         },
135
         },
194
              });
196
              });
195
             })
197
             })
196
             .catch(() => {});
198
             .catch(() => {});
199
+        },
200
+        changeOption(){
201
+          this.getlist()
197
         }
202
         }
198
         
203
         
199
     },
204
     },

+ 34 - 17
src/xt_pages/outpatientDoctorStation/components/deskPrescription.vue View File

1
 <template>
1
 <template>
2
-  <div style="height: calc(100% - 36px);display: flex;flex-direction: column;">
3
-    <div style="border-top:1px solid #e5e5e5;margin-top:5px;">
2
+  <div style="height: calc(100% - 36px);display: flex;flex-direction: column;margin-top: 36px;">
3
+    <!-- <div style="border-top:1px solid #e5e5e5;margin-top:5px;">
4
       <div class="mainCell" style="margin-bottom:10px;float:right">
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>
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>
6
         <el-button size="small" @click="open(2)" type="primary">打印</el-button>
7
         <el-button size="small" @click="open(4)" type="primary">选择模板</el-button>
7
         <el-button size="small" @click="open(4)" type="primary">选择模板</el-button>
8
         <el-button size="small" @click="open(5)" type="primary">存模板</el-button>
8
         <el-button size="small" @click="open(5)" type="primary">存模板</el-button>
9
       </div>
9
       </div>
10
-    </div>
10
+    </div> -->
11
     <div class="backColor"></div>
11
     <div class="backColor"></div>
12
     <div class="mainCenter">
12
     <div class="mainCenter">
13
       <div class="centerLeft">
13
       <div class="centerLeft">
100
           <p :class="rightTab == 2 ? 'activeP' : ''" @click="clickTab(2)">项目</p>
100
           <p :class="rightTab == 2 ? 'activeP' : ''" @click="clickTab(2)">项目</p>
101
         </div>
101
         </div>
102
         <template>
102
         <template>
103
-          <!--<div style="margin-top:5px;">-->
104
-          <!--<el-input style="width:50%;" v-model="input" placeholder=""></el-input>-->
105
-          <!--<el-select style="float: right;width: 49%;" v-model="value" placeholder="">-->
106
-          <!--<el-option-->
107
-          <!--v-for="item in options"-->
108
-          <!--:key="item.value"-->
109
-          <!--:label="item.label"-->
110
-          <!--:value="item.value">-->
111
-          <!--</el-option>-->
112
-          <!--</el-select>-->
113
-          <!--</div>-->
114
           <div style="height:84%;overflow-y: auto;margin-bottom: 60px;" v-show="showOne">
103
           <div style="height:84%;overflow-y: auto;margin-bottom: 60px;" v-show="showOne">
115
             <el-tabs class="rightTabs" v-model="activeName">
104
             <el-tabs class="rightTabs" v-model="activeName">
116
               <el-tab-pane label="药品列表" name="1">
105
               <el-tab-pane label="药品列表" name="1">
106
+                <div style="margin-bottom:5px;">
107
+                  <el-input style="width:50%;" v-model="input" placeholder=""></el-input>
108
+                  <el-select style="margin-right:5px;width:100px;" v-model="value" placeholder="" @change="changeKind">
109
+                    <el-option
110
+                      label="全部"
111
+                      value="0">
112
+                    </el-option>
113
+                    <el-option
114
+                      v-for="(item,index) in getDictionaryDataConfig('system','drug_type')"
115
+                      :key="index"
116
+                      :label="item.name"
117
+                      :value="item.id">
118
+                    </el-option>
119
+                  </el-select>
120
+                </div>
117
                 <el-table ref="multipleTable" :data="drugs" border @select='selectDrugs' style="width: 100%;"
121
                 <el-table ref="multipleTable" :data="drugs" border @select='selectDrugs' style="width: 100%;"
118
                           :row-style="{ color: '#303133' }"
122
                           :row-style="{ color: '#303133' }"
119
                           @select-all="changeAllGoodInfoTableData"
123
                           @select-all="changeAllGoodInfoTableData"
133
 
137
 
134
               </el-tab-pane>
138
               </el-tab-pane>
135
               <el-tab-pane label="医嘱模板" name="2">
139
               <el-tab-pane label="医嘱模板" name="2">
140
+                <div style="margin-bottom:5px;">
141
+                  <el-input style="width:50%;" v-model="input" placeholder=""></el-input>
142
+                  <el-select style="float: right;width: 49%;" v-model="value" placeholder="">
143
+                      <el-option
144
+                      v-for="item in options"
145
+                      :key="item.value"
146
+                      :label="item.label"
147
+                      :value="item.value">
148
+                      </el-option>
149
+                  </el-select>
150
+                </div>
136
                 <el-table ref="multipleTableTwo" :data="advices_template" border style="width: 100%;"
151
                 <el-table ref="multipleTableTwo" :data="advices_template" border style="width: 100%;"
137
                           :row-style="{ color: '#303133' }"
152
                           :row-style="{ color: '#303133' }"
138
                           :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
153
                           :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
190
           </div>
205
           </div>
191
 
206
 
192
           <div class="comfirmBox">
207
           <div class="comfirmBox">
193
-            <div>
208
+            <!-- <div>
194
               <span>药品类型:</span>
209
               <span>药品类型:</span>
195
               <el-select style="margin-right:5px;width:100px;" v-model="value" placeholder="" @change="changeKind">
210
               <el-select style="margin-right:5px;width:100px;" v-model="value" placeholder="" @change="changeKind">
196
                 <el-option
211
                 <el-option
204
                   :value="item.id">
219
                   :value="item.id">
205
                 </el-option>
220
                 </el-option>
206
               </el-select>
221
               </el-select>
207
-            </div>
222
+            </div> -->
208
             <el-button type="primary" size="small" @click="comfirm">确定添加</el-button>
223
             <el-button type="primary" size="small" @click="comfirm">确定添加</el-button>
209
           </div>
224
           </div>
210
         </template>
225
         </template>
232
   import saveTemplate from './saveTemplate'
247
   import saveTemplate from './saveTemplate'
233
   import additionalCharges from './additionalCharges'
248
   import additionalCharges from './additionalCharges'
234
   import { addProjectTeam, getAllProjectTeam, getHisProject, getPojectListById } from '@/api/project/project'
249
   import { addProjectTeam, getAllProjectTeam, getHisProject, getPojectListById } from '@/api/project/project'
235
-
250
+ 
236
   export default {
251
   export default {
237
     props: {
252
     props: {
238
       patientInfo: Object,
253
       patientInfo: Object,
835
         })
850
         })
836
       },
851
       },
837
       selectTeam(row) {
852
       selectTeam(row) {
853
+        console.log("row------",row)
838
         var arr = []
854
         var arr = []
839
         for (let i = 0; i < row.length; i++) {
855
         for (let i = 0; i < row.length; i++) {
840
           arr.push(row[i].project_id)
856
           arr.push(row[i].project_id)
860
         const params = {
876
         const params = {
861
           project_id: idstr
877
           project_id: idstr
862
         }
878
         }
879
+        console.log("params",params)
863
         getPojectListById(params).then(response => {
880
         getPojectListById(params).then(response => {
864
           if (response.data.state == 1) {
881
           if (response.data.state == 1) {
865
             var project = response.data.data.project
882
             var project = response.data.data.project

+ 91 - 32
src/xt_pages/outpatientDoctorStation/components/deskRecord.vue View File

1
 <template>
1
 <template>
2
-  <div class="deskRecord">
3
-    <div style="overflow:hidden;border-top:1px solid #e5e5e5;margin-top:5px;">
2
+  <div class="deskRecord" style="margin-top:36px;">
3
+    <!-- <div style="overflow:hidden;border-top:1px solid #e5e5e5;margin-top:5px;">
4
       <div class="mainCell" style="margin-bottom:10px;float:right">
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>
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>
6
         <el-button size="small" @click="open(2)" type="primary">打印</el-button>
7
         <el-button size="small" @click="open(3)" 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>
8
         <el-button size="small" @click="open(4)" type="primary">存模板</el-button>
9
       </div>
9
       </div>
10
-    </div>
10
+    </div> -->
11
     <div class="backColor"></div>
11
     <div class="backColor"></div>
12
     <div class="mainTitle">基本信息:</div>
12
     <div class="mainTitle">基本信息:</div>
13
-    <el-form class="basicForm" :model="patientInfo" :rules="rules" ref="form" label-width="120px">
13
+    <el-form class="basicForm" :model="patientInfo" ref="form" label-width="120px">
14
       <el-form-item label="姓名:" prop="name">
14
       <el-form-item label="姓名:" prop="name">
15
         <el-input v-model="patientInfo.name" placeholder="" readonly></el-input>
15
         <el-input v-model="patientInfo.name" placeholder="" readonly></el-input>
16
       </el-form-item>
16
       </el-form-item>
37
         <el-input v-model="patientInfo.phone" placeholder="" readonly></el-input>
37
         <el-input v-model="patientInfo.phone" placeholder="" readonly></el-input>
38
       </el-form-item>
38
       </el-form-item>
39
       <el-form-item label="医保类型: " prop="name">
39
       <el-form-item label="医保类型: " prop="name">
40
-        <!-- <el-select v-model="scope.row.delivery_way" placeholder="请选择">
41
-          <el-option
42
-            v-for="(item,index) in arr"
43
-            :key="index"
44
-            :label="item.name"
45
-            :value="item.name">
46
-          </el-option>
47
-        </el-select> -->
40
+        <el-select v-model="delivery_way" placeholder="请选择">
41
+         <el-option
42
+            v-for="item in wayOptions"
43
+           :key="item.id"
44
+           :label="item.name"
45
+           :value="item.id"
46
+          />
47
+        </el-select>
48
       </el-form-item>
48
       </el-form-item>
49
       <el-form-item label="医保证号: " prop="name">
49
       <el-form-item label="医保证号: " prop="name">
50
         <el-input v-model="patientInfo.home_address" placeholder="" readonly></el-input>
50
         <el-input v-model="patientInfo.home_address" placeholder="" readonly></el-input>
54
       </el-form-item>
54
       </el-form-item>
55
     </el-form>
55
     </el-form>
56
     <div class="mainTitle">体格信息:</div>
56
     <div class="mainTitle">体格信息:</div>
57
-    <el-form class="physiqueForm" :model="case_history" :rules="rules" ref="form" label-width="80px">
57
+    <el-form class="physiqueForm" :model="case_history" ref="form" label-width="80px">
58
       <el-form-item label="体温:" prop="name">
58
       <el-form-item label="体温:" prop="name">
59
         <el-input v-model="case_history.temperature" placeholder=""></el-input>
59
         <el-input v-model="case_history.temperature" placeholder=""></el-input>
60
         <span>℃</span>
60
         <span>℃</span>
64
         (次/分)
64
         (次/分)
65
       </el-form-item>
65
       </el-form-item>
66
       <el-form-item label="呼吸: " prop="name">
66
       <el-form-item label="呼吸: " prop="name">
67
-        <el-input v-model="case_history.pulse" placeholder=""></el-input>
67
+        <el-input v-model="case_history.breathing" placeholder=""></el-input>
68
         (次/分)
68
         (次/分)
69
       </el-form-item>
69
       </el-form-item>
70
       <el-form-item label="血压:" prop="name">
70
       <el-form-item label="血压:" prop="name">
75
       </el-form-item>
75
       </el-form-item>
76
     </el-form>
76
     </el-form>
77
     <div class="mainTitle">病历信息:</div>
77
     <div class="mainTitle">病历信息:</div>
78
-    <el-form class="recordForm" :model="case_history" :rules="rules" ref="form" label-width="80px">
78
+    <el-form class="recordForm" :model="case_history" ref="form" label-width="80px">
79
       <el-form-item label="发病日期: " prop="name">
79
       <el-form-item label="发病日期: " prop="name">
80
         <el-date-picker
80
         <el-date-picker
81
           style="width:100%;"
81
           style="width:100%;"
82
-          v-model="case_history.sick_date"
82
+          v-model="start_time"
83
           type="date"
83
           type="date"
84
           placeholder="选择日期">
84
           placeholder="选择日期">
85
         </el-date-picker>
85
         </el-date-picker>
135
           v-model="case_history.diagnostic">
135
           v-model="case_history.diagnostic">
136
         </el-input>
136
         </el-input>
137
       </el-form-item>
137
       </el-form-item>
138
+       <el-form-item label="医嘱:" prop="doctor_advice" style="width:100%;">
139
+        <el-input
140
+          type="textarea"
141
+          :rows="2"
142
+          placeholder="请输入内容"
143
+          v-model="doctor_advice">
144
+        </el-input>
145
+      </el-form-item>
146
+       <el-form-item label="备注:" prop="name" style="width:100%;">
147
+        <el-input
148
+          type="textarea"
149
+          :rows="2"
150
+          placeholder="请输入内容"
151
+          v-model="remark">
152
+        </el-input>
153
+      </el-form-item>
138
     </el-form>
154
     </el-form>
139
-    <medicalRecord ref='medicalRecord'></medicalRecord>
140
-    <saveRecordTemplate ref='saveRecordTemplate'></saveRecordTemplate>
155
+   
141
   </div>
156
   </div>
142
 </template>
157
 </template>
143
 
158
 
144
 <script>
159
 <script>
160
+  const moment = require('moment')
145
   import medicalRecord from './medicalRecord'
161
   import medicalRecord from './medicalRecord'
146
   import saveRecordTemplate from './saveRecordTemplate'
162
   import saveRecordTemplate from './saveRecordTemplate'
147
   import { getDictionaryDataConfig } from "@/utils/data";
163
   import { getDictionaryDataConfig } from "@/utils/data";
148
   import {  createCaseHistory } from '@/api/his/his'
164
   import {  createCaseHistory } from '@/api/his/his'
149
-
150
-
165
+  import { getDataConfig } from "@/utils/data";
166
+  import { getTemplateDetail } from "@/api/project/project"
151
   export default {
167
   export default {
152
     props: {
168
     props: {
153
       case_history: Object,
169
       case_history: Object,
161
     },
177
     },
162
     data() {
178
     data() {
163
       return {
179
       return {
180
+        id:0,
181
+        delivery_way:"",
164
         case_history:{
182
         case_history:{
165
           sick_type:'',
183
           sick_type:'',
166
           symptom:"",
184
           symptom:"",
185
         },
203
         },
186
         form: {
204
         form: {
187
           name: ''
205
           name: ''
188
-        }
206
+        },
207
+        wayOptions:[],
208
+        start_time:moment(new Date()).add('year',0).format("YYYY-MM-DD"),
209
+        doctor_advice:"",
210
+        remark:""
189
       }
211
       }
190
     },
212
     },
191
     methods: {
213
     methods: {
193
         return getDictionaryDataConfig(module, filed_name)
215
         return getDictionaryDataConfig(module, filed_name)
194
 
216
 
195
       },
217
       },
196
-      setData(case_history,patientInfo,hisPatientInfo){
197
-        this.form.name = patientInfo.name
218
+      // setData(case_history,patientInfo,hisPatientInfo){
219
+      //   this.form.name = patientInfo.name
198
 
220
 
199
 
221
 
200
 
222
 
201
-      },
223
+      // },
202
       open(index) {
224
       open(index) {
225
+        console.log("index",index)
203
         if (index == 1) {
226
         if (index == 1) {
204
           if(this.patientInfo.id == undefined){
227
           if(this.patientInfo.id == undefined){
205
             this.$message.error("请先选择病人")
228
             this.$message.error("请先选择病人")
206
             return
229
             return
207
           }
230
           }
208
-
231
+          if(this.case_history.is_infect == true){
232
+            this.case_history.is_infect = 1
233
+          }
234
+          if(this.case_history.is_infect == false){
235
+             this.case_history.is_infect = 2
236
+          }
209
           let params = {
237
           let params = {
238
+            "his_patient_id":this.hisPatientInfo.id,
239
+            "delivery_way":this.delivery_way?"":0,
210
             "patient_id":this.patientInfo.id,
240
             "patient_id":this.patientInfo.id,
211
             "temperature":this.case_history.temperature,
241
             "temperature":this.case_history.temperature,
212
             "blood_sugar":this.case_history.blood_sugar,
242
             "blood_sugar":this.case_history.blood_sugar,
217
             "height":this.case_history.height,
247
             "height":this.case_history.height,
218
             "sick_type":this.case_history.sick_type,
248
             "sick_type":this.case_history.sick_type,
219
             "symptom":this.case_history.symptom,
249
             "symptom":this.case_history.symptom,
220
-            "sick_date":this.case_history.sick_date,
250
+            "sick_date":this.start_time,
221
             "is_infect":this.case_history.is_infect,
251
             "is_infect":this.case_history.is_infect,
222
             "chief_conplaint":this.case_history.chief_conplaint,
252
             "chief_conplaint":this.case_history.chief_conplaint,
223
             "history_of_present_illness":this.case_history.history_of_present_illness,
253
             "history_of_present_illness":this.case_history.history_of_present_illness,
225
             "personal_history":this.case_history.personal_history,
255
             "personal_history":this.case_history.personal_history,
226
             "family_history":this.case_history.family_history,
256
             "family_history":this.case_history.family_history,
227
             "record_date":this.record_date,
257
             "record_date":this.record_date,
228
-
229
-
258
+            "diagnostic":this.case_history.diagnostic,
259
+            "breathing":this.case_history.breathing,
260
+            "doctor_advice":this.doctor_advice,
261
+            "remark":this.remark
230
           }
262
           }
263
+        
231
           createCaseHistory(params).then(response => {
264
           createCaseHistory(params).then(response => {
232
             if (response.data.state == 0) {
265
             if (response.data.state == 0) {
233
-              this.$message.error(response.data.msg)
266
+              this.$message.error("患者病历已存在")
234
               return false
267
               return false
235
             } else {
268
             } else {
236
               this.$message.success("保存成功")
269
               this.$message.success("保存成功")
237
             }
270
             }
238
           })
271
           })
239
         } else if (index == 2) {
272
         } else if (index == 2) {
240
-          this.$router.push('/outpatientDoctorStation/recordPrint')
273
+          this.$router.push('/outpatientDoctorStation/recordPrint?record='+this.record_date)
241
         } else if (index == 3) {
274
         } else if (index == 3) {
242
           this.$refs.medicalRecord.show()
275
           this.$refs.medicalRecord.show()
243
         } else if (index == 4) {
276
         } else if (index == 4) {
244
-          this.$refs.saveRecordTemplate.show()
277
+          this.$refs.saveRecordTemplate.show(this.case_history)
245
         }
278
         }
246
 
279
 
247
-      }
280
+      },
281
+      getMsgFormSon(data){
282
+       this.getTemplateDetail(data)
283
+     },
284
+
285
+      getTemplateDetail(id){
286
+          getTemplateDetail(id).then(response=>{
287
+              if(response.data.state == 1){  
288
+                var templatedetail =  response.data.data.templateDetail
289
+                console.log("templatedetail",templatedetail)
290
+            
291
+                this.case_history.chief_conplaint =  templatedetail.chief_conplaint 
292
+                this.case_history.history_of_present_illness =  templatedetail.history_of_present_illness 
293
+                this.case_history.past_history =  templatedetail.past_history 
294
+                this.case_history.personal_history =    templatedetail.personal_history 
295
+                this.case_history.family_history = templatedetail.family_history 
296
+                this.case_history.diagnostic = templatedetail.diagnostic 
297
+               
298
+              }
299
+          })
300
+        },
301
+    },
302
+    created(){
303
+       this.wayOptions = getDataConfig("patient", "reimbursement_ways");
304
+
305
+       console.log("2222",this.wayOptions)
306
+     
248
     }
307
     }
249
   }
308
   }
250
 </script>
309
 </script>

+ 66 - 41
src/xt_pages/outpatientDoctorStation/components/medicalRecord.vue View File

7
         class="recordDialog"
7
         class="recordDialog"
8
     >
8
     >
9
         <div>
9
         <div>
10
-            <el-tabs v-model="activeName" @tab-click="handleClick">
11
-                <el-tab-pane label="历史病历" name="first">
10
+            <el-tabs v-model="activeName">
11
+                <!-- <el-tab-pane label="历史病历" name="first">
12
                     <div style="display:flex;align-items: center;margin-bottom:10px;">
12
                     <div style="display:flex;align-items: center;margin-bottom:10px;">
13
-                        <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item" style="width:140px;"/>
13
+                        <el-input size="small" v-model.trim="search_input" class="filter-item" style="width:140px;"/>
14
                         <el-button size="small" style="margin:0 10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
14
                         <el-button size="small" style="margin:0 10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
15
                         <span>日期:</span>
15
                         <span>日期:</span>
16
                         <el-date-picker
16
                         <el-date-picker
31
                     <el-table :data="tableData" border height="300" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
31
                     <el-table :data="tableData" border height="300" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
32
                         <el-table-column align="center" type="index" width="60" label="序号"></el-table-column>
32
                         <el-table-column align="center" type="index" width="60" label="序号"></el-table-column>
33
                         <el-table-column align="center" prop="name" label="病历编号">
33
                         <el-table-column align="center" prop="name" label="病历编号">
34
-                            <template slot-scope="scope">{{ scope.row.date }}</template>
34
+                            <template slot-scope="scope">{{ scope.row.id }}</template>
35
                         </el-table-column>
35
                         </el-table-column>
36
                         <el-table-column align="center" prop="name" label="名称">
36
                         <el-table-column align="center" prop="name" label="名称">
37
                             <template slot-scope="scope">{{ scope.row.date }}</template>
37
                             <template slot-scope="scope">{{ scope.row.date }}</template>
52
                             </template>
52
                             </template>
53
                         </el-table-column>
53
                         </el-table-column>
54
                     </el-table>
54
                     </el-table>
55
-                </el-tab-pane>
56
-                <el-tab-pane label="病历模板" name="second">
55
+                </el-tab-pane> -->
56
+                <el-tab-pane label="病历模板" name="first">
57
                     <div style="display:flex;align-items: center;margin-bottom:10px;">
57
                     <div style="display:flex;align-items: center;margin-bottom:10px;">
58
-                        <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item" style="width:140px;"/>
59
-                        <el-button size="small" style="margin:0 10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
58
+                        <el-input size="small"  v-model.trim="search_input" class="filter-item" style="width:140px;"/>
59
+                        <el-button size="small" style="margin:0 10px;" class="filter-item" type="primary"  @click="searchAction">搜索</el-button>
60
                         <span>日期:</span>
60
                         <span>日期:</span>
61
                         <el-date-picker
61
                         <el-date-picker
62
                         size="small"
62
                         size="small"
63
                         style="width:140px;margin:0 10px;"
63
                         style="width:140px;margin:0 10px;"
64
-                        v-model="value1"
64
+                        v-model="start_time"
65
                         type="date"
65
                         type="date"
66
-                        placeholder="选择日期">
66
+                        placeholder="选择日期"
67
+                        @change="changeStarTime">
67
                         </el-date-picker>
68
                         </el-date-picker>
68
                         <el-date-picker
69
                         <el-date-picker
69
                         style="width:140px;"
70
                         style="width:140px;"
70
                         size="small"
71
                         size="small"
71
-                        v-model="value1"
72
+                        v-model="end_time"
72
                         type="date"
73
                         type="date"
73
-                        placeholder="选择日期">
74
+                        placeholder="选择日期"
75
+                        @change="changeEndTime">
74
                         </el-date-picker>
76
                         </el-date-picker>
75
                     </div>
77
                     </div>
76
-                    <el-table :data="tableData" border height="300" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
78
+                    <el-table :data="tempalateData" border height="300" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
77
                         <el-table-column align="center" type="index" width="60" label="序号"></el-table-column>
79
                         <el-table-column align="center" type="index" width="60" label="序号"></el-table-column>
78
                         <el-table-column align="center" prop="name" label="病历编号">
80
                         <el-table-column align="center" prop="name" label="病历编号">
79
-                            <template slot-scope="scope">{{ scope.row.date }}</template>
81
+                            <template slot-scope="scope">{{ scope.row.id }}</template>
80
                         </el-table-column>
82
                         </el-table-column>
81
                         <el-table-column align="center" prop="name" label="名称">
83
                         <el-table-column align="center" prop="name" label="名称">
82
-                            <template slot-scope="scope">{{ scope.row.date }}</template>
84
+                            <template slot-scope="scope">{{ scope.row.template_name }}</template>
83
                         </el-table-column>
85
                         </el-table-column>
84
                         <el-table-column align="center" prop="name" label="创建人">
86
                         <el-table-column align="center" prop="name" label="创建人">
85
-                            <template slot-scope="scope">{{ scope.row.date }}</template>
87
+                            <template slot-scope="scope">{{ scope.row.user_name }}</template>
86
                         </el-table-column>
88
                         </el-table-column>
87
                         <el-table-column align="center" prop="name" label="创建日期">
89
                         <el-table-column align="center" prop="name" label="创建日期">
88
-                            <template slot-scope="scope">{{ scope.row.date }}</template>
90
+                            <template slot-scope="scope">{{ scope.row.record_date }}</template>
89
                         </el-table-column>
91
                         </el-table-column>
90
                         <el-table-column align="center" prop="name" label="模板说明">
92
                         <el-table-column align="center" prop="name" label="模板说明">
91
-                            <template slot-scope="scope">{{ scope.row.date }}</template>
93
+                            <template slot-scope="scope">{{ scope.row.template_remark }}</template>
92
                         </el-table-column>
94
                         </el-table-column>
93
                         <el-table-column align="center" prop="name" label="操作" width='200'>
95
                         <el-table-column align="center" prop="name" label="操作" width='200'>
94
                             <template slot-scope="scope">
96
                             <template slot-scope="scope">
95
-                                <el-button type="primary" size="mini">调用</el-button>
96
-                                <el-button type="primary" size="mini" @click="totemplateDetail">详情</el-button>
97
+                                <el-button type="primary" size="mini" @click="totemplateDetailTwo(scope.row.id)">调用</el-button>
98
+                                <el-button type="primary" size="mini" @click="totemplateDetail(scope.row.id)">详情</el-button>
97
                             </template>
99
                             </template>
98
                         </el-table-column>
100
                         </el-table-column>
99
                     </el-table>
101
                     </el-table>
104
         <record-template-detail ref="recordTemplateDetail"></record-template-detail>
106
         <record-template-detail ref="recordTemplateDetail"></record-template-detail>
105
         <div slot="footer" class="dialog-footer">
107
         <div slot="footer" class="dialog-footer">
106
             <el-button @click="hide">取 消</el-button>
108
             <el-button @click="hide">取 消</el-button>
107
-            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
109
+            <el-button type="primary"  @click="submitAction()">保 存</el-button>
108
         </div>
110
         </div>
109
     </el-dialog>
111
     </el-dialog>
110
 </template>
112
 </template>
112
 <script>
114
 <script>
113
 import recordHistoryDetail from './recordHistoryDetail'
115
 import recordHistoryDetail from './recordHistoryDetail'
114
 import recordTemplateDetail from './recordTemplateDetail'
116
 import recordTemplateDetail from './recordTemplateDetail'
117
+import { getHistoryTemplate } from "@/api/project/project"
115
 export default {
118
 export default {
116
     components:{
119
     components:{
117
         recordHistoryDetail,
120
         recordHistoryDetail,
119
     },
122
     },
120
     data(){
123
     data(){
121
         return{
124
         return{
122
-          submitLoading:false,
123
             visible:false,
125
             visible:false,
124
             activeName:'first',
126
             activeName:'first',
125
             form:{
127
             form:{
126
                 name:''
128
                 name:''
127
             },
129
             },
128
-            tableData: [{
129
-            date: '2016-05-02',
130
-            name: '王小虎',
131
-            address: '上海市普陀区金沙江路 1518 弄'
132
-            }, {
133
-            date: '2016-05-04',
134
-            name: '王小虎',
135
-            address: '上海市普陀区金沙江路 1517 弄'
136
-            }, {
137
-            date: '2016-05-01',
138
-            name: '王小虎',
139
-            address: '上海市普陀区金沙江路 1519 弄'
140
-            }, {
141
-            date: '2016-05-03',
142
-            name: '王小虎',
143
-            address: '上海市普陀区金沙江路 1516 弄'
144
-            }],
130
+            tableData: [],
131
+            tempalateData:[],
132
+            value1:"",
133
+            search_input:"",
134
+            start_time:"",
135
+            end_time:"",
145
         }
136
         }
146
     },
137
     },
147
     methods:{
138
     methods:{
165
         toHistoryDetail(){
156
         toHistoryDetail(){
166
             this.$refs.recordHistoryDetail.show()
157
             this.$refs.recordHistoryDetail.show()
167
         },
158
         },
168
-        totemplateDetail(){
169
-            this.$refs.recordTemplateDetail.show()
159
+        totemplateDetail(id){
160
+            this.$refs.recordTemplateDetail.show(id)
161
+        },
162
+        totemplateDetailTwo(id){
163
+         this.$emit('func',id)
164
+         this.visible = false
165
+        },
166
+        //获取历史数据历史模板
167
+        getlist(){
168
+            const params = {
169
+               keyword:this.search_input,
170
+               start_time:this.start_time,
171
+               end_time:this.end_time
172
+            }
173
+          getHistoryTemplate(params).then(response=>{
174
+            if(response.data.state == 1){
175
+              var template =  response.data.data.template
176
+              console.log("templagte",template)
177
+              this.tempalateData = template
178
+              var history =  response.data.data.history
179
+              console.log("history",history)
180
+              this.tableData = history
181
+            }
182
+          })
183
+        },
184
+        searchAction(){
185
+          this.getlist()
186
+        },
187
+        changeStarTime(){
188
+           this.getlist()
189
+        },
190
+        changeEndTime(){
191
+          this.getlist()
170
         }
192
         }
193
+    },
194
+    created(){
195
+       this.getlist()
171
     }
196
     }
172
 }
197
 }
173
 </script>
198
 </script>

+ 1 - 1
src/xt_pages/outpatientDoctorStation/components/recordHistoryDetail.vue View File

52
         </div>
52
         </div>
53
         <div slot="footer" class="dialog-footer">
53
         <div slot="footer" class="dialog-footer">
54
             <el-button @click="hide">取 消</el-button>
54
             <el-button @click="hide">取 消</el-button>
55
-            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
55
+            <el-button type="primary"  @click="submitAction()">保 存</el-button>
56
         </div>
56
         </div>
57
     </el-dialog>         
57
     </el-dialog>         
58
 </template>
58
 </template>

+ 65 - 14
src/xt_pages/outpatientDoctorStation/components/recordTemplateDetail.vue View File

7
         class="recordDialog"
7
         class="recordDialog"
8
         append-to-body
8
         append-to-body
9
     >
9
     >
10
-        <el-form class="recordForm" :model="form" :rules="rules" ref="form" label-width="80px">
10
+        <el-form class="recordForm" :model="form" ref="form" label-width="80px">
11
             <el-form-item label="模板名称: " prop="name" style="width:100%;">
11
             <el-form-item label="模板名称: " prop="name" style="width:100%;">
12
-                <el-input v-model="form.name" placeholder=""></el-input>
12
+                <el-input v-model="form.template_name" placeholder=""></el-input>
13
             </el-form-item>
13
             </el-form-item>
14
             <el-form-item label="模板说明: " prop="name" style="width:100%;">
14
             <el-form-item label="模板说明: " prop="name" style="width:100%;">
15
-                <el-input v-model="form.name" placeholder=""></el-input>
15
+                <el-input v-model="form.template_remark" placeholder=""></el-input>
16
             </el-form-item>
16
             </el-form-item>
17
             <el-form-item label="主诉:" prop="name" style="width:100%;">
17
             <el-form-item label="主诉:" prop="name" style="width:100%;">
18
                 <el-input
18
                 <el-input
19
                 type="textarea"
19
                 type="textarea"
20
                 :rows="2"
20
                 :rows="2"
21
                 placeholder="请输入内容"
21
                 placeholder="请输入内容"
22
-                v-model="textarea">
22
+                v-model="form.chief_conplaint">
23
                 </el-input>
23
                 </el-input>
24
             </el-form-item>
24
             </el-form-item>
25
             <el-form-item label="现病史:" prop="name" style="width:100%;">
25
             <el-form-item label="现病史:" prop="name" style="width:100%;">
27
                 type="textarea"
27
                 type="textarea"
28
                 :rows="2"
28
                 :rows="2"
29
                 placeholder="请输入内容"
29
                 placeholder="请输入内容"
30
-                v-model="textarea">
30
+                v-model="form.history_of_present_illness">
31
                 </el-input>
31
                 </el-input>
32
             </el-form-item>
32
             </el-form-item>
33
             <el-form-item label="既往史:" prop="name" style="width:100%;">
33
             <el-form-item label="既往史:" prop="name" style="width:100%;">
35
                 type="textarea"
35
                 type="textarea"
36
                 :rows="2"
36
                 :rows="2"
37
                 placeholder="请输入内容"
37
                 placeholder="请输入内容"
38
-                v-model="textarea">
38
+                v-model="form.past_history">
39
                 </el-input>
39
                 </el-input>
40
             </el-form-item>
40
             </el-form-item>
41
             <el-form-item label="个人史:" prop="name" style="width:100%;">
41
             <el-form-item label="个人史:" prop="name" style="width:100%;">
43
                 type="textarea"
43
                 type="textarea"
44
                 :rows="2"
44
                 :rows="2"
45
                 placeholder="请输入内容"
45
                 placeholder="请输入内容"
46
-                v-model="textarea">
46
+                v-model="form.personal_history">
47
                 </el-input>
47
                 </el-input>
48
             </el-form-item>
48
             </el-form-item>
49
             <el-form-item label="家族史:" prop="name" style="width:100%;">
49
             <el-form-item label="家族史:" prop="name" style="width:100%;">
51
                 type="textarea"
51
                 type="textarea"
52
                 :rows="2"
52
                 :rows="2"
53
                 placeholder="请输入内容"
53
                 placeholder="请输入内容"
54
-                v-model="textarea">
54
+                v-model="form.family_history">
55
                 </el-input>
55
                 </el-input>
56
             </el-form-item>
56
             </el-form-item>
57
             <el-form-item label="诊断信息:" prop="name" style="width:100%;">
57
             <el-form-item label="诊断信息:" prop="name" style="width:100%;">
59
                 type="textarea"
59
                 type="textarea"
60
                 :rows="2"
60
                 :rows="2"
61
                 placeholder="请输入内容"
61
                 placeholder="请输入内容"
62
-                v-model="textarea">
62
+                v-model="form.diagnostic">
63
                 </el-input>
63
                 </el-input>
64
             </el-form-item>
64
             </el-form-item>
65
         </el-form>
65
         </el-form>
66
         <div slot="footer" class="dialog-footer">
66
         <div slot="footer" class="dialog-footer">
67
             <el-button @click="hide">取 消</el-button>
67
             <el-button @click="hide">取 消</el-button>
68
-            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
68
+            <el-button type="primary"  @click="submitAction()">保 存</el-button>
69
         </div>
69
         </div>
70
     </el-dialog>         
70
     </el-dialog>         
71
 </template>
71
 </template>
72
 
72
 
73
 <script>
73
 <script>
74
+import { getTemplateDetail,updateRecordTemplate } from "@/api/project/project"
74
 export default {
75
 export default {
75
     data(){
76
     data(){
76
         return{
77
         return{
77
             visible:false,
78
             visible:false,
78
             form:{
79
             form:{
79
-                name:''
80
+              id:0,
81
+              template_name:'',
82
+              template_remark:"",
83
+              chief_conplaint:"",
84
+              history_of_present_illness:"",
85
+              past_history:"",
86
+              personal_history:"",
87
+              family_history:"",
88
+              diagnostic:""
80
             },
89
             },
90
+            textarea:"",
91
+            templatedetail:{}
81
         }
92
         }
82
     },
93
     },
83
     methods:{
94
     methods:{
90
             this.form.name = "";
101
             this.form.name = "";
91
             this.form.intro = "";
102
             this.form.intro = "";
92
         },
103
         },
93
-        show() {
94
-            // this.clear()
95
-            this.visible = true
104
+        show(id) {
105
+          this.getTemplateDetail(id)
106
+          this.visible = true
107
+          
96
         },
108
         },
97
         hide() {
109
         hide() {
98
             // this.clear()
110
             // this.clear()
99
             this.visible = false
111
             this.visible = false
100
         },
112
         },
113
+        getTemplateDetail(id){
114
+          getTemplateDetail(id).then(response=>{
115
+              if(response.data.state == 1){  
116
+                var templatedetail =  response.data.data.templateDetail
117
+                console.log("templatedetail",templatedetail)
118
+                this.form.id = templatedetail.id
119
+                this.form.template_name =   templatedetail.template_name 
120
+                this.form.template_remark = templatedetail.template_remark 
121
+                this.form.chief_conplaint =  templatedetail.chief_conplaint 
122
+                this.form.history_of_present_illness =  templatedetail.history_of_present_illness 
123
+                this.form.past_history =  templatedetail.past_history 
124
+                this.form.personal_history =    templatedetail.personal_history 
125
+                this.form.family_history = templatedetail.family_history 
126
+                this.form.diagnostic = templatedetail.diagnostic 
127
+               
128
+              }
129
+          })
130
+        },
131
+        submitAction(){
132
+          var params = {
133
+            id:this.form.id,
134
+            template_name:this.form.template_name,
135
+            template_remark:this.form.template_remark,
136
+            chief_conplaint:this.form.chief_conplaint,
137
+            history_of_present_illness:this.form.history_of_present_illness,
138
+            past_history:this.form.past_history,
139
+            personal_history:this.form.personal_history,
140
+            family_history:this.form.family_history,
141
+            diagnostic:this.form.diagnostic
142
+          }  
143
+          updateRecordTemplate(params).then(response=>{
144
+             if(response.data.state == 1){
145
+                var template =  response.data.data.templateDetail
146
+                this.$message.success("保存成功")
147
+                this.visible = false
148
+                this.$parents.getlist()
149
+             }
150
+          }) 
151
+        }
101
     }
152
     }
102
 }
153
 }
103
 </script>
154
 </script>

+ 62 - 12
src/xt_pages/outpatientDoctorStation/components/saveRecordTemplate.vue View File

6
         :before-close="_close"
6
         :before-close="_close"
7
         class="recordDialog"
7
         class="recordDialog"
8
     >
8
     >
9
-        <el-form class="recordForm" :model="form" :rules="rules" ref="form" label-width="80px">
10
-            <el-form-item label="模板类别:" prop="name" style="width:100%;">
11
-                <el-radio v-model="radio" label="1">私人模板</el-radio>
12
-                <el-radio v-model="radio" label="2">公共模板</el-radio>
13
-            </el-form-item>
9
+        <el-form class="recordForm" :model="form"  ref="form" label-width="80px">
10
+            <!-- <el-form-item label="模板类别:" prop="name" style="width:100%;">
11
+                <el-radio v-model="mode_type" label="1">私人模板</el-radio>
12
+                <el-radio v-model="mode_type" label="2">公共模板</el-radio>
13
+            </el-form-item> -->
14
             <el-form-item label="模板名称: " prop="name" style="width:100%;">
14
             <el-form-item label="模板名称: " prop="name" style="width:100%;">
15
-                <el-input v-model="form.name" placeholder=""></el-input>
15
+                <el-input v-model="form.template_name" placeholder=""></el-input>
16
             </el-form-item>
16
             </el-form-item>
17
             <el-form-item label="模板说明:" prop="name" style="width:100%;">
17
             <el-form-item label="模板说明:" prop="name" style="width:100%;">
18
                 <el-input
18
                 <el-input
19
                 type="textarea"
19
                 type="textarea"
20
                 :rows="2"
20
                 :rows="2"
21
                 placeholder="请输入内容"
21
                 placeholder="请输入内容"
22
-                v-model="textarea">
22
+                v-model="template_remark">
23
                 </el-input>
23
                 </el-input>
24
             </el-form-item>
24
             </el-form-item>
25
             <el-form-item label="创建人:" prop="name" style="width:49%;">
25
             <el-form-item label="创建人:" prop="name" style="width:49%;">
26
+                <span>{{user_name}}</span>
26
             </el-form-item>
27
             </el-form-item>
27
             <el-form-item label="创建时间:" prop="name" style="width:49%;">
28
             <el-form-item label="创建时间:" prop="name" style="width:49%;">
29
+                {{start_time}}
28
             </el-form-item>
30
             </el-form-item>
29
         </el-form>
31
         </el-form>
30
         <div slot="footer" class="dialog-footer">
32
         <div slot="footer" class="dialog-footer">
31
             <el-button @click="hide">取 消</el-button>
33
             <el-button @click="hide">取 消</el-button>
32
-            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
34
+            <el-button type="primary"  @click="submitAction()">保 存</el-button>
33
         </div>
35
         </div>
34
     </el-dialog>         
36
     </el-dialog>         
35
 </template>
37
 </template>
36
 
38
 
37
 <script>
39
 <script>
40
+const moment = require('moment')
41
+import { SaveHisPatientCaseHistoryTemplate } from "@/api/project/project"
38
 export default {
42
 export default {
39
     data(){
43
     data(){
40
         return{
44
         return{
42
             form:{
46
             form:{
43
                 name:''
47
                 name:''
44
             },
48
             },
49
+            mode_type:"1",
50
+            textarea:"",
51
+            chief_conplain:"",
52
+            past_history:"",
53
+            history_of_present_illness:"",
54
+            personal_history:"",
55
+            family_history:"",
56
+            diagnostic:"",
57
+            mode_type:"",
58
+            start_time:"",
59
+            user_name:"",
60
+            template_name:"",
61
+            template_remark:""
45
         }
62
         }
46
-    },
63
+     },
64
+    
47
     methods:{
65
     methods:{
48
         _close: function(done) {
66
         _close: function(done) {
49
             // this.clear()
67
             // this.clear()
54
             this.form.name = "";
72
             this.form.name = "";
55
             this.form.intro = "";
73
             this.form.intro = "";
56
         },
74
         },
57
-        show() {
58
-            // this.clear()
59
-            this.visible = true
75
+        show(obj) {
76
+         console.log("obj",obj)
77
+         this.chief_conplain= obj.chief_conplain
78
+         this.past_history = obj.past_history
79
+         this.history_of_present_illness = obj.history_of_present_illness
80
+         this.personal_history = obj.personal_history
81
+         this.family_history = obj.family_history
82
+         this.diagnostic = obj.diagnostic
83
+         this.visible = true
60
         },
84
         },
61
         hide() {
85
         hide() {
62
             // this.clear()
86
             // this.clear()
63
             this.visible = false
87
             this.visible = false
64
         },
88
         },
89
+
90
+        submitAction(){
91
+          var params = {
92
+             template_name:this.template_name,
93
+             template_remark:this.template_remark,
94
+             user_name:this.user_name,
95
+             record_date:this.start_time,
96
+             chief_conplain:this.chief_conplain,
97
+             past_history:this.past_history,
98
+             history_of_present_illness:this.history_of_present_illness,
99
+             personal_history:this.personal_history,
100
+             family_history:this.family_history,
101
+             diagnostic:this.diagnostic,
102
+            }
103
+            console.log("params",params)
104
+          SaveHisPatientCaseHistoryTemplate(params).then(response=>{
105
+              if(response.data.state == 1){
106
+                 this.$message.success("保存成功")
107
+                 this.visible = false
108
+              }
109
+          })   
110
+        }
111
+    },
112
+    created(){
113
+      this.start_time = moment().format("YYYY-MM-DD HH:mm:ss")
114
+      this.user_name = this.$store.getters.xt_user.user.user_name
65
     }
115
     }
66
 }
116
 }
67
 </script>
117
 </script>

+ 1 - 1
src/xt_pages/outpatientDoctorStation/components/saveTemplate.vue View File

46
         </div>
46
         </div>
47
         <div slot="footer" class="dialog-footer">
47
         <div slot="footer" class="dialog-footer">
48
             <el-button @click="hide">取 消</el-button>
48
             <el-button @click="hide">取 消</el-button>
49
-            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
49
+            <el-button type="primary" @click="submitAction()">保 存</el-button>
50
         </div>
50
         </div>
51
     </el-dialog>         
51
     </el-dialog>         
52
 </template>
52
 </template>

+ 1 - 1
src/xt_pages/outpatientDoctorStation/components/selectTemplate.vue View File

43
         </div>
43
         </div>
44
         <div slot="footer" class="dialog-footer">
44
         <div slot="footer" class="dialog-footer">
45
             <el-button @click="hide">取 消</el-button>
45
             <el-button @click="hide">取 消</el-button>
46
-            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
46
+            <el-button type="primary"  @click="submitAction()">保 存</el-button>
47
         </div>
47
         </div>
48
     </el-dialog>         
48
     </el-dialog>         
49
 </template>
49
 </template>

+ 130 - 10
src/xt_pages/outpatientDoctorStation/doctorDesk.vue View File

22
             搜索
22
             搜索
23
           </el-button>
23
           </el-button>
24
         </div>
24
         </div>
25
-        <div style="flex:1;overflow-y:auto;">
26
-          <el-table :data="patientTableData" @row-click='choosePatient' border style="width: 100%;"
25
+        <div>
26
+          <el-table :data="patientTableData" :height="tableHeight" @row-click='choosePatient' border style="width: 100%;"
27
                     :row-style="{ color: '#303133' }"
27
                     :row-style="{ color: '#303133' }"
28
                     :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
28
                     :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
29
                     highlight-current-row
29
                     highlight-current-row
40
       </div>
40
       </div>
41
       <div class="mainRight">
41
       <div class="mainRight">
42
         <div class="mainHeader">
42
         <div class="mainHeader">
43
-          <el-radio-group v-model="titleType" @change="changeTab">
43
+          <el-radio-group class="titleBox" v-model="titleType" @change="changeTab">
44
             <el-radio-button label="处方"></el-radio-button>
44
             <el-radio-button label="处方"></el-radio-button>
45
             <el-radio-button label="病历"></el-radio-button>
45
             <el-radio-button label="病历"></el-radio-button>
46
           </el-radio-group>
46
           </el-radio-group>
47
+          <div class="mainCell fixedCell" style="float:right" v-if="titleType == '处方'">
48
+            <el-button size="small" @click="open(1)" type="primary" style="margin-left:10px;">保存</el-button>
49
+            <el-button size="small" @click="open(2)" type="primary">打印</el-button>
50
+            <el-button size="small" @click="open(4)" type="primary">选择模板</el-button>
51
+            <el-button size="small" @click="open(5)" type="primary">存模板</el-button>
52
+          </div>
53
+          <div class="mainCell fixedCell" style="float:right" v-if="titleType == '病历'">
54
+            <el-button size="small" @click="opentwo(1)" type="primary" style="margin-left:10px;">保存</el-button>
55
+            <el-button size="small" @click="opentwo(2)" type="primary">打印</el-button>
56
+            <el-button size="small" @click="opentwo(3)" type="primary">病历调用</el-button>
57
+            <el-button size="small" @click="opentwo(4)" type="primary">存模板</el-button>
58
+          </div>
47
         </div>
59
         </div>
48
         <!--<desk-prescription ref="prescriptions"   :prescriptions="prescriptions" :patientInfo="patientInfo" :hisPatientInfo="hisPatientInfo"-->
60
         <!--<desk-prescription ref="prescriptions"   :prescriptions="prescriptions" :patientInfo="patientInfo" :hisPatientInfo="hisPatientInfo"-->
49
         <!--v-if="titleType == '处方'" style="flex:1;"></desk-prescription>-->
61
         <!--v-if="titleType == '处方'" style="flex:1;"></desk-prescription>-->
53
                            v-if="titleType == '处方'" style="flex:1;"></desk-prescription>
65
                            v-if="titleType == '处方'" style="flex:1;"></desk-prescription>
54
         <desk-record :record_date="record_date" :case_history="case_history" :patientInfo="patientInfo"
66
         <desk-record :record_date="record_date" :case_history="case_history" :patientInfo="patientInfo"
55
                      :hisPatientInfo="hisPatientInfo" v-if="titleType == '病历'"></desk-record>
67
                      :hisPatientInfo="hisPatientInfo" v-if="titleType == '病历'"></desk-record>
68
+        <medicalRecord ref='medicalRecord'  @func="getMsgFormSon"></medicalRecord>
69
+       <saveRecordTemplate ref='saveRecordTemplate'></saveRecordTemplate>
56
       </div>
70
       </div>
57
 
71
 
58
     </div>
72
     </div>
63
   import BreadCrumb from '@/xt_pages/components/bread-crumb'
77
   import BreadCrumb from '@/xt_pages/components/bread-crumb'
64
   import deskPrescription from './components/deskPrescription'
78
   import deskPrescription from './components/deskPrescription'
65
   import deskRecord from './components/deskRecord'
79
   import deskRecord from './components/deskRecord'
66
-  import { getPatientInfo, getSchedulePatientList } from '@/api/his/his'
80
+  import { getPatientInfo, getSchedulePatientList,createCaseHistory } from '@/api/his/his'
67
   import { getDictionaryDataConfig } from '@/utils/data'
81
   import { getDictionaryDataConfig } from '@/utils/data'
68
-
82
+  import medicalRecord from './components/medicalRecord'
83
+  import saveRecordTemplate from './components/saveRecordTemplate'
69
   import { uParseTime } from '@/utils/tools'
84
   import { uParseTime } from '@/utils/tools'
70
 
85
 
71
   export default {
86
   export default {
72
     components: {
87
     components: {
73
       BreadCrumb,
88
       BreadCrumb,
74
       deskPrescription,
89
       deskPrescription,
75
-      deskRecord
90
+      deskRecord,
91
+      medicalRecord,
92
+      saveRecordTemplate
76
     },
93
     },
77
     data() {
94
     data() {
78
       return {
95
       return {
96
+        tableHeight:'',
97
+        fullHeight: document.documentElement.clientHeight,
79
         prescriptions: [
98
         prescriptions: [
80
           {
99
           {
81
             name: '处方1',
100
             name: '处方1',
164
             console.log("999888811111")
183
             console.log("999888811111")
165
 
184
 
166
             this.prescriptions = []
185
             this.prescriptions = []
167
-            this.$refs.prescriptions.clearData()
186
+            // this.$refs.prescriptions.clearData()
168
             this.patientInfo = response.data.data.xt_info
187
             this.patientInfo = response.data.data.xt_info
169
             this.hisPatientInfo = response.data.data.his_info
188
             this.hisPatientInfo = response.data.data.his_info
170
             this.case_history = response.data.data.case_history
189
             this.case_history = response.data.data.case_history
285
         //     psn_name:"杨美英",
304
         //     psn_name:"杨美英",
286
         //     age:60.7
305
         //     age:60.7
287
         // }
306
         // }
288
-      }
307
+      },
308
+      opentwo(index) {
309
+        console.log("index",index)
310
+        if (index == 1) {
311
+          if(this.patientInfo.id == undefined){
312
+            this.$message.error("请先选择病人")
313
+            return
314
+          }
315
+          if(this.case_history.is_infect == true){
316
+            this.case_history.is_infect = 1
317
+          }
318
+          if(this.case_history.is_infect == false){
319
+             this.case_history.is_infect = 2
320
+          }
321
+          let params = {
322
+            "his_patient_id":this.hisPatientInfo.id,
323
+            "delivery_way":this.delivery_way?"":0,
324
+            "patient_id":this.patientInfo.id,
325
+            "temperature":this.case_history.temperature,
326
+            "blood_sugar":this.case_history.blood_sugar,
327
+            "pulse":this.case_history.pulse,
328
+            "sbp":this.case_history.sbp,
329
+            "dbp":this.case_history.dbp,
330
+            "blood_fat":this.case_history.blood_fat,
331
+            "height":this.case_history.height,
332
+            "sick_type":this.case_history.sick_type,
333
+            "symptom":this.case_history.symptom,
334
+            "sick_date":this.start_time,
335
+            "is_infect":this.case_history.is_infect,
336
+            "chief_conplaint":this.case_history.chief_conplaint,
337
+            "history_of_present_illness":this.case_history.history_of_present_illness,
338
+            "past_history":this.case_history.past_history,
339
+            "personal_history":this.case_history.personal_history,
340
+            "family_history":this.case_history.family_history,
341
+            "record_date":this.record_date,
342
+            "diagnostic":this.case_history.diagnostic,
343
+            "breathing":this.case_history.breathing,
344
+            "doctor_advice":this.doctor_advice,
345
+            "remark":this.remark
346
+          }
347
+        
348
+          createCaseHistory(params).then(response => {
349
+            if (response.data.state == 0) {
350
+              this.$message.error("患者病历已存在")
351
+              return false
352
+            } else {
353
+              this.$message.success("保存成功")
354
+            }
355
+          })
356
+        } else if (index == 2) {
357
+          this.$router.push('/outpatientDoctorStation/recordPrint?record='+this.record_date)
358
+        } else if (index == 3) {
359
+          this.$refs.medicalRecord.show()
360
+        } else if (index == 4) {
361
+          this.$refs.saveRecordTemplate.show(this.case_history)
362
+        }
363
+
364
+      },
289
       // changePatient(val){
365
       // changePatient(val){
290
       //   console.log("患者val",val)
366
       //   console.log("患者val",val)
291
       //   this.hisPatientInfo = val.hisPatientInfo
367
       //   this.hisPatientInfo = val.hisPatientInfo
292
       //   console.log("333333",this.hisPatientInfo)
368
       //   console.log("333333",this.hisPatientInfo)
293
       // }
369
       // }
294
-    }, created() {
370
+    }, 
371
+    created() {
295
       var nowDate = new Date()
372
       var nowDate = new Date()
296
       var nowYear = nowDate.getFullYear()
373
       var nowYear = nowDate.getFullYear()
297
       var nowMonth = nowDate.getMonth() + 1
374
       var nowMonth = nowDate.getMonth() + 1
307
       this.diagnoses = this.getDictionaryDataConfig('system', 'diagnose')
384
       this.diagnoses = this.getDictionaryDataConfig('system', 'diagnose')
308
       this.other_sick = this.getDictionaryDataConfig('system', 'other_sick_history')
385
       this.other_sick = this.getDictionaryDataConfig('system', 'other_sick_history')
309
 
386
 
387
+      console.log('1222232434234',document.documentElement.clientHeight)
388
+      let tableHeight = document.body.clientHeight - 263
389
+      this.tableHeight = tableHeight
310
 
390
 
311
-
391
+    },
392
+    mounted(){
393
+      const that = this
394
+      window.onresize = () => {
395
+        return (() => {
396
+          window.fullHeight = document.documentElement.clientHeight
397
+          that.fullHeight = window.fullHeight
398
+        })()
399
+      }
400
+    },
401
+    watch: {
402
+      fullHeight (val) {
403
+        if(!this.timer) {
404
+          this.fullHeight = val
405
+          let tableHeight = val - 263
406
+          this.tableHeight = tableHeight
407
+          this.timer = true
408
+          let that = this
409
+          setTimeout(function (){
410
+            that.timer = false
411
+          },400)
412
+        }
413
+      }
312
     }
414
     }
313
   }
415
   }
314
 </script>
416
 </script>
460
     align-items: center;
562
     align-items: center;
461
     justify-content: space-between;
563
     justify-content: space-between;
462
   }
564
   }
565
+  .mainHeader{
566
+    width:100%;
567
+    background: #fff;
568
+    position: fixed;
569
+    z-index: 100;
570
+    height: 36px;
571
+  }
572
+  .titleBox{
573
+    position: fixed;
574
+    z-index: 99;
575
+    background: #fff;
576
+  }
577
+  .fixedCell{
578
+    position: fixed;
579
+    z-index: 99;
580
+    right: 30px;
581
+    background: #fff;
582
+  }
463
 </style>
583
 </style>
464
 
584
 
465
 <style lang="scss">
585
 <style lang="scss">

+ 93 - 49
src/xt_pages/outpatientDoctorStation/recordPrint.vue View File

4
       <bread-crumb :crumbs="crumbs"></bread-crumb>
4
       <bread-crumb :crumbs="crumbs"></bread-crumb>
5
        <template>
5
        <template>
6
         <el-button
6
         <el-button
7
-          :loading="loading"
8
           size="small"
7
           size="small"
9
           icon="el-icon-printer"
8
           icon="el-icon-printer"
10
           @click="printThisPage"
9
           @click="printThisPage"
17
         <el-container class="newContainer">
16
         <el-container class="newContainer">
18
             <div style="width:270px;margin-right:20px;">
17
             <div style="width:270px;margin-right:20px;">
19
                 <div class="cell clearfix" style="margin-bottom:10px;">
18
                 <div class="cell clearfix" 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" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
19
+                    <el-input size="small"  v-model.trim="search_input" class="filter-item"/>
20
+                    <el-button size="small" class="filter-item" type="primary" :model="keyword" @click="searchAction">搜索</el-button>
22
                 </div>
21
                 </div>
23
-                <el-table ref="tab" @row-click="changePatient" highlight-current-row :data="tableData" height="480" border style="width: 100%">
22
+                <el-table ref="tab" @row-click="changePatient" highlight-current-row :data="patientTableData" height="480" border style="width: 100%">
24
                     <el-table-column prop="date"  label="患者">
23
                     <el-table-column prop="date"  label="患者">
25
                         <template slot-scope="scope">
24
                         <template slot-scope="scope">
26
-                            {{ scope.row.patient.name }}
25
+                            {{scope.row.patients.name?scope.row.patients.name:''}}
27
                         </template>
26
                         </template>
28
                     </el-table-column>
27
                     </el-table-column>
29
-                    <el-table-column prop="name" label="透析号">
28
+                    <el-table-column prop="name" label="就诊号">
30
                         <template slot-scope="scope">
29
                         <template slot-scope="scope">
31
-                            {{ scope.row.patient.dialysis_no }}
30
+                           {{ scope.row.his_patient.number ?scope.row.his_patient.number:''}}
32
                         </template>
31
                         </template>
33
                     </el-table-column>
32
                     </el-table-column>
34
                 </el-table>
33
                 </el-table>
35
             </div>
34
             </div>
36
             
35
             
37
             <div class='dialysisPage' style="flex: 1;height: calc(100vh - 178px);overflow-x:auto;::-webkit-scrollbar:height:15px">
36
             <div class='dialysisPage' style="flex: 1;height: calc(100vh - 178px);overflow-x:auto;::-webkit-scrollbar:height:15px">
38
-              <printOne v-bind:childResponse="childResponse"></printOne>
37
+              <printOne v-bind:childResponse="childResponse" :patient="patient" :hispatient = "hispatient" :history="history"></printOne>
39
             </div>
38
             </div>
40
         </el-container>
39
         </el-container>
41
     </div>
40
     </div>
44
 
43
 
45
 <script>
44
 <script>
46
 
45
 
47
-import {
48
-  getDialysisRecordInitData,
49
-  getDialysisSchedules
50
-} from "@/api/dialysis_record";
51
 import { parseTime } from "@/utils";
46
 import { parseTime } from "@/utils";
52
-import { getDialysisRecord } from "@/api/dialysis";
53
 import { getDataConfig } from "@/utils/data";
47
 import { getDataConfig } from "@/utils/data";
54
 import { jsGetAge, uParseTime } from "@/utils/tools";
48
 import { jsGetAge, uParseTime } from "@/utils/tools";
55
-// import LabelBox from "./printItem/LabelBox";
56
 import BreadCrumb from "@/xt_pages/components/bread-crumb";
49
 import BreadCrumb from "@/xt_pages/components/bread-crumb";
57
 import print from "print-js";
50
 import print from "print-js";
51
+import { getSchedulePatientList } from '@/api/his/his'
52
+import { getPatientCaseHistory } from "@/api/project/project"
58
 import printOne from "./recordTemplate/printOne"
53
 import printOne from "./recordTemplate/printOne"
59
 export default {
54
 export default {
60
   name: "dialysisPrintOrder",
55
   name: "dialysisPrintOrder",
69
         { path: false, name: "打印单" }
64
         { path: false, name: "打印单" }
70
       ],
65
       ],
71
       childResponse: {},
66
       childResponse: {},
67
+      patientTableData: [],
68
+      search_input:"",
69
+      patient:{},
70
+      hispatient:{},
71
+      educationOptions:[],
72
+      history:{},
73
+      keyword:""
72
     };
74
     };
73
   },
75
   },
74
   methods: {
76
   methods: {
106
         style: style,
108
         style: style,
107
         scanStyles: false
109
         scanStyles: false
108
       });
110
       });
111
+    },
112
+
113
+     //患者列表
114
+      getPatientList(){
115
+        
116
+         let params = {
117
+           'record_date':this.$route.query.record,
118
+        }
119
+     
120
+      getSchedulePatientList(params).then(response => {
121
+         if (response.data.state == 0) {
122
+            this.$message.error(response.data.msg)
123
+            return false
124
+         } else {
125
+            this.patientTableData = []
126
+            console.log("list0000000",response.data.data.list)
127
+            // for (let i = 0; i < response.data.data.list.length; i++) {
128
+            //   if (response.data.data.list[i].prescription != null && response.data.data.list[i].prescription.length > 0) {
129
+            //      this.patientTableData.push(response.data.data.list[i])
130
+            //     }
131
+            //   }
132
+              this.patientTableData = response.data.data.list
133
+             }  
134
+          })
135
+      },
136
+
137
+    changePatient(val){
109
 
138
 
110
-      // if (this.org_template_info.template_id == 1) {
111
-      //   printJS({
112
-      //     printable: "dialysis-print-box",
113
-      //     type: "html",
114
-      //     style: style,
115
-      //     scanStyles: false
116
-      //   });
117
-      // }
139
+        const params = {
140
+          patient_id:val.patient_id
141
+        }
142
+        console.log("params",params)
143
+      getPatientCaseHistory(params).then(response=>{
144
+         if(response.data.state == 1){
145
+           var patient = response.data.data.patient
146
+           console.log("patinet",patient)
147
+           this.patient = patient
148
+           var history = response.data.data.history
149
+           console.log("history",history)
150
+           this.history = history
151
+           var hispatient = response.data.data.hispatient
152
+           console.log("hispatient",hispatient)
153
+           this.hispatient = hispatient
154
+         }
155
+      })
156
+    },
157
+    searchAction(){
158
+      this.getPatientList()
118
     },
159
     },
160
+    
119
   },
161
   },
120
   created() {
162
   created() {
163
+    this.getPatientList() 
164
+   
121
   },
165
   },
122
-  computed:{
123
-    filtedSchedules: function() {
124
-      var search_keyword = this.search_keyword
125
-      if (search_keyword.length > 0) {
126
-        var schedules = []
127
-        for (let o_i = 0; o_i < this.zone_schedules.length; o_i++) {
128
-        const scheduleInfo = this.zone_schedules[o_i]
129
-        var originSchedules = scheduleInfo.schedules
130
-        if (originSchedules.length == 0) {
131
-            continue
132
-        }
133
-        var filtedSchedules = []
134
-        for (let s_i = 0; s_i < originSchedules.length; s_i++) {
135
-            const schedule = originSchedules[s_i]
136
-            if (schedule.patient.name.indexOf(search_keyword) != -1) {
137
-            filtedSchedules.push(schedule)
138
-            // break
139
-            }
140
-        }
141
-        if (filtedSchedules.length > 0) {
142
-            schedules.push({ zone_id: scheduleInfo.zone_id, zone_name: scheduleInfo.zone_name, schedules: filtedSchedules })
143
-        }
144
-        }
145
-        return schedules
146
-      }
147
-    }
148
-  },
166
+  // computed:{
167
+  //   filtedSchedules: function() {
168
+  //     var search_keyword = this.search_keyword
169
+  //     if (search_keyword.length > 0) {
170
+  //       var schedules = []
171
+  //       for (let o_i = 0; o_i < this.zone_schedules.length; o_i++) {
172
+  //       const scheduleInfo = this.zone_schedules[o_i]
173
+  //       var originSchedules = scheduleInfo.schedules
174
+  //       if (originSchedules.length == 0) {
175
+  //           continue
176
+  //       }
177
+  //       var filtedSchedules = []
178
+  //       for (let s_i = 0; s_i < originSchedules.length; s_i++) {
179
+  //           const schedule = originSchedules[s_i]
180
+  //           if (schedule.patient.name.indexOf(search_keyword) != -1) {
181
+  //           filtedSchedules.push(schedule)
182
+  //           // break
183
+  //           }
184
+  //       }
185
+  //       if (filtedSchedules.length > 0) {
186
+  //           schedules.push({ zone_id: scheduleInfo.zone_id, zone_name: scheduleInfo.zone_name, schedules: filtedSchedules })
187
+  //       }
188
+  //       }
189
+  //       return schedules
190
+  //     }
191
+  //   }
192
+  // },
149
 };
193
 };
150
 </script>
194
 </script>
151
 
195
 

+ 86 - 24
src/xt_pages/outpatientDoctorStation/recordTemplate/printOne.vue View File

2
     <div id='prescription-print' class="prescription-print">
2
     <div id='prescription-print' class="prescription-print">
3
         <div class="printTitle">门诊病历</div>
3
         <div class="printTitle">门诊病历</div>
4
         <div class="infoTitle">
4
         <div class="infoTitle">
5
-            <p>姓名:阿萨德</p>
6
-            <p>性别:男</p>
7
-            <p>年龄:12岁</p>
5
+            <p>姓名:{{patient.name}}</p>
6
+            <p>性别:
7
+                <span v-if="patient.gender == 1">男</span>
8
+                <span v-if="patient.gender == 2">女</span>
9
+            </p>
10
+            <p>年龄:{{patient.age}}岁</p>
8
         </div>
11
         </div>
9
         <div class="infoTitle">
12
         <div class="infoTitle">
10
-            <p>婚姻状况:婚姻状况保密</p>
11
-            <p>职业:未分类</p>
13
+            <p>婚姻状况:
14
+              <span v-if="patient.marital_status == 1">已婚 </span>
15
+              <span v-if="patient.marital_status == 2">未婚 </span>
16
+            </p>
17
+            <p>职业:{{getProfession(patient.profession)}}</p>
12
         </div>
18
         </div>
13
         <div class="otherInfo">
19
         <div class="otherInfo">
14
             <p>医保号:</p>
20
             <p>医保号:</p>
15
-            <p style="flex:1;">7938749234</p>
21
+            <p style="flex:1;">{{patient.health_care_no}}</p>
16
         </div>
22
         </div>
17
         <div class="otherInfo">
23
         <div class="otherInfo">
18
             <p>联系电话:</p>
24
             <p>联系电话:</p>
19
-            <p style="flex:1;">23234343234</p>
25
+            <p style="flex:1;">{{patient.phone}}</p>
20
         </div>
26
         </div>
21
         <div class="otherInfo">
27
         <div class="otherInfo">
22
             <p>通讯地址:</p>
28
             <p>通讯地址:</p>
23
-            <p style="flex:1;">奥数都我阿苏do一按实际的福克斯</p>
29
+            <p style="flex:1;">{{patient.home_address}}</p>
24
         </div>
30
         </div>
25
         <div class="otherInfo">
31
         <div class="otherInfo">
26
             <p>药物过敏史:</p>
32
             <p>药物过敏史:</p>
27
-            <p style="flex:1;">奥数都我阿苏do一按实际的福克斯</p>
33
+            <p style="flex:1;">{{patient.past_history}}</p>
28
         </div>
34
         </div>
29
         <div class="otherInfo">
35
         <div class="otherInfo">
30
             <p>病历编号:</p>
36
             <p>病历编号:</p>
31
-            <p style="flex:1;">2020110300002525</p>
37
+            <p style="flex:1;">{{patient.id}}</p>
32
         </div>
38
         </div>
33
         <div style="page-break-after:always;margin-top:50px;"></div>
39
         <div style="page-break-after:always;margin-top:50px;"></div>
34
 
40
 
35
 
41
 
36
         <div class="printTitle">病历内容</div>
42
         <div class="printTitle">病历内容</div>
37
         <div class="recordTitle">
43
         <div class="recordTitle">
38
-            <p>科别:全科</p>
39
-            <p>姓名:阿萨德</p>
40
-            <p>性别:男</p>
41
-            <p>年龄:12岁</p>
44
+            <p>科别:{{hispatient.departments}}</p>
45
+            <p>姓名:{{hispatient.name}}</p>
46
+            <p>性别:
47
+                <span v-if="hispatient.gender == 1">男</span>
48
+                <span v-if="hispatient.gender == 2">女</span>
49
+            </p>
50
+            <p>年龄:{{hispatient.age}}岁</p>
42
         </div>
51
         </div>
43
         <div class="otherInfo">
52
         <div class="otherInfo">
44
             <p class="otherName">主诉:</p>
53
             <p class="otherName">主诉:</p>
45
-            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
54
+            <p style="flex:1;">{{history.chief_conplaint}}</p>
46
         </div>
55
         </div>
47
         <div class="otherInfo">
56
         <div class="otherInfo">
48
             <p class="otherName">现病史:</p>
57
             <p class="otherName">现病史:</p>
49
-            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
58
+            <p style="flex:1;">{{history.history_of_present_illness}}</p>
50
         </div>
59
         </div>
51
         <div class="otherInfo">
60
         <div class="otherInfo">
52
             <p class="otherName">既往史:</p>
61
             <p class="otherName">既往史:</p>
53
-            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
62
+            <p style="flex:1;">{{history.past_history}}</p>
54
         </div>
63
         </div>
55
         <div class="otherInfo">
64
         <div class="otherInfo">
56
             <p class="otherName">药物过敏史:</p>
65
             <p class="otherName">药物过敏史:</p>
57
-            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
66
+            <p style="flex:1;">{{history.past_history}}</p>
58
         </div>
67
         </div>
59
         <div class="otherInfo">
68
         <div class="otherInfo">
60
             <p class="otherName">个人史:</p>
69
             <p class="otherName">个人史:</p>
61
-            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的爱神的箭了卡萨建档立卡加上来得及阿斯利康的爱神的箭了卡萨建档立卡加上来得及阿斯利康的爱神的箭了卡萨建档立卡加上来得及阿斯利康的爱神的箭了卡萨建档立卡加上来得及阿斯利康的爱神的箭了卡萨建档立卡加上来得及阿斯利康的爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
70
+            <p style="flex:1;">{{history.personal_history}}</p>
62
         </div>
71
         </div>
63
         <div class="otherInfo">
72
         <div class="otherInfo">
64
             <p class="otherName">家族史:</p>
73
             <p class="otherName">家族史:</p>
65
-            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
74
+            <p style="flex:1;">{{history.family_history}}</p>
66
         </div>
75
         </div>
67
         <div class="otherInfo">
76
         <div class="otherInfo">
68
             <p class="otherName">体格检查:</p>
77
             <p class="otherName">体格检查:</p>
69
-            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
78
+            <p style="flex:1;"></p>
70
         </div>
79
         </div>
71
         <div class="otherInfo">
80
         <div class="otherInfo">
72
             <p class="otherName">门诊诊断:</p>
81
             <p class="otherName">门诊诊断:</p>
73
-            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
82
+            <p style="flex:1;">{{history.diagnostic}}</p>
74
         </div>
83
         </div>
75
         <div class="otherInfo">
84
         <div class="otherInfo">
76
             <p class="otherName">门诊医嘱:</p>
85
             <p class="otherName">门诊医嘱:</p>
77
-            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
86
+            <p style="flex:1;"></p>
78
         </div>
87
         </div>
79
         <div style="margin-top:20px;text-align:right;">
88
         <div style="margin-top:20px;text-align:right;">
80
-            医生签名:阿斯加德
89
+            医生签名:{{getDoctor(history.doctor)}}
81
         </div>
90
         </div>
82
     </div>
91
     </div>
83
 </template>
92
 </template>
93
+<script>
94
+import { getDataConfig } from "@/utils/data";
95
+import { getAllDoctorList } from "@/api/project/project"
96
+export default {
97
+    props:{
98
+      patient:Object,
99
+      hispatient:Object,
100
+      history:Object,
101
+    },
102
+    return:{
103
+      educationOptions:[]
104
+    },
105
+    data(){
84
 
106
 
107
+    },
108
+    methods:{
109
+      getProfession(id){
110
+        var name = ""
111
+        for(let i=0;i<this.educationOptions.length;i++){
112
+           if(id == this.educationOptions[i].id){
113
+              name = this.educationOptions[i].name
114
+           }
115
+        }
116
+        return name
117
+      },
118
+      getAllDoctorList(){
119
+           getAllDoctorList().then(response=>{
120
+             if(response.data.state == 1){
121
+               var doctor =  response.data.data.doctor
122
+
123
+               this.doctorList = doctor
124
+            //    var department = response.data.data.department
125
+            //    console.log("department",department)
126
+            //    this.departmentList = department
127
+             }
128
+           })   
129
+       },
130
+      getDoctor(id){
131
+        var name = ""
132
+        for(let i=0;i<this.doctorList.length;i++){
133
+          if(id == this.doctorList[i].admin_user_id){
134
+              name = this.doctorList[i].user_name
135
+          }
136
+        }
137
+        return name
138
+      }
139
+    },
140
+    created(){
141
+      this.educationOptions = getDataConfig("patient", "education_types");
142
+      console.log("22222",this.educationOptions)
143
+      this.getAllDoctorList()
144
+    }
145
+}
146
+</script>
85
 
147
 
86
 
148
 
87
 <style lang="scss" scoped>
149
 <style lang="scss" scoped>

+ 4 - 7
src/xt_pages/outpatientRegistration/index.vue View File

6
         <div class="app-container">
6
         <div class="app-container">
7
             <div class="nameTitle">患者基本信息:</div>
7
             <div class="nameTitle">患者基本信息:</div>
8
             <div class="formMain">
8
             <div class="formMain">
9
-                <el-form class="basicForm" :model="form" :rules="rules" ref="form"  label-width="100px">
9
+                <el-form class="basicForm" :model="form"  :rules="rules"  ref="form"  label-width="100px">
10
                     <el-form-item label="结算类型:">
10
                     <el-form-item label="结算类型:">
11
                         <el-select v-model="form.settlementValue" placeholder="请选择">
11
                         <el-select v-model="form.settlementValue" placeholder="请选择">
12
                             <el-option
12
                             <el-option
64
                     </el-form-item>
64
                     </el-form-item>
65
                     <el-form-item label="证件号码:" required prop="idCard">
65
                     <el-form-item label="证件号码:" required prop="idCard">
66
                         <el-input v-model="form.idCard"></el-input>
66
                         <el-input v-model="form.idCard"></el-input>
67
-                        <!-- <div class="el-form-item__error" v-show="show">
68
-                          请填写证件号码
69
-                        </div> -->
70
                     </el-form-item>
67
                     </el-form-item>
71
    
68
    
72
                 </el-form>
69
                 </el-form>
73
             </div>
70
             </div>
74
             <div class="nameTitle">患者挂号信息:</div>
71
             <div class="nameTitle">患者挂号信息:</div>
75
             <div class="formMain">
72
             <div class="formMain">
76
-                <el-form class="basicForm" :model="form" :rules="rules" label-width="100px">
73
+                <el-form class="basicForm" :model="form" label-width="100px">
77
                     <el-form-item label="挂号类型:"  prop="register">
74
                     <el-form-item label="挂号类型:"  prop="register">
78
                         <el-select v-model="form.register"  placeholder="请选择">
75
                         <el-select v-model="form.register"  placeholder="请选择">
79
                             <el-option
76
                             <el-option
248
             },
245
             },
249
 
246
 
250
             rules: {
247
             rules: {
251
-              idCard: [{ required: true, message: '请填写项目名称', trigger: 'blur'  }],
248
+              idCard: [{ required: true, message: '请填写身份证', trigger: 'blur'  }],
252
               register: [{ required: true, message: '请选择挂号类型' , trigger: 'blur' }],
249
               register: [{ required: true, message: '请选择挂号类型' , trigger: 'blur' }],
253
               doctor: [{ required: true, message: '请选择医生' , trigger: 'blur' }],
250
               doctor: [{ required: true, message: '请选择医生' , trigger: 'blur' }],
254
               department: [{ required: true, message: '请填写科室', trigger: 'blur' }],
251
               department: [{ required: true, message: '请填写科室', trigger: 'blur' }],
405
                      this.form.medicalCare = "",
402
                      this.form.medicalCare = "",
406
                      this.form.birthday ="",
403
                      this.form.birthday ="",
407
                      this.form.age ="",
404
                      this.form.age ="",
408
-                     this.form.idCard = "",
405
+                    //  this.form.idCard = "",
409
                      this.form.register = "",
406
                      this.form.register = "",
410
                      this.form.doctor = "",
407
                      this.form.doctor = "",
411
                      this.form.department = "",
408
                      this.form.department = "",

+ 4 - 2
src/xt_pages/outpatientRegistration/registrationHistory.vue View File

206
         // },
206
         // },
207
         changeStart(val){
207
         changeStart(val){
208
           this.start_time = val
208
           this.start_time = val
209
+          this.getlist()
209
         },
210
         },
210
         changeEnd(val){
211
         changeEnd(val){
211
-           this.end_time = val
212
+          this.end_time = val
213
+          this.getlist()
212
         },
214
         },
213
         changeRegister(val){
215
         changeRegister(val){
214
-
216
+          this.getlist()
215
         },
217
         },
216
        handleSizeChange(val) {
218
        handleSizeChange(val) {
217
           this.limit = val
219
           this.limit = val