huangyw 2 лет назад
Родитель
Сommit
9f44a3fddb

+ 27 - 3
src/xt_pages/hospitalStation/recordPrint.vue Просмотреть файл

@@ -11,8 +11,25 @@
11 11
       >
12 12
     </template>
13 13
 
14
-    <div class='dialysisPage' style="padding-top:40px;">
15
-      <printOne v-bind:childResponse="childResponse" :patient="patient" :hispatient="hispatient" :history="history" :patientid="patientid"></printOne>
14
+     <div class="dialysisPage" style="padding-top: 40px">
15
+      <printOne
16
+        v-if="org_id != 10217 && org_id != 0"
17
+        ref="printOne"
18
+        v-bind:childResponse="childResponse"
19
+        :patient="patient"
20
+        :hispatient="hispatient"
21
+        :history="history"
22
+        :patientid="patientid"
23
+      ></printOne>
24
+      <printTwo
25
+        v-if="org_id == 10217 || org_id == 0"
26
+        ref="printTwo"
27
+        v-bind:childResponse="childResponse"
28
+        :patient="patient"
29
+        :hispatient="hispatient"
30
+        :history="history"
31
+        :patientid="patientid"
32
+      ></printTwo>
16 33
     </div>
17 34
   </div>
18 35
 </template>
@@ -27,11 +44,13 @@ import print from "print-js";
27 44
 import { getSchedulePatientList } from '@/api/his/his'
28 45
 import { getPatientCaseHistory } from "@/api/project/project"
29 46
 import printOne from "./recordTemplate/printOne"
47
+import printTwo from "./recordTemplate/printTwo"
30 48
 export default {
31 49
   name: "dialysisPrintOrder",
32 50
   components: {
33 51
     BreadCrumb,
34
-    printOne
52
+    printOne,
53
+    printTwo
35 54
   },
36 55
   props:{
37 56
     patientid:Number,
@@ -51,6 +70,7 @@ export default {
51 70
       educationOptions:[],
52 71
       history:{},
53 72
       keyword:"",
73
+      org_id,
54 74
     };
55 75
   },
56 76
   methods: {
@@ -141,6 +161,10 @@ export default {
141 161
   },
142 162
   created() {
143 163
     // this.getPatientList()
164
+     this.org_id = this.$store.getters.xt_user.org.id;
165
+    console.log("=====", this.org_id);
166
+    this.$refs.printOne.show(this.patientid);
167
+    this.$refs.printTwo.show(this.patientid);
144 168
 
145 169
   },
146 170
   // computed:{

+ 337 - 0
src/xt_pages/hospitalStation/recordTemplate/printTwo.vue Просмотреть файл

@@ -0,0 +1,337 @@
1
+<template>
2
+  <div id="prescription-print">
3
+    <div class="prescription-print">
4
+      <div class="printTitle">{{ orgname }}血透中心病历</div>
5
+       <div class="record_Title">
6
+            <div>姓名:{{patient.name?patient.name:''}}</div>
7
+            <div>性别:
8
+                <span v-if="patient.gender == 1">男</span>
9
+                <span v-if="patient.gender == 2">女</span>
10
+            </div>
11
+            <div>年龄:{{patient.age?patient.age:''}}岁</div>
12
+            <div>透析病历号:{{patient.id?patient.id:''}}</div>
13
+        </div>
14
+      <div class="infoTitle" style="margin-top:20px;">
15
+        <div>姓名:{{ patient.name ? patient.name : "" }}</div>
16
+        <div>
17
+          家庭住址:{{ patient.home_address ? patient.home_address : "" }}
18
+        </div>
19
+      </div>
20
+      <div class="infoTitle">
21
+        <div>
22
+          性别:
23
+          <span v-if="patient.gender == 1">男</span>
24
+          <span v-if="patient.gender == 2">女</span>
25
+        </div>
26
+        <div>工作单位:</div>
27
+       
28
+      </div>
29
+      <div class="infoTitle">
30
+        <div>出生日期:</div>
31
+        <div>身份证号:</div>
32
+      </div>
33
+      <div class="infoTitle">
34
+        <div>联系人:</div>
35
+        <div>联系电话:{{ patient.phone ? patient.phone : "" }}</div>
36
+      </div>
37
+      <div class="otherInfo" style="border-bottom: 1px solid">
38
+        <div>进入透析时间:</div>
39
+        <div style="flex: 1"></div>
40
+      </div>
41
+      <div class="infoTitle">
42
+        <div style="width: 300px">原发病:</div>
43
+        <div>确诊肾衰日期:</div>
44
+      </div>
45
+      <div class="otherInfo">
46
+        <div>
47
+          药物过敏史:{{ patient.past_history ? patient.past_history : "" }}
48
+        </div>
49
+      </div>
50
+      <div class="otherInfo">
51
+        <div>初始透析日期:</div>
52
+        <div style="flex: 1"></div>
53
+      </div>
54
+      <div class="otherInfo" style="border-bottom: 1px solid">
55
+        <div>血管通路:</div>
56
+        <div style="flex: 1"></div>
57
+      </div>
58
+
59
+      <div class="otherInfo" style="min-height: 60px;">
60
+        <div class="otherName">主诉:</div>
61
+        <div style="flex: 1">
62
+          {{ history.chief_conplaint ? history.chief_conplaint : "" }}
63
+        </div>
64
+      </div>
65
+
66
+      <div class="otherInfo" style="min-height: 200px;">
67
+        <div class="otherName">现病史:</div>
68
+        <div style="flex: 1">
69
+          {{
70
+            history.history_of_present_illness
71
+              ? history.history_of_present_illness
72
+              : ""
73
+          }}
74
+        </div>
75
+      </div>
76
+
77
+      <div class="otherInfo" style="min-height: 100px;">
78
+        <div class="otherName">既往史:</div>
79
+        <div style="flex: 1">
80
+          {{ history.past_history ? history.past_history : "" }}
81
+        </div>
82
+      </div>
83
+
84
+      <div class="otherInfo" style="min-height: 80px;">
85
+        <div class="otherName">个人史:</div>
86
+        <div style="flex: 1">
87
+          {{ history.personal_history ? history.personal_history : "" }}
88
+        </div>
89
+      </div>
90
+
91
+      <div class="otherInfo" style="min-height: 80px;">
92
+        <div class="otherName">家族史:</div>
93
+        <div style="flex: 1">
94
+          {{ history.family_history ? history.family_history : "" }}
95
+        </div>
96
+      </div>
97
+
98
+      <div style="page-break-after: always; margin-top: 50px"></div>
99
+    </div>
100
+
101
+    <div class="prescription-print">
102
+      <!-- <div class="printTitle">病历内容</div> -->
103
+      <div class="recordTitle">
104
+        <div>体格检查</div>
105
+        <div class="recordContent" style="height:250px;">
106
+            <div>
107
+          <span>体温:{{ history.temperature ? history.temperature + '℃' : '/' }}</span>
108
+          <span>脉搏:{{ history.pulse ? history.pulse + '次/分' : '/' }}</span>
109
+          <span>呼吸:{{ history.breathing ? history.breathing + '次/分' : '/' }}</span>
110
+          <span>血压:{{ history.sbp }}/{{ history.dbp }}mmHg</span>
111
+            </div>
112
+          
113
+        </div>
114
+        <div></div>
115
+      </div>
116
+      <div class="recordTitle">
117
+        <div>专科检查</div>
118
+        <div class="recordContent"></div>
119
+      </div>
120
+      <div class="recordTitle" style="border-bottom: 1px solid">
121
+        <div>实验室及器械检查</div>
122
+        <div class="recordContent" style="height:250px;"></div>
123
+      </div>
124
+      <div style="display: flex; justify-content: end">
125
+        <div class="endInfo">
126
+          <div style="height: 100px">
127
+            诊断:{{ history.diagnostic ? history.diagnostic : "" }}
128
+          </div>
129
+          <div style="display: flex">
130
+            <div>医师:</div>
131
+            <div>
132
+              手签:{{
133
+                getDoctor(history.doctor) ? getDoctor(history.doctor) : ""
134
+              }}
135
+            </div>
136
+          </div>
137
+          <div style="text-align: center; letter-spacing: 3px">2000 年 2 月 4 日</div>
138
+        </div>
139
+      </div>
140
+    </div>
141
+  </div>
142
+</template>
143
+<script>
144
+import { jsGetAge, uParseTime } from "@/utils/tools";
145
+
146
+import { getDataConfig } from "@/utils/data";
147
+import { getAllDoctorList, getPatientCaseHistory } from "@/api/project/project";
148
+export default {
149
+  props: {
150
+    patient: Object,
151
+    hispatient: Object,
152
+    patientid: Number,
153
+    //   history:Object,
154
+  },
155
+  data() {
156
+    return {
157
+      educationOptions: [],
158
+      departmentList: [],
159
+      orgname: "",
160
+      history: {},
161
+      printDate: "",
162
+    };
163
+  },
164
+  methods: {
165
+    getAge(patient) {
166
+      var thisLen = patient.id_card_no.length;
167
+      var birth = "";
168
+      if (thisLen == 15) {
169
+        birth = "19" + patient.id_card_no.substr(6, 6);
170
+      } else {
171
+        birth = patient.id_card_no.substr(6, 8);
172
+      }
173
+      var births =
174
+        birth.substr(0, 4) +
175
+        "-" +
176
+        birth.substr(4, 2) +
177
+        "-" +
178
+        birth.substr(6, 2);
179
+      return jsGetAge(births, "-");
180
+    },
181
+    // show(val) {
182
+    //   this.patientid = val;
183
+    //   this.getAllDoctorList();
184
+    //   this.getPatientCaseHistory();
185
+    // },
186
+    getProfession(id) {
187
+      var name = "";
188
+      for (let i = 0; i < this.educationOptions.length; i++) {
189
+        if (id == this.educationOptions[i].id) {
190
+          name = this.educationOptions[i].name;
191
+        }
192
+      }
193
+      return name;
194
+    },
195
+    getAllDoctorList() {
196
+      getAllDoctorList().then((response) => {
197
+        if (response.data.state == 1) {
198
+          var doctor = response.data.data.doctor;
199
+
200
+          this.doctorList = doctor;
201
+          var department = response.data.data.department;
202
+          console.log("department", department);
203
+          this.departmentList = department;
204
+        }
205
+      });
206
+    },
207
+    getDoctor(id) {
208
+      var name = "";
209
+      for (let i = 0; i < this.doctorList.length; i++) {
210
+        if (id == this.doctorList[i].admin_user_id) {
211
+          name = this.doctorList[i].user_name;
212
+        }
213
+      }
214
+      return name;
215
+    },
216
+    getPatientCaseHistory() {
217
+      const params = {
218
+        patient_id: this.patientid,
219
+      };
220
+      console.log("病历22222", params);
221
+      getPatientCaseHistory(params).then((response) => {
222
+        if (response.data.state == 1) {
223
+          var patient = response.data.data.patient;
224
+          //    console.log("patinet",patient)
225
+          this.patient = patient;
226
+          var history = response.data.data.history;
227
+          console.log("中国history222222", history);
228
+          this.history = history;
229
+          var hispatient = response.data.data.hispatient;
230
+          //    console.log("hispatient",hispatient)
231
+          this.hispatient = hispatient;
232
+        }
233
+      });
234
+    },
235
+    getDeparment(id) {
236
+      var name = "";
237
+      for (let i = 0; i < this.departmentList.length; i++) {
238
+        if (id == this.departmentList[i].id) {
239
+          name = this.departmentList[i].name;
240
+        }
241
+      }
242
+      return name;
243
+    },
244
+  },
245
+  created() {
246
+    this.educationOptions = getDataConfig("patient", "education_types");
247
+    this.getAllDoctorList();
248
+    this.getPatientCaseHistory();
249
+
250
+    var xtuser = this.$store.getters.xt_user;
251
+    this.orgname = xtuser.org.org_name;
252
+    var data = new Date();
253
+    var month =
254
+      data.getMonth() < 9 ? "0" + (data.getMonth() + 1) : data.getMonth() + 1;
255
+    var date = data.getDate() <= 9 ? "0" + data.getDate() : data.getDate();
256
+    this.printDate = data.getFullYear() + "-" + month + "-" + date;
257
+  },
258
+  watch: {
259
+    patientid: function (val) {
260
+      console.log("val22332323", val);
261
+    },
262
+  },
263
+};
264
+</script>
265
+
266
+
267
+<style lang="scss" scoped>
268
+.prescription-print {
269
+  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27),
270
+    0 0 60px rgba(0, 0, 0, 0.06) inset;
271
+  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27),
272
+    0 0 40px rgba(0, 0, 0, 0.06) inset;
273
+  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
274
+  margin-bottom: 20px;
275
+  padding: 20px 10px;
276
+}
277
+.printTitle {
278
+  font-size: 22px;
279
+  text-align: center;
280
+  font-weight: bold;
281
+}
282
+.infoTitle {
283
+  display: flex;
284
+  margin-top: 10px;
285
+  line-height: 24px;
286
+  padding: 0 10px;
287
+}
288
+.infoTitle div {
289
+  width: 200px;
290
+}
291
+.otherInfo {
292
+  display: flex;
293
+  margin-top: 10px;
294
+  line-height: 24px;
295
+  padding: 0 10px;
296
+}
297
+.endInfo {
298
+  display: flex;
299
+  flex-direction: column;
300
+  justify-content: end;
301
+  margin-top: 10px;
302
+  line-height: 24px;
303
+}
304
+.endInfo div {
305
+  width: 300px;
306
+}
307
+.recordTitle {
308
+  display: flex;
309
+  justify-content: center;
310
+  flex-direction: column;
311
+  margin-top: 10px;
312
+  line-height: 24px;
313
+  padding: 0 10px;
314
+  border-top: 1px solid;
315
+}
316
+.recordTitle div {
317
+  width: 100%;
318
+  text-align: center;
319
+}
320
+.recordTitle .recordContent {
321
+  width: 100%;
322
+  height: 150px;
323
+  text-align: left;
324
+}
325
+
326
+.record_Title{
327
+    display: flex;
328
+    margin-top:10px;
329
+    line-height: 24px;
330
+    padding:0 10px;
331
+    border-bottom: 2px solid #000;
332
+}
333
+
334
+.record_Title div{
335
+  width: 200px;
336
+}
337
+</style>

+ 3 - 0
src/xt_pages/outpatientDoctorStation/recordTemplate/printTwo.vue Просмотреть файл

@@ -103,10 +103,13 @@
103 103
       <div class="recordTitle">
104 104
         <div>体格检查</div>
105 105
         <div class="recordContent" style="height:250px;">
106
+          <div>
106 107
           <span>体温:{{ history.temperature ? history.temperature + '℃' : '/' }}</span>
107 108
           <span>脉搏:{{ history.pulse ? history.pulse + '次/分' : '/' }}</span>
108 109
           <span>呼吸:{{ history.breathing ? history.breathing + '次/分' : '/' }}</span>
109 110
           <span>血压:{{ history.sbp }}/{{ history.dbp }}mmHg</span>
111
+          </div>
112
+
110 113
         </div>
111 114
         <div></div>
112 115
       </div>