pediatricFallAssessment.vue 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440
  1. <!-- 小儿跌倒风险评估 -->
  2. <template>
  3. <div class="patient-container">
  4. <patient-sidebar :id="patient_id" defaultActive="5-2"></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:null,
  161. sexvalue:null,
  162. diagnosis_val:null,
  163. cognize_val:null,
  164. environment_val:null,
  165. medicine_val:null,
  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. }
  196. },
  197. created(){
  198. const id = this.$route.params && this.$route.params.id
  199. this.patient_id = parseInt(id)
  200. this.getAllNurseList()
  201. },
  202. methods:{
  203. ageclick(e,item){
  204. console.log(item);
  205. for(let i in this.age){
  206. if(this.age[i].value ==item.value){
  207. if(this.age[i].check==0){
  208. this.age[i].check = 1
  209. this.agevalue = item.value
  210. }else{
  211. this.age[i].check = 0
  212. this.agevalue = 0
  213. }
  214. }else{
  215. this.age[i].check =0
  216. }
  217. }
  218. // console.log(this.age);
  219. },
  220. sexChange(e,item){
  221. for(let i in this.sex){
  222. if(this.sex[i].value ==item.value){
  223. if(this.sex[i].check==0){
  224. this.sex[i].check = 1
  225. this.sexvalue = item.value
  226. }else{
  227. this.sex[i].check = 0
  228. this.sexvalue = 0
  229. }
  230. }else{
  231. this.sex[i].check = 0
  232. }
  233. }
  234. console.log(this.sex);
  235. },
  236. diagnosischange(e,item){
  237. for(let i in this.diagnosis){
  238. if(this.diagnosis[i].value ==item.value){
  239. if(this.diagnosis[i].check==0){
  240. this.diagnosis[i].check = 1
  241. this.diagnosis_val = item.value
  242. }else{
  243. this.diagnosis[i].check = 0
  244. this.diagnosis_val = 0
  245. }
  246. }else{
  247. this.diagnosis[i].check = 0
  248. }
  249. }
  250. console.log(this.diagnosis);
  251. },
  252. cognizeChange(e,item){
  253. for(let i in this.cognize){
  254. if(this.cognize[i].value ==item.value){
  255. if(this.cognize[i].check==0){
  256. this.cognize[i].check = 1
  257. this.cognize_val = item.value
  258. }else{
  259. this.cognize[i].check = 0
  260. this.cognize_val = 0
  261. }
  262. }else{
  263. this.cognize[i].check = 0
  264. }
  265. }
  266. },
  267. environChange(e,item){
  268. for(let i in this.environment){
  269. if(this.environment[i].value ==item.value){
  270. if(this.environment[i].check==0){
  271. this.environment[i].check = 1
  272. this.environment_val = item.value
  273. }else{
  274. this.medicine[i].check = 0
  275. this.environment_val = 0
  276. }
  277. }else{
  278. this.environment[i].check = 0
  279. }
  280. }
  281. },
  282. medicineChange(e,item){
  283. for(let i in this.medicine){
  284. if(this.medicine[i].value ==item.value){
  285. console.log('eeeee',this.medicine[i].check);
  286. if(this.medicine[i].check==0){
  287. this.medicine[i].check = 1
  288. this.medicine_val = item.value
  289. }else{
  290. this.medicine[i].check = 0
  291. this.medicine_val = 0
  292. }
  293. }else{
  294. this.medicine[i].check = 0
  295. }
  296. }
  297. },
  298. // 历史评估
  299. childerHistory(){
  300. this.$router.push(
  301. {path: '/patients/Children_history',
  302. query:{patient_id:this.patient_id,
  303. tumble_options:this.tumble_options}})
  304. // this.$router.push({path: '/patients/Children_history?patient_id='+this.patient_id+'pedFallssessment='+this.pedFallssessment})
  305. },
  306. // 时间转换
  307. getTime(val) {
  308. if(val < 0){
  309. return ""
  310. }
  311. if(val == ""){
  312. return ""
  313. }else {
  314. return uParseTime(val, '{y}-{m}-{d}')
  315. }
  316. },
  317. toDialog(){
  318. var params = {
  319. age:this.agevalue,
  320. sex:this.sexvalue,
  321. diagnosis:this.diagnosis_val,
  322. cognize:this.cognize_val,
  323. environment:this.environment_val,
  324. medicine:this.medicine_val,
  325. pedia_Totalpoints:this.pedia_Totalpoints,
  326. tumble:this.tumble,
  327. date:this.date,
  328. patient_id:this.patient_id,
  329. patient:this.patient,
  330. }
  331. console.log("params----",params)
  332. savePediatrcFallAssesment(params).then(response=>{
  333. if(response.data.state ==1){
  334. var pedFallssessment = response.data.data.pedFallssessment
  335. this.pedFallssessment = pedFallssessment
  336. console.log('pedFallssessment',this.pedFallssessment);
  337. this.$message.success("保存成功!")
  338. }
  339. })
  340. },
  341. getAllNurseList(){
  342. getAllNurseList().then(response=>{
  343. if(response.data.state ==1){
  344. console.log('response.data.data',response.data.data);
  345. var nurseList = response.data.data.nurseList
  346. // this.tumble_options =nurseList
  347. }
  348. })
  349. },
  350. },
  351. computed:{
  352. pedia_Totalpoints(){
  353. return this.agevalue + this.sexvalue + this.diagnosis_val +this.cognize_val + this.environment_val + this.medicine_val
  354. }
  355. }
  356. }
  357. </script>
  358. <style lang="scss" scoped>
  359. .content_top{
  360. display: flex;
  361. justify-content: space-between;
  362. }
  363. .table{
  364. border: 1px solid #DCDFE6;
  365. border-collapse:collapse;
  366. border-spacing: 0;
  367. thead th{
  368. background: #0077ff9f;
  369. color: white;
  370. text-align: center;
  371. height: 40px;
  372. }
  373. tbody td{
  374. height: 40px;
  375. padding: 5px;
  376. vertical-align: top;
  377. }
  378. .start{
  379. text-align: center;
  380. }
  381. .bing{
  382. // width: 150px;
  383. text-align: center;
  384. }
  385. .bg_color{
  386. background: rgb(243, 240, 240);
  387. }
  388. .bottoms{
  389. display: inline-block;
  390. margin-left: 10px;
  391. margin-top: 5px;
  392. }
  393. .jiange{
  394. margin-left: 20px;
  395. color: black;
  396. }
  397. input{
  398. -webkit-appearance: checkbox;
  399. }
  400. }
  401. </style>
  402. <style lang="scss">
  403. .status_change{
  404. .el-dialog__header{
  405. background-color:#eff2f5;
  406. .el-dialog__title,.el-dialog__headerbtn i{
  407. color: #666666;
  408. }
  409. }
  410. }
  411. .el-dialog {
  412. left: 50% !important;
  413. position: fixed !important;
  414. top: 40% !important;
  415. transform: translate(-50%, -50%) !important;
  416. margin-top: 0 !important;
  417. }
  418. </style>