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

NavIgation.vue 16KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707
  1. <template>
  2. <div>
  3. <div class="grid">
  4. <div class="list">
  5. <ul>
  6. <li @click="showPrescription">
  7. <img src="@/assets/record/1.png" />
  8. <p>透析处方</p>
  9. </li>
  10. <li @click="showAccepts">
  11. <img src="@/assets/record/2.png" />
  12. <p>接诊评估</p>
  13. </li>
  14. <li @click="showAssessmentBefore">
  15. <img src="@/assets/record/3.png" />
  16. <p>透前评估</p>
  17. </li>
  18. <li @click="showDoctorAdviceDialog" class="newOrdersAdvice">
  19. <img src="@/assets/record/4.png" />
  20. <div>
  21. <p>临时医嘱</p>
  22. <span class="redpoint" v-if="getUnReadNum()">{{getUnReadNum()}}</span>
  23. </div>
  24. </li>
  25. <li @click="showDoubleCheck">
  26. <img src="@/assets/record/5.png" />
  27. <p>双人核对</p>
  28. </li>
  29. </ul>
  30. </div>
  31. <div class="list">
  32. <ul>
  33. <li @click="showComputerDialog">
  34. <img src="@/assets/record/6.png" />
  35. <p>透析上机</p>
  36. </li>
  37. <li @click="showMonitorDialog">
  38. <img src="@/assets/record/7.png" />
  39. <p>透析监测</p>
  40. </li>
  41. <li @click="showFinishDialog">
  42. <img src="@/assets/record/8.png" />
  43. <p>透析下机</p>
  44. </li>
  45. <li @click="showAssessmentAfterDialog">
  46. <img src="@/assets/record/9.png" />
  47. <p>透后评估</p>
  48. </li>
  49. <li @click="showrTeatmentSummary">
  50. <img src="@/assets/record/10.png" />
  51. <p>治疗小结</p>
  52. </li>
  53. </ul>
  54. </div>
  55. </div>
  56. <div class="middleLine"></div>
  57. <dialysis-prescription-dialog
  58. title="透析处方"
  59. ref="prescription"
  60. :patient="patient"
  61. :prescription="prescription"
  62. :solution="solution"
  63. @advice="adviceFunc"
  64. :niprocart_info="niprocart_info"
  65. :jms_info="jms_info"
  66. :fistula_needle_set_info="fistula_needle_set_info"
  67. :fistula_needle_set_16_info="fistula_needle_set_16_info"
  68. :hemoperfusion_info="hemoperfusion_info"
  69. :dialyser_sterilised_info="dialyser_sterilised_info"
  70. :filtryzer_info="filtryzer_info"
  71. :dialyzers_info="dialyzers_info"
  72. :injector_info="injector_info"
  73. :bloodlines_info="bloodlines_info"
  74. :tubingHemodialysis_info="tubingHemodialysis_info"
  75. :safe_package_info="safe_package_info"
  76. :aliquid_info="aliquid_info"
  77. :config="config"
  78. :admin_users="admin_users"
  79. :targetAdvices="longAdvices"
  80. :waitUploadAdvices="waitUploadAdvices"
  81. :is_open="is_open"
  82. :predialysis="predialysis_evaluation"
  83. :last_predialysis="last_predialysis_evaluation"
  84. :record="assessment_after_dislysis"
  85. :last_record="last_assessment_after_dislysis"
  86. :last_prescription="last_dialysis_prescribe"
  87. :dry_weight="last_dryWeight_dislysis"
  88. :schedual="temp_schedual"
  89. :stockType="stockType"
  90. :lastAssessment="lastAssessment"
  91. :mode_id="mode_id"
  92. ></dialysis-prescription-dialog>
  93. <double-check-dialog
  94. title="双人核对"
  95. ref="doubleCheck"
  96. :patient="patient"
  97. :predialysis_evaluation="predialysis_evaluation"
  98. :prescription="prescription"
  99. :double_check="double_check"
  100. :admin_users="admin_users"
  101. ></double-check-dialog>
  102. <accepts-treatment-dialog
  103. title="接诊评估"
  104. ref="accepts"
  105. :patient="patient"
  106. :receiver_treatment_access="receiver_treatment_access"
  107. ></accepts-treatment-dialog>
  108. <assessment-before-dislysis-dialog
  109. title="透前评估"
  110. ref="assessmentBefore"
  111. :patient="patient"
  112. :last_predialysis="last_predialysis_evaluation"
  113. :predialysis_evaluation="predialysis_evaluation"
  114. :admin_users="admin_users"
  115. :dry_weight="last_dryWeight_dislysis"
  116. :lastAssessment="lastAssessment"
  117. ></assessment-before-dislysis-dialog>
  118. <treatment-summary-dialog
  119. title="治疗小结"
  120. ref="treatmentSummary"
  121. :patient="patient"
  122. :treatment_summary="treatment_summary"
  123. ></treatment-summary-dialog>
  124. <doctor-advice-dialog
  125. title="临时医嘱"
  126. ref="doctor_advice"
  127. :doctor_advices="doctor_advices"
  128. :patient="patient"
  129. :admin_users="admin_users"
  130. :dialysis_order="dialysis_order"
  131. :his_is_open="his_is_open"
  132. :predialysis="predialysis_evaluation"
  133. ></doctor-advice-dialog>
  134. <computer-dialog
  135. title="透析上机"
  136. ref="computer_dialog"
  137. :dialysis_order="dialysis_order"
  138. :schedule="schedual"
  139. @monitor="add_monitor"
  140. :admins="admin_users"
  141. :device_numbers="device_numbers"
  142. :special_premission="special_premission"
  143. :patient="patient"
  144. ></computer-dialog>
  145. <monitor-dialog
  146. title="透析监测"
  147. ref="monitor_dialog"
  148. :monitors="monitor_records"
  149. @monitor="add_monitor"
  150. :patient="patient"
  151. ></monitor-dialog>
  152. <finish-dialog
  153. title="透析下机"
  154. ref="finish_dialog"
  155. :dialysis_order="dialysis_order"
  156. :schedule="schedual"
  157. :admins="admin_users"
  158. :prescription="prescription"
  159. @assessmentAfterDislysis="assessmentAfterDislysisFunc"
  160. :special_premission="special_premission"
  161. :patient="patient"
  162. ></finish-dialog>
  163. <assessment-after-dislysis
  164. title="透后评估"
  165. ref="assessment_after_dislysis"
  166. :assessment_after_dislysis="assessment_after_dislysis"
  167. :patient="patient"
  168. :dialysis_order="dialysis_order"
  169. ></assessment-after-dislysis>
  170. </div>
  171. </template>
  172. <script>
  173. import dialysisPrescriptionDialog from "./dialog/dialysisPrescriptionDialog";
  174. import doubleCheckDialog from "./dialog/doubleCheckDialog";
  175. import AssessmentAfterDislysis from "./dialog/AssessmentAfterDislysis";
  176. import acceptsTreatmentDialog from "./dialog/acceptsTreatmentDialog";
  177. import assessmentBeforeDislysisDialog from "./dialog/assessmentBeforeDislysisDialog";
  178. import MonitorDialog from "./dialog/monitor_dialog";
  179. import DoctorAdviceDialog from "./dialog/DoctorAdviceDialog";
  180. import treatmentSummaryDialog from "./dialog/treatmentSummaryDialog";
  181. import ComputerDialog from "./dialog/computer_dialog";
  182. import FinishDialog from "./dialog/finish_dialog";
  183. export default {
  184. name: "NavIgation",
  185. components: {
  186. dialysisPrescriptionDialog,
  187. doubleCheckDialog,
  188. AssessmentAfterDislysis,
  189. acceptsTreatmentDialog,
  190. assessmentBeforeDislysisDialog,
  191. treatmentSummaryDialog,
  192. MonitorDialog,
  193. DoctorAdviceDialog,
  194. ComputerDialog,
  195. FinishDialog
  196. },
  197. data() {
  198. return {
  199. temp_schedual: {},
  200. mode_id:1
  201. };
  202. },
  203. mounted() {},
  204. props: {
  205. mode_id:{
  206. type:Number
  207. },
  208. longAdvices: {
  209. // 临时医嘱
  210. type: Array,
  211. default: () => {
  212. return [];
  213. }
  214. },
  215. waitUploadAdvices: {
  216. // 临时医嘱
  217. type: Array,
  218. default: () => {
  219. return [];
  220. }
  221. },
  222. is_open: {
  223. // 临时医嘱
  224. type: Number,
  225. default: () => {
  226. return 0;
  227. }
  228. },his_is_open:{
  229. type: Number,
  230. default: () => {
  231. return 0;
  232. }
  233. },
  234. patient: {
  235. // 患者信息
  236. type: Object,
  237. default: () => {
  238. return { id: 0 };
  239. }
  240. },
  241. schedual: {
  242. // 患者排班信息
  243. type: Object,
  244. default: () => {
  245. return { id: 0 };
  246. }
  247. },
  248. prescription: {
  249. // 透析处方
  250. type: Object,
  251. default: () => {
  252. return { id: 0 };
  253. }
  254. },
  255. dialysis_prescription:{
  256. type: Object,
  257. },
  258. solution: {
  259. // 透析方案
  260. type: Object,
  261. default: () => {
  262. return { id: 0 };
  263. }
  264. }, system_prescribe: {
  265. // 系统透析方案
  266. type: Object,
  267. default: () => {
  268. return { id: 0 };
  269. }
  270. },
  271. receiver_treatment_access: {
  272. // 接诊评估
  273. type: Object,
  274. default: () => {
  275. return { id: 0 };
  276. }
  277. },
  278. predialysis_evaluation: {
  279. // 透前评估
  280. type: Object,
  281. default: () => {
  282. return { id: 0 };
  283. }
  284. },
  285. doctor_advices: {
  286. // 临时医嘱
  287. type: Array,
  288. default: () => {
  289. return [];
  290. }
  291. },
  292. double_check: {
  293. // 双人核对
  294. type: Object,
  295. default: () => {
  296. return { id: 0 };
  297. }
  298. },
  299. assessment_after_dislysis: {
  300. // 透后评估
  301. type: Object,
  302. default: () => {
  303. return { id: 0 };
  304. }
  305. },
  306. treatment_summary: {
  307. // 治疗小结
  308. type: Object,
  309. default: () => {
  310. return { id: 0 };
  311. }
  312. },
  313. monitor_records: {
  314. // 透析监测
  315. type: Array,
  316. default: () => {
  317. return [];
  318. }
  319. },
  320. dialysis_order: {
  321. // 透析记录
  322. type: Object,
  323. default: () => {
  324. return { id: 0 };
  325. }
  326. },
  327. admin_users: {
  328. // 系统用户列表
  329. type: Array,
  330. default: () => {
  331. return [];
  332. }
  333. },
  334. devices: {
  335. // 设备
  336. type: Array,
  337. default: () => {
  338. return [];
  339. }
  340. },
  341. device_numbers: {
  342. // 床位
  343. type: Array,
  344. default: () => {
  345. return [];
  346. }
  347. },
  348. niprocart_info: {
  349. type: Array,
  350. default: () => {
  351. return [];
  352. }
  353. },
  354. jms_info: {
  355. type: Array,
  356. default: () => {
  357. return [];
  358. }
  359. },
  360. fistula_needle_set_info: {
  361. type: Array,
  362. default: () => {
  363. return [];
  364. }
  365. },
  366. fistula_needle_set_16_info: {
  367. type: Array,
  368. default: () => {
  369. return [];
  370. }
  371. },
  372. hemoperfusion_info: {
  373. type: Array,
  374. default: () => {
  375. return [];
  376. }
  377. },
  378. dialyser_sterilised_info: {
  379. type: Array,
  380. default: () => {
  381. return [];
  382. }
  383. },
  384. filtryzer_info: {
  385. type: Array,
  386. default: () => {
  387. return [];
  388. }
  389. },
  390. dialyzers_info: {
  391. type: Array,
  392. default: () => {
  393. return [];
  394. }
  395. },
  396. injector_info: {
  397. type: Array,
  398. default: () => {
  399. return [];
  400. }
  401. },
  402. bloodlines_info: {
  403. type: Array,
  404. default: () => {
  405. return [];
  406. }
  407. },
  408. tubingHemodialysis_info: {
  409. type: Array,
  410. default: () => {
  411. return [];
  412. }
  413. },
  414. safe_package_info: {
  415. type: Array,
  416. default: () => {
  417. return [];
  418. }
  419. },
  420. aliquid_info: {
  421. type: Array,
  422. default: () => {
  423. return [];
  424. }
  425. },
  426. headNurses: {
  427. type: Array,
  428. default: () => {
  429. return [];
  430. }
  431. },
  432. config: {
  433. type: Object,
  434. default: () => {
  435. return { id: 0 };
  436. }
  437. },
  438. admin_user_map: {
  439. // {user_id: admin_user object}
  440. type: Object,
  441. default: () => {
  442. return {};
  443. }
  444. },
  445. device_map: {
  446. // {device_id: device object}
  447. type: Object,
  448. default: () => {
  449. return {};
  450. }
  451. },
  452. device_number_map: {
  453. // {device_number_id: device_number object}
  454. type: Object,
  455. default: () => {
  456. return {};
  457. }
  458. },
  459. last_predialysis_evaluation: {
  460. //最后一条透前
  461. type: Object,
  462. default: () => {
  463. return { id: 0 };
  464. }
  465. },
  466. last_monitor_record: {
  467. //最后一条监测记录
  468. type: Object,
  469. default: () => {
  470. return { id: 0 };
  471. }
  472. },
  473. last_assessment_after_dislysis: {
  474. //最后一条透后记录 (除了今天录的)
  475. type: Object,
  476. default: () => {
  477. return { id: 0 };
  478. }
  479. },
  480. last_dialysis_prescribe: {
  481. //最后一条透析处方(除了今天录的)
  482. type: Object,
  483. default: () => {
  484. return { id: 0 };
  485. }
  486. },
  487. last_dryWeight_dislysis: {
  488. //最后一条干体重 (除了今天录的)
  489. type: Object,
  490. default: () => {
  491. return { id: 0 };
  492. }
  493. },
  494. special_premission: {
  495. type: Array,
  496. default: () => {
  497. return [];
  498. }
  499. },
  500. stockType:{
  501. type:Array,
  502. default:()=>{
  503. return [];
  504. }
  505. },
  506. lastAssessment:{
  507. // 最后一条血管通路(处理今天录的)
  508. type: Object,
  509. default: () => {
  510. return { id: 0 };
  511. }
  512. }
  513. },
  514. methods: {
  515. getUnReadNum: function() {
  516. let doctorAdvice = [];
  517. for (let y = 0; y < this.doctor_advices.length; y++) {
  518. if (this.doctor_advices[y].execution_state == 2) {
  519. doctorAdvice.push(this.doctor_advices[y]);
  520. }
  521. }
  522. const sorted = this.groupBy(doctorAdvice, function(item) {
  523. return [item.groupno];
  524. });
  525. console.log(doctorAdvice);
  526. console.log(sorted.length);
  527. return sorted.length;
  528. },
  529. groupBy(array, f) {
  530. const groups = {};
  531. array.forEach(function(o) {
  532. const group = JSON.stringify(f(o));
  533. groups[group] = groups[group] || [];
  534. groups[group].push(o);
  535. });
  536. return Object.keys(groups).map(function(group) {
  537. return groups[group];
  538. });
  539. },
  540. setLastRecord: function(
  541. lastPredialysisEvaluation,
  542. lastMonitorRecord,
  543. lastAssessmentAfterDislysis,
  544. lastDialysisPrescribe,
  545. lastDryWeightDislysis,
  546. schedual,
  547. system_prescribe,
  548. ) {
  549. this.$refs.assessmentBefore.setLastRecord(
  550. lastPredialysisEvaluation,
  551. lastDryWeightDislysis,
  552. );
  553. this.$refs.prescription.setLastRecord(
  554. schedual,
  555. lastAssessmentAfterDislysis,
  556. lastPredialysisEvaluation,
  557. lastDialysisPrescribe,
  558. lastDryWeightDislysis,
  559. system_prescribe
  560. );
  561. this.temp_schedual = schedual
  562. console.log("排班列表2222222222222222",schedual)
  563. },
  564. add_monitor: function(monitor) {
  565. this.monitor_records.push(monitor);
  566. console.log(this.monitor_records);
  567. this.monitor_records.sort((a, b) => b.operate_time - a.operate_time);
  568. this.monitor_records.reverse();
  569. console.log(this.monitor_records);
  570. this.$refs.monitor_dialog.setRecords(this.monitor_records);
  571. },
  572. adviceFunc: function() {
  573. this.$emit("advice");
  574. },
  575. showMonitorDialog: function() {
  576. this.$refs.monitor_dialog.show();
  577. },
  578. showAssessmentAfterDialog: function() {
  579. this.$refs.assessment_after_dislysis.show(this.assessment_after_dislysis,this.last_assessment_after_dislysis);
  580. },
  581. showDoctorAdviceDialog: function() {
  582. this.$refs.doctor_advice.show(this.his_is_open);
  583. },
  584. showComputerDialog: function() {
  585. this.$refs.computer_dialog.show(this.dialysis_order);
  586. },
  587. showFinishDialog: function() {
  588. this.$refs.finish_dialog.show(this.dialysis_order);
  589. },
  590. showPrescription: function() {
  591. console.log("粗32323232",this.prescription)
  592. this.$refs.prescription.show(this.prescription,this.schedual,this.last_dialysis_prescribe,this.his_is_open);
  593. },
  594. showAccepts: function() {
  595. this.$refs.accepts.show(this.receiver_treatment_access);
  596. },
  597. showAssessmentBefore: function() {
  598. console.log(this.last_predialysis_evaluation)
  599. this.$refs.assessmentBefore.show(this.predialysis_evaluation,this.last_dryWeight_dislysis,this.last_predialysis_evaluation,this.lastAssessment);
  600. },
  601. showDoubleCheck: function() {
  602. this.$refs.doubleCheck.show();
  603. },
  604. showrTeatmentSummary: function() {
  605. this.$refs.treatmentSummary.show(this.treatment_summary);
  606. },
  607. assessmentAfterDislysisFunc: function(val) {
  608. this.assessment_after_dislysis = val;
  609. this.$refs.assessment_after_dislysis.setRecords(
  610. this.assessment_after_dislysis
  611. );
  612. this.$emit("assessmentAfterDislysis", this.assessment_after_dislysis);
  613. }
  614. }
  615. };
  616. </script>
  617. <style style="stylesheet/scss" lang="scss" scoped>
  618. .grid {
  619. padding: 10px 0 20px 0;
  620. .list {
  621. ul {
  622. @include display-flex;
  623. @include align-items-center;
  624. @include text-align;
  625. @include justify-content-around;
  626. cursor: pointer;
  627. li {
  628. font-size: 12px;
  629. color: #5d6b7a;
  630. margin-top: 20px;
  631. p {
  632. height: 30px;
  633. line-height: 30px;
  634. color: #34495e;
  635. font-size: 14px;
  636. }
  637. img {
  638. width: 50px;
  639. height: 50px;
  640. }
  641. }
  642. }
  643. }
  644. }
  645. .txsj {
  646. text-align: center;
  647. margin-bottom: 20px;
  648. }
  649. .redpoint {
  650. display: inline-block;
  651. height: 26px;
  652. width: 26px;
  653. line-height: 26px;
  654. text-align: center;
  655. font-size: 16px;
  656. border-radius: 20px;
  657. color: #fff;
  658. background: #f56c6c;
  659. position: absolute;
  660. top: -6px;
  661. right: -8px;
  662. border: 1px solid #fff;
  663. }
  664. .newOrdersAdvice {
  665. position: relative;
  666. }
  667. </style>