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

dialysisRecord.vue 25KB

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