Elizabeth's proactive approach involves introducing urinal toilet attachment , an ingenious concept that optimizes space and functionality.

dialysisRecord.vue 26KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787
  1. <template>
  2. <div class="patient-container">
  3. <patient-sidebar
  4. :id="patientID"
  5. defaultActive="2-2"
  6. v-on:tran-patient="onTranPatient"
  7. ></patient-sidebar>
  8. <div class="patient-app-container app-container">
  9. <div style="clearfix">
  10. <el-button
  11. style="float:right;"
  12. size="small"
  13. @click="printThisInfo()"
  14. type="primary"
  15. icon="el-icon-printer"
  16. >打印</el-button
  17. >
  18. <span>&nbsp;&nbsp;&nbsp;&nbsp;</span>
  19. <el-button
  20. style="float:right;margin-right:20px"
  21. size="small"
  22. @click="exportList"
  23. type="primary"
  24. >导出</el-button
  25. >
  26. <el-form ref="form" :model="queryParams" label-width="80px">
  27. <!-- <el-form-item label="患者时间 : " >
  28. <el-select v-model="form.date" >
  29. <el-option v-for="item in dateOptions " :label="item.label" :value="item.value" :key="item.value" ></el-option>
  30. </el-select>
  31. </el-form-item> -->
  32. <el-col :span="20">
  33. <el-form-item label="患者时间 :">
  34. <!-- <el-col :span="11"> -->
  35. <el-date-picker
  36. size="small"
  37. type="date"
  38. format="yyyy-MM-dd"
  39. value-format="yyyy-MM-dd"
  40. placeholder="选择开始时间"
  41. style="width:150px"
  42. v-model="queryParams.start_time"
  43. @change="changeSearch"
  44. ></el-date-picker>
  45. <!-- </el-col> -->
  46. <span class="cellLine">-</span>
  47. <!-- <el-col :span="11"> -->
  48. <el-date-picker
  49. size="small"
  50. type="date"
  51. format="yyyy-MM-dd"
  52. value-format="yyyy-MM-dd"
  53. placeholder="选择结束时间"
  54. style="width:150px"
  55. v-model="queryParams.end_time"
  56. @change="changeSearch"
  57. ></el-date-picker>
  58. <!-- </el-col> -->
  59. </el-form-item>
  60. </el-col>
  61. <el-col :span="20">
  62. <el-form-item label="透析模式 : ">
  63. <el-select
  64. v-model="queryParams.mode_id"
  65. @change="changeSearch"
  66. clearable
  67. style="width:314px"
  68. size="small"
  69. >
  70. <el-option
  71. v-for="item in modeOptions"
  72. :label="item.name"
  73. :value="item.id"
  74. :key="item.id"
  75. ></el-option>
  76. </el-select>
  77. </el-form-item>
  78. </el-col>
  79. </el-form>
  80. </div>
  81. <div>
  82. <el-table
  83. id="oictable"
  84. :header-cell-style="{
  85. backgroundColor: 'rgb(245, 247, 250)',
  86. color: '#606266'
  87. }"
  88. :row-style="{ color: '#303133' }"
  89. :data="recordData"
  90. border
  91. style="width: 100%"
  92. @current-change="clickCurrent"
  93. >
  94. <el-table-column
  95. prop="dialysis_date"
  96. label="透析日期"
  97. align="center"
  98. width="110"
  99. fixed
  100. >
  101. <template slot-scope="scope"
  102. ><span style="color: #579ef8">{{
  103. scope.row.dialysis_date | parseTime("{y}-{m}-{d}")
  104. }}</span></template
  105. >
  106. </el-table-column>
  107. <el-table-column
  108. prop="schedule_type"
  109. label="班次"
  110. align="center"
  111. width="80"
  112. >
  113. <template slot-scope="scope"
  114. ><span>{{
  115. scheduleType(scope.row.schedule_type)
  116. }}</span></template
  117. >
  118. </el-table-column>
  119. <el-table-column
  120. prop="partition"
  121. width="100"
  122. align="center"
  123. label="分区 - 机号"
  124. >
  125. <template slot-scope="scope"
  126. ><span
  127. >{{ scope.row.partition_name }}-{{
  128. scope.row.device.number
  129. }}</span
  130. ></template
  131. >
  132. </el-table-column>
  133. <el-table-column
  134. prop="mode"
  135. width="90"
  136. align="center"
  137. label="透析模式"
  138. >
  139. <template slot-scope="scope">{{
  140. modeName(scope.row.prescription.mode_id)
  141. }}</template>
  142. </el-table-column>
  143. <el-table-column
  144. prop="prescription.dialysis_duration"
  145. width="100"
  146. align="center"
  147. label="透析时长(h)"
  148. >
  149. <template slot-scope="scope">
  150. <span>{{getTime(scope.row.assessment_after_dislysis)}}</span>
  151. </template>
  152. </el-table-column>
  153. <el-table-column width="96" align="center" label="透析器/灌流器">
  154. <template slot-scope="scope">
  155. {{ scope.row.prescription.dialyzer_perfusion_apparatus }}
  156. {{ scope.row.prescription.dialysis_dialyszers }}
  157. <span v-if="scope.row.prescription.dialysis_irrigation!=''">/{{ scope.row.prescription.dialysis_irrigation }}</span>
  158. </template>
  159. </el-table-column>
  160. <el-table-column
  161. prop="predialysis_evaluation.dry_weight"
  162. width="96"
  163. align="center"
  164. label="干体重(kg)"
  165. >
  166. </el-table-column>
  167. <el-table-column
  168. prop="predialysis_evaluation.weight_before"
  169. width="110"
  170. align="center"
  171. label="透前称重(kg)"
  172. >
  173. </el-table-column>
  174. <el-table-column
  175. prop="assessment_after_dislysis.weight_after"
  176. width="110"
  177. align="center"
  178. label="透后称重(kg)"
  179. >
  180. </el-table-column>
  181. <el-table-column
  182. prop="predialysis_evaluation"
  183. width="140"
  184. align="center"
  185. label="透前血压(mmHg)"
  186. >
  187. <template slot-scope="scope"
  188. ><span
  189. >{{
  190. scope.row.predialysis_evaluation.systolic_blood_pressure
  191. }}/{{
  192. scope.row.predialysis_evaluation.diastolic_blood_pressure
  193. }}</span
  194. ></template
  195. >
  196. </el-table-column>
  197. <el-table-column
  198. prop="assessment_after_dislysis"
  199. width="140"
  200. align="center"
  201. label="透后血压(mmHg)"
  202. >
  203. <template slot-scope="scope"
  204. ><span
  205. >{{
  206. scope.row.assessment_after_dislysis.systolic_blood_pressure
  207. }}/{{
  208. scope.row.assessment_after_dislysis.diastolic_blood_pressure
  209. }}</span
  210. ></template
  211. >
  212. </el-table-column>
  213. <el-table-column
  214. prop="assessment_after_dislysis"
  215. width="140"
  216. align="center"
  217. label="目标超滤量"
  218. >
  219. <template slot-scope="scope"
  220. ><span
  221. >{{
  222. scope.row.prescription.target_ultrafiltration
  223. }}</span
  224. ></template
  225. >
  226. </el-table-column>
  227. <el-table-column
  228. prop="assessment_after_dislysis"
  229. width="140"
  230. align="center"
  231. label="实际超滤量"
  232. >
  233. <template slot-scope="scope"
  234. ><span
  235. >{{
  236. scope.row.assessment_after_dislysis.actual_ultrafiltration
  237. }}</span
  238. ></template
  239. >
  240. </el-table-column>
  241. <!--<el-table-column-->
  242. <!--prop="access"-->
  243. <!--width="100"-->
  244. <!--align="center"-->
  245. <!--label="血管通路"-->
  246. <!--&gt;-->
  247. <!--<template slot-scope="scope"-->
  248. <!--&gt;<span>{{-->
  249. <!--setVascularAccess(scope.row.prescription)-->
  250. <!--}}</span></template-->
  251. <!--&gt;-->
  252. <!--</el-table-column>-->
  253. <el-table-column
  254. prop="type"
  255. width="200"
  256. align="center"
  257. label="抗凝剂种类 首剂/维持/总量"
  258. >
  259. <template slot-scope="scope">
  260. <span>{{ setAnticoagulantsConfit(scope.row.prescription) }}</span>
  261. </template>
  262. </el-table-column>
  263. <!--<el-table-column-->
  264. <!--prop="model"-->
  265. <!--width="100"-->
  266. <!--align="center"-->
  267. <!--label="透析器型号"-->
  268. <!--&gt;-->
  269. <!--<template slot-scope="scope"-->
  270. <!--&gt;<span>{{-->
  271. <!--setDialyzerModel(scope.row.prescription)-->
  272. <!--}}</span></template-->
  273. <!--&gt;-->
  274. <!--</el-table-column>-->
  275. <el-table-column
  276. prop="nurse"
  277. width="90"
  278. align="center"
  279. label="治疗护士"
  280. >
  281. <template slot-scope="scope"
  282. ><span>{{
  283. scope.row.role.user_name
  284. }}</span></template
  285. >
  286. </el-table-column>
  287. <el-table-column
  288. prop="doctor"
  289. width="90"
  290. align="center"
  291. label="治疗医生"
  292. >
  293. <template slot-scope="scope"
  294. ><span>{{
  295. scope.row.prescription.role.user_name
  296. }}</span></template
  297. >
  298. </el-table-column>
  299. </el-table>
  300. <el-pagination
  301. align="right"
  302. @size-change="handleSizeChange"
  303. @current-change="handleCurrentChange"
  304. :current-page="queryParams.page"
  305. :page-sizes="[10, 20, 50, 100]"
  306. :page-size="10"
  307. background
  308. style="margin-top:20px;"
  309. layout="total, sizes, prev, pager, next, jumper"
  310. :total="total"
  311. >
  312. </el-pagination>
  313. </div>
  314. <div style="display:none;">
  315. <div id="printRecord" class="record-order">
  316. <div class="rd-title">{{ orgname }}</div>
  317. <div class="rd-name">
  318. <span
  319. >姓名:<span class="item-value">{{
  320. currentPatient.name
  321. }}</span></span
  322. >
  323. <span style="margin-left:10px;"
  324. >透析号:<span class="item-value">{{
  325. currentPatient.dialysis_no
  326. }}</span></span
  327. >
  328. </div>
  329. <table
  330. cellspacing="0"
  331. cellpadding="0"
  332. border="1"
  333. class="el-table__body"
  334. style="width: 100%;"
  335. >
  336. <thead>
  337. <th>透析日期</th>
  338. <th>班次</th>
  339. <th>分区机号</th>
  340. <th>透析模式</th>
  341. <th>透析时长(h)</th>
  342. <th>透析器/灌流器</th>
  343. <th>干体重(kg)</th>
  344. <th>透前称重(kg)</th>
  345. <th>透后称重(kg)</th>
  346. <th>透前血压(mmhg)</th>
  347. <th>透后血压(mmhg)</th>
  348. <th>目标超滤量(L)</th>
  349. <!-- <th>血管通路</th> -->
  350. <th>抗凝剂种类 首剂/维持/总量</th>
  351. <th>透析器型号</th>
  352. <th>治疗护士</th>
  353. <th>治疗医生</th>
  354. </thead>
  355. <tbody>
  356. <tr v-for="item in recordData" :key="item.id">
  357. <td>{{ item.dialysis_date | parseTime("{y}-{m}-{d}") }}</td>
  358. <td>{{ scheduleType(item.schedule_type) }}</td>
  359. <td>{{ item.partition_name }}-{{ item.device.number }}</td>
  360. <td>{{ modeName(item.prescription.mode_id) }}</td>
  361. <td>{{getTime(item.assessment_after_dislysis)}}</td>
  362. <td>
  363. <span v-if="item.prescription.dialyzer_perfusion_apparatus"></span>
  364. <span v-if="item.prescription.dialysis_dialyszers!=''">{{ item.prescription.dialysis_dialyszers }} </span>
  365. <span v-if="item.prescription.dialysis_irrigation!=''">/{{ item.prescription.dialysis_irrigation }} </span>
  366. </td>
  367. <td>{{ item.predialysis_evaluation.dry_weight }}</td>
  368. <td>{{ item.predialysis_evaluation.weight_before }}</td>
  369. <td>{{ item.assessment_after_dislysis.weight_after }}</td>
  370. <td>
  371. {{ item.predialysis_evaluation.systolic_blood_pressure }}/{{
  372. item.predialysis_evaluation.diastolic_blood_pressure
  373. }}
  374. </td>
  375. <td>
  376. {{
  377. item.assessment_after_dislysis.systolic_blood_pressure
  378. }}/{{
  379. item.assessment_after_dislysis.diastolic_blood_pressure
  380. }}
  381. </td>
  382. <td>
  383. {{ item.prescription.target_ultrafiltration }}
  384. </td>
  385. <!-- <td>{{ setVascularAccess(item.prescription) }}</td> -->
  386. <td>{{ setAnticoagulantsConfit(item.prescription) }}</td>
  387. <td>{{ item.prescription.dialyzer_perfusion_apparatus }}</td>
  388. <td>{{ getNurseName(item.start_nurse) }}</td>
  389. <td>{{ getDoctorName(item.prescription.creater) }}</td>
  390. </tr>
  391. </tbody>
  392. </table>
  393. </div>
  394. </div>
  395. </div>
  396. </div>
  397. </template>
  398. <script>
  399. import PatientSidebar from "./components/PatientSidebar";
  400. import { getPatientDialysisRecords } from "@/api/patient";
  401. import { uParseTime } from "@/utils/tools";
  402. import { fetchAllDoctorAndNurse } from "@/api/doctor";
  403. import print from "print-js";
  404. export default {
  405. name: "dialysisRecord",
  406. data() {
  407. return {
  408. orgname: "",
  409. currentPatient: {},
  410. patientID: 0,
  411. total: 0,
  412. queryParams: {
  413. // date: "",
  414. mode_id: "",
  415. start_time: "",
  416. end_time: "",
  417. page: 1,
  418. patient_id: 0,
  419. limit: 10
  420. },
  421. recordData: [],
  422. dateOptions: [
  423. { value: "0", label: "本月" },
  424. { value: "1", label: "本年" }
  425. ],
  426. modeOptions: [],
  427. anticoagulantsConfit: [],
  428. blood_filters: [],
  429. perfusion_apparatus: [],
  430. hemodialysis_machines: [],
  431. doctorOptions: [],
  432. nurseOptions: [],
  433. vascularAccess: [],
  434. vascularAccessDesc: []
  435. };
  436. },
  437. components: {
  438. PatientSidebar
  439. },
  440. methods: {
  441. getTime(record){
  442. if(record != null&&record.id > 0) {
  443. let actual_treatment_hour = 0
  444. let actual_treatment_minute = 0
  445. actual_treatment_hour = parseFloat(record.actual_treatment_hour)
  446. actual_treatment_minute = parseFloat(record.actual_treatment_minute) / 60
  447. return (actual_treatment_hour + actual_treatment_minute).toFixed(2)
  448. }
  449. },
  450. getTimeOne(val){
  451. if(val < 0){
  452. return ""
  453. }
  454. if(val == ""){
  455. return ""
  456. }else {
  457. return uParseTime(val, '{y}-{m}-{d}')
  458. }
  459. },
  460. changeSearch() {
  461. this.getPatientDialysisRecords();
  462. },
  463. handleSizeChange(val) {
  464. this.queryParams.limit = val;
  465. this.getPatientDialysisRecords();
  466. },
  467. handleCurrentChange(val) {
  468. this.queryParams.page = val;
  469. this.getPatientDialysisRecords();
  470. },
  471. getPatientDialysisRecords() {
  472. console.log("prams",this.queryParams)
  473. getPatientDialysisRecords(this.queryParams).then(response => {
  474. if (response.data.state == 1) {
  475. this.total = response.data.data.total;
  476. this.recordData = response.data.data.records;
  477. console.log("郭23232323232232323",this.recordData)
  478. }
  479. });
  480. },
  481. fetchAllDoctorAndNurse() {
  482. fetchAllDoctorAndNurse().then(response => {
  483. if (response.data.state == 1) {
  484. this.doctorOptions =
  485. response.data.data.doctors == null
  486. ? []
  487. : response.data.data.doctors;
  488. this.nurseOptions =
  489. response.data.data.nursers == null
  490. ? []
  491. : response.data.data.nursers;
  492. }
  493. });
  494. },
  495. scheduleType(schedule_type) {
  496. var typeName = "未知";
  497. switch (schedule_type) {
  498. case 1:
  499. typeName = "上午";
  500. break;
  501. case 2:
  502. typeName = "下午";
  503. break;
  504. case 3:
  505. typeName = "晚上";
  506. break;
  507. default:
  508. break;
  509. }
  510. return typeName;
  511. },
  512. modeName(mode_id) {
  513. return typeof this.modeOptions[mode_id] !== "undefined" &&
  514. typeof this.modeOptions[mode_id].name !== "undefined"
  515. ? this.modeOptions[mode_id].name
  516. : "";
  517. },
  518. setAnticoagulantsConfit(prescription) {
  519. if (
  520. typeof this.anticoagulantsConfit[prescription.anticoagulant] ===
  521. "undefined"
  522. ) {
  523. return "";
  524. } else {
  525. if (this.anticoagulantsConfit[prescription.anticoagulant].shouji != 1) {
  526. return this.anticoagulantsConfit[prescription.anticoagulant].name;
  527. } else {
  528. return (
  529. this.anticoagulantsConfit[prescription.anticoagulant].name +
  530. "/" +
  531. prescription.anticoagulant_shouji +
  532. "/" +
  533. prescription.anticoagulant_weichi +
  534. "/" +
  535. prescription.anticoagulant_zongliang
  536. );
  537. }
  538. }
  539. },
  540. setVascularAccess(prescription) {
  541. if (
  542. typeof this.vascularAccess[prescription.vascular_access_mode] ===
  543. "undefined"
  544. ) {
  545. return "";
  546. } else {
  547. if (
  548. typeof this.vascularAccessDesc[prescription.vascular_access] ===
  549. "undefined"
  550. ) {
  551. return this.vascularAccess[prescription.vascular_access_mode].name;
  552. } else {
  553. return (
  554. this.vascularAccess[prescription.vascular_access_mode].name +
  555. "-" +
  556. this.vascularAccessDesc[prescription.vascular_access].name
  557. );
  558. }
  559. }
  560. },
  561. setDialyzerModel(prescription) {
  562. var models = [];
  563. if (prescription.hemodialysis_machine > 0) {
  564. var ml = this.hemodialysis_machines.length;
  565. if (ml > 0) {
  566. for (let index = 0; index < ml; index++) {
  567. if (
  568. this.hemodialysis_machines[index].id ==
  569. prescription.hemodialysis_machine
  570. ) {
  571. models.push(this.hemodialysis_machines[index].name);
  572. }
  573. }
  574. }
  575. }
  576. if (prescription.blood_filter > 0) {
  577. var ml = this.blood_filters.length;
  578. if (ml > 0) {
  579. for (let index = 0; index < ml; index++) {
  580. if (this.blood_filters[index].id == prescription.blood_filter) {
  581. models.push(this.blood_filters[index].name);
  582. }
  583. }
  584. }
  585. }
  586. if (prescription.perfusion_apparatus > 0) {
  587. var ml = this.perfusion_apparatus.length;
  588. if (ml > 0) {
  589. for (let index = 0; index < ml; index++) {
  590. if (
  591. this.perfusion_apparatus[index].id ==
  592. prescription.perfusion_apparatus
  593. ) {
  594. models.push(this.perfusion_apparatus[index].name);
  595. }
  596. }
  597. }
  598. }
  599. return models.join(",");
  600. },
  601. getDoctorName(creater) {
  602. var dl = this.doctorOptions.length;
  603. if (dl > 0) {
  604. for (let index = 0; index < dl; index++) {
  605. if ((this.doctorOptions[index].id == creater)) {
  606. return this.doctorOptions[index].name;
  607. }
  608. }
  609. }
  610. return "";
  611. },
  612. getNurseName(start_nurse) {
  613. var dl = this.nurseOptions.length;
  614. if (dl > 0) {
  615. for (let index = 0; index < dl; index++) {
  616. if (this.nurseOptions[index].id == start_nurse) {
  617. return this.nurseOptions[index].name;
  618. }
  619. }
  620. }
  621. return "";
  622. },
  623. onTranPatient: function(tranPatient) {
  624. this.currentPatient = tranPatient;
  625. },
  626. printThisInfo() {
  627. const style =
  628. "@media print { .record-order .rd-title{ text-align: center; font-weight: 600; font-size: 30px; line-height: 80px; margin-bottom: 20px; } .record-order .rd-type{ text-align: center; margin-bottom: 20px; } .record-order .rd-name { align-items: center; justify-content: space-between; padding: 30px 2em; } .record-order .el-table__body{ border: 1px solid #333; } .record-order .el-table__body td{ border: 1px solid #333; } .record-order .item-value { border-bottom: 1px solid #333; padding: 0 20px;} .record-order th, .record-order td { padding: 5px 10px; }}";
  629. setTimeout(() => {
  630. printJS({
  631. printable: "printRecord",
  632. type: "html",
  633. style: style,
  634. scanStyles: false
  635. });
  636. }, 1);
  637. },
  638. clickCurrent(val) {
  639. this.$router.push({
  640. path: "/dialysis/details",
  641. query: { patient_id: val.patient_id, date: val.dialysis_date }
  642. });
  643. },
  644. exportList(){
  645. import('@/vendor/Export2Excel').then(excel => {
  646. console.log("导出世界",this.recordData)
  647. if(this.recordData!=null && this.recordData.length > 0){
  648. for(let i=0;i<this.recordData.length;i++){
  649. this.recordData[i].dialysis_date_one = this.getTimeOne(this.recordData[i].dialysis_date)
  650. this.recordData[i].bed_class = this.scheduleType(this.recordData[i].schedule_type)
  651. this.recordData[i].mode_name = this.modeName(this.recordData[i].prescription.mode_id)
  652. this.recordData[i].vascularAccess_name = this.setVascularAccess(this.recordData[i].prescription)
  653. this.recordData[i].AnticoagulantsConfit = this.setAnticoagulantsConfit(this.recordData[i].prescription)
  654. this.recordData[i].nurse_name = this.recordData[i].role.user_name
  655. this.recordData[i].doc_name = this.recordData[i].prescription.role.user_name
  656. this.recordData[i].bed_number = this.recordData[i].partition_name + "-" + this.recordData[i].device.number
  657. this.recordData[i].dialysis_duration_hour = this.getTime(this.recordData[i].assessment_after_dislysis)
  658. this.recordData[i].dry_weight = this.recordData[i].predialysis_evaluation.dry_weight
  659. this.recordData[i].weight_before = this.recordData[i].predialysis_evaluation.weight_before
  660. this.recordData[i].weight_after = this.recordData[i].assessment_after_dislysis.weight_after
  661. this.recordData[i].befor_pressure = this.recordData[i].predialysis_evaluation.systolic_blood_pressure + "/" + this.recordData[i].predialysis_evaluation.diastolic_blood_pressure
  662. this.recordData[i].after_pressure = this.recordData[i].assessment_after_dislysis.systolic_blood_pressure +"/"+this.recordData[i].assessment_after_dislysis.diastolic_blood_pressure
  663. this.recordData[i].target_ultrafiltration = this.recordData[i].prescription.target_ultrafiltration
  664. this.recordData[i].dialyzer_perfusion_apparatus = this.recordData[i].prescription.dialyzer_perfusion_apparatus
  665. if(this.recordData[i].dialyzer_perfusion_apparatus == ""){
  666. this.recordData[i].dialyzer_perfusion_apparatus = this.recordData[i].prescription.dialysis_dialyszers + "/" + this.recordData[i].prescription.dialysis_irrigation
  667. }
  668. this.recordData[i].patient_name = this.currentPatient.name
  669. }
  670. }
  671. const tHeader = ['姓名','透析日期','班次', '分区机号', '透析模式','透析时长','干体重(kg)','透前体重(kg)','透后体重(kg)','透前血压(mmHg)','透后血压(mmHg)','目标超滤量','抗凝剂 首剂/维持/总量','透析器型号','治疗护士','治疗医生']
  672. const filterVal = ['patient_name','dialysis_date_one','bed_class', 'bed_number', 'mode_name','dialysis_duration_hour','dry_weight','weight_before','weight_after','befor_pressure','after_pressure','target_ultrafiltration','AnticoagulantsConfit','dialyzer_perfusion_apparatus','nurse_name','doc_name']
  673. const data = this.formatJson(filterVal, this.recordData)
  674. excel.export_json_to_excel({
  675. header: tHeader,
  676. data,
  677. filename: '透析记录'
  678. })
  679. })
  680. },
  681. formatJson(filterVal, jsonData) {
  682. return jsonData.map(v => filterVal.map(j => v[j]));
  683. },
  684. },
  685. created() {
  686. const id = this.$route.params && this.$route.params.id;
  687. this.patientID = parseInt(id);
  688. if (isNaN(this.patientID) || this.patientID <= 0) {
  689. this.$notify.error({
  690. title: "错误",
  691. message: "无效的id"
  692. });
  693. this.$router.back(-1);
  694. }
  695. this.queryParams.patient_id = this.patientID;
  696. this.modeOptions = this.$store.getters.treatment_mode;
  697. this.anticoagulantsConfit = this.$store.getters.anticoagulants_confit;
  698. this.blood_filters = this.$store.getters.blood_filters;
  699. this.perfusion_apparatus = this.$store.getters.perfusion_apparatus;
  700. this.hemodialysis_machines = this.$store.getters.hemodialysis_machines;
  701. this.vascularAccess = this.$store.getters.vascular_access;
  702. this.vascularAccessDesc = this.$store.getters.vascular_access_desc;
  703. var xtuser = this.$store.getters.xt_user;
  704. this.orgname = xtuser.org.org_name;
  705. },mounted(){
  706. this.fetchAllDoctorAndNurse();
  707. this.getPatientDialysisRecords();
  708. }
  709. };
  710. </script>
  711. <style>
  712. #oictable ::-webkit-scrollbar {
  713. height: 15px;
  714. }
  715. .el-table td,
  716. .el-table th.is-leaf,
  717. .el-table--border,
  718. .el-table--group {
  719. border-color: #d0d3da;
  720. }
  721. .el-table--border::after,
  722. .el-table--group::after,
  723. .el-table::before {
  724. background-color: #d0d3da;
  725. }
  726. </style>
  727. <style rel="stylesheet/scss" lang="scss" scoped>
  728. .total {
  729. font-size: 14px;
  730. line-height: 32px;
  731. height: 32px;
  732. color: #6caef7;
  733. }
  734. .record-order .rd-title {
  735. text-align: center;
  736. font-weight: 600;
  737. font-size: 30px;
  738. line-height: 80px;
  739. margin-bottom: 20px;
  740. }
  741. .record-order .rd-type {
  742. text-align: center;
  743. margin-bottom: 20px;
  744. }
  745. .record-order .rd-name {
  746. align-items: center;
  747. justify-content: space-between;
  748. padding: 30px 2em;
  749. }
  750. .record-order .el-table__body {
  751. border: 1px solid #333;
  752. }
  753. .record-order .el-table__body td {
  754. border: 1px solid #333;
  755. }
  756. .record-order .item-value {
  757. border-bottom: 1px solid #333;
  758. padding: 0 20px;
  759. }
  760. .record-order th,
  761. .record-order td {
  762. padding: 5px 10px;
  763. }
  764. </style>