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

NavIgation.vue 17KB

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