血透系统pad前端

AssessmentDialog.vue 45KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203
  1. <template>
  2. <div>
  3. <div v-if="isShowDialog" class="Dialog">
  4. <div class="DialogTit">
  5. <span class="iconfont" @click="close()">&#xe6e9;</span>
  6. <h1 class="name">透前评估</h1>
  7. <span @click="commitInfo" class="success">完成</span>
  8. </div>
  9. <div class="DialogContent" id="dialogTop">
  10. <div class="item" v-if="isShow('透前体重')">
  11. <h2 class="name">透前体重(kg)</h2>
  12. <div class="content">
  13. <input type="tel" @focus="inputFocus" v-model="formValue.weight_before"/>
  14. </div>
  15. </div>
  16. <div class="item" v-if="isShow('干体重')">
  17. <h2 class="name">干体重(kg)</h2>
  18. <div class="content">
  19. <input type="tel" @focus="inputFocus" v-model="formValue.dry_weight"/>
  20. </div>
  21. </div>
  22. <div class="item" v-if="isShow('体温')">
  23. <h2 class="name">体温(℃)</h2>
  24. <div class="content">
  25. <input type="tel" @focus="inputFocus" v-model="formValue.temperature"/>
  26. </div>
  27. </div>
  28. <div class="item" v-if="isShow('呼吸频率')">
  29. <h2 class="name">呼吸频率(次/分)</h2>
  30. <div class="content">
  31. <input type="tel" @focus="inputFocus" v-model="formValue.breathing_rate"/>
  32. </div>
  33. </div>
  34. <div class="item" v-if="isShow('出血')" @click="showSubMenu('hemorrhage_state')">
  35. <h2 class="name">出血</h2>
  36. <div class="content">
  37. <span v-if="formValue.is_hemorrhage == 0" class="text" style="width: 50px"></span>
  38. <span v-if="formValue.is_hemorrhage == 1" class="text" style="width: 50px"></span>
  39. <span v-if="formValue.is_hemorrhage == 2" class="text" style="width: 50px"></span>
  40. <span class="iconfont">&#xe6f9;</span>
  41. </div>
  42. </div>
  43. <div @click="showSubMenu('hemorrhage')" class="item" ref="hemorrhage" v-if="hemorrhage_state&&isShow('出血选项')">
  44. <h2 class="name">—— 出血选项</h2>
  45. <div class="content">
  46. <span class="text" style="width: 50px">{{formValue.hemorrhage}}</span>
  47. <span class="iconfont">&#xe6f9;</span>
  48. </div>
  49. </div>
  50. <div class="item" v-if="hemorrhage_state&&isShow('其他出血情况')">
  51. <h2 class="name">—— 其他出血情况</h2>
  52. <div class="content">
  53. <input @focus="inputFocus" v-model="formValue.hemorrhage_other"/>
  54. </div>
  55. </div>
  56. <div @click="showSubMenu('internal_fistula')" class="item" ref="internal_fistula" v-if="isShow('内瘘')">
  57. <h2 class="name">内瘘</h2>
  58. <div class="content">
  59. <span class="text" style="width: 100px">{{formValue.internal_fistula}}</span>
  60. <span class="iconfont">&#xe6f9;</span>
  61. </div>
  62. </div>
  63. <div @click="showSubMenu('internal_fistula_skin')" class="item" ref="internal_fistula_skin" v-if="isShow('内瘘皮肤情况')">
  64. <h2 class="name">内瘘皮肤情况</h2>
  65. <div class="content">
  66. <span class="text" style="width: 100px">{{formValue.internal_fistula_skin}}</span>
  67. <span class="iconfont">&#xe6f9;</span>
  68. </div>
  69. </div>
  70. <div @click="showSubMenu('catheter')" class="item" ref="catheter" v-if="isShow('导管')">
  71. <h2 class="name">导管</h2>
  72. <div class="content">
  73. <span class="text">{{formValue.catheter}}</span>
  74. <span class="iconfont">&#xe6f9;</span>
  75. </div>
  76. </div>
  77. <div @click="showSubMenu('catheter_bend')" class="item" ref="catheter_bend" v-if="isShow('导管打折')">
  78. <h2 class="name">导管打折</h2>
  79. <div class="content">
  80. <span class="text">{{GetCatheterBendById(formValue.catheter_bend)}}</span>
  81. <span class="iconfont">&#xe6f9;</span>
  82. </div>
  83. </div>
  84. <div class="line"></div>
  85. <div class="item" v-if="isShow('收缩压')">
  86. <h2 class="name">收缩压(mmHg)</h2>
  87. <div class="content">
  88. <input type="tel" @focus="inputFocus" v-model="formValue.systolic_blood_pressure"/>
  89. </div>
  90. </div>
  91. <div class="item" v-if="isShow('舒张压')">
  92. <h2 class="name">舒张压(mmHg)</h2>
  93. <div class="content">
  94. <input type="tel" @focus="inputFocus" v-model="formValue.diastolic_blood_pressure"/>
  95. </div>
  96. </div>
  97. <div class="item" v-if="isShow('脉搏')">
  98. <h2 class="name">脉搏(次/分)</h2>
  99. <div class="content">
  100. <input type="tel" @focus="inputFocus" v-model="formValue.pulse_frequency"/>
  101. </div>
  102. </div>
  103. <div @click="showSubMenu('blood_access_part')" class="item" ref="blood_access_part" v-if="isShow('血管通路部位')">
  104. <h2 class="name">血管通路部位</h2>
  105. <div class="content">
  106. <span class="text">{{QueryPartById(formValue.blood_access_part_id)}}</span>
  107. <span class="iconfont">&#xe6f9;</span>
  108. </div>
  109. </div>
  110. <div @click="showSubMenu('blood_access_opera')" class="item" ref="blood_access_opera" v-if="isShow('血管通路操作')">
  111. <h2 class="name">血管通路操作</h2>
  112. <div class="content">
  113. <span class="text">{{QueryOperaById(formValue.blood_access_part_opera_id)}}</span>
  114. <span class="iconfont">&#xe6f9;</span>
  115. </div>
  116. </div>
  117. <div class="line"></div>
  118. <div @click="showSubMenu('complication')" class="item" ref="complication" v-if="isShow('并发症')">
  119. <h2 class="name">并发症</h2>
  120. <div class="content">
  121. <span class="text" style="width: 50px">{{formValue.complication}}</span>
  122. <span class="iconfont">&#xe6f9;</span>
  123. </div>
  124. </div>
  125. <div @click="showSubMenu('last_post_dialysis')" class="item" ref="last_post_dialysis" v-if="isShow('前次透析后')">
  126. <h2 class="name">前次透析后</h2>
  127. <div class="content">
  128. <span class="text" style="width: 100px">{{formValue.last_post_dialysis}}</span>
  129. <span class="iconfont">&#xe6f9;</span>
  130. </div>
  131. </div>
  132. <div @click="showSubMenu('dialysis_interphase')" class="item" ref="dialysis_interphase" v-if="isShow('透析期间')">
  133. <h2 class="name">透析期间</h2>
  134. <div class="content">
  135. <span class="text" style="width: 100px">{{formValue.dialysis_interphase}}</span>
  136. <span class="iconfont">&#xe6f9;</span>
  137. </div>
  138. </div>
  139. <div @click="showSubMenu('symptom_before_dialysis')" class="item" ref="symptom_before_dialysis" v-if="isShow('透析前症状')">
  140. <h2 class="name">透析前症状</h2>
  141. <div class="content">
  142. <span class="text" style="width: 100px">{{formValue.symptom_before_dialysis}}</span>
  143. <span class="iconfont">&#xe6f9;</span>
  144. </div>
  145. </div>
  146. <div class="line"></div>
  147. <div class="item" ref="symptom_before_dialysis" v-if="isShow('透析机型号')">
  148. <h2 class="name">透析机型号</h2>
  149. <div class="content">
  150. <input type="tel" @focus="inputFocus" v-model="formValue.machine_type"/>
  151. </div>
  152. </div>
  153. <div class="item" ref="symptom_before_dialysis" v-if="isShow('透析频次')">
  154. <h2 class="name">透析频次(次/周)</h2>
  155. <div class="content">
  156. <input type="tel" @focus="inputFocus" v-model="formValue.dialysis_count"/>
  157. </div>
  158. </div>
  159. <div @click="showSubMenu('blood_access_internal_fistula')" class="item" ref="blood_access_internal_fistula" v-if="isShow('血管通路(内瘘)')">
  160. <h2 class="name">血管通路(内瘘)</h2>
  161. <div class="content">
  162. <span class="text" style="width: 100px">{{formValue.blood_access_internal_fistula}}</span>
  163. <span class="iconfont">&#xe6f9;</span>
  164. </div>
  165. </div>
  166. <div class="item" ref="internal_fistula_other" v-if="isShow('血管通路(内瘘)其他')">
  167. <h2 class="name">血管通路(内瘘)其他</h2>
  168. <div class="content">
  169. <input @focus="inputFocus" v-model="formValue.internal_fistula_other"/>
  170. </div>
  171. </div>
  172. <div @click="showSubMenu('blood_access_noise')" class="item" ref="blood_access_noise" v-if="isShow('血管杂音')">
  173. <h2 class="name">血管杂音</h2>
  174. <div class="content">
  175. <span class="text" style="width: 100px">{{getBloodAccessNoise(formValue.blood_access_noise)}}</span>
  176. <span class="iconfont">&#xe6f9;</span>
  177. </div>
  178. </div>
  179. <div @click="showSubMenu('puncture_needle')" class="item" ref="puncture_needle" v-if="isShow('穿刺针')">
  180. <h2 class="name">穿刺针</h2>
  181. <div class="content">
  182. <span class="text" style="width: 100px">{{formValue.puncture_needle}}</span>
  183. <span class="iconfont">&#xe6f9;</span>
  184. </div>
  185. </div>
  186. <div @click="showSubMenu('puncture_way')" class="item" ref="puncture_way" v-if="isShow('穿刺方式')">
  187. <h2 class="name">穿刺方式</h2>
  188. <div class="content">
  189. <span class="text" style="width: 100px">{{getWay(formValue.puncture_way)}}</span>
  190. <span class="iconfont">&#xe6f9;</span>
  191. </div>
  192. </div>
  193. <div @click="showSubMenu('venous_catheterization')" class="item" ref="venous_catheterization" v-if="isShow('中心静脉置管')">
  194. <h2 class="name">中心静脉置管</h2>
  195. <div class="content">
  196. <span class="text" style="width: 100px">{{getVenousCatheterization(formValue.venous_catheterization)}}</span>
  197. <span class="iconfont">&#xe6f9;</span>
  198. </div>
  199. </div>
  200. <div @click="showSubMenu('venous_catheterization_part')" class="item" ref="venous_catheterization_part" v-if="isShow('位置')">
  201. <h2 class="name">位置</h2>
  202. <div class="content">
  203. <span class="text" style="width: 100px">{{getVenousCatheterizationPart(formValue.venous_catheterization_part)}}</span>
  204. <span class="iconfont">&#xe6f9;</span>
  205. </div>
  206. </div>
  207. <div class="item" ref="venous_catheterization_part_other"
  208. v-if="isShow('其他位置')">
  209. <h2 class="name">其他位置</h2>
  210. <div class="content">
  211. <input @focus="inputFocus" v-model="formValue.venous_catheterization_part_other"/>
  212. </div>
  213. </div>
  214. <div @click="showSubMenu('ductus_arantii')" class="item" ref="ductus_arantii" v-if="isShow('中心静脉导管')">
  215. <h2 class="name">中心静脉导管</h2>
  216. <div class="content">
  217. <span class="text" style="width: 100px">{{formValue.ductus_arantii}}</span>
  218. <span class="iconfont">&#xe6f9;</span>
  219. </div>
  220. </div>
  221. <div class="item" ref="ductus_arantii_other" v-if="isShow('其他中心静脉导管')">
  222. <h2 class="name">其他中心静脉导管</h2>
  223. <div class="content">
  224. <input @focus="inputFocus" v-model="formValue.ductus_arantii_other"/>
  225. </div>
  226. </div>
  227. <div @click="showSubMenu('emergency_treatment')" class="item" ref="emergency_treatment" v-if="isShow('急诊')">
  228. <h2 class="name">急诊</h2>
  229. <div class="content">
  230. <span class="text" style="width: 100px">{{getEmergencyTreatment(formValue.emergency_treatment)}}</span>
  231. <span class="iconfont">&#xe6f9;</span>
  232. </div>
  233. </div>
  234. <div class="item" ref="emergency_treatment_other" v-if="isShow('其他急诊情况')">
  235. <h2 class="name">其他急诊情况</h2>
  236. <div class="content">
  237. <input @focus="inputFocus" v-model="formValue.emergency_treatment_other"/>
  238. </div>
  239. </div>
  240. <div class="item" v-if="isShow('感染')" @click="showSubMenu('infect_state')" ref="infect_state">
  241. <h2 class="name">感染</h2>
  242. <div class="content">
  243. <span v-if="formValue.is_infect == 0" class="text" style="width: 50px"></span>
  244. <span v-if="formValue.is_infect == 1" class="text" style="width: 50px"></span>
  245. <span v-if="formValue.is_infect == 2" class="text" style="width: 50px"></span>
  246. <span class="iconfont">&#xe6f9;</span>
  247. </div>
  248. </div>
  249. <div class="item" ref="skin_other" v-if="isShow('其他感染情况')">
  250. <h2 class="name">其他感染情况</h2>
  251. <div class="content">
  252. <input @focus="inputFocus" v-model="formValue.infect_other"/>
  253. </div>
  254. </div>
  255. <div class="item" v-if="isShow('外露')">
  256. <h2 class="name">外露(cm)</h2>
  257. <div class="content">
  258. <input type="tel" @focus="inputFocus" v-model="formValue.exposed"/>
  259. </div>
  260. </div>
  261. <div @click="showSubMenu('skin')" class="item" ref="skin" v-if="isShow('皮肤')">
  262. <h2 class="name">皮肤</h2>
  263. <div class="content">
  264. <span class="text" style="width: 100px">{{getSkin(formValue.skin)}}</span>
  265. <span class="iconfont">&#xe6f9;</span>
  266. </div>
  267. </div>
  268. <div class="item" ref="skin_other" v-if="isShow('其他皮肤情况')">
  269. <h2 class="name">其他皮肤情况</h2>
  270. <div class="content">
  271. <input @focus="inputFocus" v-model="formValue.skin_other"/>
  272. </div>
  273. </div>
  274. <div class="line"></div>
  275. <div>
  276. <div class="item">
  277. <h2 class="name">备注</h2>
  278. <div class="content">
  279. <span class="text"></span>
  280. </div>
  281. </div>
  282. <textarea class="textarea" placeholder="请输入内容" @focus="lastInputFocus" @blur="lastInputBlur"
  283. v-model="formValue.remark"></textarea>
  284. </div>
  285. </div>
  286. </div>
  287. <!--<two-menu title="二级菜单" v-show="true" ></two-menu>-->
  288. <check-box-sub-menu :visibility="visibility" v-on:menu-cancle="menuCancle" v-on:menu-comfirm="menuComfirm" v-on:menu-empty="menuEmpty"
  289. :propsForm="propForm"></check-box-sub-menu>
  290. </div>
  291. </template>
  292. <script>
  293. // import TwoMenu from "./TwoMenu";
  294. import CheckBoxSubMenu from './subMenu/checkBoxSubMenu'
  295. import {EditAssessmentBeforeDislysis} from '@/api/patient'
  296. import {Toast} from 'vant'
  297. import {getDataConfig} from '@/utils/data'
  298. export default {
  299. name: 'PrescriptionDialog',
  300. props: {
  301. patient_prop: {
  302. type: Object,
  303. },
  304. predialysis: {
  305. type: Object,
  306. },
  307. last_predialysis: {
  308. type: Object,
  309. },
  310. },
  311. data () {
  312. return {
  313. isShowDialog: true,
  314. //sub menu prop
  315. visibility: false,
  316. propForm: {
  317. title: '',
  318. list: [],
  319. optionList: [],
  320. isMultiple: 2,
  321. result: [], //选中的值
  322. type: 1, //用来区分不同子菜单,方便对返回值进行赋值
  323. selectId: 0,
  324. isHasOther: 1 //是否有其他选项 1是 2否
  325. },
  326. hemorrhage_state: false,
  327. infect_state:false,
  328. hemorrhages:[
  329. {id: 1, name: "有"},
  330. {id: 2, name: "无"},
  331. ],
  332. infects:[
  333. {id: 1, name: "无"},
  334. {id: 2, name: "有"},
  335. ],
  336. formValue: {
  337. weight_before: '',
  338. dry_weight: '',
  339. temperature: '',
  340. systolic_blood_pressure: '',
  341. diastolic_blood_pressure: '',
  342. symptom_before_dialysis: '',
  343. pulse_frequency: '',
  344. last_post_dialysis: '',
  345. dialysis_interphase: '',
  346. catheter: '',
  347. catheter_bend: 2,
  348. complication: '',
  349. remark: '',
  350. blood_access_part_id: '',
  351. blood_access_part_opera_id: '',
  352. internal_fistula: '',
  353. internal_fistula_skin: '',
  354. is_hemorrhage: 0,
  355. hemorrhage: '',
  356. hemorrhage_other: '',
  357. dialysis_count: '',
  358. emergency_treatment: '',
  359. emergency_treatment_other: '',
  360. ductus_arantii: '',
  361. venous_catheterization_part_other: '',
  362. venous_catheterization_part: '',
  363. venous_catheterization: '',
  364. puncture_way: '',
  365. blood_access_noise: '',
  366. internal_fistula_other: '',
  367. blood_access_internal_fistula: '',
  368. machine_type:'',
  369. breathing_rate:'',
  370. is_infect:0,
  371. exposed:'',
  372. skin:'',
  373. skin_other:'',
  374. infect_other:'',
  375. ductus_arantii_other:'',
  376. puncture_needle:'',
  377. },
  378. record_date: ''
  379. }
  380. },
  381. methods: {
  382. isShow(name){
  383. var filedList = this.$store.getters.user.fileds
  384. for (let i = 0; i < filedList.length; i++){
  385. if(filedList[i].module == 3 && filedList[i].filed_name_cn == name&&filedList[i].is_show == 1){
  386. return true
  387. }
  388. }
  389. return false
  390. },
  391. getBloodAccessInternalFistula: function (id) {
  392. if (id == -1) {
  393. return '其他'
  394. }
  395. var BloodAccessInternalFistulaName = ''
  396. var BloodAccessInternalFistulaOptions = this.$store.getters.blood_access_internal_fistula
  397. for (let i = 0; i < BloodAccessInternalFistulaOptions.length; i++) {
  398. if (BloodAccessInternalFistulaOptions[i].id == id) {
  399. BloodAccessInternalFistulaName = BloodAccessInternalFistulaOptions[i].name
  400. }
  401. }
  402. return BloodAccessInternalFistulaName
  403. },
  404. getBloodAccessNoise: function (id) {
  405. var BloodAccessNoiseOptions = this.$store.getters.blood_access_noise
  406. var BloodAccessNoiseName = ''
  407. for (let i = 0; i < BloodAccessNoiseOptions.length; i++) {
  408. if (BloodAccessNoiseOptions[i].id == id) {
  409. BloodAccessNoiseName = BloodAccessNoiseOptions[i].name
  410. }
  411. }
  412. return BloodAccessNoiseName
  413. }, getVenousCatheterization: function (id) {
  414. var VenousCatheterizationOptions = this.$store.getters.venous_catheterization
  415. var VenousCatheterizationName = ''
  416. for (let i = 0; i < VenousCatheterizationOptions.length; i++) {
  417. if (VenousCatheterizationOptions[i].id == id) {
  418. VenousCatheterizationName = VenousCatheterizationOptions[i].name
  419. }
  420. }
  421. return VenousCatheterizationName
  422. }, getWay: function (id) {
  423. var PunctureWayOptions = this.$store.getters.puncture_way
  424. var PunctureWayOptionsName = ''
  425. for (let i = 0; i < PunctureWayOptions.length; i++) {
  426. if (PunctureWayOptions[i].id == id) {
  427. PunctureWayOptionsName = PunctureWayOptions[i].name
  428. }
  429. }
  430. return PunctureWayOptionsName
  431. }, getVenousCatheterizationPart: function (id) {
  432. if (id == -1) {
  433. return '其他'
  434. }
  435. var venousCatheterizationPartOptions = this.$store.getters.venous_catheterization_part
  436. var venousCatheterizationPartName = ''
  437. for (let i = 0; i < venousCatheterizationPartOptions.length; i++) {
  438. if (venousCatheterizationPartOptions[i].id == id) {
  439. venousCatheterizationPartName = venousCatheterizationPartOptions[i].name
  440. }
  441. }
  442. return venousCatheterizationPartName
  443. }, getEmergencyTreatment: function (id) {
  444. if (id == -1) {
  445. return '其他'
  446. }
  447. var emergencyTreatmentOptions = this.$store.getters.emergency_treatment
  448. var emergencyTreatmentName = ''
  449. for (let i = 0; i < emergencyTreatmentOptions.length; i++) {
  450. if (emergencyTreatmentOptions[i].id == id) {
  451. emergencyTreatmentName = emergencyTreatmentOptions[i].name
  452. }
  453. }
  454. return emergencyTreatmentName
  455. },getSkin:function(id){
  456. if (id == -1) {
  457. return '其他'
  458. }
  459. var skinOptions = this.$store.getters.skin
  460. var skinName = ''
  461. for (let i = 0; i < skinOptions.length; i++) {
  462. if (skinOptions[i].id == id) {
  463. skinName = skinOptions[i].name
  464. }
  465. }
  466. return skinName
  467. },
  468. hemorrhageStateChange: function (is_select) {
  469. this.formValue.is_hemorrhage = is_select == true ? 1 : 2
  470. },
  471. inputFocus: function (event) {
  472. var input = event.target
  473. setTimeout(function () {
  474. input.scrollIntoView()
  475. }, 0)
  476. if (input.setSelectionRange) {
  477. setTimeout(function () {
  478. input.setSelectionRange(0, input.value.length)
  479. }, 0)
  480. } else if (input.createTextRange) {
  481. var rng = input.createTextRange()
  482. rng.move('character', input.value.length)
  483. rng.select()
  484. }
  485. },
  486. lastInputFocus: function (event) {
  487. var input = event.target
  488. setTimeout(function () {
  489. input.style.marginBottom = '2rem'
  490. input.parentNode.scrollIntoView()
  491. }, 0)
  492. },
  493. lastInputBlur: function (event) {
  494. var input = event.target
  495. setTimeout(function () {
  496. input.style.marginBottom = ''
  497. }, 0)
  498. },
  499. showSubMenu: function (val) {
  500. switch (val) {
  501. case 'last_post_dialysis':
  502. this.propForm.result = []
  503. this.isHasOther = 2
  504. this.propForm.type = 1
  505. this.isShowDialog = false
  506. this.propForm.title = '前次透析后'
  507. this.visibility = true
  508. this.propForm.list = getDataConfig('hemodialysis', 'last_dialysis_after')
  509. this.propForm.optionList = []
  510. this.propForm.isMultiple = 2
  511. if (this.formValue.last_post_dialysis != undefined || this.formValue.last_post_dialysis != null) {
  512. if (this.formValue.last_post_dialysis.length > 0) {
  513. this.propForm.result = this.formValue.last_post_dialysis.split(',')
  514. } else {
  515. this.propForm.result = []
  516. }
  517. } else {
  518. this.propForm.result = []
  519. }
  520. this.propForm.click_ref = 'last_post_dialysis'
  521. break
  522. case 'dialysis_interphase':
  523. this.propForm.result = []
  524. this.isHasOther = 2
  525. this.propForm.type = 2
  526. this.isShowDialog = false
  527. this.propForm.title = '透析期间'
  528. this.visibility = true
  529. this.propForm.list = getDataConfig('hemodialysis', 'dialysis_duration')
  530. this.propForm.optionList = []
  531. this.propForm.isMultiple = 2
  532. if (this.formValue.dialysis_interphase != undefined || this.formValue.dialysis_interphase != null) {
  533. if (this.formValue.dialysis_interphase.length > 0) {
  534. this.propForm.result = this.formValue.dialysis_interphase.split(',')
  535. } else {
  536. this.propForm.result = []
  537. }
  538. } else {
  539. this.propForm.result = []
  540. }
  541. this.propForm.click_ref = 'dialysis_interphase'
  542. break
  543. case 'symptom_before_dialysis':
  544. this.propForm.result = []
  545. this.isHasOther = 2
  546. this.propForm.type = 3
  547. this.isShowDialog = false
  548. this.propForm.title = '透析前症状'
  549. this.visibility = true
  550. this.propForm.list = getDataConfig('hemodialysis', 'dialysis_before')
  551. this.propForm.optionList = []
  552. this.propForm.isMultiple = 2
  553. if (this.formValue.symptom_before_dialysis != undefined || this.formValue.symptom_before_dialysis != null) {
  554. if (this.formValue.symptom_before_dialysis.length > 0) {
  555. this.propForm.result = this.formValue.symptom_before_dialysis.split(',')
  556. } else {
  557. this.propForm.result = []
  558. }
  559. } else {
  560. this.propForm.result = []
  561. }
  562. this.propForm.click_ref = 'symptom_before_dialysis'
  563. break
  564. case 'catheter':
  565. this.propForm.result = []
  566. this.isHasOther = 2
  567. this.propForm.type = 4
  568. this.isShowDialog = false
  569. this.propForm.title = '导管'
  570. this.visibility = true
  571. this.propForm.list = getDataConfig('hemodialysis', 'catheter')
  572. this.propForm.optionList = []
  573. this.propForm.isMultiple = 2
  574. if (this.formValue.catheter != undefined || this.formValue.catheter != null) {
  575. if (this.formValue.catheter.length > 0) {
  576. this.propForm.result = this.formValue.catheter.split(',')
  577. } else {
  578. this.propForm.result = []
  579. }
  580. } else {
  581. this.propForm.result = []
  582. }
  583. this.propForm.click_ref = 'catheter'
  584. break
  585. case 'complication':
  586. this.propForm.result = []
  587. this.isHasOther = 2
  588. this.propForm.type = 5
  589. this.isShowDialog = false
  590. this.propForm.title = '并发症'
  591. this.visibility = true
  592. this.propForm.list = getDataConfig('hemodialysis', 'complication')
  593. this.propForm.optionList = []
  594. this.propForm.isMultiple = 2
  595. // this.propForm.result = this.formValue.complication.split(",")
  596. if (this.formValue.complication != undefined || this.formValue.complication != null) {
  597. if (this.formValue.complication.length > 0) {
  598. this.propForm.result = this.formValue.complication.split(',')
  599. } else {
  600. this.propForm.result = []
  601. }
  602. } else {
  603. this.propForm.result = []
  604. }
  605. this.propForm.click_ref = 'complication'
  606. break
  607. case 'blood_access_part':
  608. this.isHasOther = 2
  609. this.propForm.type = 6
  610. this.isShowDialog = false
  611. this.propForm.title = '血管通路部位'
  612. this.visibility = true
  613. this.propForm.list = []
  614. this.propForm.optionList = getDataConfig('hemodialysis', 'vascular_access')
  615. this.propForm.isMultiple = 1
  616. this.propForm.selectId = this.formValue.blood_access_part_id
  617. this.propForm.click_ref = 'blood_access_part'
  618. break
  619. case 'blood_access_opera':
  620. this.isHasOther = 2
  621. this.propForm.type = 7
  622. this.isShowDialog = false
  623. this.propForm.title = '血管通路操作'
  624. this.visibility = true
  625. this.propForm.list = []
  626. this.propForm.optionList = getDataConfig('hemodialysis', 'vascular_access_desc')
  627. this.propForm.isMultiple = 1
  628. this.propForm.selectId = this.formValue.blood_access_part_opera_id
  629. this.propForm.click_ref = 'blood_access_opera'
  630. break
  631. case 'internal_fistula':
  632. this.propForm.result = []
  633. this.isHasOther = 2
  634. this.propForm.type = 8
  635. this.isShowDialog = false
  636. this.propForm.title = '内瘘'
  637. this.visibility = true
  638. this.propForm.list = []
  639. this.propForm.list = getDataConfig('hemodialysis', 'internal_fistula')
  640. this.propForm.optionList = []
  641. this.propForm.isMultiple = 2
  642. // this.propForm.result = this.formValue.internal_fistula.split(",")
  643. if (this.formValue.internal_fistula != undefined || this.formValue.internal_fistula != null) {
  644. if (this.formValue.internal_fistula.length > 0) {
  645. this.propForm.result = this.formValue.internal_fistula.split(',')
  646. } else {
  647. this.propForm.result = []
  648. }
  649. } else {
  650. this.propForm.result = []
  651. }
  652. this.propForm.click_ref = 'internal_fistula'
  653. break
  654. case 'hemorrhage':
  655. this.propForm.result = []
  656. this.isHasOther = 2
  657. this.propForm.type = 9
  658. this.isShowDialog = false
  659. this.propForm.title = '出血'
  660. this.visibility = true
  661. this.propForm.list = []
  662. this.propForm.list = getDataConfig('hemodialysis', 'hemorrhage')
  663. this.propForm.optionList = []
  664. this.propForm.isMultiple = 2
  665. // this.propForm.result = typeof(this.formValue.hemorrhage) == "string"? this.formValue.hemorrhage.split(","):[]
  666. if (this.formValue.hemorrhage != undefined || this.formValue.hemorrhage != null) {
  667. if (this.formValue.hemorrhage.length > 0) {
  668. this.propForm.result = this.formValue.hemorrhage.split(',')
  669. } else {
  670. this.propForm.result = []
  671. }
  672. } else {
  673. this.propForm.result = []
  674. }
  675. this.propForm.click_ref = 'hemorrhage'
  676. break
  677. case 'internal_fistula_skin':
  678. this.propForm.result = []
  679. this.isHasOther = 2
  680. this.propForm.type = 10
  681. this.isShowDialog = false
  682. this.propForm.title = '内瘘皮肤情况'
  683. this.visibility = true
  684. this.propForm.list = this.$store.getters.internal_fistula_skin
  685. this.propForm.optionList = []
  686. this.propForm.isMultiple = 2
  687. // this.propForm.result = this.formValue.hemorrhage.split(",")
  688. if (this.formValue.internal_fistula_skin != undefined || this.formValue.internal_fistula_skin != null) {
  689. if (this.formValue.internal_fistula_skin.length > 0) {
  690. this.propForm.result = this.formValue.internal_fistula_skin.split(',')
  691. } else {
  692. this.propForm.result = []
  693. }
  694. } else {
  695. this.propForm.result = []
  696. }
  697. this.propForm.click_ref = 'internal_fistula_skin'
  698. break
  699. case 'catheter_bend':
  700. this.isHasOther = 2
  701. this.propForm.type = 11
  702. this.isShowDialog = false
  703. this.propForm.title = '导管打折'
  704. this.visibility = true
  705. this.propForm.list = []
  706. this.propForm.optionList = this.$store.getters.catheter_bend
  707. this.propForm.isMultiple = 1
  708. this.propForm.selectId = this.formValue.catheter_bend
  709. this.propForm.click_ref = 'catheter_bend'
  710. break
  711. case 'blood_access_internal_fistula':
  712. this.propForm.result = []
  713. this.propForm.isHasOther = 2
  714. this.propForm.type = 12
  715. this.isShowDialog = false
  716. this.propForm.title = '血管通路(内瘘)'
  717. this.visibility = true
  718. this.propForm.list = this.$store.getters.blood_access_internal_fistula
  719. this.propForm.optionList = []
  720. this.propForm.isMultiple = 2
  721. // this.propForm.result = this.formValue.hemorrhage.split(",")
  722. if (this.formValue.blood_access_internal_fistula != undefined || this.formValue.blood_access_internal_fistula != null) {
  723. if (this.formValue.blood_access_internal_fistula.length > 0) {
  724. this.propForm.result = this.formValue.blood_access_internal_fistula.split(',')
  725. } else {
  726. this.propForm.result = []
  727. }
  728. } else {
  729. this.propForm.result = []
  730. }
  731. this.propForm.click_ref = 'blood_access_internal_fistula'
  732. break
  733. case 'blood_access_noise':
  734. this.propForm.isHasOther = 2
  735. this.propForm.type = 13
  736. this.isShowDialog = false
  737. this.propForm.title = '血管杂音'
  738. this.visibility = true
  739. this.propForm.list = []
  740. this.propForm.optionList = this.$store.getters.blood_access_noise
  741. this.propForm.isMultiple = 1
  742. this.propForm.selectId = this.formValue.blood_access_noise
  743. this.propForm.click_ref = 'blood_access_noise'
  744. break
  745. case 'venous_catheterization':
  746. this.propForm.isHasOther = 2
  747. this.propForm.type = 14
  748. this.isShowDialog = false
  749. this.propForm.title = '中心静脉置管'
  750. this.visibility = true
  751. this.propForm.list = []
  752. this.propForm.optionList = this.$store.getters.venous_catheterization
  753. this.propForm.isMultiple = 1
  754. this.propForm.selectId = this.formValue.venous_catheterization
  755. this.propForm.click_ref = 'venous_catheterization'
  756. break
  757. case 'venous_catheterization_part':
  758. this.propForm.isHasOther = 1
  759. this.propForm.type = 15
  760. this.isShowDialog = false
  761. this.propForm.title = '位置'
  762. this.visibility = true
  763. this.propForm.list = []
  764. this.propForm.optionList = this.$store.getters.venous_catheterization_part
  765. this.propForm.isMultiple = 1
  766. this.propForm.selectId = this.formValue.venous_catheterization_part
  767. this.propForm.click_ref = 'venous_catheterization_part'
  768. break
  769. case 'ductus_arantii':
  770. this.propForm.result = []
  771. this.propForm.isHasOther = 2
  772. this.propForm.type = 16
  773. this.isShowDialog = false
  774. this.propForm.title = '中心静脉导管'
  775. this.visibility = true
  776. this.propForm.list = this.$store.getters.ductus_arantii
  777. this.propForm.optionList = []
  778. this.propForm.isMultiple = 2
  779. // this.propForm.result = this.formValue.hemorrhage.split(",")
  780. if (this.formValue.ductus_arantii != undefined || this.formValue.ductus_arantii != null) {
  781. if (this.formValue.ductus_arantii.length > 0) {
  782. this.propForm.result = this.formValue.ductus_arantii.split(',')
  783. } else {
  784. this.propForm.result = []
  785. }
  786. } else {
  787. this.propForm.result = []
  788. }
  789. this.propForm.click_ref = 'ductus_arantii'
  790. break
  791. case 'emergency_treatment':
  792. this.propForm.isHasOther = 1
  793. this.propForm.type = 17
  794. this.isShowDialog = false
  795. this.propForm.title = '急诊'
  796. this.visibility = true
  797. this.propForm.list = []
  798. this.propForm.optionList = this.$store.getters.emergency_treatment
  799. this.propForm.isMultiple = 1
  800. this.propForm.selectId = this.formValue.emergency_treatment
  801. this.propForm.click_ref = 'emergency_treatment'
  802. break
  803. case 'puncture_way':
  804. this.propForm.isHasOther = 2
  805. this.propForm.type = 18
  806. this.isShowDialog = false
  807. this.propForm.title = '穿刺方式'
  808. this.visibility = true
  809. this.propForm.list = []
  810. this.propForm.optionList = this.$store.getters.puncture_way
  811. this.propForm.isMultiple = 1
  812. this.propForm.selectId = this.formValue.puncture_way
  813. this.propForm.click_ref = 'puncture_way'
  814. break
  815. case 'hemorrhage_state':
  816. this.propForm.type = 19
  817. this.isShowDialog = false
  818. this.propForm.title = '出血'
  819. this.visibility = true
  820. this.propForm.list = []
  821. this.propForm.optionList = this.hemorrhages
  822. this.propForm.isMultiple = 1
  823. this.propForm.selectId = this.formValue.is_hemorrhage
  824. this.propForm.click_ref = 'hemorrhage_state'
  825. break
  826. case 'infect_state':
  827. this.propForm.type = 20
  828. this.isShowDialog = false
  829. this.propForm.title = '感染'
  830. this.visibility = true
  831. this.propForm.list = []
  832. this.propForm.optionList = this.infects
  833. this.propForm.isMultiple = 1
  834. this.propForm.selectId = this.formValue.is_infect
  835. this.propForm.click_ref = 'infect_state'
  836. break
  837. case 'skin':
  838. this.propForm.type = 21
  839. this.isShowDialog = false
  840. this.propForm.title = '皮肤'
  841. this.visibility = true
  842. this.propForm.list = []
  843. this.propForm.optionList = this.$store.getters.skin
  844. this.propForm.isMultiple = 1
  845. this.propForm.selectId = this.formValue.skin
  846. this.propForm.click_ref = 'skin'
  847. break
  848. case 'puncture_needle':
  849. this.propForm.result = []
  850. this.propForm.isHasOther = 2
  851. this.propForm.type = 22
  852. this.isShowDialog = false
  853. this.propForm.title = '穿刺针'
  854. this.visibility = true
  855. this.propForm.list = this.$store.getters.puncture_needle
  856. this.propForm.optionList = []
  857. this.propForm.isMultiple = 2
  858. if (this.formValue.puncture_needle != undefined || this.formValue.puncture_needle != null) {
  859. if (this.formValue.puncture_needle.length > 0) {
  860. this.propForm.result = this.formValue.puncture_needle.split(',')
  861. } else {
  862. this.propForm.result = []
  863. }
  864. } else {
  865. this.propForm.result = []
  866. }
  867. this.propForm.click_ref = 'puncture_needle'
  868. break
  869. }
  870. }, menuCancle: function () {
  871. this.visibility = false
  872. this.isShowDialog = true
  873. this.$nextTick(() => {
  874. if (this.$refs[this.propForm.click_ref] != undefined && this.$refs[this.propForm.click_ref] != null) {
  875. this.$refs[this.propForm.click_ref].scrollIntoView()
  876. }
  877. })
  878. }, menuComfirm: function (val) {
  879. this.visibility = false
  880. this.isShowDialog = true
  881. this.$nextTick(() => {
  882. if (this.$refs[this.propForm.click_ref] != undefined && this.$refs[this.propForm.click_ref] != null) {
  883. this.$refs[this.propForm.click_ref].scrollIntoView()
  884. }
  885. })
  886. switch (val.type) {
  887. case 1:
  888. this.formValue.last_post_dialysis = val.result.join(',')
  889. break
  890. case 2:
  891. this.formValue.dialysis_interphase = val.result.join(',')
  892. break
  893. case 3:
  894. this.formValue.symptom_before_dialysis = val.result.join(',')
  895. break
  896. case 4:
  897. this.formValue.catheter = val.result.join(',')
  898. break
  899. case 5:
  900. this.formValue.complication = val.result.join(',')
  901. break
  902. case 6:
  903. this.formValue.blood_access_part_id = val.selectId
  904. break
  905. case 7:
  906. this.formValue.blood_access_part_opera_id = val.selectId
  907. break
  908. case 8:
  909. this.formValue.internal_fistula = val.result.join(',')
  910. break
  911. case 9:
  912. this.formValue.hemorrhage = val.result.join(',')
  913. break
  914. case 10:
  915. this.formValue.internal_fistula_skin = val.result.join(',')
  916. break
  917. case 11:
  918. this.formValue.catheter_bend = val.selectId
  919. break
  920. case 12:
  921. this.formValue.blood_access_internal_fistula = val.result.join(',')
  922. break
  923. case 13:
  924. this.formValue.blood_access_noise = val.selectId
  925. break
  926. case 14:
  927. this.formValue.venous_catheterization = val.selectId
  928. break
  929. case 15:
  930. this.formValue.venous_catheterization_part = val.selectId
  931. break
  932. case 16:
  933. this.formValue.ductus_arantii = val.result.join(',')
  934. break
  935. case 17:
  936. this.formValue.emergency_treatment = val.selectId
  937. break
  938. case 18:
  939. this.formValue.puncture_way = val.selectId
  940. break
  941. case 19:
  942. if( val.selectId == 1){
  943. this.hemorrhage_state = true
  944. this.formValue.is_hemorrhage = val.selectId
  945. }else if(val.selectId == 2){
  946. this.hemorrhage_state = false
  947. this.formValue.is_hemorrhage = val.selectId
  948. }else if(this.formValue.is_hemorrhage == -2){
  949. }
  950. break
  951. case 20:
  952. if( val.selectId == 1){
  953. this.infect_state = true
  954. this.formValue.is_infect = val.selectId.toString()
  955. }else if(val.selectId == 2){
  956. this.infect_state = false
  957. this.formValue.is_infect = val.selectId.toString()
  958. }else if(this.formValue.is_infect == -2){
  959. }
  960. break
  961. case 21:
  962. this.formValue.skin = val.selectId.toString()
  963. break
  964. case 22:
  965. this.formValue.puncture_needle = val.result.join(',')
  966. break
  967. }
  968. }, QueryPartById: function (val) {
  969. let vascular_access_part_name = ''
  970. let vascular_access = getDataConfig('hemodialysis', 'vascular_access')
  971. for (let i = 0; i < vascular_access.length; i++) {
  972. if (vascular_access[i].id == val) {
  973. vascular_access_part_name = vascular_access[i].name
  974. }
  975. }
  976. return vascular_access_part_name
  977. }, QueryOperaById: function (val) {
  978. let vascular_access_desc_name = ''
  979. let vascular_access_desc = getDataConfig('hemodialysis', 'vascular_access_desc')
  980. for (let i = 0; i < vascular_access_desc.length; i++) {
  981. if (vascular_access_desc[i].id == val) {
  982. vascular_access_desc_name = vascular_access_desc[i].name
  983. }
  984. }
  985. return vascular_access_desc_name
  986. },
  987. GetCatheterBendById: function (val) {
  988. let name = ''
  989. let options = this.$store.getters.catheter_bend
  990. for (let index = 0; index < options.length; index++) {
  991. const option = options[index]
  992. if (option.id == val) {
  993. name = option.name
  994. break
  995. }
  996. }
  997. return name
  998. },
  999. commitInfo: function () {
  1000. Toast.loading({forbidClick: true, duration: 0})
  1001. console.log(this.formValue)
  1002. EditAssessmentBeforeDislysis(this.$route.query.patient_id, this.record_date, this.formValue).then(response => {
  1003. if (response.data.state == 0) {
  1004. Toast(response.data.msg)
  1005. return false
  1006. } else {
  1007. Toast('提交完成')
  1008. this.$emit('evaluation', response.data.data.evaluation)
  1009. }
  1010. })
  1011. },
  1012. close: function () {
  1013. this.$emit('close')
  1014. }, open: function () {
  1015. this.isShowDialog = true
  1016. this.visibility = false
  1017. var dialogTop = document.querySelector('#dialogTop')
  1018. if (dialogTop != null) {
  1019. this.$nextTick(() => {
  1020. dialogTop.scrollTop = 0
  1021. })
  1022. }
  1023. },menuEmpty:function (val) {
  1024. this.visibility = false
  1025. this.isShowDialog = true
  1026. switch (val.type) {
  1027. case 6:
  1028. this.formValue.blood_access_part_id = ''
  1029. break
  1030. case 7:
  1031. this.formValue.blood_access_part_opera_id = ''
  1032. break
  1033. case 11:
  1034. this.formValue.catheter_bend = ''
  1035. break
  1036. case 13:
  1037. this.formValue.blood_access_noise = ''
  1038. break
  1039. case 14:
  1040. this.formValue.venous_catheterization = ''
  1041. break
  1042. case 15:
  1043. this.formValue.venous_catheterization_part = ''
  1044. break
  1045. case 17:
  1046. this.formValue.emergency_treatment = ''
  1047. break
  1048. case 18:
  1049. this.formValue.puncture_way = ''
  1050. break
  1051. }
  1052. }
  1053. }, components: {
  1054. CheckBoxSubMenu,
  1055. }, created () {
  1056. var date = this.$route.query && this.$route.query.date
  1057. date *= 1000
  1058. var newDate = new Date(date)
  1059. var y = newDate.getFullYear()
  1060. var m = newDate.getMonth() + 1
  1061. var d = newDate.getDate()
  1062. if (isNaN(y) || isNaN(m) || isNaN(d)) {
  1063. newDate = new Date()
  1064. y = newDate.getFullYear()
  1065. m = newDate.getMonth() + 1
  1066. d = newDate.getDate()
  1067. }
  1068. this.record_date = y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d)
  1069. // console.log(this.predialysis)
  1070. this.formValue = this.predialysis
  1071. if (this.predialysis.id == undefined && this.last_predialysis.id != undefined) {
  1072. this.$set(this.formValue, 'dry_weight', this.last_predialysis['dry_weight'].toString())
  1073. this.$set(this.formValue, 'internal_fistula', this.last_predialysis['internal_fistula'])
  1074. this.$set(this.formValue, 'internal_fistula_skin', this.last_predialysis['internal_fistula_skin'])
  1075. this.$set(this.formValue, 'blood_access_part_id', this.last_predialysis['blood_access_part_id'])
  1076. this.$set(this.formValue, 'blood_access_part_opera_id', this.last_predialysis['blood_access_part_opera_id'])
  1077. }
  1078. this.hemorrhage_state = this.formValue.is_hemorrhage == 0
  1079. }
  1080. }
  1081. </script>
  1082. <style style="stylesheet/scss" lang="scss" scoped>
  1083. .textarea {
  1084. width: 100%;
  1085. height: 2.4rem;
  1086. line-height: 0.6rem;
  1087. color: $pgh-color;
  1088. font-size: 0.28rem;
  1089. padding-left: 0.36rem;
  1090. border: none;
  1091. border-bottom: 1px #e5e5e5 solid;
  1092. }
  1093. </style>