Browse Source

Merge branch 'superman' of http://git.shengws.com/zhangbj/xt_vue into superman

XMLWAN 4 years ago
parent
commit
363a24a9fe

+ 21 - 0
src/api/inspection.js View File

@@ -38,3 +38,24 @@ export function fetchPatientInspections(params){
38 38
         params:params,
39 39
     })
40 40
 }
41
+
42
+
43
+export function GetUploadInspections(params){
44
+  return request({
45
+    url:'/api/patient/inspection/get',
46
+    method:'get',
47
+    params:params,
48
+  })
49
+}
50
+
51
+export function GetInitInspections(params){
52
+  return request({
53
+    url:'/api/patient/inspectioninit/get',
54
+    method:'get',
55
+    params:params,
56
+  })
57
+}
58
+
59
+
60
+
61
+

+ 6 - 6
src/xt_pages/data/druguseTemplate.vue View File

@@ -180,9 +180,9 @@
180 180
 
181 181
               <el-table-column prop="blood_flow_volume" align="center" label="提醒频率">
182 182
                 <template slot-scope="scope">
183
-                  <span v-if="scope.row.frequency_type == 1">每次必推</span>
184
-                  <span v-if="scope.row.frequency_type == 2">{{scope.row.day_count}}天/1次</span>
185
-                  <span v-if="scope.row.frequency_type == 3">每周{{scope.row.week_days}}</span>
183
+                  <span v-if="scope.row.advice_type == 1 &&scope.row.frequency_type == 1">每次必推</span>
184
+                  <span v-if="scope.row.advice_type == 1&&scope.row.frequency_type == 2">{{scope.row.day_count}}天/1次</span>
185
+                  <span v-if="scope.row.advice_type == 1&&scope.row.frequency_type == 3">每周{{scope.row.week_days}}</span>
186 186
                 </template>
187 187
               </el-table-column>
188 188
 
@@ -284,9 +284,9 @@
284 284
 
285 285
                   <el-table-column prop="blood_flow_volume" align="center" label="提醒频率" v-if="form.advice_type == 1">
286 286
                     <template slot-scope="scope">
287
-                      <span v-if="scope.row.frequency_type == 1">每次必推</span>
288
-                      <span v-if="scope.row.frequency_type == 2">{{scope.row.day_count}}天/1次</span>
289
-                      <span v-if="scope.row.frequency_type == 3">每周{{scope.row.weekdays}}</span>
287
+                      <span v-if="scope.row.advice_type == 1 &&scope.row.frequency_type == 1">每次必推</span>
288
+                      <span v-if="scope.row.advice_type == 1 &&scope.row.frequency_type == 2">{{scope.row.day_count}}天/1次</span>
289
+                      <span v-if="scope.row.advice_type == 1 &&scope.row.frequency_type == 3">每周{{scope.row.weekdays}}</span>
290 290
                     </template>
291 291
                   </el-table-column>
292 292
 

+ 80 - 9
src/xt_pages/upload/fast/FastCountry.vue View File

@@ -6,17 +6,11 @@
6 6
       v-on:inspection="inspectionClick()"
7 7
     ></fast-patients-sidebar>
8 8
     <!-- <fast-upload-detail v-if="isShow == 1"  :id="patientID"  :is-edit='true' :class='panelClass'></fast-upload-detail> -->
9
-    <one v-if="isShow == 1" :id="patientID" :is-edit='true' :class='panelClass'></one>
10
-    <two v-if="isShow == 2"
9
+    <one ref="one" v-if="isShow == 1" :patientID="patientID" :is-edit='true' :class='panelClass' @></one>
10
+    <two ref="two" v-if="isShow == 2"
11 11
          :id="patientID"
12 12
          :is-edit="true"
13 13
          :class="panelClass"></two>
14
-    <!--<fast-upload-inspectiton-detail-->
15
-    <!--v-if="isShow == 2"-->
16
-    <!--:id="patientID"-->
17
-    <!--:is-edit="true"-->
18
-    <!--:class="panelClass"-->
19
-    <!--&gt;</fast-upload-inspectiton-detail>-->
20 14
   </div>
21 15
 </template>
22 16
 
@@ -39,7 +33,7 @@
39 33
     },
40 34
     data() {
41 35
       return {
42
-        patientID: 1,
36
+        patientID: 0,
43 37
         panelClass: 'patient-app-container',
44 38
         patientInfo: {
45 39
           id: 0
@@ -64,18 +58,95 @@
64 58
             this.patientsList = response.data.data.patients
65 59
             if (type == 1) {
66 60
               this.patientID = this.patientsList[0].id
61
+
67 62
             } else {
68 63
               this.patientID = this.$route.query.id
69 64
             }
65
+            this.$nextTick(() => {
66
+              this.$refs.one.fetchPatient(this.patientID)
67
+
68
+            })
70 69
           }
71 70
         })
72 71
       },
73 72
       patientInfoClick: function() {
74 73
         this.isShow = 1
74
+        this.$nextTick(() => {
75
+          this.$refs.one.fetchPatient(this.patientID)
76
+
77
+        })
78
+
75 79
       },
76 80
       inspectionClick: function() {
77 81
         this.isShow = 2
82
+        this.$nextTick(() => {
83
+          var start_time = new Date(this.getQuarterStartDate().replace(/-/g, '/')).getTime() / 1000
84
+          var end_time = new Date(this.getQuarterEndDate().replace(/-/g, '/')).getTime() / 1000
85
+          this.$refs.two.GetInitInspections()
86
+          this.$refs.two.GetUploadInspections(this.patientID,start_time,end_time,1,"1")
87
+          this.$refs.two.GetUploadInspections(this.patientID,start_time,end_time,2,"2-4-20")
88
+          this.$refs.two.GetUploadInspections(this.patientID,start_time,end_time,3,"21")
89
+          this.$refs.two.GetUploadInspections(this.patientID,start_time,end_time,4,"2-4-15-24-25")
90
+          this.$refs.two.GetUploadInspections(this.patientID,start_time,end_time,5,"15-23")
91
+          this.$refs.two.GetUploadInspections(this.patientID,start_time,end_time,6,"14")
92
+          this.$refs.two.GetUploadInspections(this.patientID,start_time,end_time,7,"22")
93
+        })
94
+
95
+      }, getQuarterStartDate: function() {
96
+        var now = new Date() //当前日期
97
+        var nowYear = now.getFullYear() //当前年
98
+        nowYear += (nowYear < 2000) ? 1900 : 0
99
+
100
+        var quarterStartDate = new Date(nowYear, this.getQuarterStartMonth(), 1)
101
+        return this.formatDate(quarterStartDate)
102
+      }, getQuarterEndDate: function() {
103
+        var now = new Date() //当前日期
104
+        var nowYear = now.getFullYear() //当前年
105
+        nowYear += (nowYear < 2000) ? 1900 : 0
106
+        var quarterEndMonth = this.getQuarterStartMonth() + 2
107
+        var quarterStartDate = new Date(nowYear, quarterEndMonth, this.getMonthDays(quarterEndMonth))
108
+        return this.formatDate(quarterStartDate)
109
+      }, formatDate: function(date) {
110
+        var myyear = date.getFullYear()
111
+        var mymonth = date.getMonth() + 1
112
+        var myweekday = date.getDate()
113
+
114
+        if (mymonth < 10) {
115
+          mymonth = '0' + mymonth
116
+        }
117
+        if (myweekday < 10) {
118
+          myweekday = '0' + myweekday
119
+        }
120
+        return (myyear + '-' + mymonth + '-' + myweekday)
121
+      }, getQuarterStartMonth: function() {
122
+        var now = new Date() //当前日期
123
+        var nowMonth = now.getMonth() //当前月
124
+
125
+        var quarterStartMonth = 0
126
+        if (nowMonth < 3) {
127
+          quarterStartMonth = 0
128
+        }
129
+        if (2 < nowMonth && nowMonth < 6) {
130
+          quarterStartMonth = 3
131
+        }
132
+        if (5 < nowMonth && nowMonth < 9) {
133
+          quarterStartMonth = 6
134
+        }
135
+        if (nowMonth > 8) {
136
+          quarterStartMonth = 9
137
+        }
138
+        return quarterStartMonth
139
+      },  //获得某月的天数
140
+      getMonthDays(myMonth) {
141
+        var now = new Date() //当前日期
142
+        var nowYear = now.getYear() //当前年
143
+        nowYear += (nowYear < 2000) ? 1900 : 0
144
+        var monthStartDate = new Date(nowYear, myMonth, 1)
145
+        var monthEndDate = new Date(nowYear, myMonth + 1, 1)
146
+        var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24)
147
+        return days
78 148
       }
149
+
79 150
     }
80 151
   }
81 152
 </script>

+ 3 - 3
src/xt_pages/upload/fast/FastPatientsSidebar.vue View File

@@ -87,9 +87,9 @@ export default {
87 87
     handleNodeClick(data) {
88 88
       var name = data.name;
89 89
       if (name == "1-1") {
90
-        this.$emit("patient");
90
+        this.$emit("patient",this.selectID);
91 91
       } else if (name == "1-2") {
92
-        this.$emit("inspection");
92
+        this.$emit("inspection",this.selectID);
93 93
       }
94 94
     },
95 95
 
@@ -102,10 +102,10 @@ export default {
102 102
             for (let index = 0; index < len; index++) {
103 103
               if (this.patientsList[index].id == this.id) {
104 104
                 this.currentPatient = this.patientsList[index];
105
-
106 105
                 this.selectID = this.patientsList[index].id;
107 106
                 this.$emit("tran-patient", this.currentPatient);
108 107
                 break;
108
+
109 109
               }
110 110
             }
111 111
           }

+ 2 - 1
src/xt_pages/upload/fast/FastProvince.vue View File

@@ -29,7 +29,7 @@
29 29
               :value="item.id">
30 30
             </el-option>
31 31
           </el-select>
32
-          <el-select v-model="form.city" disabled filterable placeholder="请选择" @change="changeCity">
32
+          <el-select v-model="form.city" disabled filterable placeholder="请选择" >
33 33
             <el-option
34 34
               v-for="item in citys"
35 35
               :key="item.id"
@@ -57,6 +57,7 @@
57 57
         dialogVisible: false,
58 58
         end_time: '',
59 59
         provinces: [],
60
+        citys:[],
60 61
         form: {
61 62
           province: '',
62 63
           city: ''

+ 0 - 1
src/xt_pages/upload/fast/FastUploadDetail.vue View File

@@ -384,7 +384,6 @@
384 384
       fetchPatient(id) {
385 385
         fetchPatient(id)
386 386
           .then(response => {
387
-            console.log(response.data.data)
388 387
             if (response.data.state === 1) {
389 388
               this.$emit('tran-patient-info', response.data.data.patient)
390 389
               var patietInfo = response.data.data.patient

+ 373 - 54
src/xt_pages/upload/fast/One.vue View File

@@ -7,126 +7,144 @@
7 7
       <div class="row">
8 8
         <div class="rowOne">
9 9
           <p class="rowName">首次诊治时间:</p>
10
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
10
+          <el-input placeholder="请输入内容" v-model="form.first_treatment_date" :disabled="true">
11 11
           </el-input>
12
-          <div class="btn">复制</div>
12
+          <div class="btn" v-clipboard:copy="form.first_treatment_date"
13
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
13 14
         </div>
14 15
         <div class="rowOne">
15 16
           <p class="rowName1">
16 17
             首次肾脏替代治疗时间 :
17 18
           </p>
18
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
19
+          <el-input placeholder="请输入内容" v-model="form.firstDialysisDate" :disabled="true">
19 20
           </el-input>
20
-          <div class="btn">复制</div>
21
+          <div class="btn" v-clipboard:copy="form.firstDialysisDate"
22
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
21 23
         </div>
22 24
         <div class="rowOne">
23 25
           <p class="rowName">创建者:</p>
24
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
26
+          <el-input placeholder="请输入内容" v-model="form.registrars" :disabled="true">
25 27
           </el-input>
26
-          <div class="btn">复制</div>
28
+          <div class="btn" v-clipboard:copy="form.registrars"
29
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
27 30
         </div>
28 31
         <div class="rowOne">
29 32
           <p class="rowName">创建日期:</p>
30
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
33
+          <el-input placeholder="请输入内容" v-model="form.create_time" :disabled="true">
31 34
           </el-input>
32
-          <div class="btn">复制</div>
35
+          <div class="btn" v-clipboard:copy="form.create_time"
36
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
33 37
         </div>
34 38
       </div>
35 39
       <div class="row">
36 40
         <div class="rowOne">
37 41
           <p class="rowName">姓名:</p>
38
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
42
+          <el-input placeholder="请输入内容" v-model="form.name" :disabled="true">
39 43
           </el-input>
40
-          <div class="btn">复制</div>
44
+          <div class="btn" v-clipboard:copy="form.name"
45
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
41 46
         </div>
42 47
         <div class="rowOne">
43 48
           <p class="rowName">性别:</p>
44 49
           <div class="radioOne">
45 50
             <template>
46
-              <el-radio v-model="radio" label="1">男</el-radio>
47
-              <el-radio v-model="radio" label="2">女</el-radio>
51
+              <el-radio v-model="form.gender" label="1">男</el-radio>
52
+              <el-radio v-model="form.gender" label="2">女</el-radio>
48 53
             </template>
49 54
           </div>
50 55
         </div>
51 56
         <div class="rowOne">
52 57
           <p class="rowName">证件类型:</p>
53
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
58
+          <el-input placeholder="请输入内容" :disabled="true" v-model="form.id_type">
54 59
           </el-input>
55
-          <div class="btn">复制</div>
60
+          <div class="btn" v-clipboard:copy="form.id_type"
61
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
56 62
         </div>
57 63
       </div>
58 64
       <div class="row">
59 65
         <div class="rowOne">
60 66
           <p class="rowName">身份证号:</p>
61
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
67
+          <el-input placeholder="请输入内容" style="width: 200px;" v-model="form.idCardNo" :disabled="true">
62 68
           </el-input>
63
-          <div class="btn">复制</div>
69
+          <div class="btn" v-clipboard:copy="form.idCardNo"
70
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
64 71
         </div>
65 72
       </div>
66 73
       <div class="row">
67 74
         <div class="rowOne">
68
-          <p class="rowName">族:</p>
69
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
75
+          <p class="rowName">族:</p>
76
+          <el-input placeholder="请输入内容" v-model="form.nation" :disabled="true">
70 77
           </el-input>
71 78
         </div>
72 79
         <div class="rowOne">
73 80
           <p class="rowName">
74 81
             婚姻状况:
75 82
           </p>
76
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
83
+          <el-input placeholder="请输入内容"  :disabled="true" v-model="form.maritalStatus">
77 84
           </el-input>
85
+
78 86
         </div>
79 87
         <div class="rowOne">
80 88
           <p class="rowName">年龄:</p>
81
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
89
+          <el-input placeholder="请输入内容" v-model="form.age" :disabled="true">
82 90
           </el-input>
83
-          <div class="btn">复制</div>
91
+          <div class="btn" v-clipboard:copy="form.age"
92
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
84 93
         </div>
85 94
         <div class="rowOne">
86 95
           <p class="rowName">出生日期:</p>
87
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
96
+          <el-input placeholder="请输入内容" v-model="form.birth" :disabled="true">
88 97
           </el-input>
89 98
         </div>
90 99
       </div>
91 100
       <div class="row">
92 101
         <div class="rowOne">
93 102
           <p class="rowName">教育程度:</p>
94
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
103
+          <el-input placeholder="请输入内容" style="width: 270px;" v-model="form.education" :disabled="true">
95 104
           </el-input>
96 105
         </div>
97 106
         <div class="rowOne">
98 107
           <p class="rowName">
99 108
             职业:
100 109
           </p>
101
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
110
+          <el-input placeholder="请输入内容"  style="width: 270px;" v-model="form.profession" :disabled="true">
102 111
           </el-input>
103 112
         </div>
104 113
       </div>
105 114
       <div class="row">
106 115
         <div class="rowOne">
107 116
           <p class="rowName">门诊号:</p>
108
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
117
+          <el-input placeholder="请输入内容" v-if="form.source == 1" v-model="form.admissionNumber" :disabled="true">
118
+          </el-input>
119
+          <el-input placeholder="请输入内容" v-if="form.source == 2"  :disabled="true">
109 120
           </el-input>
110
-          <div class="btn">复制</div>
121
+          <div class="btn"  v-clipboard:copy="form.admissionNumber"
122
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
111 123
         </div>
112 124
         <div class="rowOne">
113 125
           <p class="rowName">
114 126
             住院号:
115 127
           </p>
116
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
128
+          <el-input placeholder="请输入内容" v-if="form.source == 2" v-model="form.admissionNumber" :disabled="true">
129
+          </el-input>
130
+          <el-input placeholder="请输入内容" v-if="form.source == 1"  :disabled="true">
117 131
           </el-input>
132
+          <div class="btn"  v-clipboard:copy="form.admissionNumber"
133
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
118 134
         </div>
119 135
         <div class="rowOne">
120 136
           <p class="rowName">透析病案号:</p>
121
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
137
+          <el-input placeholder="请输入内容" v-model="form.dialysisNo" :disabled="true">
122 138
           </el-input>
123
-          <div class="btn">复制</div>
139
+          <div class="btn" v-clipboard:copy="form.dialysisNo"
140
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
124 141
         </div>
125 142
         <div class="rowOne">
126 143
           <p class="rowName">透析龄(月):</p>
127
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
144
+          <el-input placeholder="请输入内容" v-model="form.dialysis_age" :disabled="true">
128 145
           </el-input>
129
-          <div class="btn">复制</div>
146
+          <div class="btn" v-clipboard:copy="form.dialysis_age"
147
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
130 148
         </div>
131 149
       </div>
132 150
       <div class="row1">
@@ -134,13 +152,13 @@
134 152
           <p class="rowName">费别:</p>
135 153
           <div class="radioOne">
136 154
             <template>
137
-              <el-radio v-model="radio" label="1">基本医保</el-radio>
138
-              <el-radio v-model="radio" label="2">新农合</el-radio>
139
-              <el-radio v-model="radio" label="2">自费医疗</el-radio>
140
-              <el-radio v-model="radio" label="2">公费医疗</el-radio>
141
-              <el-radio v-model="radio" label="2">商业保险</el-radio>
142
-              <el-radio v-model="radio" label="2">军队医疗</el-radio>
143
-              <el-radio v-model="radio" label="2">其他</el-radio>
155
+              <el-radio v-model="form.expense_kind"  label="1">基本医保</el-radio>
156
+              <el-radio  v-model="form.expense_kind" label="2">新农合</el-radio>
157
+              <el-radio  v-model="form.expense_kind" label="3">自费医疗</el-radio>
158
+              <el-radio  v-model="form.expense_kind" label="4">公费医疗</el-radio>
159
+              <el-radio v-model="form.expense_kind" label="5">商业保险</el-radio>
160
+              <el-radio  v-model="form.expense_kind" label="6">军队医疗</el-radio>
161
+              <el-radio  v-model="form.expense_kind" label="7">其他</el-radio>
144 162
             </template>
145 163
           </div>
146 164
         </div>
@@ -148,45 +166,46 @@
148 166
       <div class="row1">
149 167
         <div class="line">
150 168
           <p class="rowName">通信地址:</p>
151
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
169
+          <el-input placeholder="请输入内容"  :disabled="true">
152 170
           </el-input
153
-          ><el-input placeholder="请输入内容" v-model="input" :disabled="true">
171
+          ><el-input placeholder="请输入内容" :disabled="true">
154 172
           </el-input
155
-          ><el-input placeholder="请输入内容" v-model="input" :disabled="true">
173
+          ><el-input placeholder="请输入内容"  :disabled="true">
156 174
           </el-input>
157 175
         </div>
158 176
         <div class="rowOne">
159
-          <p class="rowName">门诊号:</p>
160
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
177
+          <p class="rowName">具体地址:</p>
178
+          <el-input placeholder="请输入内容" v-model="form.homeAddress" :disabled="true">
161 179
           </el-input>
162
-          <div class="btn">复制</div>
180
+          <div class="btn" v-clipboard:copy="form.homeAddress"
181
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
163 182
         </div>
164 183
       </div>
165 184
       <div class="row">
166 185
         <div class="rowOne">
167 186
           <p class="rowName">联系人姓名:</p>
168
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
187
+          <el-input placeholder="请输入内容" v-model="form.contact_name" :disabled="true">
169 188
           </el-input>
170
-          <div class="btn">复制</div>
189
+          <div class="btn" v-clipboard:copy="form.contact_name"
190
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
171 191
         </div>
172 192
         <div class="rowTwo">
173 193
           <p class="rowName1">
174 194
             固定电话 &ensp;&ensp;&ensp;&ensp;(电话):
175 195
           </p>
176
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
177
-          </el-input>
178
-          <div class="btn">复制</div>
179
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
196
+          <el-input placeholder="请输入内容" v-model="form.tell_phone" :disabled="true">
180 197
           </el-input>
181
-          <div class="btn">复制</div>
198
+          <div class="btn" v-clipboard:copy="form.tell_phone"
199
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
182 200
         </div>
183 201
         <div class="rowOne">
184 202
           <p class="rowName1">
185 203
             联系电话 &ensp;&ensp;&ensp;&ensp;(电话):
186 204
           </p>
187
-          <el-input placeholder="请输入内容" v-model="input" :disabled="true">
205
+          <el-input placeholder="请输入内容" v-model="form.homeTelephone" :disabled="true">
188 206
           </el-input>
189
-          <div class="btn">复制</div>
207
+          <div class="btn" v-clipboard:copy="form.homeTelephone"
208
+               v-clipboard:success="onCopy" v-clipboard:error="onError">复制</div>
190 209
         </div>
191 210
       </div>
192 211
     </div>
@@ -194,6 +213,306 @@
194 213
   </div>
195 214
 
196 215
 </template>
216
+<script>
217
+  import { getDataConfig } from '@/utils/data'
218
+  import {
219
+    uParseTime
220
+  } from '@/utils/tools'
221
+  import {
222
+    fetchPatient
223
+  } from '@/api/patient'
224
+  import { fetchAllAdminUsers } from '@/api/doctor'
225
+  const defaultForm = {
226
+    avatar: '',
227
+    patientType: '',
228
+    dialysisNo: '',
229
+    admissionNumber: '',
230
+    source: '',
231
+    lapseto: '',
232
+    partition: '',
233
+    bed: '',
234
+    name: '',
235
+    gender: '',
236
+    nation: '',
237
+    native_place: '',
238
+    maritalStatus: '',
239
+    idCardNo: '',
240
+    birth: '',
241
+    age: '',
242
+    reimbursementWayID: '',
243
+    healthCareNo: '',
244
+    healthCareDueDate: '',
245
+    height: '',
246
+    blood: '',
247
+    rh: '',
248
+    healthCareDueAlertDate: '',
249
+    education: '',
250
+    profession: '',
251
+    phone: '',
252
+    homeTelephone: '',
253
+    homeAddress: '',
254
+    work: '',
255
+    receivingDate: '',
256
+    firstDialysisDate: '',
257
+    dialysisAge: '',
258
+    induction: '',
259
+    initial: '',
260
+    dialysisTotal: '',
261
+    contagions: [],
262
+    doctor: '',
263
+    nurse: '',
264
+    assessment: '',
265
+    diseases: [],
266
+    diagnose: '',
267
+    registrars: '',
268
+    patient_complains: '',
269
+    present_history: '',
270
+    past_history: '',
271
+    temperature: '',
272
+    pulse: '',
273
+    respiratory: '',
274
+    sbp: '',
275
+    dbp: '',
276
+    record_date: '',
277
+    response_result: '',
278
+    is_infectious: '',
279
+    formItem: [],
280
+    tell_phone:'',
281
+    first_treatment_date:'',
282
+    dialysis_age:'',
283
+    expense_kind:'',
284
+    contact_name:'',
285
+    create_time:'',
286
+    id_type:"身份证"
287
+  }
288
+
289
+  export default {
290
+    name: 'One',
291
+    components: { },
292
+
293
+    data() {
294
+      return {
295
+        expenseOptions:[
296
+          {id:1,name:"基本医保"},
297
+          {id:2,name:"新农合"},
298
+          {id:3,name:"自费医疗"},
299
+          {id:4,name:"公费医疗"},
300
+          {id:5,name:"商业保险"},
301
+          {id:6,name:"军队医疗"},
302
+          {id:7,name:"其他"},
303
+        ],
304
+        form: Object.assign({}, defaultForm),
305
+        adminUserOptions:[],
306
+        maritalOptions:[],
307
+        educationOptions: [],
308
+        professionOptions:[],
309
+
310
+      }
311
+    },
312
+    created() {
313
+      this.maritalOptions = getDataConfig('patient', 'marital_options')
314
+      this.educationOptions = getDataConfig('patient', 'education_types')
315
+      this.professionOptions = getDataConfig('patient', 'profession_options')
316
+      this.fetchAllAdminUsers()
317
+    },
318
+    methods: {
319
+      getTime(val){
320
+        return uParseTime(val, '{y}年{m}月{d}日')
321
+      },
322
+
323
+      getZones() {
324
+        getZones().then(response => {
325
+          if (response.data.state === 1) {
326
+            this.partitionOptions = response.data.data.zones
327
+          }
328
+        })
329
+      },
330
+      fetchPatient(id) {
331
+        fetchPatient(id)
332
+          .then(response => {
333
+            if (response.data.state === 1) {
334
+              var patietInfo = response.data.data.patient
335
+              this.form.avatar = patietInfo.avatar
336
+              this.form.name = patietInfo.name
337
+              this.form.alias = patietInfo.alias
338
+              this.form.lapseto = patietInfo.lapseto
339
+              this.form.idCardNo = patietInfo.id_card_no
340
+              this.form.dialysisNo = patietInfo.dialysis_no
341
+              this.form.gender = patietInfo.gender
342
+              this.form.is_infectious = patietInfo.is_infectious
343
+              // this.form.record_date = patietInfo.is_infectious
344
+              this.form.response_result = patietInfo.response_result
345
+              this.form.remind_cycle = patietInfo.remind_cycle
346
+              this.infections = response.data.data.infections
347
+              this.form.formItem = this.infections
348
+              if (patietInfo.gender === 1 || patietInfo.gender === 2) {
349
+                this.form.gender = patietInfo.gender.toString()
350
+              }
351
+              this.form.nation = patietInfo.nation
352
+              this.form.native_place = patietInfo.native_place
353
+              this.form.birth = uParseTime(patietInfo.birthday, '{y}-{m}-{d}')
354
+              this.form.create_time = uParseTime(patietInfo.created_time, '{y}-{m}-{d}')
355
+
356
+              this.form.firstDialysisDate = uParseTime(patietInfo.first_dialysis_date, '{y}-{m}-{d}')
357
+              this.form.height = patietInfo.height + ''
358
+              if (patietInfo.marital_status > 0) {
359
+                this.form.maritalStatus = patietInfo.marital_status
360
+              }
361
+              this.form.children = patietInfo.children
362
+              this.form.admissionNumber = patietInfo.admission_number
363
+              if (patietInfo.reimbursement_way_id > 0) {
364
+                this.form.reimbursementWayID = patietInfo.reimbursement_way_id
365
+              }
366
+              this.form.healthCareNo = patietInfo.health_care_no
367
+              this.form.phone = patietInfo.phone
368
+              this.form.homeTelephone = patietInfo.home_telephone
369
+              this.form.relative_phone = patietInfo.relative_phone
370
+              this.form.relative_relations = patietInfo.relative_relations
371
+              this.form.homeAddress = patietInfo.home_address
372
+              this.form.work = patietInfo.work_unit
373
+              this.form.unit_address = patietInfo.unit_address
374
+
375
+              if (patietInfo.age == 0) {
376
+                this.form.age = jsGetAge(this.form.birth, '-')
377
+              } else {
378
+                this.form.age = patietInfo.age
379
+              }
380
+
381
+              if (patietInfo.profession > 0) {
382
+                this.form.profession = patietInfo.profession
383
+              }
384
+              if (patietInfo.education_level > 0) {
385
+                this.form.education = patietInfo.education_level
386
+              }
387
+              if (patietInfo.source === 1 || patietInfo.source === 2) {
388
+                this.form.source = patietInfo.source
389
+              }
390
+              console.log("source:"+this.form.source)
391
+              if (patietInfo.lapseto === 1 || patietInfo.lapseto === 2) {
392
+                this.form.lapseto = patietInfo.lapseto
393
+              }
394
+              if (patietInfo.is_hospital_first_dialysis === 1 || patietInfo.is_hospital_first_dialysis === 2) {
395
+                this.form.is_hospital_first_dialysis = patietInfo.is_hospital_first_dialysis
396
+              }
397
+              if (patietInfo.first_dialysis_date !== 0) {
398
+                this.form.firstDialysisDate = uParseTime(
399
+                  patietInfo.first_dialysis_date,
400
+                  '{y}-{m}-{d}'
401
+                )
402
+              }
403
+              this.form.first_dialysis_hospital = patietInfo.first_dialysis_hospital
404
+              if (patietInfo.predialysis_condition.length > 0) {
405
+                this.form.predialysis_condition = patietInfo.predialysis_condition.split(',')
406
+              }
407
+              this.form.pre_hospital_dialysis_frequency = patietInfo.pre_hospital_dialysis_frequency
408
+              this.form.pre_hospital_dialysis_times = patietInfo.pre_hospital_dialysis_times
409
+              if (patietInfo.hospital_first_dialysis_date !== 0) {
410
+                this.form.hospital_first_dialysis_date = uParseTime(
411
+                  patietInfo.hospital_first_dialysis_date,
412
+                  '{y}-{m}-{d}'
413
+                )
414
+              }
415
+              this.form.contagions = response.data.data.contagions
416
+              this.form.diseases = response.data.data.diseases
417
+              this.form.remark = patietInfo.remark
418
+              this.form.diagnose = patietInfo.diagnose
419
+
420
+              this.form.patient_complains = patietInfo.patient_complains
421
+              this.form.present_history = patietInfo.present_history
422
+              this.form.past_history = patietInfo.past_history
423
+              this.form.temperature = patietInfo.temperature
424
+              this.form.pulse = patietInfo.pulse
425
+              this.form.respiratory = patietInfo.respiratory
426
+              this.form.sbp = patietInfo.sbp
427
+              this.form.dbp = patietInfo.dbp
428
+
429
+              this.form.contact_name = patietInfo.contact_name
430
+              this.form.tell_phone = patietInfo.tell_phone
431
+              this.form.dialysis_age = patietInfo.dialysis_age
432
+              if( patietInfo.expense_kind == 0){
433
+                this.form.expense_kind = ""
434
+              }else{
435
+                this.form.expense_kind = patietInfo.expense_kind.toString()
436
+              }
437
+
438
+
439
+
440
+              this.form.first_treatment_date =  uParseTime(
441
+                patietInfo.first_treatment_date,
442
+                '{y}-{m}-{d}'
443
+              )
444
+
445
+              if (patietInfo.registrars_id > 0) {
446
+                var eLen = this.adminUserOptions.length
447
+                for (let index = 0; index < eLen; index++) {
448
+                  if (this.adminUserOptions[index].id === patietInfo.registrars_id) {
449
+                    this.form.registrars = this.adminUserOptions[index].name
450
+                    break
451
+                  }
452
+                }
453
+              } else {
454
+                this.form.registrars = ''
455
+              }
456
+
457
+
458
+              this.form.maritalStatus = this.getMaritalType(patietInfo.marital_status)
459
+              this.form.education = this.getEducationType(patietInfo.education_level)
460
+              this.form.profession = this.getProfessionType(patietInfo.profession)
461
+
462
+
463
+
464
+
465
+
466
+
467
+            } else {
468
+              console.log('patient get err state')
469
+              this.$notify.error({
470
+                title: '错误',
471
+                message: '网络异常'
472
+              })
473
+            }
474
+          }).catch(err => {
475
+          this.$notify.error({
476
+            title: '错误',
477
+            message: '网络异常'
478
+          })
479
+        })
480
+      },
481
+      fetchAllAdminUsers() {
482
+        fetchAllAdminUsers().then(response => {
483
+          if (response.data.state === 1) {
484
+            this.adminUserOptions = response.data.data.users
485
+          }
486
+        })
487
+      },getMaritalType(id){
488
+        for(let i = 0; i < this.maritalOptions.length; i++){
489
+          if(this.maritalOptions[i].id == id){
490
+            return this.maritalOptions[i].name
491
+          }
492
+        }
493
+      },getEducationType(id){
494
+        for(let i = 0; i < this.educationOptions.length; i++){
495
+          if(this.educationOptions[i].id == id){
496
+            return this.educationOptions[i].name
497
+          }
498
+        }
499
+      },getProfessionType(id){
500
+        for(let i = 0; i < this.professionOptions.length; i++){
501
+          if(this.professionOptions[i].id == id){
502
+            return this.professionOptions[i].name
503
+          }
504
+        }
505
+      },onCopy(){
506
+        this.$message.success('复制成功')
507
+
508
+      },onError(){
509
+        this.$message.success('复制失败,请重试')
510
+      },
511
+
512
+    }
513
+  }
514
+</script>
515
+
197 516
 
198 517
 <style lang="scss">
199 518
 .basicInfo {
@@ -216,7 +535,7 @@
216 535
     .rowOne {
217 536
       float: left;
218 537
       height: 36px;
219
-      width: 262px;
538
+      width: 350px;
220 539
       // line-height: 36px;
221 540
       margin-right: 12px;
222 541
       margin-bottom: 20px;

File diff suppressed because it is too large
+ 638 - 207
src/xt_pages/upload/fast/Two.vue


+ 73 - 3
src/xt_pages/user/components/PatientDetail.vue View File

@@ -82,11 +82,26 @@
82 82
                   <el-date-picker v-model="form.birth" type="date" disabled placeholder="选择日期" :suffix-icon="'el-icon-menu'" format="yyyy-MM-dd" value-format="yyyy-MM-dd"></el-date-picker>
83 83
               </el-form-item>
84 84
             </el-col>
85
+
86
+
87
+            <el-col :span="8">
88
+              <el-form-item label="首次肾脏治疗时间 : " label-width="150px"  class="is-required" prop="birth" >
89
+                <el-date-picker v-model="form.firstDialysisDate" type="date" disabled placeholder="选择日期" :suffix-icon="'el-icon-menu'" format="yyyy-MM-dd" value-format="yyyy-MM-dd"></el-date-picker>
90
+              </el-form-item>
91
+            </el-col>
92
+
93
+
94
+
85 95
             <el-col :span="8">
86 96
               <el-form-item label="本人电话: " class="is-required" prop="phone">
87 97
                 <el-input v-model="form.phone" maxlength="20" disabled></el-input>
88 98
               </el-form-item>
89 99
             </el-col>
100
+            <el-col :span="8">
101
+              <el-form-item label="家属姓名: " >
102
+                <el-input v-model="form.contact_name" maxlength="20" disabled></el-input>
103
+              </el-form-item>
104
+            </el-col>
90 105
             <el-col :span="8">
91 106
               <el-form-item label="家属电话: " prop="homeTelephone">
92 107
                 <el-input v-model="form.homeTelephone" maxlength="20" disabled></el-input>
@@ -239,6 +254,29 @@
239 254
                 </el-select>
240 255
               </el-form-item>
241 256
             </el-col>
257
+
258
+
259
+              <el-col :span="8">
260
+                <el-form-item label="固定电话 : ">
261
+                  <el-input v-model="form.tell_phone" maxlength="20" disabled></el-input>
262
+                </el-form-item>
263
+              </el-col>
264
+
265
+              <el-col :span="8">
266
+                <el-form-item label="费别 : ">
267
+                  <el-select v-model="form.expense_kind" disabled>
268
+                    <el-option v-for="item in expenseOptions" :key="item.id" :label="item.name" :value="item.id" />
269
+                  </el-select>
270
+                </el-form-item>
271
+              </el-col>
272
+
273
+              <el-col :span="8" >
274
+                <el-form-item label="透析龄(月): ">
275
+                  <el-input v-model="form.dialysis_age"  disabled></el-input>
276
+                </el-form-item>
277
+              </el-col>
278
+
279
+
242 280
             <el-col :span="8" >
243 281
               <el-form-item label="亲友电话: " prop="relative_phone">
244 282
                 <el-input v-model="form.relative_phone" maxlength="20" disabled></el-input>
@@ -354,8 +392,8 @@
354 392
         </el-form-item>
355 393
       </el-col>
356 394
       <el-col :span="6">
357
-        <el-form-item label="首次透析日期 : "  prop="firstDialysisDate">
358
-            <el-date-picker v-model="form.firstDialysisDate" type="date" disabled format="yyyy-MM-dd" value-format="yyyy-MM-dd"></el-date-picker>
395
+        <el-form-item label="首次诊治日期 : "  >
396
+            <el-date-picker v-model="form.first_treatment_date" type="date" disabled format="yyyy-MM-dd" value-format="yyyy-MM-dd"></el-date-picker>
359 397
         </el-form-item>
360 398
       </el-col>
361 399
       <el-col :span="6" >
@@ -596,7 +634,12 @@ const defaultForm = {
596 634
   record_date: '',
597 635
   response_result: '',
598 636
   is_infectious: '',
599
-  formItem: []
637
+  formItem: [],
638
+  tell_phone:'',
639
+  first_treatment_date:'',
640
+  dialysis_age:'',
641
+  expense_kind:'',
642
+  contact_name:'',
600 643
 }
601 644
 
602 645
 export default {
@@ -605,6 +648,16 @@ export default {
605 648
 
606 649
   data() {
607 650
     return {
651
+      expenseOptions:[
652
+        {id:1,name:"基本医保"},
653
+        {id:2,name:"新农合"},
654
+        {id:3,name:"自费医疗"},
655
+        {id:4,name:"公费医疗"},
656
+        {id:5,name:"商业保险"},
657
+        {id:6,name:"军队医疗"},
658
+        {id:7,name:"其他"},
659
+      ],
660
+
608 661
       generic_info_fold: true,
609 662
       treat_info_fold: true,
610 663
       dialogFormVisible: false,
@@ -642,6 +695,8 @@ export default {
642 695
       patientPrint: {},
643 696
       print_time: '',
644 697
 
698
+
699
+
645 700
       rules: {
646 701
         contagions: [
647 702
           { type: 'array', required: false, trigger: 'change' }
@@ -776,6 +831,7 @@ export default {
776 831
             this.form.nation = patietInfo.nation
777 832
             this.form.native_place = patietInfo.native_place
778 833
             this.form.birth = uParseTime(patietInfo.birthday, '{y}-{m}-{d}')
834
+            this.form.firstDialysisDate = uParseTime(patietInfo.first_dialysis_date, '{y}-{m}-{d}')
779 835
             this.form.height = patietInfo.height + ''
780 836
             // this.form.age = jsGetAge(this.form.birth, "-");
781 837
             if (patietInfo.marital_status > 0) {
@@ -848,6 +904,20 @@ export default {
848 904
             this.form.sbp = patietInfo.sbp
849 905
             this.form.dbp = patietInfo.dbp
850 906
 
907
+            this.form.contact_name = patietInfo.contact_name
908
+            this.form.tell_phone = patietInfo.tell_phone
909
+            this.form.dialysis_age = patietInfo.dialysis_age
910
+            if( patietInfo.expense_kind == 0){
911
+              this.form.expense_kind = ""
912
+            }else{
913
+              this.form.expense_kind = patietInfo.expense_kind
914
+            }
915
+
916
+            this.form.first_treatment_date =  uParseTime(
917
+              patietInfo.first_treatment_date,
918
+              '{y}-{m}-{d}'
919
+            )
920
+
851 921
             // this.form.initial = patietInfo.initial_dialysis + "";
852 922
             // this.form.dialysisTotal = patietInfo.total_dialysis + "";
853 923
             // this.form.assessment = patietInfo.evaluate;

+ 74 - 3
src/xt_pages/user/components/PatientForm.vue View File

@@ -137,16 +137,31 @@
137 137
                                   value-format="yyyy-MM-dd"></el-date-picker>
138 138
                 </el-form-item>
139 139
               </el-col>
140
+
141
+              <el-col :span="6" :style="isEdit?'width:380px':''">
142
+                <el-form-item label="首次肾脏治疗时间:" prop="firstDialysisDate" label-width="150px">
143
+                  <el-date-picker v-model="form.firstDialysisDate" type="date" format="yyyy-MM-dd"
144
+                                  value-format="yyyy-MM-dd"></el-date-picker>
145
+                </el-form-item>
146
+              </el-col>
140 147
               <el-col :span="8" :style="isEdit?'width:360px':''">
141 148
                 <el-form-item label="本人电话 : " class="is-required" prop="phone">
142 149
                   <el-input v-model="form.phone" maxlength="20"></el-input>
143 150
                 </el-form-item>
144 151
               </el-col>
152
+              <el-col :span="8" :style="isEdit?'width:360px':''">
153
+                <el-form-item label="家属姓名 : ">
154
+                  <el-input v-model="form.contact_name" maxlength="20"></el-input>
155
+                </el-form-item>
156
+              </el-col>
145 157
               <el-col :span="8" :style="isEdit?'width:360px':''">
146 158
                 <el-form-item label="家属电话 : " prop="homeTelephone">
147 159
                   <el-input v-model="form.homeTelephone" maxlength="20"></el-input>
148 160
                 </el-form-item>
149 161
               </el-col>
162
+
163
+
164
+
150 165
               <el-col :span="8" :style="isEdit?'width:360px':''">
151 166
                 <el-form-item label="患者来源 : " class="is-required" prop="source">
152 167
                   <el-radio-group v-model="form.source">
@@ -287,6 +302,27 @@
287 302
                     </el-select>
288 303
                   </el-form-item>
289 304
                 </el-col>
305
+
306
+                <el-col :span="8" :style="isEdit?'width:360px':''">
307
+                  <el-form-item label="固定电话 : ">
308
+                    <el-input v-model="form.tell_phone" maxlength="20"></el-input>
309
+                  </el-form-item>
310
+                </el-col>
311
+
312
+                <el-col :span="8" :style="isEdit?'width:360px':''">
313
+                  <el-form-item label="费别 : ">
314
+                    <el-select v-model="form.expense_kind">
315
+                      <el-option v-for="item in expenseOptions" :key="item.id" :label="item.name" :value="item.id"/>
316
+                    </el-select>
317
+                  </el-form-item>
318
+                </el-col>
319
+
320
+                <el-col :span="8" :style="isEdit?'width:360px':''" style="height:59px;">
321
+                  <el-form-item label="透析龄(月): ">
322
+                    <el-input v-model="form.dialysis_age" ></el-input>
323
+                  </el-form-item>
324
+                </el-col>
325
+
290 326
                 <el-col :span="8" :style="isEdit?'width:360px':''">
291 327
                   <el-form-item label="亲友电话 : " prop="relative_phone">
292 328
                     <el-input v-model="form.relative_phone" maxlength="20"></el-input>
@@ -447,10 +483,11 @@
447 483
                 </el-radio-group>
448 484
               </el-form-item>
449 485
             </el-col>
486
+
450 487
             <el-col :span="6" :style="isEdit?'width:360px':''">
451
-              <el-form-item label="首次透析日期 : " prop="firstDialysisDate">
452
-                <el-date-picker v-model="form.firstDialysisDate" type="date" format="yyyy-MM-dd"
453
-                                value-format="yyyy-MM-dd" @change="selectFirstDialysisDate"></el-date-picker>
488
+              <el-form-item label="首次诊治时间 : " >
489
+                <el-date-picker v-model="form.first_treatment_date" type="date" format="yyyy-MM-dd"
490
+                                value-format="yyyy-MM-dd"></el-date-picker>
454 491
               </el-form-item>
455 492
             </el-col>
456 493
             <el-col :span="6" :style="isEdit?'width:360px':''">
@@ -566,9 +603,19 @@
566 603
     diagnose: '',
567 604
     is_infectious:1,
568 605
     age: '',
606
+
569 607
     response_result:'',
570 608
     remind_cycle:0,
571 609
     record_date:'',
610
+
611
+    tell_phone:'',
612
+    first_treatment_date:'',
613
+    dialysis_age:'',
614
+    expense_kind:'',
615
+    contact_name:'',
616
+
617
+
618
+
572 619
     formItem:[
573 620
       { id: 0,
574 621
         item: "",
@@ -743,6 +790,7 @@
743 790
       }
744 791
 
745 792
       return {
793
+
746 794
         crumbs: [
747 795
           { path: false, name: '病人管理' },
748 796
           { path: false, name: '新增病人' }
@@ -787,6 +835,15 @@
787 835
         submitMsg: '',
788 836
         patientID: 0,
789 837
         formLoading:false,
838
+        expenseOptions:[
839
+          {id:1,name:"基本医保"},
840
+          {id:2,name:"新农合"},
841
+          {id:3,name:"自费医疗"},
842
+          {id:4,name:"公费医疗"},
843
+          {id:5,name:"商业保险"},
844
+          {id:6,name:"军队医疗"},
845
+          {id:7,name:"其他"},
846
+        ],
790 847
 
791 848
 
792 849
         subscibe: {},
@@ -804,6 +861,7 @@
804 861
           idCardNo: [{ required: true, message: '请填写身份证号', trigger: 'blur' }],
805 862
           birth: [{ required: true, message: '请填写生日', trigger: 'blur' }],
806 863
           age: [{ required: true, message: '请填写年龄', trigger: 'blur' }],
864
+          firstDialysisDate:[{ required: true, message: '请选择日期', trigger: 'blur' }],
807 865
 
808 866
 
809 867
           // homeTelephone: [{ validator: checkFamilyPhone, trigger: "blur" }],
@@ -1207,6 +1265,19 @@
1207 1265
               this.form.remind_cycle = patietInfo.remind_cycle
1208 1266
               this.form.is_infectious = patietInfo.is_infectious
1209 1267
 
1268
+              this.form.tell_phone = patietInfo.tell_phone
1269
+              this.form.dialysis_age = patietInfo.dialysis_age
1270
+              this.form.contact_name = patietInfo.contact_name
1271
+              if( patietInfo.expense_kind == 0){
1272
+                this.form.expense_kind = ""
1273
+              }else{
1274
+                this.form.expense_kind = patietInfo.expense_kind
1275
+              }
1276
+
1277
+              this.form.first_treatment_date =  uParseTime(
1278
+                patietInfo.first_treatment_date,
1279
+                '{y}-{m}-{d}'
1280
+              )
1210 1281
 
1211 1282
 
1212 1283