AssessmentAfterDislysis.vue 43KB

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