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

hospitalSummary.vue 48KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232
  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="addAction">新增</el-button>
  10. <el-button type="primary" icon="el-icon-edit-outline" size="small"
  11. @click="toEdit">修改</el-button>
  12. <el-button type="primary" icon="el-icon-printer" size="small"
  13. @click="print">打印</el-button>
  14. <el-button size="small" type="danger" @click="deleteAction">删除</el-button>
  15. </span>
  16. </div>
  17. <div class="cell clearfix">
  18. <label class="title"><span class="name">日期查询</span> : </label>
  19. <el-date-picker v-model="start_time" prefix-icon="el-icon-date" :editable="false" style="width: 196px;"
  20. type="date" placeholder="选择日期时间" align="right" format="yyyy-MM-dd"
  21. value-format="yyyy-MM-dd" @change="startTimeChange"></el-date-picker>
  22. <span class="">-</span>
  23. <el-date-picker v-model="end_time" prefix-icon="el-icon-date" :editable="false" style="width: 196px;"
  24. type="date" placeholder="选择日期时间" align="right" format="yyyy-MM-dd"
  25. value-format="yyyy-MM-dd" @change="endTimeChange"></el-date-picker>
  26. </div>
  27. <div class="record">
  28. <el-row :gutter="15">
  29. <el-col :span="10">
  30. <el-table :header-cell-style="{
  31. backgroundColor: 'rgb(245, 247, 250)',
  32. color: '#606266'
  33. }"
  34. :row-style="{ color: '#303133' }" ref="monthlyPlanTable" :data="tableData"
  35. border highlight-current-row @current-change="changeCurrentRecordTwo"
  36. @selection-change="selectSummary"
  37. :row-class-name="tableRow"
  38. >
  39. <el-table-column type="selection" width="60" align="center"></el-table-column>
  40. <el-table-column label="标题" align="center">
  41. <template slot-scope="scope">
  42. {{scope.row.title}}
  43. </template>
  44. </el-table-column>
  45. <el-table-column label="记录日期" align="center">
  46. <template slot-scope="scope">
  47. {{getTime(scope.row.record_date)}}
  48. </template>
  49. </el-table-column>
  50. <el-table-column label="住院医师" align="center">
  51. <template slot-scope="scope">
  52. {{getDoctor(scope.row.doctor)}}
  53. </template>
  54. </el-table-column>
  55. </el-table>
  56. </el-col>
  57. <el-col :span="14">
  58. <div class="record_content_panel">
  59. <div style="background-color:rgb(245, 247, 250)" class="title">出院小结内容</div>
  60. <div style="padding:10px;border-bottom:1px solid #DCDFE6;">标题:
  61. {{hosDetail.title}}
  62. </div>
  63. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">入院时间:
  64. <span v-if="hosDetail.admission_time > 0">{{getTime(hosDetail.admission_time)?getTime(hosDetail.admission_time):""}}</span>
  65. </div>
  66. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">出院时间:
  67. <span v-if="hosDetail.discharge_time > 0">{{getTime(hosDetail.discharge_time)}}</span>
  68. </div>
  69. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">上级医师签名:
  70. {{getDoctor(hosDetail.dean_id)}}
  71. </div>
  72. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">住院医师签名:
  73. {{getDoctor(hosDetail.doctor)}}
  74. </div>
  75. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">记录日期:
  76. <span v-if="hosDetail.record_date > 0">{{getTime(hosDetail.record_date)}}</span>
  77. </div>
  78. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">病案号:
  79. {{hosDetail.sick_personnel}}
  80. </div>
  81. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">X线:
  82. {{hosDetail.xray}}
  83. </div>
  84. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">CT:
  85. {{hosDetail.connecticut}}
  86. </div>
  87. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">MRI:
  88. {{hosDetail.nuclear_magnetic_resonance}}
  89. </div>
  90. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">超声:
  91. {{hosDetail.ultrasound}}
  92. </div>
  93. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">病理:
  94. {{hosDetail.pathology}}
  95. </div>
  96. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">入院诊断:
  97. <span style="word-break: break-all; word-wrap: break-word;" v-html="hosDetail.admitting_diagnosis"></span>
  98. </div>
  99. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">出院诊断:
  100. <span style="word-break: break-all; word-wrap: break-word;" v-html="hosDetail.discharge_diagnosis"></span>
  101. </div>
  102. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">入院时病情:
  103. <span style="word-break: break-all; word-wrap: break-word;" v-html="hosDetail.diagnosis_admission"></span>
  104. </div>
  105. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">诊断经过:
  106. <span style="word-break: break-all; word-wrap: break-word;" v-html="hosDetail.treatment"></span>
  107. </div>
  108. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">出院时病情:
  109. <span style="word-break: break-all; word-wrap: break-word;" v-html="hosDetail.illness_discharge"></span>
  110. </div>
  111. <div style="padding:10px;border-bottom:1px solid #DCDFE6;line-height:20px;">出院医嘱:
  112. <span style="word-break: break-all; word-wrap: break-word;" v-html="hosDetail.discharge_advice"></span>
  113. </div>
  114. </div>
  115. </el-col>
  116. </el-row>
  117. </div>
  118. </div>
  119. <el-dialog title="新增出院小结" width="60%" top="5vh" :visible.sync="show_dialog">
  120. <div>
  121. <div class="new_record_form">
  122. <div class="cell clearfix">
  123. <label class="title"><span class="name">标题</span> : </label>
  124. <el-input v-model="form.title" style="width:200px"></el-input>
  125. <label class="title"><span class="name">入院时间</span> : </label>
  126. <el-date-picker v-model="form.admission_time"
  127. prefix-icon="el-icon-date"
  128. style="width: 200px;"
  129. type="date" placeholder="选择日期时间" align="right" format="yyyy-MM-dd"
  130. value-format="yyyy-MM-dd">
  131. </el-date-picker>
  132. <label class="title"><span class="name">出院时间</span> : </label>
  133. <el-date-picker v-model="form.discharge_time"
  134. prefix-icon="el-icon-date"
  135. style="width: 200px;"
  136. type="date" placeholder="选择日期时间" align="right" format="yyyy-MM-dd"
  137. value-format="yyyy-MM-dd">
  138. </el-date-picker>
  139. </div>
  140. <div class="cell clearfix" style="margin-top:10px">
  141. <label class="title"><span class="name">上级医师签名</span>:</label>
  142. <el-select v-model="form.dean" placeholder="请选择">
  143. <el-option
  144. v-for="item in doctorList"
  145. :key="item.admin_user_id"
  146. :label="item.user_name"
  147. :value="item.admin_user_id">
  148. </el-option>
  149. </el-select>
  150. <label class="title"><span class="name">住院医师签名</span>:</label>
  151. <el-select v-model="form.doctor" placeholder="请选择">
  152. <el-option
  153. v-for="item in doctorList"
  154. :key="item.admin_user_id"
  155. :label="item.user_name"
  156. :value="item.admin_user_id">
  157. </el-option>
  158. </el-select>
  159. <label class="title"><span class="name">记录日期</span> : </label>
  160. <el-date-picker v-model="form.record_date"
  161. prefix-icon="el-icon-date"
  162. style="width: 200px;"
  163. type="date" placeholder="选择日期时间" align="right" format="yyyy-MM-dd"
  164. value-format="yyyy-MM-dd">
  165. </el-date-picker>
  166. </div>
  167. <div class="cell clearfix" style="margin-top:10px">
  168. <label class="title"><span class="name">病案号</span> : </label>
  169. <el-input v-model="form.sick_personnel" style="width:200px"></el-input>
  170. <label class="title"><span class="name">X线</span> : </label>
  171. <el-input v-model="form.xray" style="width:200px"></el-input>
  172. <label class="title"><span class="name">CT</span> : </label>
  173. <el-input v-model="form.connecticut" style="width:200px"></el-input>
  174. </div>
  175. <div class="cell clearfix" style="margin-top:10px">
  176. <label class="title"><span class="name">MRI</span> : </label>
  177. <el-input v-model="form.nuclear_magnetic_resonance" style="width:200px"></el-input>
  178. <label class="title"><span class="name">超声</span> : </label>
  179. <el-input v-model="form.ultrasound" style="width:200px"></el-input>
  180. <label class="title"><span class="name">病理</span> : </label>
  181. <el-input v-model="form.pathology" style="width:200px"></el-input>
  182. </div>
  183. <div class="cell clearfix" style="margin-top:10px">
  184. <label class="title"><span class="name">入院诊断</span> : </label>
  185. <el-select v-model="form.admitting_diagnosis_id" placeholder="可选择病程模板" @change="changeAmittDiagnosis">
  186. <el-option v-for="(option, index) in templates" :key="index" :label="option.title"
  187. :value="option.content"></el-option>
  188. </el-select>
  189. <div class="textarea_panel">
  190. <keep-alive>
  191. <editor ref="editor"
  192. id="editors"
  193. style="width: 800px"
  194. v-bind:r_content="form.admitting_diagnosis">
  195. </editor>
  196. </keep-alive>
  197. </div>
  198. </div>
  199. <div class="cell clearfix" style="margin-top:10px">
  200. <label class="title"><span class="name">出院诊断</span> : </label>
  201. <el-select v-model="form.discharge_diagnosis_id" placeholder="可选择病程模板" @change="changeDischargeDiagnosis">
  202. <el-option v-for="(option, index) in templatesOne" :key="index" :label="option.title"
  203. :value="option.content"></el-option>
  204. </el-select>
  205. <div class="textarea_panel">
  206. <keep-alive>
  207. <editor ref="editorOne"
  208. id="editorsOne"
  209. style="width: 800px"
  210. v-bind:r_content="form.discharge_diagnosis">
  211. </editor>
  212. </keep-alive>
  213. </div>
  214. </div>
  215. <div class="cell clearfix" style="margin-top:10px">
  216. <label class="title"><span class="name">入院时病情</span> : </label>
  217. <el-select v-model="form.diagnosis_admission_id" placeholder="可选择病程模板" @change="changeDiagnosisAdmission">
  218. <el-option v-for="(option, index) in templatesTwo" :key="index" :label="option.title"
  219. :value="option.content"></el-option>
  220. </el-select>
  221. <div class="textarea_panel">
  222. <keep-alive>
  223. <editor ref="editorTwo"
  224. id="editorTwo"
  225. style="width: 800px"
  226. v-bind:r_content="form.diagnosis_admission">
  227. </editor>
  228. </keep-alive>
  229. </div>
  230. </div>
  231. <div class="cell clearfix" style="margin-top:10px">
  232. <label class="title"><span class="name">诊断经过</span> : </label>
  233. <el-select v-model="form.treatment_id" placeholder="可选择病程模板" @change="changeTreatment">
  234. <el-option v-for="(option, index) in templatesThree" :key="index" :label="option.title"
  235. :value="option.content"></el-option>
  236. </el-select>
  237. <div class="textarea_panel">
  238. <keep-alive>
  239. <editor ref="editorFour"
  240. id="editorsFour"
  241. style="width: 800px"
  242. v-bind:r_content="form.treatment">
  243. </editor>
  244. </keep-alive>
  245. </div>
  246. </div>
  247. <div class="cell clearfix" style="margin-top:10px">
  248. <label class="title"><span class="name">出院时病情</span> : </label>
  249. <el-select v-model="form.illness_discharge_id" placeholder="可选择病程模板" @change="changeillnessDisCharge">
  250. <el-option v-for="(option, index) in templatesFour" :key="index" :label="option.title"
  251. :value="option.content"></el-option>
  252. </el-select>
  253. <div class="textarea_panel">
  254. <keep-alive>
  255. <editor ref="editorFive"
  256. id="editorFive"
  257. style="width: 800px"
  258. v-bind:r_content="form.illness_discharge">
  259. </editor>
  260. </keep-alive>
  261. </div>
  262. </div>
  263. <div class="cell clearfix" style="margin-top:10px">
  264. <label class="title"><span class="name">出院医嘱</span> : </label>
  265. <el-select v-model="form.discharge_advice_id" placeholder="可选择病程模板" @change="changeDischargeAdvice">
  266. <el-option v-for="(option, index) in templatesFive" :key="index" :label="option.title"
  267. :value="option.content"></el-option>
  268. </el-select>
  269. <div class="textarea_panel">
  270. <keep-alive>
  271. <editor ref="editorSix"
  272. id="editorSix"
  273. style="width: 800px"
  274. v-bind:r_content="form.discharge_advice">
  275. </editor>
  276. </keep-alive>
  277. </div>
  278. </div>
  279. <div style="text-align: right; padding-right: 0px; padding-top: 10px; padding-bottom: 10px;">
  280. <el-button @click="show_dialog = false">取消</el-button>
  281. <el-button type="primary"
  282. @click="createAction" :loading="uploading_new_record">保存
  283. </el-button>
  284. </div>
  285. </div>
  286. </div>
  287. </el-dialog>
  288. <el-dialog title="编辑出院小结" width="60%" top="5vh" :visible.sync="edit_show_dialog">
  289. <div>
  290. <div class="new_record_form">
  291. <div class="cell clearfix">
  292. <label class="title"><span class="name">标题</span> : </label>
  293. <el-input v-model="form.title" style="width:200px"></el-input>
  294. <label class="title"><span class="name">入院时间</span> : </label>
  295. <el-date-picker v-model="form.admission_time"
  296. prefix-icon="el-icon-date"
  297. style="width: 200px;"
  298. type="date" placeholder="选择日期时间" align="right" format="yyyy-MM-dd"
  299. value-format="yyyy-MM-dd">
  300. </el-date-picker>
  301. <label class="title"><span class="name">出院时间</span> : </label>
  302. <el-date-picker v-model="form.discharge_time"
  303. prefix-icon="el-icon-date"
  304. style="width: 200px;"
  305. type="date" placeholder="选择日期时间" align="right" format="yyyy-MM-dd"
  306. value-format="yyyy-MM-dd">
  307. </el-date-picker>
  308. </div>
  309. <div class="cell clearfix" style="margin-top:10px">
  310. <label class="title"><span class="name">上级医师签名</span>:</label>
  311. <el-select v-model="form.dean" placeholder="请选择">
  312. <el-option
  313. v-for="item in doctorList"
  314. :key="item.admin_user_id"
  315. :label="item.user_name"
  316. :value="item.admin_user_id">
  317. </el-option>
  318. </el-select>
  319. <label class="title"><span class="name">住院医师签名</span>:</label>
  320. <el-select v-model="form.doctor" placeholder="请选择">
  321. <el-option
  322. v-for="item in doctorList"
  323. :key="item.admin_user_id"
  324. :label="item.user_name"
  325. :value="item.admin_user_id">
  326. </el-option>
  327. </el-select>
  328. <label class="title"><span class="name">记录日期</span> : </label>
  329. <el-date-picker v-model="form.record_date"
  330. prefix-icon="el-icon-date"
  331. style="width: 200px;"
  332. type="date" placeholder="选择日期时间" align="right" format="yyyy-MM-dd"
  333. value-format="yyyy-MM-dd">
  334. </el-date-picker>
  335. </div>
  336. <div class="cell clearfix" style="margin-top:10px">
  337. <label class="title"><span class="name">病案号:</span> : </label>
  338. <el-input v-model="form.sick_personnel" style="width:200px"></el-input>
  339. <label class="title"><span class="name">X线</span> : </label>
  340. <el-input v-model="form.xray" style="width:200px"></el-input>
  341. <label class="title"><span class="name">CT</span> : </label>
  342. <el-input v-model="form.connecticut" style="width:200px"></el-input>
  343. </div>
  344. <div class="cell clearfix" style="margin-top:10px">
  345. <label class="title"><span class="name">MRI</span> : </label>
  346. <el-input v-model="form.nuclear_magnetic_resonance" style="width:200px"></el-input>
  347. <label class="title"><span class="name">超声</span> : </label>
  348. <el-input v-model="form.ultrasound" style="width:200px"></el-input>
  349. <label class="title"><span class="name">病理</span> : </label>
  350. <el-input v-model="form.pathology" style="width:200px"></el-input>
  351. </div>
  352. <div class="cell clearfix" style="margin-top:10px">
  353. <label class="title"><span class="name">入院诊断</span> : </label>
  354. <el-select v-model="form.admitting_diagnosis_id" placeholder="可选择病程模板" @change="changeAmittDiagnosis">
  355. <el-option v-for="(option, index) in templates" :key="index" :label="option.title"
  356. :value="option.content"></el-option>
  357. </el-select>
  358. <div class="textarea_panel">
  359. <keep-alive>
  360. <editor ref="editorTen"
  361. id="editorTen"
  362. style="width: 800px"
  363. v-bind:r_content="form.admitting_diagnosis">
  364. </editor>
  365. </keep-alive>
  366. </div>
  367. </div>
  368. <div class="cell clearfix" style="margin-top:10px">
  369. <label class="title"><span class="name">出院诊断</span> : </label>
  370. <el-select v-model="form.discharge_diagnosis_id" placeholder="可选择病程模板" @change="changeDischargeDiagnosis">
  371. <el-option v-for="(option, index) in templatesOne" :key="index" :label="option.title"
  372. :value="option.content"></el-option>
  373. </el-select>
  374. <div class="textarea_panel">
  375. <keep-alive>
  376. <editor ref="editorSeven"
  377. id="editorSeven"
  378. style="width: 800px"
  379. v-bind:r_content="form.discharge_diagnosis">
  380. </editor>
  381. </keep-alive>
  382. </div>
  383. </div>
  384. <div class="cell clearfix" style="margin-top:10px">
  385. <label class="title"><span class="name">入院时病情</span> : </label>
  386. <el-select v-model="form.diagnosis_admission_id" placeholder="可选择病程模板" @change="changeDiagnosisAdmission">
  387. <el-option v-for="(option, index) in templatesTwo" :key="index" :label="option.title"
  388. :value="option.content"></el-option>
  389. </el-select>
  390. <div class="textarea_panel">
  391. <keep-alive>
  392. <editor ref="editorSixty"
  393. id="editorSixty"
  394. style="width: 800px"
  395. v-bind:r_content="form.diagnosis_admission">
  396. </editor>
  397. </keep-alive>
  398. </div>
  399. </div>
  400. <div class="cell clearfix" style="margin-top:10px">
  401. <label class="title"><span class="name">诊断经过</span> : </label>
  402. <el-select v-model="form.treatment_id" placeholder="可选择病程模板" @change="changeTreatment">
  403. <el-option v-for="(option, index) in templatesThree" :key="index" :label="option.title"
  404. :value="option.content"></el-option>
  405. </el-select>
  406. <div class="textarea_panel">
  407. <keep-alive>
  408. <editor ref="editorNight"
  409. id="editorNight"
  410. style="width: 800px"
  411. v-bind:r_content="form.treatment">
  412. </editor>
  413. </keep-alive>
  414. </div>
  415. </div>
  416. <div class="cell clearfix" style="margin-top:10px">
  417. <label class="title"><span class="name">出院时病情</span> : </label>
  418. <el-select v-model="form.illness_discharge_id" placeholder="可选择病程模板" @change="changeillnessDisCharge">
  419. <el-option v-for="(option, index) in templatesFour" :key="index" :label="option.title"
  420. :value="option.content"></el-option>
  421. </el-select>
  422. <div class="textarea_panel">
  423. <keep-alive>
  424. <editor ref="editorThirty"
  425. id="editorThirty"
  426. style="width: 800px"
  427. v-bind:r_content="form.illness_discharge">
  428. </editor>
  429. </keep-alive>
  430. </div>
  431. </div>
  432. <div class="cell clearfix" style="margin-top:10px">
  433. <label class="title"><span class="name">出院医嘱</span> : </label>
  434. <el-select v-model="form.discharge_advice_id" placeholder="可选择病程模板" @change="changeDischargeAdvice">
  435. <el-option v-for="(option, index) in templatesFive" :key="index" :label="option.title"
  436. :value="option.content"></el-option>
  437. </el-select>
  438. <div class="textarea_panel">
  439. <keep-alive>
  440. <editor ref="editorTwelve"
  441. id="editorTwelve"
  442. style="width: 800px"
  443. v-bind:r_content="form.discharge_advice">
  444. </editor>
  445. </keep-alive>
  446. </div>
  447. </div>
  448. <div style="text-align: right; padding-right: 0px; padding-top: 10px; padding-bottom: 10px;">
  449. <el-button @click="edit_show_dialog = false">取消</el-button>
  450. <el-button type="primary"
  451. @click="updateAction">保存
  452. </el-button>
  453. </div>
  454. </div>
  455. </div>
  456. </el-dialog>
  457. </div>
  458. </div>
  459. </template>
  460. <script>
  461. import PatientSidebar from './components/PatientSidebar'
  462. import Editor from '@/components/Editor'
  463. import { createHospitalSummary,getHospitalSummaryList,getHospitalSummaryDetail,updateHospitalSummary,deleteHospitalSummary,getPatientInfo } from '@/api/patient'
  464. import { parseTime } from '@/utils'
  465. import BreadCrumb from '@/xt_pages/components/bread-crumb'
  466. import { uParseTime } from '@/utils/tools'
  467. import { getDataConfig } from '@/utils/data'
  468. import multiSelectBox from '../dialysis/details/dialog/MultiSelectBox'
  469. import MsgTip from '../dialysis/details/dialog/MsgTip'
  470. import { getAllDoctorList } from "@/api/device"
  471. const moment = require('moment')
  472. export default {
  473. name: 'hospitalSummary',
  474. components: {
  475. PatientSidebar,
  476. BreadCrumb,
  477. Editor,
  478. MsgTip,
  479. multiSelectBox,
  480. },
  481. data() {
  482. return {
  483. InnerDialogProps: {
  484. values: [],
  485. visibility: false,
  486. isShowTextArea: true,
  487. customContent: '',
  488. titles: '',
  489. type: '' // 不同弹框类型,用来匹配数据
  490. },
  491. loading: false,
  492. title: '',
  493. patient_id: 0,
  494. date: [],
  495. start_time: '',
  496. end_time: '',
  497. course_of_disease_time: '',
  498. records: [],
  499. doctors: [],
  500. current_select_record: null,
  501. show_dialog: false,
  502. show_edit_dialog: false,
  503. uploading_new_record: false,
  504. edit_show_dialog:false,
  505. templates: this.$store.getters.configlist.admitting_diagnosis,
  506. templatesOne:this.$store.getters.configlist.discharge_diagnosis,
  507. templatesTwo:this.$store.getters.configlist.diagnosis_admission,
  508. templatesThree:this.$store.getters.configlist.treatment,
  509. templatesFour:this.$store.getters.configlist.illness_discharge,
  510. templatesFive:this.$store.getters.configlist.discharge_advice,
  511. select_template: '',
  512. new_content: '',
  513. edit_new_content: '',
  514. edit_course_of_disease_time: '',
  515. selectingRows: [],
  516. table_current_index: -1,
  517. edit_current_id: 0,
  518. edit_title: '',
  519. value:'',
  520. form:{
  521. id:0,
  522. title:"",
  523. admission_time:this.getTime(new Date()),
  524. discharge_time:this.getTime(new Date()),
  525. sick_personnel:"",
  526. xray:"",
  527. admitting_diagnosis_id:"",
  528. admitting_diagnosis:"",
  529. discharge_diagnosis_id:"",
  530. discharge_diagnosis:"",
  531. treatment:"",
  532. treatment_id:"",
  533. diagnosis_admission_id:"",
  534. diagnosis_admission:"",
  535. illness_discharge_id:"",
  536. illness_discharge:"",
  537. dean:"",
  538. doctor:"",
  539. record_date:this.getTime(new Date()),
  540. discharge_advice_id:"",
  541. discharge_advice:"",
  542. connecticut:"",
  543. nuclear_magnetic_resonance:"",
  544. ultrasound:"",
  545. pathology:"",
  546. record_time:"",
  547. },
  548. tableData:[],
  549. docList:[],
  550. doctorList:[],
  551. hosDetail:{},
  552. ids:"",
  553. patient:{},
  554. }
  555. },
  556. created() {
  557. this.patient_id = this.$route.params && this.$route.params.id
  558. var now = new Date()
  559. this.date = [now.getTime() - (7 * 24 * 60 * 60 * 1000), now.getTime()]
  560. var nowDate = new Date()
  561. var nowYear = nowDate.getFullYear()
  562. var nowMonth = nowDate.getMonth() + 1
  563. var nowDay = nowDate.getDate()
  564. this.end_time =
  565. nowYear +
  566. '-' +
  567. (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
  568. '-' +
  569. (nowDay < 10 ? '0' + nowDay : nowDay)
  570. nowDate.setMonth(nowDate.getMonth() - 1)
  571. nowYear = nowDate.getFullYear()
  572. nowMonth = nowDate.getMonth() + 1
  573. nowDay = nowDate.getDate()
  574. this.start_time =
  575. nowYear +
  576. '-' +
  577. (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
  578. '-' +
  579. (nowDay < 10 ? '0' + nowDay : nowDay)
  580. this.other_start_time = nowYear +'-' +(nowMonth < 10 ? '0' + nowMonth : nowMonth) +'-' + (nowDay < 10 ? '0' + nowDay : nowDay)
  581. this.getAllDoctorList()
  582. this.getlist()
  583. this.getPatientSummaryById()
  584. },
  585. methods: {
  586. getTime(val) {
  587. if(val == "" || val == undefined){
  588. return ""
  589. }else {
  590. return uParseTime(val, '{y}-{m}-{d}')
  591. }
  592. },
  593. startTimeChange(val){
  594. this.start_time = val
  595. this.getlist()
  596. },
  597. endTimeChange(val){
  598. this.end_time = val
  599. this.getlist()
  600. },
  601. print(){
  602. this.$router.push({path:"/patient/patient/hospitalSummary/print?id="+this.form.id+"&patient_id="+this.patient_id})
  603. },
  604. tableRow(){
  605. },
  606. changeCurrentRecordTwo(row){
  607. this.form.id = 0
  608. if(row!=null){
  609. this.form.id = row.id
  610. this.getHospitalSummaryDetail(row.id)
  611. }
  612. },
  613. selectSummary(row){
  614. var arr = []
  615. for(let i=0;i<row.length;i++){
  616. arr.push(row[i].id)
  617. }
  618. var ids = arr.join(",")
  619. this.ids = ids
  620. },
  621. changeAmittDiagnosis(content){
  622. this.form.admitting_diagnosis = content
  623. },
  624. changeDischargeDiagnosis(content){
  625. this.form.discharge_diagnosis = content
  626. },
  627. changeDiagnosisAdmission(content){
  628. this.form.diagnosis_admission = content
  629. },
  630. changeTreatment(content){
  631. this.form.treatment = content
  632. },
  633. changeillnessDisCharge(content){
  634. this.form.illness_discharge = content
  635. },
  636. changeDischargeAdvice(content){
  637. this.form.discharge_advice = content
  638. },
  639. createAction(){
  640. var admitting_diagnosis_id = ""
  641. var discharge_diagnosis_id = ""
  642. var diagnosis_admission_id = ""
  643. var treatment_id = ""
  644. var illness_discharge_id=""
  645. var discharge_advice_id= ""
  646. if(this.templates!=undefined){
  647. for(let i=0;i<this.templates.length;i++){
  648. if(this.form.admitting_diagnosis_id == this.templates[i].content){
  649. admitting_diagnosis_id = this.templates[i].title
  650. }
  651. }
  652. }
  653. if(this.templatesOne!=undefined){
  654. for(let i=0;i<this.templatesOne.length;i++){
  655. if(this.form.discharge_diagnosis_id == this.templatesOne[i].content){
  656. discharge_diagnosis_id = this.templatesOne[i].title
  657. }
  658. }
  659. }
  660. if(this.templatesTwo!=undefined){
  661. for(let i=0;i<this.templatesTwo.length;i++){
  662. if(this.form.diagnosis_admission_id == this.templatesTwo[i].content){
  663. diagnosis_admission_id = this.templatesTwo[i].title
  664. }
  665. }
  666. }
  667. if(this.templatesThree!=undefined){
  668. for(let i=0;i<this.templatesThree.length;i++){
  669. if(this.form.treatment_id == this.templatesThree[i].content){
  670. treatment_id = this.templatesThree[i].title
  671. }
  672. }
  673. }
  674. if(this.templatesFour!=undefined){
  675. for(let i=0;i<this.templatesFour.length;i++){
  676. if(this.form.illness_discharge_id == this.templatesFour[i].content){
  677. illness_discharge_id = this.templatesFour[i].title
  678. }
  679. }
  680. }
  681. if(this.templatesFive!=undefined){
  682. for(let i=0;i<this.templatesFive.length;i++){
  683. if(this.form.discharge_advice_id == this.templatesFive[i].content){
  684. discharge_advice_id = this.templatesFive[i].title
  685. }
  686. }
  687. }
  688. if(this.form.doctor == ""){
  689. this.form.doctor = 0
  690. }
  691. if(this.form.dean == ""){
  692. this.form.dean = 0
  693. }
  694. var params = {
  695. patient_id:parseInt(this.patient_id),
  696. title:this.form.title,
  697. admission_time:this.form.admission_time,
  698. discharge_time:this.form.discharge_time,
  699. sick_personnel:this.form.sick_personnel,
  700. xray:this.form.xray,
  701. admitting_diagnosis_id:admitting_diagnosis_id,
  702. admitting_diagnosis:this.$refs.editor.content,
  703. discharge_diagnosis:this.$refs.editorOne.content,
  704. discharge_diagnosis_id:discharge_diagnosis_id,
  705. diagnosis_admission_id:diagnosis_admission_id,
  706. diagnosis_admission:this.$refs.editorTwo.content,
  707. illness_discharge:this.$refs.editorFive.content,
  708. illness_discharge_id:illness_discharge_id,
  709. discharge_advice_id:discharge_advice_id,
  710. discharge_advice:this.$refs.editorSix.content,
  711. treatment_id:treatment_id,
  712. treatment:this.$refs.editorFour.content,
  713. dean:this.form.dean,
  714. doctor:this.form.doctor,
  715. record_date:this.form.record_date,
  716. connecticut:this.form.connecticut,
  717. nuclear_magnetic_resonance:this.form.nuclear_magnetic_resonance,
  718. ultrasound:this.form.ultrasound,
  719. pathology:this.form.pathology,
  720. }
  721. createHospitalSummary(params).then(response=>{
  722. if(response.data.state == 1){
  723. var list = response.data.data.list
  724. this.form.title = ""
  725. this.form.sick_personnel = ""
  726. this.form.xray = ""
  727. this.form.admitting_diagnosis = ""
  728. this.form.discharge_diagnosis = ""
  729. this.form.diagnosis_admission = ""
  730. this.form.illness_discharge = ""
  731. this.form.discharge_advice = ""
  732. this.form.treatment = ""
  733. this.form.connecticut = ""
  734. this.form.nuclear_magnetic_resonance = ""
  735. this.form.ultrasound = ""
  736. this.form.pathology = ""
  737. this.form.admitting_diagnosis_id = ""
  738. this.form.discharge_diagnosis_id = ""
  739. this.form.illness_discharge_id = ""
  740. this.form.discharge_advice_id =""
  741. this.form.treatment_id = ""
  742. this.$message.success("保存成功!")
  743. this.show_dialog = false
  744. this.getlist()
  745. }
  746. })
  747. },
  748. getAllDoctorList(){
  749. getAllDoctorList().then(response=>{
  750. if(response.data.state == 1){
  751. var list = response.data.data.list
  752. this.doctorList = list
  753. }
  754. })
  755. },
  756. getTime(val) {
  757. if(val == ""){
  758. return ""
  759. }else {
  760. return uParseTime(val, '{y}-{m}-{d}')
  761. }
  762. },
  763. getlist(){
  764. var params = {
  765. start_time:this.start_time,
  766. end_time:this.end_time,
  767. patient_id:parseInt(this.patient_id),
  768. }
  769. getHospitalSummaryList(params).then(response=>{
  770. if(response.data.state ==1){
  771. var list = response.data.data.list
  772. this.tableData = list
  773. }
  774. })
  775. },
  776. getDoctor(id){
  777. var name = ""
  778. for(let i=0;i<this.doctorList.length;i++){
  779. if(id == this.doctorList[i].admin_user_id){
  780. name = this.doctorList[i].user_name
  781. }
  782. }
  783. return name
  784. },
  785. getHospitalSummaryDetail(id){
  786. getHospitalSummaryDetail(id).then(response=>{
  787. if(response.data.state == 1){
  788. var detail = response.data.data.detail
  789. this.hosDetail = detail
  790. }
  791. })
  792. },
  793. getHospitalSummaryDetailOne(id){
  794. getHospitalSummaryDetail(id).then(response=>{
  795. if(response.data.state == 1){
  796. var detail = response.data.data.detail
  797. if(detail.doctor == 0){
  798. this.form.doctor = ""
  799. }
  800. if(detail.dean == 0){
  801. this.form.dean = ""
  802. }
  803. this.form.id = detail.id
  804. this.form.title = detail.title
  805. this.form.patient_id = detail.patient_id
  806. this.form.admission_time = this.getTime(detail.admission_time)
  807. this.form.discharge_time = this.getTime(detail.discharge_time)
  808. this.form.sick_personnel = detail.sick_personnel
  809. this.form.xray = detail.xray
  810. this.form.connecticut = detail.connecticut
  811. this.form.nuclear_magnetic_resonance = detail.nuclear_magnetic_resonance
  812. this.form.ultrasound = detail.ultrasound
  813. this.form.pathology = detail.pathology
  814. this.form.admitting_diagnosis_id = detail.admitting_diagnosis_id
  815. this.form.admitting_diagnosis = detail.admitting_diagnosis
  816. this.form.discharge_diagnosis = detail.discharge_diagnosis
  817. this.form.discharge_diagnosis_id = detail.discharge_diagnosis_id
  818. this.form.diagnosis_admission_id = detail.diagnosis_admission_id
  819. this.form.diagnosis_admission = detail.diagnosis_admission
  820. this.form.treatment_id = detail.treatment_id
  821. this.form.treatment = detail.treatment
  822. this.form.illness_discharge_id = detail.illness_discharge_id
  823. this.form.illness_discharge = detail.illness_discharge
  824. this.form.discharge_advice_id = detail.discharge_advice_id
  825. this.form.discharge_advice = detail.discharge_advice
  826. this.form.record_time = this.getTime(detail.record_time)
  827. this.form.record_date = this.getTime(detail.record_date)
  828. this.form.dean = detail.dean_id
  829. this.form.doctor = detail.doctor
  830. this.edit_show_dialog = true
  831. }
  832. })
  833. },
  834. toEdit(){
  835. this.getHospitalSummaryDetailOne(this.form.id)
  836. },
  837. updateAction(){
  838. var admitting_diagnosis_id = this.form.admitting_diagnosis_id
  839. var discharge_diagnosis_id = this.form.discharge_diagnosis_id
  840. var diagnosis_admission_id = this.form.diagnosis_admission_id
  841. var treatment_id = this.form.treatment_id
  842. var illness_discharge_id= this.form.illness_discharge_id
  843. var discharge_advice_id= this.form.discharge_advice_id
  844. if(this.templates!=undefined){
  845. for(let i=0;i<this.templates.length;i++){
  846. if(this.form.admitting_diagnosis_id == this.templates[i].content){
  847. admitting_diagnosis_id = this.templates[i].title
  848. }
  849. }
  850. }
  851. if(this.templatesOne!=undefined){
  852. for(let i=0;i<this.templatesOne.length;i++){
  853. if(this.form.discharge_diagnosis_id == this.templatesOne[i].content){
  854. discharge_diagnosis_id = this.templatesOne[i].title
  855. }
  856. }
  857. }
  858. if(this.templatesTwo!=undefined){
  859. for(let i=0;i<this.templatesTwo.length;i++){
  860. if(this.form.diagnosis_admission_id == this.templatesTwo[i].content){
  861. diagnosis_admission_id = this.templatesTwo[i].title
  862. }
  863. }
  864. }
  865. if(this.templatesThree!=undefined){
  866. for(let i=0;i<this.templatesThree.length;i++){
  867. if(this.form.treatment_id == this.templatesThree[i].content){
  868. treatment_id = this.templatesThree[i].title
  869. }
  870. }
  871. }
  872. if(this.templatesFour!=undefined){
  873. for(let i=0;i<this.templatesFour.length;i++){
  874. if(this.form.illness_discharge_id == this.templatesFour[i].content){
  875. illness_discharge_id = this.templatesFour[i].title
  876. }
  877. }
  878. }
  879. if(this.templatesFive!=undefined){
  880. for(let i=0;i<this.templatesFive.length;i++){
  881. if(this.form.discharge_advice_id == this.templatesFive[i].content){
  882. discharge_advice_id = this.templatesFive[i].title
  883. }
  884. }
  885. }
  886. if(this.form.doctor == ""){
  887. this.form.doctor = 0
  888. }
  889. if(this.form.dean == ""){
  890. this.form.dean = 0
  891. }
  892. var admitting_diagnosis = ""
  893. var discharge_diagnosis = ""
  894. var diagnosis_admission = ""
  895. var discharge_advice = ""
  896. var treatment = ""
  897. var illness_discharge = ""
  898. if(this.$refs.editorTen.content == ""){
  899. admitting_diagnosis = this.form.admitting_diagnosis
  900. }else{
  901. admitting_diagnosis = this.$refs.editorTen.content
  902. }
  903. if(this.$refs.editorSeven.content== ""){
  904. discharge_diagnosis = this.form.discharge_diagnosis
  905. }else{
  906. discharge_diagnosis = this.$refs.editorSeven.content
  907. }
  908. if(this.$refs.editorSixty.content == ""){
  909. diagnosis_admission = this.form.diagnosis_admission
  910. }else{
  911. diagnosis_admission = this.$refs.editorSixty.content
  912. }
  913. if(this.$refs.editorThirty.content == ""){
  914. illness_discharge = this.form.illness_discharge
  915. }else{
  916. illness_discharge = this.$refs.editorThirty.content
  917. }
  918. if(this.$refs.editorTwelve.content == ""){
  919. discharge_advice = this.form.discharge_advice
  920. }else{
  921. discharge_advice = this.$refs.editorTwelve.content
  922. }
  923. if(this.$refs.editorNight.content == ""){
  924. treatment = this.form.treatment
  925. }else{
  926. treatment = this.$refs.editorNight.content
  927. }
  928. var params = {
  929. id:this.form.id,
  930. patient_id:parseInt(this.patient_id),
  931. title:this.form.title,
  932. admission_time:this.form.admission_time,
  933. discharge_time:this.form.discharge_time,
  934. sick_personnel:this.form.sick_personnel,
  935. xray:this.form.xray,
  936. admitting_diagnosis_id:admitting_diagnosis_id,
  937. admitting_diagnosis:admitting_diagnosis,
  938. discharge_diagnosis:discharge_diagnosis,
  939. discharge_diagnosis_id:discharge_diagnosis_id,
  940. diagnosis_admission_id:diagnosis_admission_id,
  941. diagnosis_admission:diagnosis_admission,
  942. illness_discharge:illness_discharge,
  943. illness_discharge_id:illness_discharge_id,
  944. discharge_advice_id:discharge_advice_id,
  945. discharge_advice:discharge_advice,
  946. treatment_id:treatment_id,
  947. treatment:treatment,
  948. dean:this.form.dean,
  949. doctor:this.form.doctor,
  950. record_date:this.getTime(this.form.record_date),
  951. connecticut:this.form.connecticut,
  952. nuclear_magnetic_resonance:this.form.nuclear_magnetic_resonance,
  953. ultrasound:this.form.ultrasound,
  954. pathology:this.form.pathology,
  955. record_date:this.form.record_date,
  956. }
  957. updateHospitalSummary(params).then(response=>{
  958. if(response.data.state == 1){
  959. var detail = response.data.data.detail
  960. this.edit_show_dialog = false
  961. // this.$refs.monthlyPlanTable.setCurrentRow(detail)
  962. this.getlist()
  963. }
  964. })
  965. },
  966. deleteAction(){
  967. if(this.ids.length == 0){
  968. this.$message.error("请勾选需要删除的数据")
  969. return false
  970. }
  971. this.$confirm('确认删除吗?', '删除', {
  972. confirmButtonText: '确 定',
  973. cancelButtonText: '取 消',
  974. type: 'warning'
  975. }).then(() => {
  976. var params = {
  977. ids:this.ids,
  978. }
  979. deleteHospitalSummary(params).then(response => {
  980. if (response.data.state == 1) {
  981. var msg = response.data.data.msg
  982. this.getlist()
  983. this.$message.success("删除成功")
  984. } else {
  985. this.$message.error("删除失败")
  986. }
  987. })
  988. }).catch(() => {
  989. })
  990. },
  991. addAction(){
  992. this.form.title = ""
  993. this.form.sick_personnel = ""
  994. this.form.xray = ""
  995. this.form.admitting_diagnosis = ""
  996. this.form.discharge_diagnosis = ""
  997. this.form.diagnosis_admission = ""
  998. this.form.illness_discharge = ""
  999. this.form.discharge_advice = ""
  1000. this.form.treatment = ""
  1001. this.form.connecticut = ""
  1002. this.form.nuclear_magnetic_resonance = ""
  1003. this.form.ultrasound = ""
  1004. this.form.pathology = ""
  1005. this.form.admitting_diagnosis_id = ""
  1006. this.form.discharge_diagnosis_id = ""
  1007. this.form.illness_discharge_id = ""
  1008. this.form.discharge_advice_id =""
  1009. this.form.treatment_id = ""
  1010. this.form.dean = ""
  1011. this.form.doctor = ""
  1012. this.form.admission_time = this.getTime(new Date())
  1013. this.form.admission_time = this.getTime(new Date()),
  1014. this.form.discharge_time = this.getTime(new Date()),
  1015. this.form.sick_personnel = this.patient.dialysis_no
  1016. this.show_dialog = true
  1017. },
  1018. getPatientSummaryById(){
  1019. var params = {
  1020. patient_id:this.patient_id,
  1021. }
  1022. getPatientInfo(params).then(response=>{
  1023. if(response.data.state == 1){
  1024. var patient = response.data.data.patient
  1025. this.patient = patient
  1026. }
  1027. })
  1028. }
  1029. },
  1030. watch: {
  1031. tableData: function() {
  1032. this.$nextTick(function() {
  1033. this.$refs.monthlyPlanTable.setCurrentRow(this.tableData[0])
  1034. })
  1035. }
  1036. },
  1037. }
  1038. </script>
  1039. <style rel="stylesheet/css" lang="scss" scoped>
  1040. .borderBox{
  1041. border: 1px solid #DCDFE6;
  1042. padding: 10px;
  1043. margin-top: 10px;
  1044. border-radius: 4px;
  1045. p{
  1046. font-weight: bold;
  1047. font-size: 20px;
  1048. margin: 10px 0;
  1049. }
  1050. }
  1051. .container {
  1052. margin-left: 180px;
  1053. padding: 20px;
  1054. background: #fff;
  1055. min-height: calc(100vh - 173px);
  1056. margin-bottom: 15px;
  1057. .record {
  1058. padding-top: 20px;
  1059. }
  1060. }
  1061. .record_content_panel {
  1062. border-width: 1px;
  1063. border-style: solid;
  1064. border-color: #ebeef5;
  1065. min-height: 200px;
  1066. .title {
  1067. font-size: 14px;
  1068. font-weight: 500;
  1069. color: #909399;
  1070. line-height: 44px;
  1071. height: 44px;
  1072. text-align: center;
  1073. border-bottom-width: 1px;
  1074. border-bottom-style: solid;
  1075. border-bottom-color: #ebeef5;
  1076. }
  1077. .content {
  1078. padding: 12px 15px;
  1079. font-size: 15px;
  1080. color: gray;
  1081. line-height: 22px;
  1082. }
  1083. }
  1084. .new_record_form {
  1085. /*/ / padding: 10 px, 25 px;*/
  1086. .textarea_panel {
  1087. margin-top: 10px;
  1088. }
  1089. }
  1090. </style>
  1091. <style>
  1092. .el-table td,
  1093. .el-table th.is-leaf,
  1094. .el-table--border,
  1095. .el-table--group {
  1096. border-color: #d0d3da;
  1097. }
  1098. .el-table--border::after,
  1099. .el-table--group::after,
  1100. .el-table::before {
  1101. background-color: #d0d3da;
  1102. }
  1103. .el-select-dropdown {
  1104. max-width: 1000px !important;
  1105. }
  1106. </style>