pediatricFallAssessment.vue 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451
  1. <!-- 小儿跌倒风险评估 -->
  2. <template>
  3. <div class="patient-container">
  4. <patient-sidebar :id="patient_id" defaultActive="5-2" @tran-patient="tranpatient"></patient-sidebar>
  5. <div>
  6. <div class="patient-app-container advice-container app-container">
  7. <div class='content_top' style="width: 100%;margin-bottom: 20px;">
  8. <div style="font-size: 20px;">小儿高危跌倒坠床评估表</div>
  9. <div>
  10. <el-button @click="childerHistory">历史评分</el-button>
  11. <el-button @click="dialogVisible=true">告知书</el-button>
  12. </div>
  13. </div>
  14. <div>
  15. <table class="table" id="table" border="1" style="width: 100%;">
  16. <thead>
  17. <tr>
  18. <th style="width:10%;">项目</th>
  19. <th style="width: 22.4%;">4分</th>
  20. <th style="width: 22.4%;">3分</th>
  21. <th style="width: 22.4%;">2分</th>
  22. <th style="width: 22.4%;">1分</th>
  23. </tr>
  24. </thead>
  25. <tbody>
  26. <tr class="bg_color">
  27. <td class="start">年龄</td>
  28. <td v-for="(item,index) in age" :key="index">
  29. <div class="jiange">
  30. <label><input name="ball" class="checked1" type="checkbox" :value="item.value" v-model="item.check" @click="ageclick($event,item)" />&nbsp;{{item.lable}}</label>
  31. </div>
  32. </td>
  33. </tr>
  34. <tr>
  35. <td style="border-right: none;">
  36. <div class="bing">性别</div>
  37. </td>
  38. <td colspan="2" style="border-left: none;"></td>
  39. <td v-for="(item,index) in sex" :key="index">
  40. <div class="jiange">
  41. <label><input name="ball" class="checked2" type="checkbox" :value="item.value" v-model="item.check" @click="sexChange($event,item)"/>&nbsp;{{item.lable}}</label>
  42. </div>
  43. </td>
  44. </tr>
  45. <tr class="bg_color">
  46. <td class="start">诊断</td>
  47. <td v-for="(item,index) in diagnosis" :key="index">
  48. <div class="jiange">
  49. <label><input name="ball" class="checked3" type="checkbox" :value="item.value" v-model="item.check" @click="diagnosischange($event,item)"/>&nbsp;{{item.lable}}</label>
  50. </div>
  51. </td>
  52. </tr>
  53. <tr>
  54. <td style="border-right: none;">
  55. <div class="bing">认知障碍</div>
  56. </td>
  57. <td style="border-left: none;"></td>
  58. <td v-for="(item,index) in cognize" :key="index">
  59. <div class="jiange">
  60. <label><input name="ball" class="checked4" type="checkbox" :value="item.value" v-model="item.check" @click="cognizeChange($event,item)"/>&nbsp;{{item.lable}}</label>
  61. </div>
  62. </td>
  63. </tr>
  64. <tr class="bg_color">
  65. <td class="start">环境因素</td>
  66. <td v-for="(item,index) in environment" :key="index">
  67. <div class="jiange">
  68. <label><input name="ball" class="checked5" type="checkbox" :value="item.value" v-model="item.check" @click="environChange($event,item)"/>&nbsp;{{item.lable}}</label>
  69. </div>
  70. </td>
  71. </tr>
  72. <tr>
  73. <td style="border-right: none;">
  74. <div class="bing">药物使用</div>
  75. </td>
  76. <td style="border-left: none;"></td>
  77. <td v-for="(item,index) in medicine" :key="index">
  78. <div class="jiange">
  79. <label><input name="ball" class="checked6" type="checkbox" :value="item.value" v-model="item.check" @click="medicineChange($event,item)"/>&nbsp;{{item.lable}}</label>
  80. </div>
  81. </td>
  82. </tr>
  83. <tr class="bg_color">
  84. <td colspan="5" style="height: 30px;"></td>
  85. </tr>
  86. <tr>
  87. <td colspan="5">
  88. <div class="content_top" >
  89. <div>
  90. <div class="bottoms">
  91. <span>总分:</span>
  92. <el-input v-model="pedia_Totalpoints" style="width: 100px;"></el-input>分
  93. </div>
  94. <div class="bottoms">
  95. <span>评估日期:</span>
  96. <el-date-picker
  97. v-model="date"
  98. type="date"
  99. placeholder="选择日期"
  100. value-format="yyyy-MM-dd"
  101. :clearable="false"
  102. style="width: 150px;">
  103. </el-date-picker>
  104. </div>
  105. <div class="bottoms">
  106. <span>评估人:</span>
  107. <el-select v-model="tumble" placeholder="请选择" style="width:150px;">
  108. <el-option
  109. v-for="item in tumble_options"
  110. :key="item.admin_user_id"
  111. :label="item.user_name"
  112. :value="item.admin_user_id"
  113. >
  114. </el-option>
  115. </el-select>
  116. </div>
  117. </div>
  118. <div style="margin:5px 10px;">
  119. <el-button type="primary" @click="toDialog">确认</el-button>
  120. </div>
  121. </div>
  122. </td>
  123. </tr>
  124. </tbody>
  125. </table>
  126. </div>
  127. </div>
  128. </div>
  129. <div>
  130. <el-dialog
  131. title="内容详情"
  132. :visible.sync="dialogVisible"
  133. width="50%"
  134. class="status_change">
  135. <div>
  136. <Falloutbedprint></Falloutbedprint>
  137. </div>
  138. </el-dialog>
  139. </div>
  140. </div>
  141. </template>
  142. <script>
  143. import PatientSidebar from '../components/PatientSidebar.vue'
  144. import Falloutbedprint from './Falloutbedprint.vue'
  145. import { uParseTime } from '@/utils/tools'
  146. import { savePediatrcFallAssesment,getAllNurseList } from '@/api/fallassement'
  147. export default {
  148. components:{
  149. PatientSidebar,
  150. Falloutbedprint
  151. },
  152. data(){
  153. return{
  154. patient_id:0,
  155. patient:'',
  156. value1:'',
  157. value:'',
  158. options:[],
  159. input:'',
  160. agevalue:0,
  161. sexvalue:0,
  162. diagnosis_val:0,
  163. cognize_val:0,
  164. environment_val:0,
  165. medicine_val:0,
  166. // pedia_Totalpoints:0,
  167. age:[{value:4,lable:'>1岁~≤3岁',id:1,check:0},{value:3,lable:'>3岁~≤7岁',id:2,check:0},{value:2,lable:'>7岁~≤13岁',id:3,check:0},{value:1,lable:'>13岁',id:4,check:0}],
  168. sex:[{value:2,lable:'男',check:0},{value:1,lable:'女',check:0}],
  169. diagnosis:[{value:4,lable:'神经系统疾病:骨骼、关节系统疾病;眼科疾病',id:1,check:0},
  170. {value:3,lable:'氧合功能改变(呼吸系统疾病、心血管系统疾病、脱水、贫血、晕厥、头晕等);电解质紊乱',id:2,check:0},
  171. {value:2,lable:'心理/行为疾病',id:3,check:0},
  172. {value:1,lable:'其他疾病;疾病导致不能活动或移动',id:4,check:0,}
  173. ],
  174. cognize:[{value:3,lable:'没有意识到不能自我行动',id:1,check:0,},{value:2,lable:'忘记有行动的限制',id:2,check:0},
  175. {value:1,lable:'能自我辨识方位;昏迷、无反应',id:3,check:0}],
  176. environment:[{value:4,lable:'住院期间有跌倒坠床史:患儿移动或活动时需要使用辅助工具(拐杖、助行器、转运床、轮椅等);婴幼儿放置在无护栏的成人床',id:1,check:0},
  177. {value:3,lable:'近1个月有跌倒坠床史:婴幼儿放置在有护栏的成人床',id:2,check:0},
  178. {value:2,lable:'近3个月有跌倒坠床史:婴幼儿放置在有护栏的婴儿床',id:3,check:0},
  179. {value:1,lable:'>3个月有跌倒坠床史/无跌倒坠床史',id:4,check:0}],
  180. medicine:[{value:3,lable:'联合用药:镇静剂、安眠药、巴比妥类药、吩噻嗪类药、抗抑郁药、利尿药、降压药、强心剂、麻醉药、化疗药、散瞳剂',id:1,check:0},
  181. {value:2,lable:'以上其中一种药物',id:2,check:0},
  182. {value:1,lable:'其他药物/没有',id:3,check:0}],
  183. checked:'',
  184. checkList:[],
  185. dialogVisible:false,
  186. text:'',
  187. num:1,
  188. tumble_options:[{admin_user_id:1,user_name:'小米'},{admin_user_id:2,user_name:'小明'},{admin_user_id:3,user_name:'小红'}],
  189. // tumble_options:[],
  190. tumble:'',
  191. date:this.getTime(new Date()),
  192. patient:'',
  193. touxihao:0,
  194. pedFallssessment:{},
  195. Patient_info:{name:'',dialysis_no:''},
  196. }
  197. },
  198. created(){
  199. const id = this.$route.params && this.$route.params.id
  200. this.patient_id = parseInt(id)
  201. this.getAllNurseList()
  202. },
  203. methods:{
  204. tranpatient(event){
  205. console.log('event',event);
  206. this.Patient_info={
  207. name:event.name,
  208. dialysis_no:event.dialysis_no
  209. }
  210. },
  211. // 年龄
  212. ageclick(e,item){
  213. console.log(item);
  214. for(let i in this.age){
  215. if(this.age[i].value ==item.value){
  216. if(this.age[i].check==0){
  217. this.age[i].check = 1
  218. this.agevalue = item.value
  219. }else{
  220. this.age[i].check = 0
  221. this.agevalue = 0
  222. }
  223. }else{
  224. this.age[i].check =0
  225. }
  226. }
  227. // console.log(this.age);
  228. },
  229. sexChange(e,item){
  230. for(let i in this.sex){
  231. if(this.sex[i].value ==item.value){
  232. if(this.sex[i].check==0){
  233. this.sex[i].check = 1
  234. this.sexvalue = item.value
  235. }else{
  236. this.sex[i].check = 0
  237. this.sexvalue = 0
  238. }
  239. }else{
  240. this.sex[i].check = 0
  241. }
  242. }
  243. console.log(this.sex);
  244. },
  245. diagnosischange(e,item){
  246. for(let i in this.diagnosis){
  247. if(this.diagnosis[i].value ==item.value){
  248. if(this.diagnosis[i].check==0){
  249. this.diagnosis[i].check = 1
  250. this.diagnosis_val = item.value
  251. }else{
  252. this.diagnosis[i].check = 0
  253. this.diagnosis_val = 0
  254. }
  255. }else{
  256. this.diagnosis[i].check = 0
  257. }
  258. }
  259. console.log(this.diagnosis);
  260. },
  261. cognizeChange(e,item){
  262. for(let i in this.cognize){
  263. if(this.cognize[i].value ==item.value){
  264. if(this.cognize[i].check==0){
  265. this.cognize[i].check = 1
  266. this.cognize_val = item.value
  267. }else{
  268. this.cognize[i].check = 0
  269. this.cognize_val = 0
  270. }
  271. }else{
  272. this.cognize[i].check = 0
  273. }
  274. }
  275. },
  276. environChange(e,item){
  277. for(let i in this.environment){
  278. if(this.environment[i].value ==item.value){
  279. if(this.environment[i].check==0){
  280. this.environment[i].check = 1
  281. this.environment_val = item.value
  282. }else{
  283. this.medicine[i].check = 0
  284. this.environment_val = 0
  285. }
  286. }else{
  287. this.environment[i].check = 0
  288. }
  289. }
  290. },
  291. medicineChange(e,item){
  292. for(let i in this.medicine){
  293. if(this.medicine[i].value ==item.value){
  294. console.log('eeeee',this.medicine[i].check);
  295. if(this.medicine[i].check==0){
  296. this.medicine[i].check = 1
  297. this.medicine_val = item.value
  298. }else{
  299. this.medicine[i].check = 0
  300. this.medicine_val = 0
  301. }
  302. }else{
  303. this.medicine[i].check = 0
  304. }
  305. }
  306. },
  307. // 历史评估
  308. childerHistory(){
  309. this.$router.push(
  310. {path: '/patients/Children_history',
  311. query:{patient_id:this.patient_id,
  312. Patient_info:this.Patient_info}})
  313. // this.$router.push({path: '/patients/Children_history?patient_id='+this.patient_id+'pedFallssessment='+this.pedFallssessment})
  314. },
  315. // 时间转换
  316. getTime(val) {
  317. if(val < 0){
  318. return ""
  319. }
  320. if(val == ""){
  321. return ""
  322. }else {
  323. return uParseTime(val, '{y}-{m}-{d}')
  324. }
  325. },
  326. toDialog(){
  327. if(this.tumble==''){
  328. this.$message({message:'请选择评估人',offset:150});
  329. }else{
  330. var params = {
  331. age:this.agevalue,
  332. sex:this.sexvalue,
  333. diagnosis:this.diagnosis_val,
  334. cognize:this.cognize_val,
  335. environment:this.environment_val,
  336. medicine:this.medicine_val,
  337. pedia_Totalpoints:this.pedia_Totalpoints,
  338. tumble:this.tumble,
  339. date:this.date,
  340. patient_id:this.patient_id,
  341. patient:this.patient,
  342. }
  343. console.log("params----",params)
  344. savePediatrcFallAssesment(params).then(response=>{
  345. if(response.data.state ==1){
  346. var pedFallssessment = response.data.data.pedFallssessment
  347. this.pedFallssessment = pedFallssessment
  348. console.log('pedFallssessment',this.pedFallssessment);
  349. this.$message.success("保存成功!")
  350. }
  351. })
  352. }
  353. },
  354. getAllNurseList(){
  355. getAllNurseList().then(response=>{
  356. if(response.data.state ==1){
  357. console.log('response.data.data',response.data.data);
  358. var nurseList = response.data.data.nurseList
  359. // this.tumble_options =nurseList
  360. }
  361. })
  362. },
  363. },
  364. computed:{
  365. pedia_Totalpoints(){
  366. return this.agevalue + this.sexvalue + this.diagnosis_val +this.cognize_val + this.environment_val + this.medicine_val
  367. }
  368. }
  369. }
  370. </script>
  371. <style lang="scss" scoped>
  372. .content_top{
  373. display: flex;
  374. justify-content: space-between;
  375. }
  376. .table{
  377. border: 1px solid #DCDFE6;
  378. border-collapse:collapse;
  379. border-spacing: 0;
  380. thead th{
  381. background: #0077ff9f;
  382. color: white;
  383. text-align: center;
  384. height: 40px;
  385. }
  386. tbody td{
  387. height: 40px;
  388. padding: 5px;
  389. vertical-align: top;
  390. }
  391. .start{
  392. text-align: center;
  393. }
  394. .bing{
  395. // width: 150px;
  396. text-align: center;
  397. }
  398. .bg_color{
  399. background: rgb(243, 240, 240);
  400. }
  401. .bottoms{
  402. display: inline-block;
  403. margin-left: 10px;
  404. margin-top: 5px;
  405. }
  406. .jiange{
  407. margin-left: 20px;
  408. color: black;
  409. }
  410. input{
  411. -webkit-appearance: checkbox;
  412. }
  413. }
  414. </style>
  415. <style lang="scss">
  416. .status_change{
  417. .el-dialog__header{
  418. background-color:#eff2f5;
  419. .el-dialog__title,.el-dialog__headerbtn i{
  420. color: #666666;
  421. }
  422. }
  423. }
  424. .el-dialog {
  425. left: 50% !important;
  426. position: fixed !important;
  427. top: 40% !important;
  428. transform: translate(-50%, -50%) !important;
  429. margin-top: 0 !important;
  430. }
  431. </style>