lapsoSummary.vue 32KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869
  1. <template>
  2. <div class="patient-container">
  3. <patient-sidebar :id="patientID" defaultActive="7" v-on:tran-patient="onTranPatient"></patient-sidebar>
  4. <div class="patient-app-container advice-container app-container">
  5. <div style="display:flex;justify-content: space-between;align-items: center;margin-bottom: 12px;">
  6. <span style="font-weight:bold;">转归记录列表</span>
  7. <el-button size="medium" type="primary" @click="dialogVisible =true">新增</el-button>
  8. <!-- <el-button size="medium" type="primary" @click="toJiaoBen">脚本</el-button> -->
  9. </div>
  10. <el-table class="oictable" :data="tableData" border style="width:100%">
  11. <el-table-column prop="start_time" label="日期" align="center">
  12. <template slot-scope="scope">
  13. <span>{{ getTime(scope.row.record_date)}}</span>
  14. </template>
  15. </el-table-column>
  16. <el-table-column prop="blood_access_part_opera_id" label="转归类型" align="center">
  17. <template slot-scope="scope">
  18. <span v-if="scope.row.lapse_type == 1">转入</span>
  19. <span v-if="scope.row.lapse_type == 2">转出</span>
  20. <span v-if="scope.row.lapse_type == 3">死亡</span>
  21. <span v-if="scope.row.lapse_type == 4">院内转诊</span>
  22. </template>
  23. </el-table-column>
  24. <el-table-column prop="blood_access_part_id" label="转归分类" align="center">
  25. <template slot-scope="scope">
  26. <!-- <span v-if="scope.row.lapse_class == 1">终止透析</span>
  27. <span v-if="scope.row.lapse_class == 2">转出院外</span>
  28. <span v-if="scope.row.lapse_class == 3">回居住地透析</span>
  29. <span v-if="scope.row.lapse_class == 4">临时透析</span>
  30. <span v-if="scope.row.lapse_class == 5">转腹膜透析</span>
  31. <span v-if="scope.row.lapse_class == 6">其他</span>
  32. <span v-if="scope.row.lapse_class == 7">变更透析医院</span> -->
  33. <!-- <span v-if="scope.row.lapse_class == 1">留治</span>
  34. <span v-if="scope.row.lapse_class == 2">转出</span>
  35. <span v-if="scope.row.lapse_class == 3">死亡</span> -->
  36. <span v-if="scope.row.lapse_class == 4">转出院外</span>
  37. <span v-if="scope.row.lapse_class == 5">肾移植</span>
  38. <span v-if="scope.row.lapse_class == 6">转腹膜透析</span>
  39. <span v-if="scope.row.lapse_class == 7">出院</span>
  40. <span v-if="scope.row.lapse_class == 8">好转</span>
  41. <span v-if="scope.row.lapse_class == 9">放弃治疗</span>
  42. <span v-if="scope.row.lapse_class == 10">其他状态</span>
  43. <span v-if="scope.row.lapse_class ==11">请假</span>
  44. <span v-if="scope.row.lapse_class ==12">临时透析</span>
  45. <span v-if="scope.row.lapse_class ==13">回居住地透析</span>
  46. <span v-if="scope.row.lapse_class ==14">变更透析医院</span>
  47. </template>
  48. </el-table-column>
  49. <el-table-column prop="inflow_pass" label="原因" align="center">
  50. <template slot-scope="scope">
  51. {{ scope.row.lapse_reason }}
  52. </template>
  53. </el-table-column>
  54. <el-table-column prop="date" label="备注" align="center">
  55. <template slot-scope="scope">
  56. {{ scope.row.remark }}
  57. </template>
  58. </el-table-column>
  59. <el-table-column prop="date" label="操作" align="center">
  60. <template slot-scope="scope">
  61. <el-tooltip class="item" effect="dark" content="编辑" placement="top">
  62. <el-button
  63. type="primary"
  64. size="small"
  65. icon="el-icon-edit-outline"
  66. @click="handleUpdateAdviceTemplate(scope.row.id)"
  67. >
  68. </el-button>
  69. </el-tooltip>
  70. <el-tooltip class="item" effect="dark" content="删除" placement="top">
  71. <el-button
  72. size="small"
  73. type="danger"
  74. icon="el-icon-delete"
  75. @click="handleDeleteAdviceTemplate(scope.row.id, scope.$index)"
  76. >
  77. </el-button>
  78. </el-tooltip>
  79. </template>
  80. </el-table-column>
  81. </el-table>
  82. <el-pagination
  83. @size-change="handleSizeChange"
  84. @current-change="handleCurrentChange"
  85. :page-sizes="[10,20,50,100]"
  86. :page-size="10"
  87. background
  88. style="margin-top:20px;"
  89. align="right"
  90. layout="total, sizes, prev, pager, next, jumper"
  91. :total="total">
  92. </el-pagination>
  93. <el-dialog
  94. title="新增转归记录"
  95. :visible.sync="dialogVisible"
  96. width="65%"
  97. center>
  98. <el-form label-width="150px" :model="form" ref="form" :rules="rules" >
  99. <el-row :gutter="20">
  100. <el-col :span="11">
  101. <el-form-item label="姓名:">
  102. <el-input style="width:200px" v-model="name" :disabled="true"></el-input>
  103. </el-form-item>
  104. </el-col>
  105. <el-col :span="11">
  106. <el-form-item label="透析号:" >
  107. <el-input style="width:200px" v-model="dialysis_no" :disabled="true"></el-input>
  108. </el-form-item>
  109. </el-col>
  110. </el-row>
  111. <el-row :gutter="20" >
  112. <el-col :span="24" v-if="lapseto == 1">
  113. <el-form-item label="转归类型:">
  114. <el-radio-group style="padding: 10px;" v-model="lapse_type">
  115. <el-radio label="2">转出</el-radio>
  116. <el-radio label="3">死亡</el-radio>
  117. <el-radio label="4">院内转诊</el-radio>
  118. </el-radio-group>
  119. </el-form-item>
  120. </el-col>
  121. <el-col :span="24" v-if="lapseto == 2 || lapseto == 3 || lapseto == 4">
  122. <el-form-item label="转归类型:">
  123. <el-radio-group style="padding: 10px;" v-model="lapse_type">
  124. <el-radio label="1">转入</el-radio>
  125. </el-radio-group>
  126. </el-form-item>
  127. </el-col>
  128. </el-row>
  129. <el-row :gutter="20" v-if="lapse_type == 3">
  130. <el-col :span="24">
  131. <el-form-item label="住院/门诊:">
  132. <el-radio-group style="padding: 10px;" v-model="his_type">
  133. <el-radio label="1">门诊</el-radio>
  134. <el-radio label="2">住院</el-radio>
  135. </el-radio-group>
  136. </el-form-item>
  137. </el-col>
  138. </el-row>
  139. <el-row :gutter="20" v-if="lapse_type == 4">
  140. <el-col :span="8">
  141. <el-form-item label="开始时间:">
  142. <el-date-picker
  143. v-model="start_time"
  144. type="date"
  145. value-format="yyyy-MM-dd"
  146. placeholder="选择日期">
  147. </el-date-picker>
  148. </el-form-item>
  149. </el-col>
  150. <el-col :span="8">
  151. <el-form-item label="结束时间:">
  152. <el-date-picker
  153. v-model="end_time"
  154. type="date"
  155. value-format="yyyy-MM-dd"
  156. placeholder="选择日期">
  157. </el-date-picker>
  158. </el-form-item>
  159. </el-col>
  160. <el-col :span="8">
  161. <el-form-item label="转院地区:">
  162. <el-input style="width: 200px" v-model="patient_address"></el-input>
  163. </el-form-item>
  164. </el-col>
  165. </el-row>
  166. <el-row :gutter="20" v-if="lapse_type == 3 && his_type==2">
  167. <el-col :span="11">
  168. <el-form-item label="病区:">
  169. <el-input style="width: 200px" v-model="his_zone"></el-input>
  170. </el-form-item>
  171. </el-col>
  172. <el-col :span="11">
  173. <el-form-item label="床号:">
  174. <el-input style="width: 200px" v-model="his_bed"></el-input>
  175. </el-form-item>
  176. </el-col>
  177. </el-row>
  178. <el-row :gutter="20">
  179. <el-col :span="23">
  180. <el-form-item label="转归分类:">
  181. <el-radio-group style="padding: 10px;" v-model="lapse_class">
  182. <el-radio label="4">转出院外</el-radio>
  183. <el-radio label="5">肾移植</el-radio>
  184. <el-radio label="6">转腹膜透析</el-radio>
  185. <el-radio label="7">出院</el-radio>
  186. <el-radio label="8">好转</el-radio>
  187. <el-radio label="9">放弃治疗</el-radio>
  188. <el-radio label="10">其他状态</el-radio>
  189. <el-radio label="11">请假</el-radio>
  190. <el-radio label="12">临时透析</el-radio>
  191. <el-radio label="13">回居住地透析</el-radio>
  192. <el-radio label="14">变更透析医院</el-radio>
  193. </el-radio-group>
  194. </el-form-item>
  195. </el-col>
  196. </el-row>
  197. <el-row :gutter="20" v-if="lapse_class == 11">
  198. <el-col :span="8">
  199. <el-form-item label="开始时间:">
  200. <el-date-picker
  201. v-model="start_time_one"
  202. type="date"
  203. value-format="yyyy-MM-dd"
  204. placeholder="选择日期">
  205. </el-date-picker>
  206. </el-form-item>
  207. </el-col>
  208. <el-col :span="8">
  209. <el-form-item label="结束时间:">
  210. <el-date-picker
  211. v-model="end_time_one"
  212. type="date"
  213. value-format="yyyy-MM-dd"
  214. placeholder="选择日期">
  215. </el-date-picker>
  216. </el-form-item>
  217. </el-col>
  218. </el-row>
  219. <el-row :gutter="20">
  220. <el-col :span="23">
  221. <el-form-item label="原因:">
  222. <el-input style="width: 300px;" :rows="2" type="textarea" v-model="lapse_reason"></el-input>
  223. </el-form-item>
  224. </el-col>
  225. </el-row>
  226. <el-row :gutter="20">
  227. <el-col :span="11">
  228. <el-form-item label="操作人:">
  229. <el-select v-model="admin_user_id" placeholder="请选择">
  230. <el-option
  231. v-for="item in adminUserList"
  232. :key="item.admin_user_id"
  233. :label="item.user_name"
  234. :value="item.admin_user_id">
  235. </el-option>
  236. </el-select>
  237. </el-form-item>
  238. </el-col>
  239. <el-col :span="11">
  240. <el-form-item label="日期:">
  241. <el-date-picker
  242. v-model="record_date"
  243. type="date"
  244. value-format="yyyy-MM-dd"
  245. placeholder="选择日期">
  246. </el-date-picker>
  247. </el-form-item>
  248. </el-col>
  249. </el-row>
  250. <el-row :gutter="24">
  251. <el-col :span="24">
  252. <el-form-item label="备注:">
  253. <el-input style="width: 300px;" :rows="2" type="textarea" v-model="remark"></el-input>
  254. </el-form-item>
  255. </el-col>
  256. </el-row>
  257. </el-form>
  258. <span slot="footer" class="dialog-footer">
  259. <el-button @click="dialogVisible = false">取 消</el-button>
  260. <el-button type="primary" @click="savePatientLapse('form')">保存</el-button>
  261. </span>
  262. </el-dialog>
  263. <el-dialog
  264. title="编辑转归记录"
  265. :visible.sync="editDialogVisible"
  266. width="65%"
  267. center>
  268. <el-form label-width="150px" :model="form" ref="form" :rules="rules" >
  269. <el-row :gutter="20">
  270. <el-col :span="11">
  271. <el-form-item label="姓名:">
  272. <el-input style="width:200px" v-model="name" :disabled="true"></el-input>
  273. </el-form-item>
  274. </el-col>
  275. <el-col :span="11">
  276. <el-form-item label="透析号:" >
  277. <el-input style="width:200px" v-model="dialysis_no" :disabled="true"></el-input>
  278. </el-form-item>
  279. </el-col>
  280. </el-row>
  281. <el-row :gutter="20">
  282. <el-col :span="24" v-if="lapseto == 1">
  283. <el-form-item label="转归类型:">
  284. <el-radio-group style="padding: 10px;" v-model="lapse_type">
  285. <el-radio label="2">转出</el-radio>
  286. <el-radio label="3">死亡</el-radio>
  287. <el-radio label="4">院内转诊</el-radio>
  288. </el-radio-group>
  289. </el-form-item>
  290. </el-col>
  291. <el-col :span="24" v-if="lapseto == 2">
  292. <el-form-item label="转归类型:">
  293. <el-radio-group style="padding: 10px;" v-model="lapse_type">
  294. <el-radio label="1">转入</el-radio>
  295. </el-radio-group>
  296. </el-form-item>
  297. </el-col>
  298. </el-row>
  299. <el-row :gutter="20" v-if="lapse_type == 3">
  300. <el-col :span="24">
  301. <el-form-item label="住院/门诊:">
  302. <el-radio-group style="padding: 10px;" v-model="his_type">
  303. <el-radio label="1">门诊</el-radio>
  304. <el-radio label="2">住院</el-radio>
  305. </el-radio-group>
  306. </el-form-item>
  307. </el-col>
  308. </el-row>
  309. <el-row :gutter="20" v-if="lapse_type == 4">
  310. <el-col :span="8">
  311. <el-form-item label="开始时间:">
  312. <el-date-picker
  313. v-model="start_time"
  314. type="date"
  315. value-format="yyyy-MM-dd"
  316. placeholder="选择日期">
  317. </el-date-picker>
  318. </el-form-item>
  319. </el-col>
  320. <el-col :span="8">
  321. <el-form-item label="结束时间:">
  322. <el-date-picker
  323. v-model="end_time"
  324. type="date"
  325. value-format="yyyy-MM-dd"
  326. placeholder="选择日期">
  327. </el-date-picker>
  328. </el-form-item>
  329. </el-col>
  330. <el-col :span="8">
  331. <el-form-item label="转院地区:">
  332. <el-input style="width: 200px" v-model="patient_address"></el-input>
  333. </el-form-item>
  334. </el-col>
  335. </el-row>
  336. <el-row :gutter="20" v-if="lapse_type == 3 && his_type==2">
  337. <el-col :span="11">
  338. <el-form-item label="病区:">
  339. <el-input style="width: 200px" v-model="his_zone"></el-input>
  340. </el-form-item>
  341. </el-col>
  342. <el-col :span="11">
  343. <el-form-item label="床号:">
  344. <el-input style="width: 200px" v-model="his_bed"></el-input>
  345. </el-form-item>
  346. </el-col>
  347. </el-row>
  348. <el-row :gutter="20">
  349. <el-col :span="24">
  350. <el-form-item label="转归分类:">
  351. <el-radio-group style="padding: 10px;" v-model="lapse_class">
  352. <el-radio label="4">转出院外</el-radio>
  353. <el-radio label="5">肾移植</el-radio>
  354. <el-radio label="6">转腹膜透析</el-radio>
  355. <el-radio label="7">出院</el-radio>
  356. <el-radio label="8">好转</el-radio>
  357. <el-radio label="9">放弃治疗</el-radio>
  358. <el-radio label="10">其他状态</el-radio>
  359. <el-radio label="11">请假</el-radio>
  360. <el-radio label="12">临时透析</el-radio>
  361. <el-radio label="13">回居住地透析</el-radio>
  362. <el-radio label="14">变更透析医院</el-radio>
  363. </el-radio-group>
  364. </el-form-item>
  365. </el-col>
  366. </el-row>
  367. <el-row :gutter="20" v-if="lapse_class == 11">
  368. <el-col :span="8">
  369. <el-form-item label="开始时间:">
  370. <el-date-picker
  371. v-model="start_time_one"
  372. type="date"
  373. value-format="yyyy-MM-dd"
  374. placeholder="选择日期">
  375. </el-date-picker>
  376. </el-form-item>
  377. </el-col>
  378. <el-col :span="8">
  379. <el-form-item label="结束时间:">
  380. <el-date-picker
  381. v-model="end_time_one"
  382. type="date"
  383. value-format="yyyy-MM-dd"
  384. placeholder="选择日期">
  385. </el-date-picker>
  386. </el-form-item>
  387. </el-col>
  388. </el-row>
  389. <el-row :gutter="20">
  390. <el-col :span="24">
  391. <el-form-item label="原因:">
  392. <el-input style="width: 300px;" :rows="2" type="textarea" v-model="lapse_reason"></el-input>
  393. </el-form-item>
  394. </el-col>
  395. </el-row>
  396. <el-row :gutter="20">
  397. <el-col :span="12">
  398. <el-form-item label="操作人:">
  399. <el-select v-model="admin_user_id" placeholder="请选择">
  400. <el-option
  401. v-for="item in adminUserList"
  402. :key="item.admin_user_id"
  403. :label="item.user_name"
  404. :value="item.admin_user_id">
  405. </el-option>
  406. </el-select>
  407. </el-form-item>
  408. </el-col>
  409. <el-col :span="12">
  410. <el-form-item label="日期:">
  411. <el-date-picker
  412. v-model="record_date"
  413. type="date"
  414. value-format="yyyy-MM-dd"
  415. placeholder="选择日期">
  416. </el-date-picker>
  417. </el-form-item>
  418. </el-col>
  419. </el-row>
  420. <el-row :gutter="20">
  421. <el-col :span="24">
  422. <el-form-item label="备注:">
  423. <el-input style="width: 300px;" :rows="2" type="textarea" v-model="remark"></el-input>
  424. </el-form-item>
  425. </el-col>
  426. </el-row>
  427. </el-form>
  428. <span slot="footer" class="dialog-footer">
  429. <el-button @click="editDialogVisible = false">取 消</el-button>
  430. <el-button type="primary" @click="updatePatientLapse('form')">保存</el-button>
  431. </span>
  432. </el-dialog>
  433. </div>
  434. </div>
  435. </template>
  436. <script>
  437. const moment = require('moment')
  438. import PatientSidebar from './components/PatientSidebar'
  439. import { savePatientLapse,getAllDoctor,deletePatientLapsoRrecord,getPatientById,getPatientLapseRecord,getPatientLapsoSummary,updatePatientLapseRecord,getPatientLapsoList} from '@/api/patient'
  440. import { jsGetAge, uParseTime } from '@/utils/tools'
  441. import { getDataConfig } from '@/utils/data'
  442. import multiSelectBox from '../dialysis/details/dialog/MultiSelectBox'
  443. import sitemap from './Sitemap'
  444. export default {
  445. name: 'doctorAdvice',
  446. components: {
  447. PatientSidebar,
  448. multiSelectBox,
  449. sitemap
  450. },
  451. data() {
  452. return {
  453. tableData: [],
  454. nowtime: moment(new Date()).format('YYYY-MM-DD'),
  455. page: 1,
  456. limit: 10,
  457. total: 0,
  458. rules: {
  459. start_time: [{ required: true, message: '请输入建立日期' }],
  460. access_project: [{ required: true, message: '请选择通路项目' }],
  461. blood_access_part_opera_id:[{required:true,message:'请选择血管通路类型'}],
  462. blood_access_part_id:[{required:true,message:"请选择血管通路"}],
  463. // first_start_time:[{required:true,message:"请选择首次启用日期"}],
  464. user_status:[{required:true,message:"请选择使用状态"}]
  465. },
  466. dialogVisible:false,
  467. editDialogVisible:false,
  468. form:{
  469. id:0,
  470. access_project:"1",
  471. blood_access_part_id:"",
  472. blood_access_part_opera_id:"",
  473. inflow_pass:"",
  474. start_time:moment(new Date()).format('YYYY-MM-DD'),
  475. first_start_time:moment(new Date()).format('YYYY-MM-DD'),
  476. stop_reason:"",
  477. user_status:1,
  478. remark:"",
  479. stop_time:"",
  480. other_vascular:"",
  481. ci_type:"",//导管感染转归
  482. blood_cultupe:"", //血培养检查结果
  483. sequelae_type:"",//患者导管转归类型
  484. },
  485. options:[
  486. {id:1,name:"启用"},
  487. {id:2,name:"停用"},
  488. {id:3,name:"备用"}
  489. ],
  490. optionsPass:[
  491. {id:1,name:"流入-动脉"},
  492. {id:2,name:"流出-静脉"},
  493. ],
  494. blood_access_part_opera:[],
  495. blood_access_part:[],
  496. show:false,
  497. doctorList:[],
  498. InnerDialogProps: {
  499. values: [],
  500. visibility: false,
  501. isShowTextArea: true,
  502. customContent: '',
  503. titles: '',
  504. type: '' // 不同弹框类型,用来匹配数据
  505. },
  506. new_blood_access_part_opera:[],
  507. new_blood_access_part:[],
  508. // 导管感染类型
  509. optionsOne:[
  510. {id:1,name:"局部感染"},
  511. {id:2,name:"静脉炎"},
  512. {id:3,name:"导管细菌定植"},
  513. {id:4,name:"导管相关血型感染"},
  514. ],
  515. // 导管转归类型
  516. optionsTwo:[
  517. {id:1,name:"拔管"},
  518. {id:2,name:"治愈"},
  519. {id:3,name:"死亡"},
  520. {id:4,name:"放弃"},
  521. {id:9,name:"其它"},
  522. ],
  523. // 血培养检查结果
  524. optionsThree:[
  525. {id:0,name:"阴性"},
  526. {id:1,name:"阳性"},
  527. {id:9,name:"未查"}
  528. ],
  529. showOne:false,
  530. name:"",
  531. dialysis_no:"",
  532. lapse_type:"1",
  533. lapse_class:"1",
  534. lapse_reason:"",
  535. record_date:"",
  536. remark:"",
  537. adminUserList:[],
  538. limit:10,
  539. page:1,
  540. total:0,
  541. id:0,
  542. admin_user_id:this.$store.getters.xt_user.user.id,
  543. lapseto:0,
  544. his_type:"1",
  545. his_zone:"",
  546. his_bed:"",
  547. start_time:"",
  548. end_time:"",
  549. patient_address:"",
  550. start_time_one:"",
  551. end_time_one:"",
  552. }
  553. },
  554. methods: {
  555. toJiaoBen(){
  556. getPatientLapsoList().then(response=>{
  557. })
  558. },
  559. clickuseradvicecell(row, column, cell, event) {
  560. },
  561. onTranPatient: function(tranPatient) {
  562. this.currentPatient = tranPatient
  563. },
  564. CreateTime(time) {
  565. return uParseTime(time, '{y}-{m}-{d} {h}:{i}:{s}')
  566. },
  567. handleSizeChange(limit) {
  568. this.limit = limit
  569. this.getlist()
  570. },
  571. handleCurrentChange(page) {
  572. this.page = page
  573. this.getlist()
  574. },
  575. changeStatus(val){
  576. if(val == 1 ){
  577. this.show = false
  578. }
  579. if(val == 2){
  580. this.show = true
  581. }
  582. },
  583. getTime(val) {
  584. if(val < 0){
  585. return ""
  586. }
  587. if(val == ""){
  588. return ""
  589. }else {
  590. return uParseTime(val, '{y}-{m}-{d}')
  591. }
  592. },
  593. getDoctor(id){
  594. var name = ""
  595. for(let i=0;i<this.doctorList.length;i++){
  596. if(id == this.doctorList[i].admin_user_id){
  597. name = this.doctorList[i].user_name
  598. }
  599. }
  600. return name
  601. },
  602. getPatientById(id){
  603. getPatientById(id).then(response=>{
  604. if(response.data.state ==1){
  605. var patient = response.data.data.patients
  606. if(patient.lapseto == 1){
  607. this.lapse_type="2"
  608. }
  609. if(patient.lapseto == 2){
  610. this.lapse_type="1"
  611. }
  612. this.lapseto = patient.lapseto
  613. this.dialysis_no = patient.dialysis_no
  614. this.name = patient.name
  615. }
  616. })
  617. },
  618. getAllDoctor() {
  619. getAllDoctor().then(response => {
  620. if (response.data.state == 1) {
  621. var appRole = response.data.data.appRole
  622. this.adminUserList = appRole
  623. }
  624. })
  625. },
  626. getLapseType(id){
  627. var name = ""
  628. if(id == 4){
  629. name = "转出院外"
  630. }
  631. if(id == 5){
  632. name = "转出院外"
  633. }
  634. if(id == 6){
  635. name = "回居住地透析"
  636. }
  637. if(id == 7){
  638. name = "临时透析"
  639. }
  640. if(id == 8){
  641. name = "转腹膜透析"
  642. }
  643. if(id == 9){
  644. name = "其他"
  645. }
  646. if(id == 10){
  647. name = "变更透析医院"
  648. }
  649. if(id == 11){
  650. name = "住院"
  651. }
  652. if(id == 12){
  653. name = "转血透科"
  654. }
  655. if(id == 13){
  656. name = "回居住地透析"
  657. }
  658. if(id == 14){
  659. name = "变更透析医院"
  660. }
  661. return name
  662. },
  663. savePatientLapse(){
  664. if(this.lapse_type!=1 && this.lapse_reason == ""){
  665. this.$message.error("转出或者死亡原因不能为空!")
  666. return false
  667. }
  668. var params = {
  669. patient_id:this.patientID,
  670. lapse_type:parseInt(this.lapse_type),
  671. lapse_class:parseInt(this.lapse_class),
  672. lapse_reason:this.lapse_reason,
  673. record_date:this.record_date,
  674. admin_user_id:this.admin_user_id,
  675. remark:this.remark,
  676. lapse_type_name:this.getLapseType(this.lapse_type),
  677. his_bed:this.his_bed,
  678. his_type: parseInt(this.his_type),
  679. his_zone:this.his_zone,
  680. patient_address:this.patient_address,
  681. start_time:this.start_time,
  682. end_time:this.end_time,
  683. start_time_one:this.start_time_one,
  684. end_time_one:this.end_time_one,
  685. }
  686. console.log("params=====",params)
  687. savePatientLapse(params).then(response=>{
  688. if(response.data.state==1){
  689. var record = response.data.data.record
  690. this.$message.success("保存成功!")
  691. this.dialogVisible = false
  692. this.remark = ""
  693. this.lapse_reason = ""
  694. this.getlist()
  695. }
  696. })
  697. },
  698. getlist(){
  699. var params = {
  700. patient_id:this.patientID,
  701. limit:this.limit,
  702. page:this.page,
  703. }
  704. getPatientLapseRecord(params).then(response=>{
  705. if(response.data.state == 1){
  706. var total = response.data.data.total
  707. this.total = total
  708. var record = response.data.data.record
  709. this.tableData = record
  710. }
  711. })
  712. },
  713. handleUpdateAdviceTemplate(id){
  714. getPatientLapsoSummary(id).then(response=>{
  715. if(response.data.state == 1){
  716. var lapsorecord = response.data.data.lapsorecord
  717. console.log("lapsorecord",lapsorecord)
  718. this.lapse_type = lapsorecord.lapse_type.toString()
  719. this.lapse_class = lapsorecord.lapse_class.toString()
  720. this.lapse_reason = lapsorecord.lapse_reason
  721. this.record_date = this.getTime(lapsorecord.record_date)
  722. this.remark = lapsorecord.remark
  723. this.admin_user_id = lapsorecord.admin_user_id
  724. this.his_bed = lapsorecord.his_bed
  725. this.his_zone = lapsorecord.his_zone
  726. this.his_type = lapsorecord.his_type
  727. this.id = lapsorecord.id
  728. this.patient_address = lapsorecord.patient_address
  729. this.start_time = this.getTime(lapsorecord.start_time)
  730. this.end_time = this.getTime(lapsorecord.end_time)
  731. this.start_time_one = this.getTime(lapsorecord.start_time_one)
  732. this.end_time_one = this.getTime(lapsorecord.end_time_one)
  733. this.editDialogVisible = true
  734. }
  735. })
  736. },
  737. updatePatientLapse(){
  738. if (this.lapse_type !=1 &&this.lapse_reason == ""){
  739. this.$message.error("转出或者死亡原因不能为空!")
  740. return false
  741. }
  742. var params = {
  743. patient_id:this.patientID,
  744. lapse_type:parseInt(this.lapse_type),
  745. lapse_class:parseInt(this.lapse_class),
  746. lapse_type_name:this.getLapseType(this.lapse_type),
  747. lapse_reason:this.lapse_reason,
  748. record_date:this.record_date,
  749. admin_user_id:this.admin_user_id,
  750. remark:this.remark,
  751. id:this.id,
  752. his_bed:this.his_bed,
  753. his_type:parseInt(this.his_type),
  754. his_zone:this.his_zone,
  755. patient_address:this.patient_address,
  756. start_time:this.start_time,
  757. end_time:this.end_time,
  758. start_time_one:this.start_time_one,
  759. end_time_one:this.end_time_one,
  760. }
  761. updatePatientLapseRecord(params).then(response=>{
  762. if(response.data.state== 1){
  763. var record = response.data.data.record
  764. this.editDialogVisible = false
  765. this.$message.success("保存成功!")
  766. this.getlist()
  767. }
  768. })
  769. },
  770. handleDeleteAdviceTemplate(id,index){
  771. deletePatientLapsoRrecord(id).then(response=>{
  772. if(response.data.state==1){
  773. var msg = response.data.data.msg
  774. this.$message.success("保存成功")
  775. this.tableData.splice(index,1)
  776. }
  777. })
  778. }
  779. },
  780. created() {
  781. this.record_date = moment(new Date()).format('YYYY-MM-DD')
  782. const id = this.$route.params && this.$route.params.id
  783. console.log('id是设么', id)
  784. this.patientID = parseInt(id)
  785. this.getPatientById(id)
  786. this.getAllDoctor()
  787. this.getlist()
  788. },
  789. }
  790. </script>
  791. <style>
  792. .oictable ::-webkit-scrollbar {
  793. height: 15px;
  794. }
  795. </style>
  796. <style rel="stylesheet/scss" lang="scss">
  797. ::-webkit-scrollbar{
  798. height:15px;
  799. }
  800. </style>