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

AssessmentAfterDislysis.vue 39KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099
  1. <template>
  2. <div class="assessment-after-box">
  3. <el-dialog
  4. class="newDialog"
  5. title="透后评估"
  6. :visible.sync="isVisibility"
  7. width="1010px"
  8. :modal-append-to-body="false"
  9. >
  10. <div class="warnTxt" v-if="showTxt != ''">{{ showTxt }}</div>
  11. <el-form ref="form" :model="form" label-width="160px">
  12. <!-- <el-row :gutter="20"> -->
  13. <el-row :gutter="20">
  14. <el-col :span="8" v-if="isShow('实际治疗时长')">
  15. <el-form-item label="实际治疗时长(时):">
  16. <!-- <el-input v-model="form.actual_treatment_hour"></el-input> -->
  17. <el-time-picker
  18. v-model="actualTreatmentHourShow"
  19. placeholder="透析时长"
  20. style="width:100%;"
  21. value-format="H:m"
  22. format="H:m"
  23. @change="selectActualTreatmentHour"
  24. >
  25. </el-time-picker>
  26. </el-form-item>
  27. </el-col>
  28. <el-col :span="8" v-if="isShow('实际超滤量')">
  29. <el-form-item label="实际超滤量(L): " v-if="this.template_id != 6">
  30. <el-input v-model="form.actual_ultrafiltration"></el-input>
  31. </el-form-item>
  32. <el-form-item label="实际超滤量(ml): " v-if="this.template_id == 6">
  33. <el-input v-model="form.actual_ultrafiltration"></el-input>
  34. </el-form-item>
  35. </el-col>
  36. <el-col :span="8" v-if="isShow('透后称重')">
  37. <el-form-item label="透后称重(kg): ">
  38. <el-input v-model="form.weight_after"></el-input>
  39. </el-form-item>
  40. </el-col>
  41. <el-col :span="8" v-if="isShow('体重减少')">
  42. <el-form-item label="体重减少(kg): ">
  43. <el-input v-model="form.weight_loss"></el-input>
  44. </el-form-item>
  45. </el-col>
  46. <el-col :span="8" v-if="isShow('穿刺处血肿')">
  47. <el-form-item label="穿刺处血肿: ">
  48. <el-radio-group v-model="form.puncture_point_haematoma">
  49. <el-radio :label="1">有</el-radio>
  50. <el-radio :label="2">无</el-radio>
  51. </el-radio-group>
  52. </el-form-item>
  53. </el-col>
  54. <el-col :span="8" v-if="isShow('并发症')">
  55. <el-form-item label="并发症: ">
  56. <el-input
  57. v-model="form.complication"
  58. readonly
  59. @focus="showDialog('5')"
  60. ></el-input>
  61. </el-form-item>
  62. </el-col>
  63. <el-col :span="8" v-if="isShow('内瘘')">
  64. <el-form-item label="内瘘: ">
  65. <el-input
  66. v-model="form.internal_fistula"
  67. readonly
  68. @focus="showDialog('3')"
  69. ></el-input>
  70. </el-form-item>
  71. </el-col>
  72. <el-col :span="8" v-if="isShow('导管')">
  73. <el-form-item label="导管: ">
  74. <el-input
  75. v-model="form.catheter"
  76. readonly
  77. @focus="showDialog('4')"
  78. ></el-input>
  79. </el-form-item>
  80. </el-col>
  81. <el-col :span="8" v-if="isShow('透析过程')">
  82. <el-form-item label="透析过程: ">
  83. <el-select v-model="form.dialysis_process">
  84. <el-option :key="0" label="请选择" :value="0"></el-option>
  85. <el-option
  86. v-for="item in this.$store.getters.dialysis_process"
  87. :label="item.name"
  88. :value="item.id"
  89. :key="item.id"
  90. ></el-option>
  91. </el-select>
  92. </el-form-item>
  93. </el-col>
  94. <el-col :span="8" v-if="isShow('透析过程提前时间')">
  95. <el-form-item label="透析过程提前时间(min): ">
  96. <el-input v-model="form.in_advance_minute"></el-input>
  97. </el-form-item>
  98. </el-col>
  99. <el-col :span="8" v-if="isShow('透析过程提前原因')">
  100. <el-form-item label="透析过程提前原因: ">
  101. <el-input
  102. v-model="form.in_advance_reason"
  103. readonly
  104. @focus="showDialog('7')"
  105. ></el-input>
  106. </el-form-item>
  107. </el-col>
  108. <el-col :span="8" v-if="isShow('透析过程提前其他原因')">
  109. <el-form-item label="透析过程提前其他原因: ">
  110. <el-input
  111. v-model="form.in_advance_reason_other"
  112. :rows="2"
  113. ></el-input>
  114. </el-form-item>
  115. </el-col>
  116. <el-col :span="8" v-if="isShow('内瘘管拔针后压迫止血时间')">
  117. <el-form-item label="内瘘管拔针后压迫止血时间(min): ">
  118. <el-input v-model="form.hemostasis_minute" :rows="5"></el-input>
  119. </el-form-item>
  120. </el-col>
  121. <el-col :span="8" v-if="isShow('内瘘管拔针后压迫止血操作')">
  122. <el-form-item label="内瘘管拔针后压迫止血操作: ">
  123. <el-select v-model="form.hemostasis_opera">
  124. <el-option :key="0" label="请选择" :value="0"></el-option>
  125. <el-option
  126. v-for="item in this.$store.getters.hemostasis_opera"
  127. :label="item.name"
  128. :value="item.id"
  129. :key="item.id"
  130. ></el-option>
  131. </el-select>
  132. </el-form-item>
  133. </el-col>
  134. <el-col :span="8" v-if="isShow('动脉管道')">
  135. <el-form-item label="动脉管道: ">
  136. <el-select v-model="form.arterial_tube">
  137. <el-option :key="0" label="请选择" :value="0"></el-option>
  138. <el-option
  139. v-for="item in this.$store.getters.arterial_tube"
  140. :label="item.name"
  141. :value="item.id"
  142. :key="item.id"
  143. ></el-option>
  144. </el-select>
  145. </el-form-item>
  146. </el-col>
  147. <el-col :span="8" v-if="isShow('静脉管道')">
  148. <el-form-item label="静脉管道: ">
  149. <el-select v-model="form.intravenous_tube">
  150. <el-option :key="0" label="请选择" :value="0"></el-option>
  151. <el-option
  152. v-for="item in this.$store.getters.intravenous_tube"
  153. :label="item.name"
  154. :value="item.id"
  155. :key="item.id"
  156. ></el-option>
  157. </el-select>
  158. </el-form-item>
  159. </el-col>
  160. <el-col :span="8" v-if="isShow('透析器凝血')">
  161. <el-form-item label="透析器凝血: ">
  162. <el-input
  163. v-model="form.cruor"
  164. readonly
  165. @focus="showDialog('1')"
  166. ></el-input>
  167. </el-form-item>
  168. </el-col>
  169. <el-col :span="8" v-if="isShow('患者去向')">
  170. <el-form-item label="患者去向: ">
  171. <el-select v-model="form.patient_gose">
  172. <el-option :key="0" label="请选择" :value="0"></el-option>
  173. <el-option
  174. v-for="item in patientGoseOptions"
  175. :label="item.name"
  176. :value="item.id"
  177. :key="item.id"
  178. ></el-option>
  179. </el-select>
  180. </el-form-item>
  181. </el-col>
  182. <el-col :span="8" v-if="isShow('拔针后穿刺点渗血')">
  183. <el-form-item label="拔针后穿刺点渗血: ">
  184. <el-radio-group v-model="form.puncture_point_oozing_blood">
  185. <el-radio :label="1">有</el-radio>
  186. <el-radio :label="2">无</el-radio>
  187. </el-radio-group>
  188. </el-form-item>
  189. </el-col>
  190. <!-- <el-col :span="8" v-if="isShow('压迫后内瘘震颤')">-->
  191. <!-- <el-form-item label="压迫后内瘘震颤: ">-->
  192. <!-- <el-select v-model="form.internal_fistula_tremor_ac">-->
  193. <!-- <el-option :key="0" label="请选择" :value="0"></el-option>-->
  194. <!-- <el-option-->
  195. <!-- v-for="item in internalFistulaTremorAcOptions"-->
  196. <!-- :label="item.name"-->
  197. <!-- :value="item.id"-->
  198. <!-- :key="item.id"-->
  199. <!-- ></el-option>-->
  200. <!-- </el-select>-->
  201. <!-- </el-form-item>-->
  202. <!-- </el-col>-->
  203. <el-row :gutter="20" v-if="form.patient_gose == 3 && isShow('科室')">
  204. <el-col :span="24">
  205. <el-form-item label="科室: ">
  206. <el-input
  207. v-model="form.inpatient_department"
  208. :rows="5"
  209. ></el-input>
  210. </el-form-item>
  211. </el-col>
  212. </el-row>
  213. <el-row
  214. :gutter="20"
  215. v-if="form.patient_gose == 3 && isShow('交待观察内容')"
  216. >
  217. <el-col :span="24">
  218. <el-form-item label="交待观察内容: ">
  219. <el-input
  220. placeholder="交待病房护士/患者/陪人观察内容"
  221. v-model="form.observation_content"
  222. :rows="5"
  223. readonly
  224. @focus="showDialog('6')"
  225. ></el-input>
  226. </el-form-item>
  227. </el-col>
  228. </el-row>
  229. <el-row
  230. :gutter="20"
  231. v-show="form.patient_gose == 3 && isShow('其他观察内容')"
  232. >
  233. <el-col :span="24">
  234. <el-form-item label="其他观察内容: ">
  235. <el-input
  236. v-model="form.observation_content_other"
  237. :rows="5"
  238. ></el-input>
  239. </el-form-item>
  240. </el-col>
  241. </el-row>
  242. <el-col :span="8" v-if="isShow('体温')">
  243. <el-form-item label="体温(℃): ">
  244. <el-input v-model="form.temperature"></el-input>
  245. </el-form-item>
  246. </el-col>
  247. <!-- </el-row>
  248. <el-row :gutter="20"> -->
  249. <el-col :span="8" v-if="isShow('收缩压')">
  250. <el-form-item label="收缩压(mmHg): ">
  251. <el-input v-model="form.systolic_blood_pressure"></el-input>
  252. </el-form-item>
  253. </el-col>
  254. <el-col :span="8" v-if="isShow('舒张压')">
  255. <el-form-item label="舒张压(mmHg): ">
  256. <el-input v-model="form.diastolic_blood_pressure"></el-input>
  257. </el-form-item>
  258. </el-col>
  259. <el-col :span="8" v-if="isShow('呼吸频率')">
  260. <el-form-item label="呼吸频率(次/min): ">
  261. <el-input v-model="form.breathing_rate"></el-input>
  262. </el-form-item>
  263. </el-col>
  264. <el-col :span="8" v-if="isShow('脉搏')">
  265. <el-form-item label="脉搏(次/分): ">
  266. <el-input v-model="form.pulse_frequency"></el-input>
  267. </el-form-item>
  268. </el-col>
  269. <el-col :span="8" v-if="isShow('透后症状')">
  270. <el-form-item label="透后症状: ">
  271. <el-input
  272. v-model="form.symptom_after_dialysis"
  273. readonly
  274. @focus="showDialog('2')"
  275. ></el-input>
  276. </el-form-item>
  277. </el-col>
  278. <el-col :span="8" v-if="isShow('透析中入量')">
  279. <el-form-item label="透析中入量: ">
  280. <el-input v-model="form.dialysis_intakes"></el-input>
  281. </el-form-item>
  282. </el-col>
  283. <el-col :span="8" v-if="isShow('透析中入量单位')">
  284. <el-form-item label="透析中入量单位: ">
  285. <el-select v-model="form.dialysis_intakes_unit">
  286. <el-option :key="0" label="请选择" :value="0"></el-option>
  287. <el-option
  288. v-for="item in unit"
  289. :label="item.name"
  290. :value="item.id"
  291. :key="item.id"
  292. ></el-option>
  293. </el-select>
  294. </el-form-item>
  295. </el-col>
  296. <!-- </el-row>
  297. <el-row :gutter="20"> -->
  298. <el-col :span="8" v-if="isShow('实际置换量')">
  299. <el-form-item label="实际置换量(L): ">
  300. <el-input v-model="form.actual_displacement"></el-input>
  301. </el-form-item>
  302. </el-col>
  303. <!-- </el-row>
  304. <el-row :gutter="20"> -->
  305. <!-- </el-row>
  306. <el-row :gutter="20"> -->
  307. <!-- <el-col :span="8" v-if="isShow('血管通路部位')">-->
  308. <!-- <el-form-item label="血管通路部位: ">-->
  309. <!-- <el-select v-model="form.blood_access_part_id">-->
  310. <!-- <el-option :key="0" label="请选择" :value="0"></el-option>-->
  311. <!-- <el-option-->
  312. <!-- v-for="item in vascularAccessOptions"-->
  313. <!-- :label="item.name"-->
  314. <!-- :value="item.id"-->
  315. <!-- :key="item.id"-->
  316. <!-- ></el-option>-->
  317. <!-- </el-select>-->
  318. <!-- </el-form-item>-->
  319. <!-- </el-col>-->
  320. <!-- <el-col :span="8" v-if="isShow('血管通路')">-->
  321. <!-- <el-form-item label="血管通路: ">-->
  322. <!-- <el-select v-model="form.blood_access_part_opera_id">-->
  323. <!-- <el-option :key="0" label="请选择" :value="0"></el-option>-->
  324. <!-- <el-option-->
  325. <!-- v-for="item in vascularAccessDescOptions"-->
  326. <!-- :label="item.name"-->
  327. <!-- :value="item.id"-->
  328. <!-- :key="item.id"-->
  329. <!-- ></el-option>-->
  330. <!-- </el-select>-->
  331. <!-- </el-form-item>-->
  332. <!-- </el-col>-->
  333. <!-- </el-row>
  334. <el-row :gutter="20"> -->
  335. <!-- </el-row>
  336. <el-row :gutter="20" > -->
  337. <!--
  338. </el-row>
  339. <el-row :gutter="20"> -->
  340. <!-- <el-col :span="8" v-if="isShow('内瘘震颤和血管杂音')">-->
  341. <!-- <el-form-item label="内瘘震颤和血管杂音: ">-->
  342. <!-- <el-select v-model="form.tremor_noise">-->
  343. <!-- <el-option :key="0" label="请选择" :value="0"></el-option>-->
  344. <!-- <el-option-->
  345. <!-- v-for="item in this.$store.getters.tremor_noise"-->
  346. <!-- :label="item.name"-->
  347. <!-- :value="item.id"-->
  348. <!-- :key="item.id"-->
  349. <!-- ></el-option>-->
  350. <!-- </el-select>-->
  351. <!-- </el-form-item>-->
  352. <!-- </el-col>-->
  353. <el-col :span="8" v-if="isShow('失衡综合症')">
  354. <el-form-item label="失衡综合症: ">
  355. <el-select v-model="form.disequilibrium_syndrome">
  356. <el-option :key="0" label="请选择" :value="0"></el-option>
  357. <el-option
  358. v-for="item in this.$store.getters.disequilibrium_syndrome"
  359. :label="item.name"
  360. :value="item.id"
  361. :key="item.id"
  362. ></el-option>
  363. </el-select>
  364. </el-form-item>
  365. </el-col>
  366. <!-- <el-col :span="8" v-if="isShow('失衡综合症症状')">-->
  367. <!-- <el-form-item label="失衡综合症症状: ">-->
  368. <!-- <el-input-->
  369. <!-- v-model="form.disequilibrium_syndrome_option"-->
  370. <!-- readonly-->
  371. <!-- @focus="showDialog('8')"-->
  372. <!-- ></el-input>-->
  373. <!-- </el-form-item>-->
  374. <!-- </el-col>-->
  375. <!-- </el-row>
  376. <el-row :gutter="20" > -->
  377. <!-- <el-col :span="8" v-if="isShow('透析器')">-->
  378. <!-- <el-form-item label="透析器凝血: ">-->
  379. <!-- <el-select v-model="form.dialyzer">-->
  380. <!-- <el-option :key="0" label="请选择" :value="0"></el-option>-->
  381. <!-- <el-option-->
  382. <!-- v-for="item in this.$store.getters.dialyzer"-->
  383. <!-- :label="item.name"-->
  384. <!-- :value="item.id"-->
  385. <!-- :key="item.id"-->
  386. <!-- ></el-option>-->
  387. <!-- </el-select>-->
  388. <!-- </el-form-item>-->
  389. <!-- </el-col>-->
  390. <el-col :span="8" v-if="isShow('透析期间进食')">
  391. <el-form-item label="透析期间进食: ">
  392. <el-radio-group v-model="form.is_eat">
  393. <el-radio :label="1">有</el-radio>
  394. <el-radio :label="2">无</el-radio>
  395. </el-radio-group>
  396. </el-form-item>
  397. </el-col>
  398. <el-col :span="8" v-if="isShow('中心静脉封管(肝素-A端)')">
  399. <el-form-item label="中心静脉封管(肝素-A端): ">
  400. <el-input v-model="form.cvc_a"></el-input>
  401. </el-form-item>
  402. </el-col>
  403. <el-col :span="8" v-if="isShow('中心静脉封管(肝素-V端)')">
  404. <el-form-item label="中心静脉封管(肝素-V端): ">
  405. <el-input v-model="form.cvc_v"></el-input>
  406. </el-form-item>
  407. </el-col>
  408. <el-col :span="8" v-if="isShow('管路')">
  409. <el-form-item label="管路: ">
  410. <el-select v-model="form.channel">
  411. <el-option :key="0" label="请选择" :value="0"></el-option>
  412. <el-option
  413. v-for="item in channels"
  414. :label="item.name"
  415. :value="item.id"
  416. :key="item.id"
  417. ></el-option>
  418. </el-select>
  419. </el-form-item>
  420. </el-col>
  421. </el-row>
  422. </el-form>
  423. <span slot="footer" class="dialog-footer">
  424. <el-button @click="hide">取 消</el-button>
  425. <el-button
  426. type="primary"
  427. @click="submitForm"
  428. :loading="loading"
  429. v-if="hasPermission"
  430. >保 存</el-button
  431. >
  432. </span>
  433. </el-dialog>
  434. <multi-select-box
  435. :propsForm="InnerDialogProps"
  436. v-on:dialog-comfirm="DialogComfirm"
  437. v-on:dialog-cancle="DialogCancle"
  438. ></multi-select-box>
  439. </div>
  440. </template>
  441. <script>
  442. import { getDataConfig } from "@/utils/data";
  443. import MultiSelectBox from "./MultiSelectBox";
  444. import { postAssessmentAfterDislysis } from "@/api/dialysis";
  445. import { uParseTime } from "@/utils/tools";
  446. import store from "@/store";
  447. import request from "@/utils/request";
  448. export default {
  449. name: "AssessmentAfterDislysis",
  450. props: {
  451. assessment_after_dislysis: {
  452. // 透后评估
  453. type: Object,
  454. default: () => {
  455. return { id: 0 };
  456. }
  457. },
  458. dialysis_order: {
  459. // 透析记录
  460. type: Object,
  461. default: () => {
  462. return { id: 0 };
  463. }
  464. },
  465. patient: {
  466. // 患者信息
  467. type: Object,
  468. default: () => {
  469. return { id: 0 };
  470. }
  471. }
  472. },
  473. data() {
  474. return {
  475. showTxt: "",
  476. hasPermission: true,
  477. loading: false,
  478. record_date: "",
  479. isVisibility: false,
  480. template_id: 0,
  481. cruorOptions: [],
  482. symptomsOptions: [],
  483. internalFistulaOptions: [],
  484. vascularAccessOptions: [],
  485. unit: [{ id: 1, name: "g" }, { id: 2, name: "ml" }],
  486. actualTreatmentHourShow: "",
  487. vascularAccessDescOptions: [],
  488. catheterOptions: [],
  489. complicationOptions: [],
  490. internalFistulaTremorAcOptions: [],
  491. patientGoseOptions: [],
  492. observationContentOptions: [],
  493. channels:[],
  494. isVisibiltyForCruorDialog: false,
  495. dialogCruorTitle: "凝血",
  496. InnerDialogProps: {
  497. values: [],
  498. visibility: false,
  499. isShowTextArea: true,
  500. customContent: "",
  501. titles: "",
  502. type: "" // 不同弹框类型,用来匹配数据
  503. },
  504. form: {
  505. weight_after: "",
  506. weight_loss: "",
  507. temperature: "",
  508. systolic_blood_pressure: "",
  509. diastolic_blood_pressure: "",
  510. pulse_frequency: "",
  511. actual_ultrafiltration: "",
  512. actual_displacement: "",
  513. actual_treatment_hour: "",
  514. actual_treatment_minute: "",
  515. cruor: "",
  516. symptom_after_dialysis: "",
  517. dialysis_intakes: "",
  518. internal_fistula: "",
  519. blood_access_part_id: "",
  520. blood_access_part_opera_id: "",
  521. catheter: "",
  522. complication: "",
  523. puncture_point_oozing_blood: 2,
  524. puncture_point_haematoma: 2,
  525. internal_fistula_tremor_ac: "",
  526. patient_gose: "",
  527. inpatient_department: "",
  528. observation_content: "",
  529. observation_content_other: "",
  530. remark: "",
  531. dialysis_order_id: 0,
  532. is_eat: 2,
  533. dialysis_process: "",
  534. in_advance_minute: "",
  535. in_advance_reason: "",
  536. in_advance_reason_other: "",
  537. hemostasis_minute: "",
  538. hemostasis_opera: "",
  539. tremor_noise: "",
  540. disequilibrium_syndrome: "",
  541. disequilibrium_syndrome_option: "",
  542. arterial_tube: "",
  543. intravenous_tube: "",
  544. dialyzer: "",
  545. breathing_rate: "",
  546. dialysis_intakes_unit: 0,
  547. cvc_a:0,
  548. cvc_v:0,
  549. channel:"",
  550. }
  551. };
  552. },
  553. watch: {
  554. "assessment_after_dislysis.id": function() {
  555. if (this.assessment_after_dislysis.id > 0) {
  556. for (var index in this.form) {
  557. this.form[index] = this.assessment_after_dislysis[index];
  558. }
  559. if (this.assessment_after_dislysis["blood_access_part_id"] == 0) {
  560. this.form["blood_access_part_id"] = "";
  561. }
  562. if (this.assessment_after_dislysis["blood_access_part_opera_id"] == 0) {
  563. this.form["blood_access_part_opera_id"] = "";
  564. }
  565. if (this.assessment_after_dislysis["internal_fistula_tremor_ac"] == 0) {
  566. this.form["internal_fistula_tremor_ac"] = "";
  567. }
  568. if (this.assessment_after_dislysis["patient_gose"] == 0) {
  569. this.form["patient_gose"] = "";
  570. }
  571. if (this.assessment_after_dislysis["weight_after"] == 0) {
  572. this.form["weight_after"] = "";
  573. }
  574. if (this.assessment_after_dislysis["weight_loss"] == 0) {
  575. this.form["weight_loss"] = "";
  576. }
  577. if (this.assessment_after_dislysis["temperature"] == 0) {
  578. this.form["temperature"] = "";
  579. }
  580. if (this.assessment_after_dislysis["systolic_blood_pressure"] == 0) {
  581. this.form["systolic_blood_pressure"] = "";
  582. }
  583. if (this.assessment_after_dislysis["diastolic_blood_pressure"] == 0) {
  584. this.form["diastolic_blood_pressure"] = "";
  585. }
  586. if (this.assessment_after_dislysis["pulse_frequency"] == 0) {
  587. this.form["pulse_frequency"] = "";
  588. }
  589. if (this.assessment_after_dislysis["breathing_rate"] == 0) {
  590. this.form["breathing_rate"] = "";
  591. }
  592. if (this.assessment_after_dislysis["actual_ultrafiltration"] == 0) {
  593. this.form["actual_ultrafiltration"] = "";
  594. }
  595. if (this.assessment_after_dislysis["actual_displacement"] == 0) {
  596. this.form["actual_displacement"] = "";
  597. }
  598. if (this.assessment_after_dislysis["dialysis_intakes"] == 0) {
  599. this.form["dialysis_intakes"] = "";
  600. }
  601. this.actualTreatmentHourShow = new Date(
  602. 2018,
  603. 1,
  604. 1,
  605. this.assessment_after_dislysis["actual_treatment_hour"],
  606. this.assessment_after_dislysis["actual_treatment_minute"]
  607. );
  608. }
  609. },
  610. "dialysis_order.id": function() {
  611. this.form["dialysis_order_id"] = this.assessment_after_dislysis[
  612. "dialysis_order_id"
  613. ];
  614. },
  615. "form.patient_gose": function() {
  616. if (this.form.patient_gose.patient_gose != 3) {
  617. this.form.inpatient_department = "";
  618. this.form.observation_content = "";
  619. this.form.observation_content_other = "";
  620. }
  621. }
  622. },
  623. methods: {
  624. submitForm() {
  625. this.loading = true;
  626. const ParamsQuery = {};
  627. if (!(this.patient.id > 0)) {
  628. this.$message.error("没有选择患者");
  629. this.loading = false;
  630. return false;
  631. }
  632. if (this.record_date.length != 10) {
  633. this.$message.error("无效的日期");
  634. this.loading = false;
  635. return false;
  636. }
  637. ParamsQuery["patient"] = this.patient.id;
  638. ParamsQuery["record_date"] = this.record_date;
  639. ParamsQuery["mode"] = "1";
  640. if (this.assessment_after_dislysis.creater > 0) {
  641. ParamsQuery["mode"] = "2";
  642. if (
  643. this.assessment_after_dislysis.creater !=
  644. this.$store.getters.xt_user.user.id
  645. ) {
  646. ParamsQuery["mode"] = "3";
  647. }
  648. }
  649. const data = {};
  650. data["weight_after"] = this.form.weight_after
  651. ? parseFloat(this.form.weight_after)
  652. : 0;
  653. data["weight_loss"] = this.form.weight_loss
  654. ? parseFloat(this.form.weight_loss)
  655. : 0;
  656. data["temperature"] = this.form.temperature
  657. ? parseFloat(this.form.temperature)
  658. : 0;
  659. data["breathing_rate"] = this.form.temperature
  660. ? parseFloat(this.form.breathing_rate)
  661. : 0;
  662. data["systolic_blood_pressure"] = this.form.systolic_blood_pressure
  663. ? parseFloat(this.form.systolic_blood_pressure)
  664. : 0;
  665. data["diastolic_blood_pressure"] = this.form.diastolic_blood_pressure
  666. ? parseFloat(this.form.diastolic_blood_pressure)
  667. : 0;
  668. data["pulse_frequency"] = this.form.pulse_frequency
  669. ? parseFloat(this.form.pulse_frequency)
  670. : 0;
  671. data["actual_ultrafiltration"] = this.form.actual_ultrafiltration
  672. ? parseFloat(this.form.actual_ultrafiltration)
  673. : 0;
  674. data["actual_displacement"] = this.form.actual_displacement
  675. ? parseFloat(this.form.actual_displacement)
  676. : 0;
  677. data["actual_treatment_hour"] = this.form.actual_treatment_hour
  678. ? parseFloat(this.form.actual_treatment_hour)
  679. : 0;
  680. data["actual_treatment_minute"] = this.form.actual_treatment_minute
  681. ? parseFloat(this.form.actual_treatment_minute)
  682. : 0;
  683. data["cruor"] = this.form.cruor;
  684. data["symptom_after_dialysis"] = this.form.symptom_after_dialysis;
  685. data["dialysis_intakes"] = this.form.dialysis_intakes
  686. ? parseFloat(this.form.dialysis_intakes)
  687. : 0;
  688. data["internal_fistula"] = this.form.internal_fistula;
  689. data["blood_access_part_id"] = this.form.blood_access_part_id
  690. ? parseFloat(this.form.blood_access_part_id)
  691. : 0;
  692. data["blood_access_part_opera_id"] = this.form.blood_access_part_opera_id
  693. ? parseFloat(this.form.blood_access_part_opera_id)
  694. : 0;
  695. data["catheter"] = this.form.catheter;
  696. data["complication"] = this.form.complication;
  697. data["puncture_point_oozing_blood"] = this.form
  698. .puncture_point_oozing_blood
  699. ? parseFloat(this.form.puncture_point_oozing_blood)
  700. : 0;
  701. data["puncture_point_haematoma"] = this.form.puncture_point_haematoma
  702. ? parseFloat(this.form.puncture_point_haematoma)
  703. : 0;
  704. data["internal_fistula_tremor_ac"] = this.form.internal_fistula_tremor_ac
  705. ? parseFloat(this.form.internal_fistula_tremor_ac)
  706. : 0;
  707. data["patient_gose"] = this.form.patient_gose
  708. ? parseFloat(this.form.patient_gose)
  709. : 0;
  710. data["inpatient_department"] = this.form.inpatient_department;
  711. data["observation_content"] = this.form.observation_content;
  712. data["observation_content_other"] = this.form.observation_content_other;
  713. data["remark"] = this.form.remark;
  714. data["dialysis_order_id"] = this.form.dialysis_order_id
  715. ? parseFloat(this.form.dialysis_order_id)
  716. : 0;
  717. data["dialysis_process"] = this.form.dialysis_process
  718. ? parseFloat(this.form.dialysis_process)
  719. : 0;
  720. data["in_advance_minute"] = this.form.in_advance_minute
  721. ? parseFloat(this.form.in_advance_minute)
  722. : 0;
  723. data["in_advance_reason_other"] = this.form.in_advance_reason_other;
  724. data["in_advance_reason"] = this.form.in_advance_reason;
  725. data["hemostasis_minute"] = this.form.hemostasis_minute
  726. ? parseFloat(this.form.hemostasis_minute)
  727. : 0;
  728. data["hemostasis_opera"] = this.form.hemostasis_opera
  729. ? parseFloat(this.form.hemostasis_opera)
  730. : 0;
  731. data["tremor_noise"] = this.form.tremor_noise
  732. ? parseFloat(this.form.tremor_noise)
  733. : 0;
  734. data["disequilibrium_syndrome"] = this.form.disequilibrium_syndrome
  735. ? parseFloat(this.form.disequilibrium_syndrome)
  736. : 0;
  737. data[
  738. "disequilibrium_syndrome_option"
  739. ] = this.form.disequilibrium_syndrome_option;
  740. data["arterial_tube"] = this.form.arterial_tube
  741. ? parseFloat(this.form.arterial_tube)
  742. : 0;
  743. data["intravenous_tube"] = this.form.intravenous_tube
  744. ? parseFloat(this.form.intravenous_tube)
  745. : 0;
  746. data["dialysis_intakes_unit"] = this.form.dialysis_intakes_unit;
  747. data["dialyzer"] = this.form.dialyzer
  748. ? parseFloat(this.form.dialyzer)
  749. : 0;
  750. data["is_eat"] = this.form.is_eat ? parseFloat(this.form.is_eat) : 0;
  751. postAssessmentAfterDislysis(ParamsQuery, data)
  752. .then(response => {
  753. this.loading = false;
  754. if (response.data.state == 0) {
  755. this.$message.error(response.data.msg);
  756. return false;
  757. } else {
  758. this.$notify({
  759. title: "成功",
  760. message: "提交成功",
  761. type: "success",
  762. duration: 2000
  763. });
  764. var assement = response.data.data.AssessmentAfterDislysis;
  765. var assessment_after_dislysis = this.assessment_after_dislysis;
  766. for (var index in assement) {
  767. // assessment_after_dislysis[index] = assement[index];
  768. this.$set(assessment_after_dislysis, index, assement[index]);
  769. }
  770. this.hide();
  771. }
  772. })
  773. .catch(v => {
  774. this.loading = false;
  775. });
  776. },
  777. showDialog: function(val) {
  778. this.InnerDialogProps.visibility = true;
  779. switch (val) {
  780. case "1":
  781. this.InnerDialogProps.values = this.cruorOptions;
  782. this.InnerDialogProps.titles = "凝血";
  783. this.InnerDialogProps.type = "cruor";
  784. this.InnerDialogProps.selected = this.form.cruor;
  785. this.InnerDialogProps.isShowTextArea = false;
  786. break;
  787. case "2":
  788. this.InnerDialogProps.values = this.symptomsOptions;
  789. this.InnerDialogProps.titles = "透后症状";
  790. this.InnerDialogProps.type = "symptom_after_dialysis";
  791. this.InnerDialogProps.selected = this.form.symptom_after_dialysis;
  792. this.InnerDialogProps.isShowTextArea = false;
  793. break;
  794. case "3":
  795. this.InnerDialogProps.values = this.internalFistulaOptions;
  796. this.InnerDialogProps.titles = "内瘘";
  797. this.InnerDialogProps.type = "internal_fistula";
  798. this.InnerDialogProps.selected = this.form.internal_fistula;
  799. this.InnerDialogProps.isShowTextArea = false;
  800. break;
  801. case "4":
  802. this.InnerDialogProps.values = this.catheterOptions;
  803. this.InnerDialogProps.titles = "导管";
  804. this.InnerDialogProps.type = "catheter";
  805. this.InnerDialogProps.selected = this.form.catheter;
  806. this.InnerDialogProps.isShowTextArea = false;
  807. break;
  808. case "5":
  809. this.InnerDialogProps.values = this.complicationOptions;
  810. this.InnerDialogProps.titles = "并发症";
  811. this.InnerDialogProps.type = "complication";
  812. this.InnerDialogProps.selected = this.form.complication;
  813. this.InnerDialogProps.isShowTextArea = false;
  814. break;
  815. case "6":
  816. this.InnerDialogProps.values = this.observationContentOptions;
  817. this.InnerDialogProps.titles = "交待病房护士/患者/陪人观察内容";
  818. this.InnerDialogProps.type = "observation_content";
  819. this.InnerDialogProps.selected = this.form.observation_content;
  820. this.InnerDialogProps.isShowTextArea = false;
  821. break;
  822. case "7":
  823. this.InnerDialogProps.values = this.$store.getters.in_advance_reason;
  824. this.InnerDialogProps.titles = "透析过程提前原因";
  825. this.InnerDialogProps.type = "in_advance_reason";
  826. this.InnerDialogProps.selected = this.form.in_advance_reason;
  827. this.InnerDialogProps.isShowTextArea = false;
  828. break;
  829. case "8":
  830. this.InnerDialogProps.values = this.$store.getters.disequilibrium_syndrome_option;
  831. this.InnerDialogProps.titles = "失衡综合症症状";
  832. this.InnerDialogProps.type = "disequilibrium_syndrome_option";
  833. this.InnerDialogProps.selected = this.form.disequilibrium_syndrome_option;
  834. this.InnerDialogProps.isShowTextArea = false;
  835. break;
  836. }
  837. },
  838. selectActualTreatmentHour(val) {
  839. var valTime = val.split(":");
  840. this.form.actual_treatment_hour = valTime[0];
  841. this.form.actual_treatment_minute = valTime[1];
  842. },
  843. DialogComfirm: function(val) {
  844. this.InnerDialogProps.visibility = false;
  845. switch (val.type) {
  846. case "cruor":
  847. this.form.cruor = val.value.join(",");
  848. break;
  849. case "symptom_after_dialysis":
  850. this.form.symptom_after_dialysis = val.value.join(",");
  851. break;
  852. case "internal_fistula":
  853. this.form.internal_fistula = val.value.join(",");
  854. break;
  855. case "catheter":
  856. this.form.catheter = val.value.join(",");
  857. break;
  858. case "complication":
  859. this.form.complication = val.value.join(",");
  860. break;
  861. case "observation_content":
  862. this.form.observation_content = val.value.join(",");
  863. break;
  864. case "in_advance_reason":
  865. this.form.in_advance_reason = val.value.join(",");
  866. break;
  867. case "disequilibrium_syndrome_option":
  868. this.form.disequilibrium_syndrome_option = val.value.join(",");
  869. break;
  870. default:
  871. break;
  872. }
  873. // console.log(val);
  874. },
  875. DialogCancle: function(val) {
  876. this.InnerDialogProps.visibility = false;
  877. },
  878. show(predialysis) {
  879. this.isVisibility = true;
  880. this.predialysis = predialysis;
  881. // console.log("透后", predialysis);
  882. this.getPermission();
  883. },
  884. hide() {
  885. this.isVisibility = false;
  886. },
  887. isShow(name) {
  888. var filedList = store.getters.xt_user.fileds;
  889. for (let i = 0; i < filedList.length; i++) {
  890. if (
  891. filedList[i].module == 5 &&
  892. filedList[i].filed_name_cn == name &&
  893. filedList[i].is_show == 1
  894. ) {
  895. return true;
  896. }
  897. }
  898. return false;
  899. },
  900. setRecords(records) {
  901. for (var index in records) {
  902. this.$set(this.assessment_after_dislysis, index, records[index]);
  903. }
  904. this.actualTreatmentHourShow = new Date(
  905. 2018,
  906. 1,
  907. 1,
  908. this.assessment_after_dislysis["actual_treatment_hour"],
  909. this.assessment_after_dislysis["actual_treatment_minute"]
  910. );
  911. },
  912. getPermission() {
  913. request
  914. .get("/api/func_per/get", {
  915. params: {
  916. create_url: "/api/dialysis/assessmentafterdislysis?mode=1",
  917. modify_url: "/api/dialysis/assessmentafterdislysis?mode=2",
  918. modify_other_url: "/api/dialysis/assessmentafterdislysis?mode=3",
  919. module: 8
  920. }
  921. })
  922. .then(res => {
  923. console.log(res);
  924. // console.log("透后", this.predialysis);
  925. if (res.data.state == 0) {
  926. this.hasPermission = false;
  927. } else if (res.data.state == 1) {
  928. if (this.predialysis.id != "" && this.predialysis.creater != 0) {
  929. //有数据
  930. if (
  931. this.predialysis.creater == this.$store.getters.xt_user.user.id
  932. ) {
  933. //创建人是自己
  934. if (res.data.data.is_has_modify == false) {
  935. this.hasPermission = false;
  936. this.showTxt = "你没有修改透后评估权限";
  937. }
  938. } else {
  939. //创建人不是自己
  940. if (res.data.data.is_has_modify_other == false) {
  941. this.hasPermission = false;
  942. this.showTxt = "你没有修改他人透后评估权限";
  943. }
  944. }
  945. } else if (
  946. this.predialysis.id == "" ||
  947. this.predialysis.creater == 0
  948. ) {
  949. if (res.data.data.is_has_create == false) {
  950. this.hasPermission = false;
  951. this.showTxt = "你没有新增透后评估权限";
  952. }
  953. }
  954. }
  955. });
  956. }
  957. },
  958. created() {
  959. // console.log("this.form", this.form);
  960. this.cruorOptions = getDataConfig("hemodialysis", "cruor");
  961. this.symptomsOptions = getDataConfig("hemodialysis", "symptoms");
  962. this.internalFistulaOptions = getDataConfig(
  963. "hemodialysis",
  964. "internal_fistula"
  965. );
  966. this.vascularAccessOptions = getDataConfig(
  967. "hemodialysis",
  968. "vascular_access"
  969. );
  970. this.vascularAccessDescOptions = getDataConfig(
  971. "hemodialysis",
  972. "vascular_access_desc"
  973. );
  974. this.catheterOptions = getDataConfig("hemodialysis", "catheter");
  975. this.complicationOptions = getDataConfig("hemodialysis", "complication");
  976. this.internalFistulaTremorAcOptions = this.$store.getters.internal_fistula_tremor_ac;
  977. this.patientGoseOptions = this.$store.getters.patient_gose;
  978. this.observationContentOptions = this.$store.getters.observation_content;
  979. this.template_id = this.$store.getters.xt_user.template_info.template_id;
  980. this.channels = this.$store.getters.channels
  981. var date = this.$route.query && this.$route.query.date;
  982. this.record_date = uParseTime(date, "{y}-{m}-{d}");
  983. },
  984. components: {
  985. MultiSelectBox
  986. }
  987. };
  988. </script>
  989. <style scoped>
  990. .warnTxt {
  991. text-align: center;
  992. margin: 0 auto;
  993. background: #faa331;
  994. max-width: 240px;
  995. padding: 10px 20px;
  996. border-radius: 4px;
  997. margin-bottom: 10px;
  998. color: #fff;
  999. }
  1000. </style>
  1001. <style lang="scss">
  1002. .newDialog {
  1003. .el-dialog__body {
  1004. padding: 10px 20px 30px;
  1005. }
  1006. }
  1007. </style>