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

NavIgation.vue 18KB

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