Elizabeth's proactive approach involves introducing urinal toilet attachment , an ingenious concept that optimizes space and functionality.

templateSummary.vue 20KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585
  1. <template>
  2. <div class="patient-container">
  3. <patient-sidebar :id="patient_id" defaultActive="1-9"></patient-sidebar>
  4. <div v-loading="loading">
  5. <div class="patient-app-container advice-container app-container">
  6. <div>
  7. <span style="margin-left: 10px;float:right;">
  8. <el-button type="primary" icon="el-icon-circle-plus-outline" size="small"
  9. @click="show_dialog = true">新增</el-button>
  10. <el-button type="primary" icon="el-icon-edit-outline" size="small"
  11. @click="showEdit">修改</el-button>
  12. <el-button type="primary" icon="el-icon-printer" size="small"
  13. @click="print">打印</el-button>
  14. <el-button size="small" v-show="selectingRows.length > 0" type="danger"
  15. @click="deleteAction">删除</el-button>
  16. </span>
  17. </div>
  18. <!--<div></div>-->
  19. <div class="cell clearfix">
  20. <label class="title"><span class="name">日期查询</span> : </label>
  21. <el-date-picker v-model="start_time" prefix-icon="el-icon-date" :editable="false" style="width: 196px;"
  22. type="date" placeholder="选择日期时间" align="right" format="yyyy-MM-dd"
  23. value-format="yyyy-MM-dd" @change="startTimeChange"></el-date-picker>
  24. <span class="">-</span>
  25. <el-date-picker v-model="end_time" prefix-icon="el-icon-date" :editable="false" style="width: 196px;"
  26. type="date" placeholder="选择日期时间" align="right" format="yyyy-MM-dd"
  27. value-format="yyyy-MM-dd" @change="endTimeChange"></el-date-picker>
  28. </div>
  29. <div class="record">
  30. <el-row :gutter="15">
  31. <el-col :span="10">
  32. <el-table :header-cell-style="{
  33. backgroundColor: 'rgb(245, 247, 250)',
  34. color: '#606266'
  35. }"
  36. :row-style="{ color: '#303133' }" ref="record_table" :data="records"
  37. border highlight-current-row @current-change="didChangeCurrentRecord"
  38. @selection-change="didSelectionChange"
  39. :row-class-name="tableRow"
  40. @row-click="onRowClick"
  41. >
  42. <el-table-column type="selection" width="40" align="center"></el-table-column>
  43. <el-table-column label="阶段小结名称" align="center">
  44. <template slot-scope="scope">
  45. <!-- {{ scope.row.title}} -->
  46. </template>
  47. </el-table-column>
  48. <el-table-column label="记录时间" align="center">
  49. <template slot-scope="scope">
  50. <!-- {{ recordTime(scope.row.record_time) }} -->
  51. </template>
  52. </el-table-column>
  53. <el-table-column label="记录医生" align="center">
  54. <template slot-scope="scope">
  55. <!-- {{ doctorName(scope.row.recorder) }} -->
  56. </template>
  57. </el-table-column>
  58. </el-table>
  59. </el-col>
  60. <el-col :span="14">
  61. <div class="record_content_panel">
  62. <div style="background-color:rgb(245, 247, 250)" class="title">病程内容</div>
  63. <div class="content">
  64. <span v-if="current_select_record" v-html="current_select_record.content">{{current_select_record.content }}</span>
  65. <span v-else></span>
  66. </div>
  67. </div>
  68. </el-col>
  69. </el-row>
  70. </div>
  71. </div>
  72. <el-dialog title="新增阶段小结" width="80%" top="5vh" :visible.sync="show_dialog">
  73. <div>
  74. <div class="new_record_form">
  75. <div class="cell clearfix">
  76. <el-form>
  77. <el-row :gutter="24">
  78. <el-col :span="20">
  79. <el-form-item label="阶段小结名称:">
  80. <el-input v-model="form.title"></el-input>
  81. </el-form-item>
  82. </el-col>
  83. </el-row>
  84. <el-row :gutter="24">
  85. <el-col :span="8">
  86. <el-form-item label="阶段小结时间:">
  87. <el-date-picker
  88. v-model="form.start_year"
  89. type="year"
  90. value-format="yyyy-MM-dd"
  91. placeholder="选择年">
  92. </el-date-picker>
  93. </el-form-item>
  94. </el-col>
  95. <el-col :span="8">
  96. <el-form-item>
  97. <el-radio-group v-model="form.radio">
  98. <el-radio :label="1" >月份</el-radio>
  99. <el-radio :label="2" >季度</el-radio>
  100. </el-radio-group>
  101. </el-form-item>
  102. </el-col>
  103. <el-col :span="8" v-if="form.radio == 1">
  104. <el-form-item>
  105. <el-date-picker
  106. value-format="MM"
  107. v-model="form.start_month"
  108. type="month"
  109. placeholder="选择月">
  110. </el-date-picker>
  111. </el-form-item>
  112. </el-col>
  113. <el-col :span="8" v-if="form.radio == 2">
  114. <el-form-item>
  115. <el-select v-model="form.quarter" placeholder="请选择">
  116. <el-option
  117. v-for="item in timeType"
  118. :key="item.id"
  119. :label="item.name"
  120. :value="item.id">
  121. </el-option>
  122. </el-select>
  123. </el-form-item>
  124. </el-col>
  125. </el-row>
  126. </el-form>
  127. </div>
  128. <div class="cell clearfix" style="margin-top: 10px">
  129. <label class="title"><span class="name">阶段小结摘要</span> : </label>
  130. <el-form>
  131. <el-row :gutter="24">
  132. <el-col :span="8">
  133. <el-form-item label="干体重">
  134. <el-input v-model="form.dry_weight"></el-input>
  135. </el-form-item>
  136. </el-col>
  137. <el-col :span="8">
  138. <el-form-item label="共透析(次)">
  139. <el-input v-model="form.dialysis_count"></el-input>
  140. </el-form-item>
  141. </el-col>
  142. <el-col :span="8">
  143. <el-form-item label="HD(次)">
  144. <el-input v-model="form.hd_count"></el-input>
  145. </el-form-item>
  146. </el-col>
  147. </el-row>
  148. <el-row :gutter="24">
  149. <el-col :span="8">
  150. <el-form-item label="HDF(次)">
  151. <el-input v-model="form.hdf_count"></el-input>
  152. </el-form-item>
  153. </el-col>
  154. <el-col :span="8">
  155. <el-form-item label="HP(次)">
  156. <el-input v-model="form.hp_count"></el-input>
  157. </el-form-item>
  158. </el-col>
  159. <el-col :span="8">
  160. <el-form-item label="其他(次)">
  161. <el-input v-model="form.other_count"></el-input>
  162. </el-form-item>
  163. </el-col>
  164. </el-row>
  165. <el-row :gutter="24">
  166. <el-col :span="8">
  167. <el-form-item label="透析器">
  168. <el-input v-model="form.dialzer_apparatus"></el-input>
  169. </el-form-item>
  170. </el-col>
  171. <el-col :span="8">
  172. <el-form-item label="灌流器">
  173. <el-input v-model="form.perfusion_apparatus"></el-input>
  174. </el-form-item>
  175. </el-col>
  176. <el-col :span="8">
  177. <el-form-item label="抗凝剂">
  178. <el-input v-model="form.anticoagulant"></el-input>
  179. </el-form-item>
  180. </el-col>
  181. </el-row>
  182. <div>透析液</div>
  183. <el-row :gutter="24">
  184. <el-col :span="8">
  185. <el-form-item label="钾">
  186. <el-input v-model="form.kalium"></el-input>
  187. </el-form-item>
  188. </el-col>
  189. <el-col :span="8">
  190. <el-form-item label="钙">
  191. <el-input v-model="form.autunite"></el-input>
  192. </el-form-item>
  193. </el-col>
  194. <el-col :span="8">
  195. <el-form-item label="钠">
  196. <el-input v-model="form.natrium"></el-input>
  197. </el-form-item>
  198. </el-col>
  199. </el-row>
  200. <div>透析时长</div>
  201. <el-row :gutter="24">
  202. <el-col :span="8">
  203. <el-form-item label="时">
  204. <el-input v-model="form.hour"></el-input>
  205. </el-form-item>
  206. </el-col>
  207. <el-col :span="8">
  208. <el-form-item label="分">
  209. <el-input v-model="form.minute"></el-input>
  210. </el-form-item>
  211. </el-col>
  212. </el-row>
  213. <el-row :gutter="24">
  214. <el-col :span="8">
  215. <el-form-item label="透前体重(kg)">
  216. <el-input v-model="form.befor_weight"></el-input>
  217. </el-form-item>
  218. </el-col>
  219. <el-col :span="8">
  220. <el-form-item label="透后体重(kg)">
  221. <el-input v-model="form.after_weight"></el-input>
  222. </el-form-item>
  223. </el-col>
  224. </el-row>
  225. <el-row :gutter="24">
  226. <el-col :span="8">
  227. <el-form-item label="透前血压(mmHg)">
  228. <el-input v-model="form.befor_pressure"></el-input>
  229. </el-form-item>
  230. </el-col>
  231. <el-col :span="8">
  232. <el-form-item label="透后血压(mmHg)">
  233. <el-input v-model="form.after_pressure"></el-input>
  234. </el-form-item>
  235. </el-col>
  236. </el-row>
  237. <el-row>
  238. <label class="title"><span class="name">阶段小结总结</span> : </label>
  239. <el-select v-model="form.template_summary_id" placeholder="请选择">
  240. <el-option
  241. v-for="item in options"
  242. :key="item.value"
  243. :label="item.label"
  244. :value="item.value">
  245. </el-option>
  246. </el-select>
  247. <el-input tyep="text" v-model="form.template_summary_content"></el-input>
  248. </el-row>
  249. <el-row>
  250. <label class="title"><span class="name">阶段小结个体化透析方案</span> : </label>
  251. <el-select v-model="form.template_plan_id" placeholder="请选择">
  252. <el-option
  253. v-for="item in options"
  254. :key="item.value"
  255. :label="item.label"
  256. :value="item.value">
  257. </el-option>
  258. </el-select>
  259. <el-input tyep="text" v-model="form.template_plan_content"></el-input>
  260. </el-row>
  261. <el-row>
  262. <label class="title"><span class="name">阶段小结化验结果</span> : </label>
  263. <el-select v-model="form.template_inspection_id" placeholder="请选择">
  264. <el-option
  265. v-for="item in options"
  266. :key="item.value"
  267. :label="item.label"
  268. :value="item.value">
  269. </el-option>
  270. </el-select>
  271. <el-input tyep="text" v-model="form.template_inspection_content"></el-input>
  272. </el-row>
  273. <el-row>
  274. <el-col :span="8">
  275. <el-form-item label="记录医生">
  276. <el-select v-model="form.admin_user_id" placeholder="请选择">
  277. <el-option
  278. v-for="item in options"
  279. :key="item.value"
  280. :label="item.label"
  281. :value="item.value">
  282. </el-option>
  283. </el-select>
  284. </el-form-item>
  285. </el-col>
  286. <el-col :span="8">
  287. <el-form-item label="记录时间">
  288. <el-date-picker
  289. v-model="form.record_time"
  290. type="datetime"
  291. placeholder="选择日期时间">
  292. </el-date-picker>
  293. </el-form-item>
  294. </el-col>
  295. </el-row>
  296. </el-form>
  297. </div>
  298. <div style="text-align: right; padding-right: 0px; padding-top: 10px; padding-bottom: 10px;">
  299. <el-button @click="show_dialog = false">取消</el-button>
  300. <el-button type="primary" @click="createAction">保存
  301. </el-button>
  302. </div>
  303. </div>
  304. </div>
  305. </el-dialog>
  306. </div>
  307. </div>
  308. <!-- </div> -->
  309. </template>
  310. <script>
  311. import PatientSidebar from './components/PatientSidebar'
  312. import Editor from '@/components/Editor'
  313. import { getInitDataList } from '@/api/patient'
  314. import { parseTime } from '@/utils'
  315. import BreadCrumb from '@/xt_pages/components/bread-crumb'
  316. import { uParseTime } from '@/utils/tools'
  317. const moment = require('moment')
  318. export default {
  319. name: 'templateSummary',
  320. components: {
  321. PatientSidebar,
  322. BreadCrumb,
  323. Editor
  324. },
  325. data() {
  326. return {
  327. loading: false,
  328. title: '',
  329. patient_id: 0,
  330. date: [],
  331. start_time: '',
  332. end_time: '',
  333. course_of_disease_time: '',
  334. records: [],
  335. doctors: [],
  336. current_select_record: null,
  337. show_dialog: false,
  338. show_edit_dialog: false,
  339. uploading_new_record: false,
  340. templates: this.$store.getters.configlist.course_disease,
  341. select_template: '',
  342. new_content: '',
  343. edit_new_content: '',
  344. edit_course_of_disease_time: '',
  345. selectingRows: [],
  346. table_current_index: -1,
  347. edit_current_id: 0,
  348. edit_title: '',
  349. value:'',
  350. form:{
  351. title:"",
  352. start_year:new Date(),
  353. start_month:new Date(),
  354. radio:1,
  355. quarter:1,
  356. dry_weight:"",
  357. dialysis_count:"",
  358. hd_count:"",
  359. hdf_count:"",
  360. hp_count:"",
  361. other_count:"",
  362. dialzer_apparatus:"",
  363. perfusion_apparatus:"",
  364. anticoagulant:"",
  365. kalium:"",
  366. autunite:"",
  367. natrium:"",
  368. houer:"",
  369. minute:"",
  370. befor_weight:"",
  371. after_weight:"",
  372. befor_pressure:"",
  373. after_pressure:"",
  374. template_summary_id:"",
  375. template_summary_content:"",
  376. template_plan_id:"",
  377. template_summary_content:"",
  378. template_inspection_id:"",
  379. template_inspection_content:"",
  380. admin_user_id:"",
  381. record_time:"",
  382. patient_id:"",
  383. start_time:"",
  384. end_time:"",
  385. },
  386. timeType:[
  387. {id:1,name:"第一季度"},
  388. {id:2,name:"第二季度"},
  389. {id:3,name:"第三季度"},
  390. {id:4,name:"第四季度"},
  391. ],
  392. options:[],
  393. }
  394. },
  395. created() {
  396. // this.patient_id = parseInt(this.$route.query.id)
  397. // if (isNaN(this.patient_id) || this.patient_id <= 0) {
  398. // this.$notify.error({
  399. // title: '错误',
  400. // message: '无效的id'
  401. // })
  402. // this.$router.push('/patients/patients')
  403. // return
  404. // }
  405. var now = new Date()
  406. this.date = [now.getTime() - (7 * 24 * 60 * 60 * 1000), now.getTime()]
  407. var nowDate = new Date()
  408. var nowYear = nowDate.getFullYear()
  409. var nowMonth = nowDate.getMonth() + 1
  410. var nowDay = nowDate.getDate()
  411. this.end_time =
  412. nowYear +
  413. '-' +
  414. (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
  415. '-' +
  416. (nowDay < 10 ? '0' + nowDay : nowDay)
  417. nowDate.setMonth(nowDate.getMonth() - 1)
  418. nowYear = nowDate.getFullYear()
  419. nowMonth = nowDate.getMonth() + 1
  420. nowDay = nowDate.getDate()
  421. this.start_time =
  422. nowYear +
  423. '-' +
  424. (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
  425. '-' +
  426. (nowDay < 10 ? '0' + nowDay : nowDay)
  427. this.getlist()
  428. },
  429. methods: {
  430. getTime(val) {
  431. if(val < 0){
  432. return ""
  433. }
  434. if(val == ""){
  435. return ""
  436. }else {
  437. return uParseTime(val, '{y}-{m}-{d}')
  438. }
  439. },
  440. showEdit(){
  441. },
  442. deleteAction(){
  443. },
  444. onRowClick(){
  445. },
  446. createAction(){
  447. },
  448. didChangeCurrentRecord(){
  449. },
  450. startTimeChange(){
  451. },
  452. endTimeChange(){
  453. },
  454. print(){
  455. },
  456. getQuarter(year,quarter){
  457. var start_time = ""
  458. if(quarter == 1){
  459. }
  460. // DateTime dt = new DateTime();
  461. // switch (quarter)
  462. // {
  463. // case "第一季度":
  464. // dt = new DateTime(year, 1, 1);
  465. // break;
  466. // case "第二季度":
  467. // dt = new DateTime(year, 4, 1);
  468. // break;
  469. // case "第三季度":
  470. // dt = new DateTime(year, 7, 1);
  471. // break;
  472. // case "第四季度":
  473. // dt = new DateTime(year, 10, 1);
  474. // break;
  475. // }
  476. },
  477. getlist(){
  478. var params={
  479. start_year:this.getTime(this.form.start_year),
  480. start_month:this.getTime(this.form.start_month),
  481. quarter:this.form.quarter,
  482. }
  483. console.log("param222222",params)
  484. console.log(moment(moment(2020 + '-01-01').toDate()).quarter(2).format("YYYY-MM-DD"))
  485. getInitDataList(params).then(response=>{
  486. })
  487. }
  488. }
  489. }
  490. </script>
  491. <style rel="stylesheet/css" lang="scss" scoped>
  492. .container {
  493. margin-left: 180px;
  494. padding: 20px;
  495. background: #fff;
  496. min-height: calc(100vh - 173px);
  497. margin-bottom: 15px;
  498. .record {
  499. padding-top: 20px;
  500. }
  501. }
  502. .record_content_panel {
  503. border-width: 1px;
  504. border-style: solid;
  505. border-color: #ebeef5;
  506. min-height: 200px;
  507. .title {
  508. font-size: 14px;
  509. font-weight: 500;
  510. color: #909399;
  511. line-height: 44px;
  512. height: 44px;
  513. text-align: center;
  514. border-bottom-width: 1px;
  515. border-bottom-style: solid;
  516. border-bottom-color: #ebeef5;
  517. }
  518. .content {
  519. padding: 12px 15px;
  520. font-size: 15px;
  521. color: gray;
  522. line-height: 22px;
  523. }
  524. }
  525. .new_record_form {
  526. /*/ / padding: 10 px, 25 px;*/
  527. .textarea_panel {
  528. margin-top: 10px;
  529. }
  530. }
  531. </style>
  532. <style>
  533. .el-table td,
  534. .el-table th.is-leaf,
  535. .el-table--border,
  536. .el-table--group {
  537. border-color: #d0d3da;
  538. }
  539. .el-table--border::after,
  540. .el-table--group::after,
  541. .el-table::before {
  542. background-color: #d0d3da;
  543. }
  544. </style>