assessmentBeforeDislysisDialog.vue 42KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164
  1. <template>
  2. <div>
  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. <!--<check-box-dialog-->
  12. <!--:propsForm="InnerDialogProps"-->
  13. <!--v-on:dialog-comfirm="innerDialogComfirm"-->
  14. <!--v-on:dialog-cancle="innerDialogCancle"-->
  15. <!--&gt;</check-box-dialog>-->
  16. <multi-select-box
  17. :propsForm="InnerDialogProps"
  18. v-on:dialog-comfirm="innerDialogComfirm"
  19. v-on:dialog-cancle="innerDialogCancle"
  20. ></multi-select-box>
  21. <el-form ref="assessmentBeforeDislysis" :model="assessmentBeforeDislysis" label-width="125px">
  22. <el-row :gutter="24">
  23. <el-col :span="8">
  24. <el-form-item label="透前称重(kg): " v-if="isShow('透前称重')">
  25. <el-input type="number" v-model="assessmentBeforeDislysis.weight_before"></el-input>
  26. </el-form-item>
  27. </el-col>
  28. <el-col :span="8">
  29. <el-form-item label="干体重(kg):"
  30. v-if="isShow('干体重')">
  31. <el-input type="number" v-model="assessmentBeforeDislysis.dry_weight" readonly
  32. @focus="showDryWeightDialog"></el-input>
  33. </el-form-item>
  34. </el-col>
  35. <el-col :span="8">
  36. <el-form-item label="衣物重(kg):" v-if="isShow('衣物重')">
  37. <el-input type="number" v-model="assessmentBeforeDislysis.additional_weight"></el-input>
  38. </el-form-item>
  39. </el-col>
  40. <!-- <el-col :span="8">-->
  41. <!-- <el-form-item label="透析机型号:" v-if="isShow('透析机型号')">-->
  42. <!-- <el-input v-model="assessmentBeforeDislysis.machine_type"></el-input>-->
  43. <!-- </el-form-item>-->
  44. <!-- </el-col>-->
  45. <el-col :span="8">
  46. <el-form-item label="透析机型号" v-if="isShow('透析机型号')">
  47. <el-select v-model="assessmentBeforeDislysis.machine_type">
  48. <el-option :key="0" label="请选择" :value="0"></el-option>
  49. <el-option v-for="item in machineType" :label="item.name" :value="item.id"
  50. :key="item.id"></el-option>
  51. </el-select>
  52. </el-form-item>
  53. </el-col>
  54. <el-col :span="8" v-if="isShow('透析频次')">
  55. <el-form-item label="透析频次(次/周):">
  56. <el-input v-model="assessmentBeforeDislysis.dialysis_count"></el-input>
  57. </el-form-item>
  58. </el-col>
  59. <el-col :span="8">
  60. <el-form-item label="体温(℃):" v-if="isShow('体温')">
  61. <el-input type="number" v-model="assessmentBeforeDislysis.temperature"></el-input>
  62. </el-form-item>
  63. </el-col>
  64. <el-col :span="8">
  65. <el-form-item label="收缩压(mmHg): " v-if="isShow('收缩压')">
  66. <el-input type="number" v-model="assessmentBeforeDislysis.systolic_blood_pressure"></el-input>
  67. </el-form-item>
  68. </el-col>
  69. <el-col :span="8">
  70. <el-form-item label="舒张压(mmHg): " v-if="isShow('舒张压')">
  71. <el-input type="number" v-model="assessmentBeforeDislysis.diastolic_blood_pressure"></el-input>
  72. </el-form-item>
  73. </el-col>
  74. <el-col :span="8">
  75. <el-form-item label="呼吸频率(次/分):" v-if="isShow('呼吸频率')">
  76. <el-input type="number" v-model="assessmentBeforeDislysis.breathing_rate"></el-input>
  77. </el-form-item>
  78. </el-col>
  79. <el-col :span="8">
  80. <el-form-item label="脉搏(次/分):" v-if="isShow('脉搏')">
  81. <el-input type="number" v-model="assessmentBeforeDislysis.pulse_frequency"></el-input>
  82. </el-form-item>
  83. </el-col>
  84. <el-col :span="8">
  85. <el-form-item label="体液过多症状: " v-if="isShow('体液过多症状')">
  86. <el-select v-model="assessmentBeforeDislysis.humor_excessive_symptom">
  87. <el-option :key="0" label="请选择" :value="0"></el-option>
  88. <el-option v-for="item in humor_excessive_symptom_array" :label="item.name" :value="item.id"
  89. :key="item.id"></el-option>
  90. </el-select>
  91. </el-form-item>
  92. </el-col>
  93. <el-col :span="8">
  94. <el-form-item label="血管通路: " v-if="isShow('血管通路')">
  95. <el-select v-model="assessmentBeforeDislysis.blood_access_part_opera_id">
  96. <el-option :key="0" label="请选择" :value="0"></el-option>
  97. <el-option v-for="item in blood_access_part_opera" :label="item.name" :value="item.id"
  98. :key="item.id"></el-option>
  99. </el-select>
  100. </el-form-item>
  101. </el-col>
  102. <el-col :span="8">
  103. <el-form-item label="血管通路部位: " v-if="isShow('血管通路部位')">
  104. <el-select v-model="assessmentBeforeDislysis.blood_access_part_id">
  105. <el-option :key="0" label="请选择" :value="0"></el-option>
  106. <el-option v-for="item in blood_access_part" :label="item.name" :value="item.id"
  107. :key="item.id"></el-option>
  108. </el-select>
  109. </el-form-item>
  110. </el-col>
  111. <el-col :span="8">
  112. <el-form-item label="血管通路其他部位:" v-if="isShow('血管通路其他部位')">
  113. <el-input v-model="assessmentBeforeDislysis.venous_catheterization_part_other"></el-input>
  114. </el-form-item>
  115. </el-col>
  116. <el-col :span="8">
  117. <el-form-item label="内瘘: " v-if="isShow('内瘘')">
  118. <el-input v-model="assessmentBeforeDislysis.internal_fistula" readonly
  119. @focus="showInnerDialog('7')"></el-input>
  120. </el-form-item>
  121. </el-col>
  122. <el-col :span="8" v-if="assessmentBeforeDislysis.is_hemorrhage == 1&&isShow('其他出血情况')">
  123. <el-form-item label="其他出血情况: ">
  124. <el-input v-model="assessmentBeforeDislysis.hemorrhage_other"></el-input>
  125. </el-form-item>
  126. </el-col>
  127. <el-col :span="8">
  128. <el-form-item label="血管通路(内瘘)其他:" v-if="isShow('血管通路(内瘘)其他')">
  129. <el-input v-model="assessmentBeforeDislysis.internal_fistula_other"></el-input>
  130. </el-form-item>
  131. </el-col>
  132. <el-col :span="8" v-if="isShow('血管杂音')">
  133. <el-form-item label="血管杂音: ">
  134. <el-select v-model="assessmentBeforeDislysis.blood_access_noise">
  135. <el-option :key="0" label="请选择" :value="0"></el-option>
  136. <el-option v-for="item in blood_access_noise" :label="item.name" :value="item.id"
  137. :key="item.id"></el-option>
  138. </el-select>
  139. </el-form-item>
  140. </el-col>
  141. <!-- </el-row>
  142. <el-row :gutter="20"> -->
  143. <el-col :span="8">
  144. <el-form-item label="血管通路皮肤情况: " v-if="isShow('血管通路皮肤情况')">
  145. <el-input v-model="assessmentBeforeDislysis.internal_fistula_skin" readonly
  146. @focus="showInnerDialog('8')"></el-input>
  147. </el-form-item>
  148. </el-col>
  149. <el-col :span="8">
  150. <el-form-item label="中心静脉置管: " v-if="isShow('中心静脉置管')">
  151. <el-select v-model="assessmentBeforeDislysis.venous_catheterization">
  152. <el-option :key="0" label="请选择" :value="0"></el-option>
  153. <el-option v-for="item in this.$store.getters.venous_catheterization" :label="item.name"
  154. :value="item.id"
  155. :key="item.id"></el-option>
  156. </el-select>
  157. </el-form-item>
  158. </el-col>
  159. <el-col :span="8">
  160. <el-form-item label="导管: " v-if="isShow('导管')">
  161. <el-input v-model="assessmentBeforeDislysis.catheter" @focus="showInnerDialog('4')"></el-input>
  162. </el-form-item>
  163. </el-col>
  164. <!--<el-col :span="8">-->
  165. <!--<el-form-item label="附加物重(kg): ">-->
  166. <!--<el-input type="number" v-model="assessmentBeforeDislysis.additional_weight"></el-input>-->
  167. <!--</el-form-item>-->
  168. <!--</el-col>-->
  169. <!-- </el-row>
  170. <el-row :gutter="20"> -->
  171. <el-col :span="8">
  172. <el-form-item label="导管打折: " v-if="isShow('导管打折')">
  173. <el-select v-model="assessmentBeforeDislysis.catheter_bend">
  174. <el-option :key="0" label="请选择" :value="0"></el-option>
  175. <el-option label="有" value="1"></el-option>
  176. <el-option label="无" value="2"></el-option>
  177. </el-select>
  178. <!-- <el-select v-model="assessmentBeforeDislysis.catheter_bend" placeholder="请选择">
  179. <el-option
  180. v-for="item in catheters"
  181. :key="item.value"
  182. :label="item.label"
  183. :value="item.value">
  184. </el-option>
  185. </el-select> -->
  186. </el-form-item>
  187. </el-col>
  188. <!-- </el-row>
  189. <el-row :gutter="20"> -->
  190. <el-col :span="8">
  191. <el-form-item label="穿刺针: " v-if="isShow('穿刺针')">
  192. <el-input v-model="assessmentBeforeDislysis.puncture_needle" @focus="showInnerDialog('11')"></el-input>
  193. </el-form-item>
  194. </el-col>
  195. <el-col :span="8">
  196. <el-form-item label="穿刺方式: " v-if="isShow('穿刺方式')">
  197. <!-- <el-select v-model="assessmentBeforeDislysis.puncture_way">
  198. <el-option :key="0" label="请选择" :value="0"></el-option>
  199. <el-option v-for="item in this.puncture_ways" :label="item.name" :value="item.id"
  200. :key="item.id"></el-option>
  201. </el-select> -->
  202. <el-input v-model="assessmentBeforeDislysis.puncture_way" readonly
  203. @focus="showInnerDialog('13')">
  204. </el-input>
  205. </el-form-item>
  206. </el-col>
  207. <el-col :span="8">
  208. <el-form-item label="出血: " v-if="isShow('出血')">
  209. <el-select v-model="assessmentBeforeDislysis.is_hemorrhage">
  210. <el-option :key="0" label="请选择" :value="0"></el-option>
  211. <el-option label="是" value="1"></el-option>
  212. <el-option label="否" value="2"></el-option>
  213. </el-select>
  214. <!-- <el-select v-model="assessmentBeforeDislysis.is_hemorrhage" placeholder="请选择">
  215. <el-option
  216. v-for="item in hemorrhages"
  217. :key="item.value"
  218. :label="item.label"
  219. :value="item.value">
  220. </el-option>
  221. </el-select> -->
  222. </el-form-item>
  223. </el-col>
  224. <el-col :span="8" v-if="assessmentBeforeDislysis.is_hemorrhage == 1&&isShow('出血选项')">
  225. <el-form-item label="出血选项: ">
  226. <div>
  227. <el-input v-model="assessmentBeforeDislysis.hemorrhage" @focus="showInnerDialog('6')"></el-input>
  228. </div>
  229. </el-form-item>
  230. </el-col>
  231. <el-col :span="8" v-if="isShow('皮肤')">
  232. <el-form-item label="皮肤: ">
  233. <!-- <el-select v-model="assessmentBeforeDislysis.skin">
  234. <el-option :key="0" label="请选择" :value="0"></el-option>
  235. <el-option v-for="item in this.$store.getters.skin" :label="item.name" :value="item.id"
  236. :key="item.id"></el-option>
  237. </el-select> -->
  238. <el-input v-model="assessmentBeforeDislysis.skin" readonly
  239. @focus="showInnerDialog('12')">
  240. </el-input>
  241. </el-form-item>
  242. </el-col>
  243. <el-col :span="8">
  244. <el-form-item label="并发症: " v-if="isShow('并发症')">
  245. <el-input v-model="assessmentBeforeDislysis.complication" @focus="showInnerDialog('5')"></el-input>
  246. </el-form-item>
  247. </el-col>
  248. <el-col :span="8">
  249. <el-form-item label="透析前症状: " v-if="isShow('透析前症状')">
  250. <el-input v-model="assessmentBeforeDislysis.symptom_before_dialysis"
  251. @focus="showInnerDialog('3')"></el-input>
  252. </el-form-item>
  253. </el-col>
  254. <el-col :span="8">
  255. <el-form-item label="前次透析后症状:" v-if="isShow('前次透析后症状')">
  256. <el-input v-model="assessmentBeforeDislysis.last_post_dialysis" @focus="showInnerDialog('1')"></el-input>
  257. </el-form-item>
  258. </el-col>
  259. <el-col :span="8" v-if="isShow('急诊')">
  260. <el-form-item label="急诊: ">
  261. <el-select v-model="assessmentBeforeDislysis.emergency_treatment">
  262. <el-option :key="0" label="请选择" :value="0"></el-option>
  263. <el-option v-for="item in this.$store.getters.emergency_treatment" :label="item.name" :value="item.id"
  264. :key="item.id"></el-option>
  265. </el-select>
  266. </el-form-item>
  267. </el-col>
  268. <el-col :span="8" v-if="isShow('其他急诊情况')">
  269. <el-form-item label="其他急诊情况:">
  270. <el-input v-model="assessmentBeforeDislysis.emergency_treatment_other"></el-input>
  271. </el-form-item>
  272. </el-col>
  273. <el-col :span="24">
  274. <el-form-item label="备注: ">
  275. <el-input type="textarea" v-model="assessmentBeforeDislysis.remark" :rows="5"></el-input>
  276. </el-form-item>
  277. </el-col>
  278. <el-col :span="8">
  279. <el-form-item label="透析期间: " v-if="isShow('透析期间')">
  280. <el-input v-model="assessmentBeforeDislysis.dialysis_interphase" @focus="showInnerDialog('2')">>
  281. </el-input>
  282. </el-form-item>
  283. </el-col>
  284. <!-- <el-col :span="8" v-if="isShow('血管通路(内瘘)')">-->
  285. <!-- <el-form-item label="血管通路(内瘘):">-->
  286. <!-- <div>-->
  287. <!-- <el-input v-model="assessmentBeforeDislysis.blood_access_internal_fistula"-->
  288. <!-- @focus="showInnerDialog('9')"></el-input>-->
  289. <!-- </div>-->
  290. <!-- </el-form-item>-->
  291. <!-- </el-col>-->
  292. <el-col :span="8">
  293. <el-form-item label="位置: " v-if="isShow('位置')">
  294. <el-select v-model="assessmentBeforeDislysis.venous_catheterization_part">
  295. <el-option :key="0" label="请选择" :value="0"></el-option>
  296. <el-option v-for="item in this.$store.getters.venous_catheterization_part" :label="item.name"
  297. :value="item.id"
  298. :key="item.id"></el-option>
  299. </el-select>
  300. </el-form-item>
  301. </el-col>
  302. <!-- <el-col :span="8" v-if="isShow('导管')">-->
  303. <!-- <el-form-item label="导管:">-->
  304. <!-- <div>-->
  305. <!-- <el-input v-model="assessmentBeforeDislysis.ductus_arantii" @focus="showInnerDialog('10')"></el-input>-->
  306. <!-- </div>-->
  307. <!-- </el-form-item>-->
  308. <!-- </el-col>-->
  309. <el-col :span="8" v-if="isShow('其他中心静脉导管')">
  310. <el-form-item label="其他中心静脉导管:">
  311. <div>
  312. <el-input v-model="assessmentBeforeDislysis.ductus_arantii_other"></el-input>
  313. </div>
  314. </el-form-item>
  315. </el-col>
  316. <!-- </el-row>
  317. <el-row :gutter="20"> -->
  318. <el-col :span="8">
  319. <el-form-item label="感染: " v-if="isShow('感染')">
  320. <el-select v-model="assessmentBeforeDislysis.is_infect">
  321. <el-option :key="0" label="请选择" :value="0"></el-option>
  322. <el-option label="无" value="1"></el-option>
  323. <el-option label="有" value="2"></el-option>
  324. </el-select>
  325. </el-form-item>
  326. </el-col>
  327. <el-col :span="8" v-if="isShow('其他感染情况')">
  328. <el-form-item label="其他感染情况:">
  329. <el-input v-model="assessmentBeforeDislysis.infect_other"></el-input>
  330. </el-form-item>
  331. </el-col>
  332. <el-col :span="8" v-if="isShow('外露')">
  333. <el-form-item label="外露(cm):">
  334. <el-input v-model="assessmentBeforeDislysis.exposed"></el-input>
  335. </el-form-item>
  336. </el-col>
  337. <el-col :span="8" v-if="isShow('其他皮肤情况')">
  338. <el-form-item label="其他皮肤情况:">
  339. <el-input v-model="assessmentBeforeDislysis.skin_other"></el-input>
  340. </el-form-item>
  341. </el-col>
  342. <!-- </el-row>
  343. <el-row :gutter="20"> -->
  344. <!--<el-col :span="8">-->
  345. <!--<el-form-item label="穿刺方法: " v-if="isShow('穿刺方法')">-->
  346. <!--<el-select v-model="assessmentBeforeDislysis.puncture_method">-->
  347. <!--<el-option :key="0" label="请选择" :value="0"></el-option>-->
  348. <!--<el-option v-for="item in puncture_method" :label="item.name" :value="item.name"-->
  349. <!--:key="item.id"></el-option>-->
  350. <!--</el-select>-->
  351. <!--</el-form-item>-->
  352. <!--</el-col>-->
  353. </el-row>
  354. </el-form>
  355. <span slot="footer" class="dialog-footer">
  356. <el-button @click="handleCancle">取 消</el-button>
  357. <el-button type="primary" v-if="hasPermission" @click="handleComfirm">保 存</el-button>
  358. </span>
  359. </el-dialog>
  360. <el-dialog title="调整干体重 " :visible.sync="dialogFormVisible" width="50%" @close="cancleDryWeight()">
  361. <el-form :model="weight_adjust" ref="weight_adjust">
  362. <el-form-item label="干体重 :" label-width="80px" >
  363. <el-input style="width: 200px" v-model="weight_adjust.weight" auto-complete="off"></el-input>
  364. </el-form-item>
  365. <el-form-item label="医生 : " label-width="80px">
  366. <el-select v-model="weight_adjust.doctor" placeholder="请选择医生">
  367. <el-option v-for="(item,index) in doctorOptions" :label="item.name" :value="item.id" :key="index"></el-option>
  368. </el-select>
  369. </el-form-item>
  370. <el-form-item label="备注 : " label-width="80px">
  371. <el-input
  372. type="textarea"
  373. :rows="2"
  374. style="width:200px;"
  375. placeholder="请输入内容"
  376. v-model="weight_adjust.remark">
  377. </el-input>
  378. </el-form-item>
  379. </el-form>
  380. <div slot="footer" class="dialog-footer">
  381. <el-button @click="cancleDryWeight()">取 消</el-button>
  382. <el-button type="primary" @click="submitDryWeight()">保 存</el-button>
  383. </div>
  384. </el-dialog>
  385. </div>
  386. </template>
  387. <script>
  388. import multiSelectBox from './MultiSelectBox'
  389. import { getDataConfig } from '@/utils/data'
  390. import { postAssessmentBeforeDislysis, CreateDryWeight } from '@/api/dialysis'
  391. import store from '@/store'
  392. import { uParseTime } from '@/utils/tools'
  393. import request from '@/utils/request'
  394. export default {
  395. components: {
  396. multiSelectBox
  397. },
  398. name: 'assessment-after-dislysis-dialog',
  399. data() {
  400. return {
  401. hemorrhages:[
  402. {value:0,label:'请选择'},
  403. {value:1,label: '是'},
  404. {value:2,label: '否'},
  405. ],
  406. catheters:[
  407. {value:0,label:'请选择'},
  408. {value:1,label:'有'},
  409. {value:2,label:'无'}
  410. ],
  411. showTxt: '',
  412. hasPermission: true,
  413. weight_adjust: {
  414. weight: '',
  415. doctor: '',
  416. remark: ''
  417. },
  418. lastPredialysisEvaluation: null,
  419. lastDryWeightDislysis: null,
  420. doctorOptions: [],
  421. isVisibility: false,
  422. dialogFormVisible: false,
  423. actualTreatmentHourShow: new Date(2018, 1, 1, 3, 0),
  424. record_date: '',
  425. cruorOptions: [],
  426. last_dialysis_after: [],
  427. dialysis_interphase: [],
  428. symptom_before_dialysis: [],
  429. blood_access_noise: [],
  430. catheter: [],
  431. complication: [],
  432. hemorrhage: [],
  433. blood_access_part: [],
  434. blood_access_part_opera: [],
  435. humor_excessive_symptom_array: [],
  436. internal_fistula: [],
  437. internal_fistula_skin: [],
  438. puncture_method: [],
  439. isVisibiltyForCruorDialog: false,
  440. assessmentBeforeDislysis: {
  441. puncture_needle: '',
  442. catheter_bend: '',
  443. internal_fistula_skin: '',
  444. weight_before: '',
  445. additional_weight: '',
  446. temperature: '',
  447. dry_weight: '',
  448. systolic_blood_pressure: '',
  449. diastolic_blood_pressure: '',
  450. symptom_before_dialysis: '',
  451. pulse_frequency: '',
  452. last_post_dialysis: '',
  453. dialysis_interphase: '',
  454. catheter: '',
  455. complication: '',
  456. remark: '',
  457. humor_excessive_symptom: '',
  458. blood_access_part_id: '',
  459. blood_access_part_opera_id: '',
  460. internal_fistula: '',
  461. is_hemorrhage: '',
  462. hemorrhage: '',
  463. hemorrhage_other: '',
  464. puncture_method: '',
  465. breathing_rate: '',
  466. dialysis_count: '',
  467. emergency_treatment: '',
  468. emergency_treatment_other: '',
  469. ductus_arantii_other: '',
  470. ductus_arantii: '',
  471. venous_catheterization_part_other: '',
  472. venous_catheterization_part: '',
  473. venous_catheterization: '',
  474. puncture_way: '',
  475. blood_access_noise: '',
  476. internal_fistula_other: '',
  477. blood_access_internal_fistula: '',
  478. is_infect: '',
  479. exposed: '',
  480. skin: '',
  481. skin_other: '',
  482. infect_other: '',
  483. machine_type: ''
  484. },
  485. InnerDialogProps: {
  486. values: [],
  487. visibility: false,
  488. isShowTextArea: true,
  489. customContent: '',
  490. titles: '',
  491. type: '' // 不同弹框类型,用来匹配数据
  492. },
  493. machineType: [],
  494. puncture_ways: '',
  495. skins:[]
  496. }
  497. },
  498. props: {
  499. predialysis_evaluation: { // 透前评估
  500. type: Object,
  501. default: () => {
  502. return { id: 0 }
  503. }
  504. },
  505. patient: { // 患者信息
  506. type: Object,
  507. default: () => {
  508. return { id: 0 }
  509. }
  510. },
  511. admin_users: { // 系统用户列表
  512. type: Array,
  513. default: () => {
  514. return []
  515. }
  516. }
  517. },
  518. methods: {
  519. setLastRecord(lastPredialysisEvaluation, lastDryWeightDislysis) {
  520. this.lastPredialysisEvaluation = lastPredialysisEvaluation
  521. this.lastDryWeightDislysis = lastDryWeightDislysis
  522. },
  523. isShow(name) {
  524. var filedList = store.getters.xt_user.fileds
  525. for (let i = 0; i < filedList.length; i++) {
  526. if (filedList[i].module == 3 && filedList[i].filed_name_cn == name && filedList[i].is_show == 1) {
  527. return true
  528. }
  529. }
  530. return false
  531. },
  532. show(assessment, lastDryWeightDislysis,last_predialysis_evaluation) {
  533. this.lastPredialysisEvaluation = last_predialysis_evaluation
  534. if(this.lastPredialysisEvaluation.is_hemorrhage == 1){
  535. this.lastPredialysisEvaluation.is_hemorrhage = "1"
  536. }
  537. if(this.lastPredialysisEvaluation.is_hemorrhage == 2){
  538. this.lastPredialysisEvaluation.is_hemorrhage = "2"
  539. }
  540. if(this.lastPredialysisEvaluation.catheter_bend == 1){
  541. this.lastPredialysisEvaluation.catheter_bend = "1"
  542. }
  543. if(this.lastPredialysisEvaluation.catheter_bend == 2){
  544. this.lastPredialysisEvaluation.catheter_bend = "2"
  545. }
  546. console.log("22222222",this.lastPredialysisEvaluation)
  547. // console.log("乐行",typeof(this.lastPredialysisEvaluation.is_hemorrhage))
  548. this.assessment = assessment
  549. this.getPermission()
  550. this.isVisibility = true
  551. for (let i = 0; i < this.admin_users.length; i++) {
  552. if (this.admin_users[i].user_type != 3) {
  553. this.doctorOptions.push(this.admin_users[i])
  554. }
  555. }
  556. if (this.$store.getters.xt_user.user.user_type == 1 || this.$store.getters.xt_user.user.user_type == 2) {
  557. this.weight_adjust.doctor = this.$store.getters.xt_user.user.id
  558. }
  559. if (this.predialysis_evaluation.id == 0) {
  560. if (lastDryWeightDislysis != null) {
  561. this.weight_adjust.weight = lastDryWeightDislysis.dry_weight
  562. this.$set(
  563. this.assessmentBeforeDislysis,
  564. 'dry_weight',
  565. lastDryWeightDislysis.dry_weight.toString()
  566. )
  567. } else {
  568. if (this.lastPredialysisEvaluation != null) {
  569. this.weight_adjust.weight = this.lastPredialysisEvaluation.dry_weight
  570. this.assessmentBeforeDislysis.dry_weight = this.lastPredialysisEvaluation.dry_weight
  571. }
  572. }
  573. if (this.lastPredialysisEvaluation != null) {
  574. for (var key in this.lastPredialysisEvaluation){
  575. if (key != 'systolic_blood_pressure' && key != 'diastolic_blood_pressure' && key != 'pulse_frequency' && key != 'dry_weight' && key != 'weight_before'){
  576. this.$set(
  577. this.assessmentBeforeDislysis,
  578. key,
  579. this.lastPredialysisEvaluation[key]
  580. )
  581. }
  582. }
  583. }
  584. } else {
  585. this.assessmentBeforeDislysis.dry_weight = this.predialysis_evaluation['dry_weight']
  586. this.weight_adjust.weight = this.predialysis_evaluation['dry_weight']
  587. }
  588. },
  589. hide() {
  590. this.isVisibility = false
  591. },
  592. showInnerDialog: function(val) {
  593. this.InnerDialogProps.visibility = true
  594. switch (val) {
  595. case '1': // 前次透析后
  596. this.InnerDialogProps.values = this.last_dialysis_after
  597. this.InnerDialogProps.titles = '前次透析后'
  598. this.InnerDialogProps.type = 'last_dialysis_after'
  599. this.InnerDialogProps.selected = this.assessmentBeforeDislysis.last_post_dialysis
  600. this.InnerDialogProps.isShowTextArea = false
  601. break
  602. case '2': // 透析期间
  603. this.InnerDialogProps.values = this.dialysis_interphase
  604. this.InnerDialogProps.titles = '透析期间'
  605. this.InnerDialogProps.type = 'dialysis_interphase'
  606. this.InnerDialogProps.selected = this.assessmentBeforeDislysis.dialysis_interphase
  607. this.InnerDialogProps.isShowTextArea = false
  608. break
  609. break
  610. case '3': // 透析前症状
  611. this.InnerDialogProps.values = this.symptom_before_dialysis
  612. this.InnerDialogProps.titles = '透析期间'
  613. this.InnerDialogProps.type = 'symptom_before_dialysis'
  614. this.InnerDialogProps.selected = this.assessmentBeforeDislysis.symptom_before_dialysis
  615. this.InnerDialogProps.isShowTextArea = false
  616. break
  617. case '4': // 导管
  618. this.InnerDialogProps.values = this.catheter
  619. this.InnerDialogProps.titles = '导管'
  620. this.InnerDialogProps.type = 'catheter'
  621. this.InnerDialogProps.selected = this.assessmentBeforeDislysis.catheter
  622. this.InnerDialogProps.isShowTextArea = false
  623. break
  624. break
  625. case '5': // 并发症
  626. this.InnerDialogProps.values = this.complication
  627. this.InnerDialogProps.titles = '并发症'
  628. this.InnerDialogProps.type = 'complication'
  629. this.InnerDialogProps.selected = this.assessmentBeforeDislysis.complication
  630. this.InnerDialogProps.isShowTextArea = false
  631. break
  632. case '6': // 出血选项
  633. this.InnerDialogProps.values = this.hemorrhage
  634. this.InnerDialogProps.titles = '出血选项'
  635. this.InnerDialogProps.type = 'hemorrhage'
  636. this.InnerDialogProps.selected = this.assessmentBeforeDislysis.hemorrhage
  637. this.InnerDialogProps.isShowTextArea = false
  638. break
  639. case '7': // 内瘘
  640. this.InnerDialogProps.values = this.internal_fistula
  641. this.InnerDialogProps.titles = '内瘘'
  642. this.InnerDialogProps.type = 'internal_fistula'
  643. this.InnerDialogProps.selected = this.assessmentBeforeDislysis.internal_fistula
  644. this.InnerDialogProps.isShowTextArea = false
  645. break
  646. case '8': // 内瘘皮肤情况
  647. this.InnerDialogProps.values = this.internal_fistula_skin
  648. this.InnerDialogProps.titles = '血管通路皮肤情况'
  649. this.InnerDialogProps.type = 'internal_fistula_skin'
  650. this.InnerDialogProps.selected = this.assessmentBeforeDislysis.internal_fistula_skin
  651. this.InnerDialogProps.isShowTextArea = false
  652. break
  653. case '9': //
  654. this.InnerDialogProps.values = this.$store.getters.blood_access_internal_fistula
  655. this.InnerDialogProps.titles = '血管通路(内瘘)'
  656. this.InnerDialogProps.type = 'blood_access_internal_fistula'
  657. this.InnerDialogProps.selected = this.assessmentBeforeDislysis.blood_access_internal_fistula
  658. this.InnerDialogProps.isShowTextArea = false
  659. break
  660. case '10': //
  661. this.InnerDialogProps.values = this.$store.getters.ductus_arantii
  662. this.InnerDialogProps.titles = '中心静脉导管'
  663. this.InnerDialogProps.type = 'ductus_arantii'
  664. this.InnerDialogProps.selected = this.assessmentBeforeDislysis.ductus_arantii
  665. this.InnerDialogProps.isShowTextArea = false
  666. break
  667. case '11': //
  668. this.InnerDialogProps.values =getDataConfig('hemodialysis', 'puncture_needle')
  669. this.InnerDialogProps.titles = '穿刺针'
  670. this.InnerDialogProps.type = 'puncture_needle'
  671. this.InnerDialogProps.selected = this.assessmentBeforeDislysis.puncture_needle
  672. this.InnerDialogProps.isShowTextArea = false
  673. break
  674. case '12': // 皮肤
  675. this.InnerDialogProps.values = this.skins
  676. this.InnerDialogProps.titles = '皮肤'
  677. this.InnerDialogProps.type = 'skin'
  678. this.InnerDialogProps.selected = this.assessmentBeforeDislysis.skin
  679. this.InnerDialogProps.isShowTextArea = false
  680. break
  681. case '13': // 穿刺方式
  682. this.InnerDialogProps.values = this.puncture_ways
  683. this.InnerDialogProps.titles = '穿刺方式'
  684. this.InnerDialogProps.type = 'puncture_way'
  685. this.InnerDialogProps.selected = this.assessmentBeforeDislysis.puncture_way
  686. this.InnerDialogProps.isShowTextArea = false
  687. break
  688. }
  689. },
  690. innerDialogComfirm: function(val) {
  691. this.InnerDialogProps.visibility = false
  692. switch (val.type) {
  693. case 'last_dialysis_after':
  694. this.assessmentBeforeDislysis.last_post_dialysis = val.value.join(',')
  695. break
  696. case 'dialysis_interphase':
  697. this.assessmentBeforeDislysis.dialysis_interphase = val.value.join(',')
  698. break
  699. case 'symptom_before_dialysis':
  700. this.assessmentBeforeDislysis.symptom_before_dialysis = val.value.join(',')
  701. break
  702. case 'catheter':
  703. this.assessmentBeforeDislysis.catheter = val.value.join(',')
  704. break
  705. case 'complication':
  706. this.assessmentBeforeDislysis.complication = val.value.join(',')
  707. break
  708. case 'hemorrhage':
  709. this.assessmentBeforeDislysis.hemorrhage = val.value.join(',')
  710. break
  711. case 'internal_fistula':
  712. this.assessmentBeforeDislysis.internal_fistula = val.value.join(',')
  713. break
  714. case 'internal_fistula_skin':
  715. this.assessmentBeforeDislysis.internal_fistula_skin = val.value.join(',')
  716. break
  717. case 'blood_access_internal_fistula':
  718. this.assessmentBeforeDislysis.blood_access_internal_fistula = val.value.join(',')
  719. break
  720. case 'ductus_arantii':
  721. this.assessmentBeforeDislysis.ductus_arantii = val.value.join(',')
  722. break
  723. case 'puncture_needle':
  724. this.assessmentBeforeDislysis.puncture_needle = val.value.join(',')
  725. break
  726. case 'skin':
  727. this.assessmentBeforeDislysis.skin = val.value.join(',')
  728. break
  729. case 'puncture_way':
  730. this.assessmentBeforeDislysis.puncture_way = val.value.join(',')
  731. break
  732. }
  733. },
  734. innerDialogCancle: function() {
  735. this.InnerDialogProps.visibility = false
  736. }, handleComfirm: function() {
  737. var arr = this.assessmentBeforeDislysis
  738. console.log("arr是多少----------",arr)
  739. for (let i = 0; i < this.machineType.length; i++) {
  740. if (arr.machine_type == this.machineType[i].id) {
  741. arr.machine_type = this.machineType[i].name
  742. }
  743. }
  744. // console.log('arr', arr)
  745. const ParamsQuery = arr
  746. // console.log('paramsquery', ParamsQuery)
  747. ParamsQuery['patient'] = this.patient.id
  748. ParamsQuery['record_date'] = this.record_date
  749. ParamsQuery['mode'] = '1'
  750. // console.log(this.predialysis_evaluation)
  751. if (this.predialysis_evaluation.id == 0) {
  752. ParamsQuery['mode'] = '1'
  753. } else {
  754. if (this.predialysis_evaluation.creater == 0) {
  755. ParamsQuery['mode'] = '1'
  756. } else {
  757. ParamsQuery['mode'] = '2'
  758. if (this.predialysis_evaluation.creater != this.$store.getters.xt_user.user.id) {
  759. ParamsQuery['mode'] = '3'
  760. }
  761. }
  762. }
  763. postAssessmentBeforeDislysis(ParamsQuery).then(response => {
  764. if (response.data.state == 0) {
  765. this.$message.error(response.data.msg)
  766. return false
  767. } else {
  768. this.$notify({
  769. title: '成功',
  770. message: '提交成功',
  771. type: 'success',
  772. duration: 2000
  773. })
  774. const assessment_before_dislysis_resp = response.data.data.assessmentBeforeDislysis
  775. // console.log("返回数据",assessment_before_dislysis_resp)
  776. // prop
  777. var predialysis_evaluation = this.predialysis_evaluation
  778. for (var index in assessment_before_dislysis_resp) {
  779. // predialysis_evaluation[index] = assessment_before_dislysis_resp[index];
  780. this.$set(predialysis_evaluation, index, assessment_before_dislysis_resp[index])
  781. }
  782. this.hide()
  783. }
  784. })
  785. }, handleCancle: function() {
  786. this.isVisibility = false
  787. }, showDryWeightDialog: function() {
  788. if (this.$store.getters.xt_user.user.user_type == 3) {
  789. this.$message.error('您没有权限调整干体重')
  790. return
  791. }
  792. this.dialogFormVisible = true
  793. this.isVisibility = false
  794. }, submitDryWeight() {
  795. const params = {
  796. id: this.patient.id,
  797. dry_weight: this.weight_adjust.weight,
  798. remark: this.weight_adjust.remark,
  799. doctor_id: this.weight_adjust.doctor,
  800. mode: '1'
  801. }
  802. CreateDryWeight(params).then(response => {
  803. if (response.data.state == 0) {
  804. this.$message.error(response.data.msg)
  805. return false
  806. } else {
  807. this.$message.success('提交成功')
  808. this.assessmentBeforeDislysis.dry_weight = this.weight_adjust.weight
  809. this.dialogFormVisible = false
  810. this.isVisibility = true
  811. }
  812. })
  813. }, cancleDryWeight() {
  814. this.dialogFormVisible = false
  815. this.isVisibility = true
  816. },
  817. getPermission() {
  818. request.get('/api/func_per/get', {
  819. params: {
  820. create_url: '/api/dialysis/assessmentbeforedislysis?mode=1',
  821. modify_url: '/api/dialysis/assessmentbeforedislysis?mode=2',
  822. modify_other_url: '/api/dialysis/assessmentbeforedislysis?mode=3',
  823. module: 3
  824. }
  825. }).then(res => {
  826. // console.log(res)
  827. // console.log('透前', this.patient_prop)
  828. console.log('透前', this.assessment)
  829. if (res.data.state == 0) {
  830. this.hasPermission = false
  831. } else if (res.data.state == 1) {
  832. if (this.assessment.id != '' && this.assessment.creater != 0) { // 有数据
  833. if (this.assessment.creater == this.$store.getters.xt_user.user.id) { // 创建人是自己
  834. if (res.data.data.is_has_modify == false) {
  835. this.hasPermission = false
  836. this.showTxt = '你没有修改透前评估权限'
  837. }
  838. } else { // 创建人不是自己
  839. if (res.data.data.is_has_modify_other == false) {
  840. this.hasPermission = false
  841. this.showTxt = '你没有修改他人透前评估权限'
  842. }
  843. }
  844. } else if (this.assessment.id == '' || this.assessment.creater == 0) {
  845. if (res.data.data.is_has_create == false) {
  846. this.hasPermission = false
  847. this.showTxt = '你没有新增透前评估权限'
  848. }
  849. }
  850. }
  851. })
  852. }
  853. },
  854. created() {
  855. this.last_dialysis_after = getDataConfig('hemodialysis', 'last_dialysis_after')
  856. this.dialysis_interphase = getDataConfig('hemodialysis', 'dialysis_duration')
  857. this.symptom_before_dialysis = getDataConfig('hemodialysis', 'dialysis_before')
  858. this.catheter = getDataConfig('hemodialysis', 'catheter')
  859. this.complication = getDataConfig('hemodialysis', 'complication')
  860. this.hemorrhage = getDataConfig('hemodialysis', 'hemorrhage')
  861. this.puncture_ways = getDataConfig('hemodialysis', 'puncture_method')
  862. this.blood_access_part = getDataConfig('hemodialysis', 'vascular_access')
  863. this.blood_access_part_opera = getDataConfig('hemodialysis', 'vascular_access_desc')
  864. this.humor_excessive_symptom_array = getDataConfig('hemodialysis', 'humor_excessive_symptom')
  865. // console.log("血管通路部位",this.blood_access_part_opera)
  866. this.internal_fistula = getDataConfig('hemodialysis', 'internal_fistula')
  867. this.internal_fistula_skin = getDataConfig('hemodialysis', 'internal_fistula_skin')
  868. this.puncture_method = getDataConfig('hemodialysis', 'puncture_method')
  869. this.machineType = getDataConfig('hemodialysis', 'machine_type')
  870. this.blood_access_noise = this.$store.getters.blood_access_noise
  871. var date = this.$route.query && this.$route.query.date
  872. this.record_date = uParseTime(date, '{y}-{m}-{d}')
  873. //获取皮肤
  874. this.skins = getDataConfig('hemodialysis','skin')
  875. console.log("皮肤",this.skins)
  876. // this.weight_adjust.weight = this.dry_weight.dry_weight
  877. // if(this.predialysis_evaluation.id == 0){
  878. //
  879. //
  880. //
  881. // }els
  882. // if(this.dry_weight == null){
  883. // if (this.predialysis_evaluation['dry_weight'] == 0) {
  884. // this.assessmentBeforeDislysis['dry_weight'] = ''
  885. // }
  886. //
  887. // }
  888. }, watch: {
  889. isVisibility(val) {
  890. },
  891. 'predialysis_evaluation.id': function() {
  892. if (this.predialysis_evaluation.id > 0) {
  893. for (var index in this.assessmentBeforeDislysis) {
  894. this.assessmentBeforeDislysis[index] = this.predialysis_evaluation[index]
  895. }
  896. if (this.predialysis_evaluation['catheter_bend'] == 0) {
  897. this.assessmentBeforeDislysis['catheter_bend'] = ''
  898. } else {
  899. this.assessmentBeforeDislysis['catheter_bend'] = this.predialysis_evaluation['catheter_bend'] + ''
  900. }
  901. if (this.predialysis_evaluation['is_hemorrhage'] == 0) {
  902. this.assessmentBeforeDislysis['is_hemorrhage'] = ''
  903. } else {
  904. this.assessmentBeforeDislysis['is_hemorrhage'] = this.predialysis_evaluation['is_hemorrhage'] + ''
  905. }
  906. if (this.predialysis_evaluation['is_infect'] == 0) {
  907. this.assessmentBeforeDislysis['is_infect'] = ''
  908. } else {
  909. this.assessmentBeforeDislysis['is_infect'] = this.predialysis_evaluation['is_infect'] + ''
  910. }
  911. if (this.predialysis_evaluation['blood_access_part_id'] == 0) {
  912. this.assessmentBeforeDislysis['blood_access_part_id'] = ''
  913. }
  914. if (this.predialysis_evaluation['blood_access_part_opera_id'] == 0) {
  915. this.assessmentBeforeDislysis['blood_access_part_opera_id'] = ''
  916. }
  917. if (this.predialysis_evaluation['weight_before'] == 0) {
  918. this.assessmentBeforeDislysis['weight_before'] = ''
  919. }
  920. if (this.predialysis_evaluation['temperature'] == 0) {
  921. this.assessmentBeforeDislysis['temperature'] = ''
  922. }
  923. if (this.predialysis_evaluation['systolic_blood_pressure'] == 0) {
  924. this.assessmentBeforeDislysis['systolic_blood_pressure'] = ''
  925. }
  926. if (this.predialysis_evaluation['diastolic_blood_pressure'] == 0) {
  927. this.assessmentBeforeDislysis['diastolic_blood_pressure'] = ''
  928. }
  929. if (this.predialysis_evaluation['pulse_frequency'] == 0) {
  930. this.assessmentBeforeDislysis['pulse_frequency'] = ''
  931. }
  932. if (this.predialysis_evaluation['pulse_frequency'] == 0) {
  933. this.assessmentBeforeDislysis['pulse_frequency'] = ''
  934. }
  935. }
  936. }
  937. }
  938. }
  939. </script>
  940. <style scoped>
  941. .warnTxt{
  942. text-align: center;
  943. margin: 0 auto;
  944. background: #faa331;
  945. max-width: 240px;
  946. padding: 10px 20px;
  947. border-radius: 4px;
  948. margin-bottom: 10px;
  949. color:#fff;
  950. }
  951. </style>
  952. <style lang="scss">
  953. .newDialog{
  954. .el-dialog__body{
  955. padding: 10px 20px 30px;
  956. }
  957. }
  958. </style>