AssessmentAfterDislysis.vue 37KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067
  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-row>
  399. </el-form>
  400. <span slot="footer" class="dialog-footer">
  401. <el-button @click="hide">取 消</el-button>
  402. <el-button type="primary" @click="submitForm" :loading="loading" v-if="hasPermission"
  403. >保 存</el-button
  404. >
  405. </span>
  406. </el-dialog>
  407. <multi-select-box
  408. :propsForm="InnerDialogProps"
  409. v-on:dialog-comfirm="DialogComfirm"
  410. v-on:dialog-cancle="DialogCancle"
  411. ></multi-select-box>
  412. </div>
  413. </template>
  414. <script>
  415. import { getDataConfig } from "@/utils/data";
  416. import MultiSelectBox from "./MultiSelectBox";
  417. import { postAssessmentAfterDislysis } from "@/api/dialysis";
  418. import { uParseTime } from "@/utils/tools";
  419. import store from "@/store";
  420. import request from '@/utils/request'
  421. export default {
  422. name: "AssessmentAfterDislysis",
  423. props: {
  424. assessment_after_dislysis: {
  425. // 透后评估
  426. type: Object,
  427. default: () => {
  428. return { id: 0 };
  429. }
  430. },
  431. dialysis_order: {
  432. // 透析记录
  433. type: Object,
  434. default: () => {
  435. return { id: 0 };
  436. }
  437. },
  438. patient: {
  439. // 患者信息
  440. type: Object,
  441. default: () => {
  442. return { id: 0 };
  443. }
  444. }
  445. },
  446. data() {
  447. return {
  448. showTxt:'',
  449. hasPermission:true,
  450. loading: false,
  451. record_date: "",
  452. isVisibility: false,
  453. template_id: 0,
  454. cruorOptions: [],
  455. symptomsOptions: [],
  456. internalFistulaOptions: [],
  457. vascularAccessOptions: [],
  458. unit: [{ id: 1, name: "g" }, { id: 2, name: "ml" }],
  459. actualTreatmentHourShow: "",
  460. vascularAccessDescOptions: [],
  461. catheterOptions: [],
  462. complicationOptions: [],
  463. internalFistulaTremorAcOptions: [],
  464. patientGoseOptions: [],
  465. observationContentOptions: [],
  466. isVisibiltyForCruorDialog: false,
  467. dialogCruorTitle: "凝血",
  468. InnerDialogProps: {
  469. values: [],
  470. visibility: false,
  471. isShowTextArea: true,
  472. customContent: "",
  473. titles: "",
  474. type: "" // 不同弹框类型,用来匹配数据
  475. },
  476. form: {
  477. weight_after: "",
  478. weight_loss: "",
  479. temperature: "",
  480. systolic_blood_pressure: "",
  481. diastolic_blood_pressure: "",
  482. pulse_frequency: "",
  483. actual_ultrafiltration: "",
  484. actual_displacement: "",
  485. actual_treatment_hour: "",
  486. actual_treatment_minute: "",
  487. cruor: "",
  488. symptom_after_dialysis: "",
  489. dialysis_intakes: "",
  490. internal_fistula: "",
  491. blood_access_part_id: "",
  492. blood_access_part_opera_id: "",
  493. catheter: "",
  494. complication: "",
  495. puncture_point_oozing_blood: 2,
  496. puncture_point_haematoma: 2,
  497. internal_fistula_tremor_ac: "",
  498. patient_gose: "",
  499. inpatient_department: "",
  500. observation_content: "",
  501. observation_content_other: "",
  502. remark: "",
  503. dialysis_order_id: 0,
  504. is_eat: 2,
  505. dialysis_process: "",
  506. in_advance_minute: "",
  507. in_advance_reason: "",
  508. in_advance_reason_other: "",
  509. hemostasis_minute: "",
  510. hemostasis_opera: "",
  511. tremor_noise: "",
  512. disequilibrium_syndrome: "",
  513. disequilibrium_syndrome_option: "",
  514. arterial_tube: "",
  515. intravenous_tube: "",
  516. dialyzer: "",
  517. breathing_rate: "",
  518. dialysis_intakes_unit: 0
  519. }
  520. };
  521. },
  522. watch: {
  523. "assessment_after_dislysis.id": function() {
  524. if (this.assessment_after_dislysis.id > 0) {
  525. for (var index in this.form) {
  526. this.form[index] = this.assessment_after_dislysis[index];
  527. }
  528. if (this.assessment_after_dislysis["blood_access_part_id"] == 0) {
  529. this.form["blood_access_part_id"] = "";
  530. }
  531. if (this.assessment_after_dislysis["blood_access_part_opera_id"] == 0) {
  532. this.form["blood_access_part_opera_id"] = "";
  533. }
  534. if (this.assessment_after_dislysis["internal_fistula_tremor_ac"] == 0) {
  535. this.form["internal_fistula_tremor_ac"] = "";
  536. }
  537. if (this.assessment_after_dislysis["patient_gose"] == 0) {
  538. this.form["patient_gose"] = "";
  539. }
  540. if (this.assessment_after_dislysis["weight_after"] == 0) {
  541. this.form["weight_after"] = "";
  542. }
  543. if (this.assessment_after_dislysis["weight_loss"] == 0) {
  544. this.form["weight_loss"] = "";
  545. }
  546. if (this.assessment_after_dislysis["temperature"] == 0) {
  547. this.form["temperature"] = "";
  548. }
  549. if (this.assessment_after_dislysis["systolic_blood_pressure"] == 0) {
  550. this.form["systolic_blood_pressure"] = "";
  551. }
  552. if (this.assessment_after_dislysis["diastolic_blood_pressure"] == 0) {
  553. this.form["diastolic_blood_pressure"] = "";
  554. }
  555. if (this.assessment_after_dislysis["pulse_frequency"] == 0) {
  556. this.form["pulse_frequency"] = "";
  557. }
  558. if (this.assessment_after_dislysis["breathing_rate"] == 0) {
  559. this.form["breathing_rate"] = "";
  560. }
  561. if (this.assessment_after_dislysis["actual_ultrafiltration"] == 0) {
  562. this.form["actual_ultrafiltration"] = "";
  563. }
  564. if (this.assessment_after_dislysis["actual_displacement"] == 0) {
  565. this.form["actual_displacement"] = "";
  566. }
  567. if (this.assessment_after_dislysis["dialysis_intakes"] == 0) {
  568. this.form["dialysis_intakes"] = "";
  569. }
  570. this.actualTreatmentHourShow = new Date(
  571. 2018,
  572. 1,
  573. 1,
  574. this.assessment_after_dislysis["actual_treatment_hour"],
  575. this.assessment_after_dislysis["actual_treatment_minute"]
  576. );
  577. }
  578. },
  579. "dialysis_order.id": function() {
  580. this.form["dialysis_order_id"] = this.assessment_after_dislysis[
  581. "dialysis_order_id"
  582. ];
  583. },
  584. "form.patient_gose": function() {
  585. if (this.form.patient_gose.patient_gose != 3) {
  586. this.form.inpatient_department = "";
  587. this.form.observation_content = "";
  588. this.form.observation_content_other = "";
  589. }
  590. }
  591. },
  592. methods: {
  593. submitForm() {
  594. this.loading = true;
  595. const ParamsQuery = {};
  596. if (!(this.patient.id > 0)) {
  597. this.$message.error("没有选择患者");
  598. this.loading = false;
  599. return false;
  600. }
  601. if (this.record_date.length != 10) {
  602. this.$message.error("无效的日期");
  603. this.loading = false;
  604. return false;
  605. }
  606. ParamsQuery["patient"] = this.patient.id;
  607. ParamsQuery["record_date"] = this.record_date;
  608. ParamsQuery["mode"] = "1";
  609. if (this.assessment_after_dislysis.creater > 0) {
  610. ParamsQuery["mode"] = "2";
  611. if (
  612. this.assessment_after_dislysis.creater !=
  613. this.$store.getters.xt_user.user.id
  614. ) {
  615. ParamsQuery["mode"] = "3";
  616. }
  617. }
  618. const data = {};
  619. data["weight_after"] = this.form.weight_after
  620. ? parseFloat(this.form.weight_after)
  621. : 0;
  622. data["weight_loss"] = this.form.weight_loss
  623. ? parseFloat(this.form.weight_loss)
  624. : 0;
  625. data["temperature"] = this.form.temperature
  626. ? parseFloat(this.form.temperature)
  627. : 0;
  628. data["breathing_rate"] = this.form.temperature
  629. ? parseFloat(this.form.breathing_rate)
  630. : 0;
  631. data["systolic_blood_pressure"] = this.form.systolic_blood_pressure
  632. ? parseFloat(this.form.systolic_blood_pressure)
  633. : 0;
  634. data["diastolic_blood_pressure"] = this.form.diastolic_blood_pressure
  635. ? parseFloat(this.form.diastolic_blood_pressure)
  636. : 0;
  637. data["pulse_frequency"] = this.form.pulse_frequency
  638. ? parseFloat(this.form.pulse_frequency)
  639. : 0;
  640. data["actual_ultrafiltration"] = this.form.actual_ultrafiltration
  641. ? parseFloat(this.form.actual_ultrafiltration)
  642. : 0;
  643. data["actual_displacement"] = this.form.actual_displacement
  644. ? parseFloat(this.form.actual_displacement)
  645. : 0;
  646. data["actual_treatment_hour"] = this.form.actual_treatment_hour
  647. ? parseFloat(this.form.actual_treatment_hour)
  648. : 0;
  649. data["actual_treatment_minute"] = this.form.actual_treatment_minute
  650. ? parseFloat(this.form.actual_treatment_minute)
  651. : 0;
  652. data["cruor"] = this.form.cruor;
  653. data["symptom_after_dialysis"] = this.form.symptom_after_dialysis;
  654. data["dialysis_intakes"] = this.form.dialysis_intakes
  655. ? parseFloat(this.form.dialysis_intakes)
  656. : 0;
  657. data["internal_fistula"] = this.form.internal_fistula;
  658. data["blood_access_part_id"] = this.form.blood_access_part_id
  659. ? parseFloat(this.form.blood_access_part_id)
  660. : 0;
  661. data["blood_access_part_opera_id"] = this.form.blood_access_part_opera_id
  662. ? parseFloat(this.form.blood_access_part_opera_id)
  663. : 0;
  664. data["catheter"] = this.form.catheter;
  665. data["complication"] = this.form.complication;
  666. data["puncture_point_oozing_blood"] = this.form
  667. .puncture_point_oozing_blood
  668. ? parseFloat(this.form.puncture_point_oozing_blood)
  669. : 0;
  670. data["puncture_point_haematoma"] = this.form.puncture_point_haematoma
  671. ? parseFloat(this.form.puncture_point_haematoma)
  672. : 0;
  673. data["internal_fistula_tremor_ac"] = this.form.internal_fistula_tremor_ac
  674. ? parseFloat(this.form.internal_fistula_tremor_ac)
  675. : 0;
  676. data["patient_gose"] = this.form.patient_gose
  677. ? parseFloat(this.form.patient_gose)
  678. : 0;
  679. data["inpatient_department"] = this.form.inpatient_department;
  680. data["observation_content"] = this.form.observation_content;
  681. data["observation_content_other"] = this.form.observation_content_other;
  682. data["remark"] = this.form.remark;
  683. data["dialysis_order_id"] = this.form.dialysis_order_id
  684. ? parseFloat(this.form.dialysis_order_id)
  685. : 0;
  686. data["dialysis_process"] = this.form.dialysis_process
  687. ? parseFloat(this.form.dialysis_process)
  688. : 0;
  689. data["in_advance_minute"] = this.form.in_advance_minute
  690. ? parseFloat(this.form.in_advance_minute)
  691. : 0;
  692. data["in_advance_reason_other"] = this.form.in_advance_reason_other;
  693. data["in_advance_reason"] = this.form.in_advance_reason;
  694. data["hemostasis_minute"] = this.form.hemostasis_minute
  695. ? parseFloat(this.form.hemostasis_minute)
  696. : 0;
  697. data["hemostasis_opera"] = this.form.hemostasis_opera
  698. ? parseFloat(this.form.hemostasis_opera)
  699. : 0;
  700. data["tremor_noise"] = this.form.tremor_noise
  701. ? parseFloat(this.form.tremor_noise)
  702. : 0;
  703. data["disequilibrium_syndrome"] = this.form.disequilibrium_syndrome
  704. ? parseFloat(this.form.disequilibrium_syndrome)
  705. : 0;
  706. data[
  707. "disequilibrium_syndrome_option"
  708. ] = this.form.disequilibrium_syndrome_option;
  709. data["arterial_tube"] = this.form.arterial_tube
  710. ? parseFloat(this.form.arterial_tube)
  711. : 0;
  712. data["intravenous_tube"] = this.form.intravenous_tube
  713. ? parseFloat(this.form.intravenous_tube)
  714. : 0;
  715. data["dialysis_intakes_unit"] = this.form.dialysis_intakes_unit;
  716. data["dialyzer"] = this.form.dialyzer
  717. ? parseFloat(this.form.dialyzer)
  718. : 0;
  719. data["is_eat"] = this.form.is_eat ? parseFloat(this.form.is_eat) : 0;
  720. postAssessmentAfterDislysis(ParamsQuery, data)
  721. .then(response => {
  722. this.loading = false;
  723. if (response.data.state == 0) {
  724. this.$message.error(response.data.msg);
  725. return false;
  726. } else {
  727. this.$notify({
  728. title: "成功",
  729. message: "提交成功",
  730. type: "success",
  731. duration: 2000
  732. });
  733. var assement = response.data.data.AssessmentAfterDislysis;
  734. var assessment_after_dislysis = this.assessment_after_dislysis;
  735. for (var index in assement) {
  736. // assessment_after_dislysis[index] = assement[index];
  737. this.$set(assessment_after_dislysis, index, assement[index]);
  738. }
  739. this.hide();
  740. }
  741. })
  742. .catch(v => {
  743. this.loading = false;
  744. });
  745. },
  746. showDialog: function(val) {
  747. this.InnerDialogProps.visibility = true;
  748. switch (val) {
  749. case "1":
  750. this.InnerDialogProps.values = this.cruorOptions;
  751. this.InnerDialogProps.titles = "凝血";
  752. this.InnerDialogProps.type = "cruor";
  753. this.InnerDialogProps.selected = this.form.cruor;
  754. this.InnerDialogProps.isShowTextArea = false;
  755. break;
  756. case "2":
  757. this.InnerDialogProps.values = this.symptomsOptions;
  758. this.InnerDialogProps.titles = "透后症状";
  759. this.InnerDialogProps.type = "symptom_after_dialysis";
  760. this.InnerDialogProps.selected = this.form.symptom_after_dialysis;
  761. this.InnerDialogProps.isShowTextArea = false;
  762. break;
  763. case "3":
  764. this.InnerDialogProps.values = this.internalFistulaOptions;
  765. this.InnerDialogProps.titles = "内瘘";
  766. this.InnerDialogProps.type = "internal_fistula";
  767. this.InnerDialogProps.selected = this.form.internal_fistula;
  768. this.InnerDialogProps.isShowTextArea = false;
  769. break;
  770. case "4":
  771. this.InnerDialogProps.values = this.catheterOptions;
  772. this.InnerDialogProps.titles = "导管";
  773. this.InnerDialogProps.type = "catheter";
  774. this.InnerDialogProps.selected = this.form.catheter;
  775. this.InnerDialogProps.isShowTextArea = false;
  776. break;
  777. case "5":
  778. this.InnerDialogProps.values = this.complicationOptions;
  779. this.InnerDialogProps.titles = "并发症";
  780. this.InnerDialogProps.type = "complication";
  781. this.InnerDialogProps.selected = this.form.complication;
  782. this.InnerDialogProps.isShowTextArea = false;
  783. break;
  784. case "6":
  785. this.InnerDialogProps.values = this.observationContentOptions;
  786. this.InnerDialogProps.titles = "交待病房护士/患者/陪人观察内容";
  787. this.InnerDialogProps.type = "observation_content";
  788. this.InnerDialogProps.selected = this.form.observation_content;
  789. this.InnerDialogProps.isShowTextArea = false;
  790. break;
  791. case "7":
  792. this.InnerDialogProps.values = this.$store.getters.in_advance_reason;
  793. this.InnerDialogProps.titles = "透析过程提前原因";
  794. this.InnerDialogProps.type = "in_advance_reason";
  795. this.InnerDialogProps.selected = this.form.in_advance_reason;
  796. this.InnerDialogProps.isShowTextArea = false;
  797. break;
  798. case "8":
  799. this.InnerDialogProps.values = this.$store.getters.disequilibrium_syndrome_option;
  800. this.InnerDialogProps.titles = "失衡综合症症状";
  801. this.InnerDialogProps.type = "disequilibrium_syndrome_option";
  802. this.InnerDialogProps.selected = this.form.disequilibrium_syndrome_option;
  803. this.InnerDialogProps.isShowTextArea = false;
  804. break;
  805. }
  806. },
  807. selectActualTreatmentHour(val) {
  808. var valTime = val.split(":");
  809. this.form.actual_treatment_hour = valTime[0];
  810. this.form.actual_treatment_minute = valTime[1];
  811. },
  812. DialogComfirm: function(val) {
  813. this.InnerDialogProps.visibility = false;
  814. switch (val.type) {
  815. case "cruor":
  816. this.form.cruor = val.value.join(",");
  817. break;
  818. case "symptom_after_dialysis":
  819. this.form.symptom_after_dialysis = val.value.join(",");
  820. break;
  821. case "internal_fistula":
  822. this.form.internal_fistula = val.value.join(",");
  823. break;
  824. case "catheter":
  825. this.form.catheter = val.value.join(",");
  826. break;
  827. case "complication":
  828. this.form.complication = val.value.join(",");
  829. break;
  830. case "observation_content":
  831. this.form.observation_content = val.value.join(",");
  832. break;
  833. case "in_advance_reason":
  834. this.form.in_advance_reason = val.value.join(",");
  835. break;
  836. case "disequilibrium_syndrome_option":
  837. this.form.disequilibrium_syndrome_option = val.value.join(",");
  838. break;
  839. default:
  840. break;
  841. }
  842. console.log(val);
  843. },
  844. DialogCancle: function(val) {
  845. this.InnerDialogProps.visibility = false;
  846. },
  847. show(predialysis) {
  848. this.isVisibility = true;
  849. this.predialysis = predialysis
  850. console.log("透后",predialysis)
  851. this.getPermission()
  852. },
  853. hide() {
  854. this.isVisibility = false;
  855. },
  856. isShow(name) {
  857. var filedList = store.getters.xt_user.fileds;
  858. for (let i = 0; i < filedList.length; i++) {
  859. if (
  860. filedList[i].module == 5 &&
  861. filedList[i].filed_name_cn == name &&
  862. filedList[i].is_show == 1
  863. ) {
  864. return true;
  865. }
  866. }
  867. return false;
  868. },
  869. setRecords(records) {
  870. for (var index in records) {
  871. this.$set(this.assessment_after_dislysis, index, records[index]);
  872. }
  873. this.actualTreatmentHourShow = new Date(
  874. 2018,
  875. 1,
  876. 1,
  877. this.assessment_after_dislysis["actual_treatment_hour"],
  878. this.assessment_after_dislysis["actual_treatment_minute"]
  879. );
  880. },
  881. getPermission(){
  882. request.get("/api/func_per/get",{
  883. params:{
  884. create_url:"/api/dialysis/assessmentafterdislysis?mode=1",
  885. modify_url:"/api/dialysis/assessmentafterdislysis?mode=2",
  886. modify_other_url:"/api/dialysis/assessmentafterdislysis?mode=3",
  887. module:8
  888. }
  889. }).then(res => {
  890. console.log(res)
  891. console.log("透后",this.predialysis)
  892. if(res.data.state == 0){
  893. this.hasPermission = false
  894. }else if(res.data.state == 1){
  895. if(this.predialysis.id != "" && this.predialysis.creater != 0){//有数据
  896. if(this.predialysis.creater == this.$store.getters.xt_user.user.id){//创建人是自己
  897. if(res.data.data.is_has_modify == false){
  898. this.hasPermission = false
  899. this.showTxt = "你没有修改透后评估权限"
  900. }
  901. }else{//创建人不是自己
  902. if(res.data.data.is_has_modify_other == false){
  903. this.hasPermission = false
  904. this.showTxt = "你没有修改他人透后评估权限"
  905. }
  906. }
  907. }else if(this.predialysis.id == "" || this.predialysis.creater == 0){
  908. if(res.data.data.is_has_create == false){
  909. this.hasPermission = false
  910. this.showTxt = "你没有新增透后评估权限"
  911. }
  912. }
  913. }
  914. })
  915. }
  916. },
  917. created() {
  918. console.log("this.form", this.form);
  919. this.cruorOptions = getDataConfig("hemodialysis", "cruor");
  920. this.symptomsOptions = getDataConfig("hemodialysis", "symptoms");
  921. this.internalFistulaOptions = getDataConfig(
  922. "hemodialysis",
  923. "internal_fistula"
  924. );
  925. this.vascularAccessOptions = getDataConfig(
  926. "hemodialysis",
  927. "vascular_access"
  928. );
  929. this.vascularAccessDescOptions = getDataConfig(
  930. "hemodialysis",
  931. "vascular_access_desc"
  932. );
  933. this.catheterOptions = getDataConfig("hemodialysis", "catheter");
  934. this.complicationOptions = getDataConfig("hemodialysis", "complication");
  935. this.internalFistulaTremorAcOptions = this.$store.getters.internal_fistula_tremor_ac;
  936. this.patientGoseOptions = this.$store.getters.patient_gose;
  937. this.observationContentOptions = this.$store.getters.observation_content;
  938. this.template_id = this.$store.getters.xt_user.template_info.template_id;
  939. var date = this.$route.query && this.$route.query.date;
  940. this.record_date = uParseTime(date, "{y}-{m}-{d}");
  941. },
  942. components: {
  943. MultiSelectBox
  944. }
  945. };
  946. </script>
  947. <style scoped>
  948. .warnTxt{
  949. text-align: center;
  950. margin: 0 auto;
  951. background: #faa331;
  952. max-width: 240px;
  953. padding: 10px 20px;
  954. border-radius: 4px;
  955. margin-bottom: 10px;
  956. color:#fff;
  957. }
  958. </style>
  959. <style lang="scss">
  960. .newDialog{
  961. .el-dialog__body{
  962. padding: 10px 20px 30px;
  963. }
  964. }
  965. </style>